Google ColabでLangChainをサクッと試してみる
生成AIアプリケーション開発のデファクトになりつつあるLangChainに、入門がてらGoogle Colabで動作を試してみます(Colabじゃなくても動作はすると思います)。
APIキーを環境変数に設定
import os
os.environ['OPENAI_API_KEY'] = "sk-******************************" # Set your openai-api-key
OpenAIのモデルを利用するためにAPIキーを環境変数に設定しておきます。
LangChaineはOpenAIに限らず、色々な開発元の提供するモデルを切り替えて統一されたインターフェースで操作できるのが強みです。
ライブラリのインストール
!pip install langchain
!pip install langchain-openai
LangChainとOpenAI用のライブラリをインストールします。
モデルへ問合せを実行
from langchain_openai import ChatOpenAI
from langchain import PromptTemplate
from langchain.schema import HumanMessage, SystemMessage
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
chat = ChatOpenAI(
temperature=0,
model="gpt-3.5-turbo",
streaming=True, # ストリーミングを有効にする
callbacks=[
StreamingStdOutCallbackHandler()
]
)
prompt = PromptTemplate(
template="あなたは{birth_place}出身です。自己紹介をしてください。",
input_variables=[
"birth_place"
]
)
response = chat.invoke(
[
HumanMessage(content="こんにちは。")
]
)
print(f"\n-----------------------")
response = chat.invoke(
[
SystemMessage(content=prompt.format(birth_place="大阪")),
HumanMessage(content="こんにちは。")
]
)
問合せと、プロンプトテンプレートを使った問合せを試しています。
上手くいけば標準出力に返答が返ってきます。
プロンプトテンプレートを利用することで、あらかじめ設計された効果的な問合せプロンプトを再利用することができます。
DALL·Eを使った画像生成
画像生成も試してみます。こちらはChatGPT PlusのAPIキーである必要があります。
公式サイトの手順はエラーが出てしまったので、LangChainを使わず直接OpenAIのライブラリを利用しています。
from openai import OpenAI
from PIL import Image
import requests
import io
client = OpenAI()
response = client.images.generate(
model="dall-e-3",
prompt=prompt.format(question="東京タワー"),
size="1024x1024",
quality="standard",
n=1,
)
print(response.data[0].url)
Image.open(io.BytesIO(requests.get(response.data[0].url).content))
以上。あまりLLMの知識がなくても簡単に生成AIモデルへの問合せができました。
既存のコードと組み合わせても無限の可能性がありそうなので何かアイデアがあれば実装してみたいですね。
Notebookの全文はこちら。