Pythonの世界は、そのシンプルさとパワフルな機能で、日々新しい地平を切り開いています。
この記事では、Pythonを用いたLangChainとGemini APIの効果的な組み合わせを説明します。
本記事の内容
- LangChainとGemini APIについて
- LangChainからGemini APIを利用するためのシステム要件
- LangChainによるGemini APIの動作確認
それでは、上記に沿って解説していきます。
LangChainとGemini APIについて
LangChainについては、次の記事で説明しています。
Geminiについては、次の記事をご覧ください。
そして、Gemini APIについては次の記事で説明しています。
LangChainとGemini APIを連携させるためには、APIキーが必要となります。
そのAPIキーの取得方法は、上記の記事を参考にしてください。
LangChainからGemini APIを利用するためのシステム要件
2024年12月末時点では、以下のPythonバージョンが必要となります。
その前提で、以下のライブラリが必要です。
- langchain-google-genai
- Pillow
langchain-google-genaiは、LangChainにgenerative-ai SDKを含んだモノと言えます。
Pillowは、画像を扱うために必要となります。
これらをインストールするコマンドは、以下。
pip install langchain-google-genai pip install pillow
LangChainによるGemini APIの動作確認
サンプルコードは、公式ページに記載されています。
ここでは、それらのコードを変更したモノを紹介します。
公式のサンプルコードは、APIキーを環境変数に設定する前提です。
それだとちょっと不便な場合があります。
そのため、コード上で設定するように変更しています。
まずは、テキストベースのチャットで動かす場合のコードです。
from langchain_google_genai import ChatGoogleGenerativeAI GOOGLE_API_KEY = "コピーしたAPIキー" llm = ChatGoogleGenerativeAI(model="gemini-pro", google_api_key=GOOGLE_API_KEY) result = llm.invoke("どのプログラミング言語を学べば良いですか?最もオススメの言語を一つだけ教えてください。") print(result.content)
上記を実行した結果は、以下となります。
Python
次に、マルチモーダルのモデルを利用したコードを紹介します。
ここではローカルに保存された画像ファイルを指定するように変更しています。
person.jpg
from langchain_core.messages import HumanMessage from langchain_google_genai import ChatGoogleGenerativeAI GOOGLE_API_KEY = "コピーしたAPIキー" img_path = "person.jpg" llm = ChatGoogleGenerativeAI(model="gemini-pro-vision", google_api_key=GOOGLE_API_KEY) message = HumanMessage( content=[ { "type": "text", "text": "これは誰ですか?", }, {"type": "image_url", "image_url": img_path}, ] ) result = llm.invoke([message]) print(result.content)
上記を実行した結果は、以下。
これは、織田信長です。
ただし、画像サイズが小さい場合は真田信之だと言われます。
したがって、画像はなるべく大きいサイズでアップするようにしましょう。