
7
# ボタンを追加し、クリックされたらアクションを起こす
if st.button("送信"):
# OpenAIの言語モデルを使って応答を生成
llm = ChatOpenAI()
response = llm.invoke(user_input)
# 会話を表示
st.write(f"ai: {response.content}")
st.write(f"human: {user_input}")
7.1.4
会話履歴の実装
ここまでで、ユーザの入力に対してチャットボットが応答できるようになりました。しか
し、まだ自然な会話ができるわけではありません。LLMがそれまでの会話の内容を覚えてい
ないためです。
では、会話の内容を覚えておくにはどうすればよいでしょうか? そのためには、過去の会
話のやり取りを履歴として保存しておき、LLMへの問い合わせのたびに過去の会話の履歴を
渡す必要があります。会話履歴をプロンプトとして与えることで、LLMは過去の会話履歴も
参考にしつつ質問に回答できるようになります。
リスト 7.1.3 にリスト 7.1.2のプログラムを拡張したコードを示します。網掛けした箇所が
差分ですので、順番に確認を進めます。
リスト7.1.3
import streamlit as st
from langchain_openai import ChatOpenAI
from langchain_core.messages ...