目次
- 基本構成
- メッセージ部分
- ストリーミング出力
- 履歴を組み込む場合
基本構成
from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages( [ # {"キー": "バリュー"}で穴埋めするとメッセージ部分になる # ("system", "メッセージ"), ("user", "メッセージ")などが入る ] )
prompt_value = prompt.invoke({"キー": "バリュー"})
model = ChatOpenAI(model="gpt-4o-mini", temperature = 0) ai_message = model.invoke(prompt_value) print(ai_message)
|
メッセージ部分
穴埋めされて変換された後のメッセージ部分は次のような形のイメージ
from langchain_core.messages import SystemMessage, HumanMessage, AIMessage
messages = [ SystemMessage("文章"), HumanMessage("文章"), AIMessage("文章"), HumanMessage("文章"), ]
|
ストリーミング出力
print
の行を次に差し替え.
for chunk in model.stream(messages): print(chunk.content, end = "", flush = True)
|
履歴を組み込む場合
MessagesPlaceholder
をインポートして,メッセージに履歴となる部分を挿入する.
_
from langchain_core.prompts import MessagesPlaceholder
prompt = ChatPromptTemplate.from_messages( [ ("system", "システムへのメッセージ"), MessagesPlaceholder("chat_history", optional = True), ("human", "{input}") ] )
|
キーとしたchat_history
でインボークする.
prompt_value = prompt.invoke( { "chat_history": [ HumanMessage("文章"), AIMessage("応答"), ], "input": "質問文", } )
|