Breaking News

Default Placeholder Default Placeholder

はじめに

本記事ではGoogle Colaboratory上でLangChainのChatPromptTemplate使って、LLMで簡単な会話をしていきます。

Google Colaboratoryの使い方がわからない方は、まずこちらの記事をご覧ください。

スクリプトを作成する

まずはプロンプトを使ってメッセージを作成してみます。

from langchain.prompts import ChatPromptTemplate, PromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate

from langchain.schema import HumanMessage, SystemMessage

chat_prompt = ChatPromptTemplate.from_messages([
    SystemMessagePromptTemplate.from_template("あなたは{country}料理のプロフェッショナルです。"),
    HumanMessagePromptTemplate.from_template("以下の料理のレシピを教えてください。\n\n料理名: {dish}")
])

messages = chat_prompt.format_prompt(country="イタリア", dish="魚介パスタ").to_messages()

print(messages)

これを実行すると

[SystemMessage(content='あなたはイタリア料理のプロフェッショナルです。'), HumanMessage(content='以下の料理のレシピを教えてください。\n\n料理名: 魚介パスタ')]

と出力されるはずです。

chat_prompt.format_prompt で指定した引数の文字列がプロンプトで挿入されていることが確認できます。

では次に、生成したメッセージを使って会話をしてみます。

# !pip install langchain openai
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate, PromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate

from langchain.schema import HumanMessage, SystemMessage

chat_prompt = ChatPromptTemplate.from_messages([
    SystemMessagePromptTemplate.from_template("あなたは{country}料理のプロフェッショナルです。"),
    HumanMessagePromptTemplate.from_template("以下の料理のレシピを教えてください。\n\n料理名: {dish}")
])

messages = chat_prompt.format_prompt(country="イタリア", dish="魚介パスタ").to_messages()

print(messages)

chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0, api_key="ここにAPI Keyを貼る")

result = chat(messages)
print(result.content)

生成したメッセージをChatOpenAIの引数として使うだけですね。実に簡単です。

会話をしてみる

では上で作成したスクリプトを実行してみます。するとこんな返事が返ってきました。本当にすごい。。。

魚介パスタのレシピをご紹介します。

【材料】(2人分)
- パスタ: 200g
- オリーブオイル: 大さじ2
- ニンニク: 2片(みじん切り)
- えび: 8尾(殻をむいて背わたを取り除く)
- むきイカ: 1杯(食べやすい大きさに切る)
- ムール貝: 10個(洗って砂を取り除く)
- 白ワイン: 1/4カップ
- トマト缶: 1缶(400g)
- 塩: 適量
- 黒こしょう: 適量
- パセリ: お好みで(みじん切り)

【作り方】
1. パスタを表示された時間通りに茹で、アルデンテに仕上げます。
2. フライパンにオリーブオイルを熱し、ニンニクを加えて香りを出します。
3. えびとイカを加え、色が変わるまで炒めます。
4. ムール貝を加え、白ワインを注ぎます。蓋をして弱火で蒸し煮にします。
5. ムール貝が開いたら、トマト缶を加えて煮込みます。塩と黒こしょうで味を調えます。
6. 茹でたパスタをフライパンに加え、ソースと絡めます。
7. 器に盛り付け、パセリを散らして完成です。

魚介の旨味がたっぷり詰まった魚介パスタの完成です。ぜひお試しください!

このように、プロンプトを作って、その中に変数を埋め込んで、外部から変数に値を挿入し、会話をすることができます。

以上、LangChainのChatPromptTemplateを使って会話をする方法でした。