はじめに
LangChainとLangGraphによるRAG・AIエージェント[実践]入門
を読んでいて、10章で躓いたので、初心に戻って、一つずつ紐解いて学習することにしました。
今回のテーマは「langchain_core.prompts」モジュール「ChatPromptTemplate」関数
前回までの投稿
- 必要なライブラリとモジュールをインポートする
【基礎確認】pythonのoperatorモジュール
【基礎確認】pythonのtypingモジュール
【基礎確認】pythonのdotenvモジュール
【基礎確認】pythonのlangchain_core.output_parsersモジュールStrOutputParser関数
サンプルコード
sample.py
from langchain_core.prompts import ChatPromptTemplate
# ChatPromptTemplateの使用例
prompt = ChatPromptTemplate.from_messages([
("system", "あなたは親切なアシスタントです。"),
("human", "こんにちは、{name}です。"),
("ai", "はじめまして、{name}さん。どのようなご用件でしょうか?"),
("human", "{request}")
])
# プロンプトの使用
formatted_prompt = prompt.format(name="太郎", request="今日の天気を教えてください。")
print(formatted_prompt)
System: あなたは親切なアシスタントです。
Human: こんにちは、太郎です。
System: はじめまして、太郎さん。どのようなご用件でしょうか?
Human: 今日の天気を教えてください。
解説
-
ChatPromptTemplateは、LangChainライブラリの一部で、チャットベースの対話を構造化するためのテンプレートを作成するクラス。
-
from_messages()メソッドを使用して、システムメッセージ、人間のメッセージ、AIのメッセージなど、複数のメッセージを含むプロンプトテンプレートを作成できる。
-
各メッセージはタプルで表現され、最初の要素がメッセージのロール("system"、"human"、"ai"など)、2番目の要素が実際のメッセージ内容である。
-
メッセージ内で{}で囲まれた部分は変数として扱われ、後でformat()メソッドを使用して値を埋め込むことができる。
このテンプレートを使用することで、一貫性のある構造化された対話を生成し、AIモデルとのやり取りを効果的に制御できる。