Chat Completions APIで会話履歴を踏まえストリーミングで応答を得るAPIリクエストで実装した処理を、LangChainで置き換える。
ライブラリインストール
pip install langchain openai
ソースコード
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain.chat_models import ChatOpenAI
from langchain.schema import AIMessage, HumanMessage, SystemMessage
chat = ChatOpenAI(
model="gpt-3.5-turbo",
streaming=True,
callbacks=[StreamingStdOutCallbackHandler()]
)
conversation = ConversationChain(
llm=chat,
memory=ConversationBufferMemory()
)
while True:
user_message = input("You: ")
conversation.run(input=user_message)
解説
- ストリーミング処理には、
streaming=True
とした上で、callback関数にStreamingStdOutCallbackHandler()
を指定する - 会話履歴には
ConversationBufferMemory()
を指定する- 他にも会話履歴の持ち方の違いで色々種類がある
- 会話は
ConversationChain
というChainで(処理をつなげる機能)会話をwhileの無限ループで繋いでいる