0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【基礎確認】pythonのlangchain_core.promptsモジュールChatPromptTemplate関数

Last updated at Posted at 2024-12-19

はじめに

LangChainとLangGraphによるRAG・AIエージェント[実践]入門
を読んでいて、10章で躓いたので、初心に戻って、一つずつ紐解いて学習することにしました。
今回のテーマは「langchain_core.prompts」モジュール「ChatPromptTemplate」関数

前回までの投稿

  1. 必要なライブラリとモジュールをインポートする
    【基礎確認】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: 今日の天気を教えてください。

解説

  1. ChatPromptTemplateは、LangChainライブラリの一部で、チャットベースの対話を構造化するためのテンプレートを作成するクラス。

  2. from_messages()メソッドを使用して、システムメッセージ、人間のメッセージ、AIのメッセージなど、複数のメッセージを含むプロンプトテンプレートを作成できる。

  3. 各メッセージはタプルで表現され、最初の要素がメッセージのロール("system"、"human"、"ai"など)、2番目の要素が実際のメッセージ内容である。

  4. メッセージ内で{}で囲まれた部分は変数として扱われ、後でformat()メソッドを使用して値を埋め込むことができる。

このテンプレートを使用することで、一貫性のある構造化された対話を生成し、AIモデルとのやり取りを効果的に制御できる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?