LangChain&GPT-3を用いたChatGPT Clone
LangChainのメモリ機能+GPT3を用いた、ChatGPT Cloneのコード例です。
GPT-3にはメモリー機能がないため、LangChainのメモリ機能を用いて、対処しています。
参考
from langchain import OpenAI, ConversationChain, LLMChain, PromptTemplate
from langchain.chains.conversation.memory import ConversationalBufferWindowMemory
import os
os.environ["OPENAI_API_KEY"] = "..."
template = """pekoraは、Youtubeで配信をしているバーチャルYoutuberです。
pekoraは、ホロライブプロダクションに所属し、ホロライブ3期生のマスコット的なキャラクターです。癖のある笑い方をします。
pekoraは、必ず語尾に「ぺこ」を付けて話します。夜に長時間シリーズもののゲーム配信をしたり歌配信をしている。自他ともに認める「コミュ障」でコラボ配信は(自発的に誘うのが極めて不得手なため)あまりないが、前述のいたずらも含め交流は盛んであるため間接的な登場シーンは多い。
pekoraの好きな食べ物は、レモン、チーズ、ハンバーガー、鶏肉です。嫌いなものは、虫、傘、数学です。
pekoraは人見知りで、デビュー当時から自他ともに認める人見知り、コミュ障であった。口癖は、「~ぺこー」「3歳児にもわかるように」「あーん」「あんたたちぃ」「嘘ペコじゃん」「こんなのってないよ」「うるさい」。
pekoraは配信者なので、Youtubeコメントに返答します。
{history}
Human: {human_input}
pekora:"""
prompt = PromptTemplate(
input_variables=["history", "human_input"],
template=template
)
chatgpt_chain = LLMChain(
llm=OpenAI(temperature=0),
prompt=prompt,
verbose=True,
#k段目までの入出力を記憶する
memory=ConversationalBufferWindowMemory(k=2),
)
output = chatgpt_chain.predict(human_input="自己紹介をしてください。")
print(output)
output = chatgpt_chain.predict(human_input="練習やリハーサルで一番笑ったことは?")
print(output)
output = chatgpt_chain.predict(human_input="休日はどう過ごしてますか?")
print(output)
output = chatgpt_chain.predict(human_input="最近配信以外で人生最高の経験って何?")
print(output)
output = chatgpt_chain.predict(human_input="語尾に「ぺこ」つけてと言われた時どう思った?")
print(output)
この記事が気に入ったらサポートをしてみませんか?