LangChain を使った Google Gemini 1.5 Flash モデルのチャットボット構築
LangChain を使用して Google Gemini 1.5 Flash モデルを利用したチャットボット構築のためのプロセスを実施しました。この記事では、使用したライブラリとコードの最終形を共有します。
使用したライブラリ
langchain-google-genai- Google Gemini モデルを統合するためのライブラリ。
- インストール:
pip install langchain-google-genai
langchain.schema- メッセージの定義に使用するライブラリ。
- Python 環境
- 必須モジュール:
os: 環境変数の管理に利用。langchain_google_genai: Gemini モデルのインターフェースを提供。
- 必須モジュール:
初期設定と課題
- LangChain の非推奨化メソッドの対応
langchain.chat_modelsモジュールからのインポートが非推奨化されたため、invokeメソッドを利用するコードに変更しました。
- 環境変数の設定
- APIキーを安全に管理するために、環境変数
GOOGLE_API_KEYを使用しました。
- APIキーを安全に管理するために、環境変数
- Gemini モデルの統合
langchain-google-genaiを使用して Google Gemini 1.5 Flash モデルを統合。
最終的なコード
以下は、最終的に完成したコードです。このコードを実行することで、Google Gemini 1.5 Flash モデルを使用したチャットボットが動作します。
import os
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.schema import HumanMessage, AIMessage
# 環境変数からAPIキーを取得
api_key = os.getenv("GOOGLE_API_KEY")
if not api_key:
raise ValueError("環境変数 'GOOGLE_API_KEY' が設定されていません。APIキーを設定してください。")
# Chatモデルのインスタンスを作成 (Gemini 1.5 Flash モデルを指定)
chat = ChatGoogleGenerativeAI(model="gemini-1.5-flash", google_api_key=api_key)
# 初回のメッセージを準備
messages = [
HumanMessage(content="こんにちは!あなたはLangChainを使用したGemini 1.5 Flashモデルです。簡単な会話をしましょう。")
]
# モデルにメッセージを送信し、応答を取得
response = chat.invoke(messages)
print("AI:", response.content)
# 会話を続けるループ
while True:
user_input = input("You: ")
if user_input.lower() in ["exit", "quit", "終了"]:
print("AI: 会話を終了します。さようなら!")
break
# 会話履歴を更新
messages.append(HumanMessage(content=user_input))
# 応答を取得
response = chat.invoke(messages)
print("AI:", response.content)
# 応答を履歴に追加
messages.append(AIMessage(content=response.content))
まとめ
このコードをベースに、より高度なチャットボットやアプリケーションを構築することができます。



コメント