<目次>
(1-1) やりたいこと
(1-2) LangChainの概要
(1-3) LangChainのHello World
(1-3-0) STEP0:前提事項
(1-3-1) STEP1:パッケージのインストール
(1-3-2) STEP2:環境構築
(1-3-3) STEP3:疎通①「LLMから応答を取得する」
(1-3-4) STEP4:疎通②「PromptTemplate」の活用
(1-3-5) STEP5:疎通③「ChatPromptTemplate」の活用
(1) LangChainとは?概要やサンプルプログラムをご紹介
(1-1) やりたいこと
(1-2) LangChainの概要
(1-3) LangChainのHello World
(参考:https://python.langchain.com/en/latest/modules/models/chat/integrations/openai.html)
(1-3-0) STEP0:前提事項
(1-3-1) STEP1:パッケージのインストール
> pip install langchain
(1-3-2) STEP2:環境構築
> pip install openai
> pip install python-dotenv
(1-3-3) STEP3:疎通①「LLMから応答を取得する」
import os from dotenv import load_dotenv from langchain.chat_models import ChatOpenAI from langchain.schema import (AIMessage, HumanMessage, SystemMessage) # 環境変数読み込み load_dotenv() #OpenAIの接続情報など api_key = os.environ.get('OPEN_AI_KEY') def main(): # 言語モデル(OpenAIのチャットモデル)のラッパークラスをインスタンス化 openai = ChatOpenAI( model="gpt-3.5-turbo", openai_api_key=api_key, temperature=0.0 ) # モデルにPrompt(入力)を与えCompletion(出力)を取得する # SystemMessage: OpenAIに事前に連携したい情報。キャラ設定や前提知識など。 # HumanMessage: OpenAIに聞きたい質問 response = openai([ SystemMessage(content="あなたは沖縄出身です。沖縄の方言で返答してください。"), HumanMessage(content="調子はどうですか?") ]) print(response) if __name__ == "__main__": main()
OPEN_AI_KEY='xxxx'
(1-3-4) STEP4:疎通②「PromptTemplate」の活用
import os from dotenv import load_dotenv from langchain.chat_models import ChatOpenAI from langchain.prompts import PromptTemplate from langchain.schema import (AIMessage, HumanMessage, SystemMessage) # 環境変数読み込み load_dotenv() #OpenAIの接続情報など api_key = os.environ.get('OPEN_AI_KEY') def main(): # 言語モデル(OpenAIのチャットモデル)のラッパークラスをインスタンス化 openai = ChatOpenAI( model="gpt-3.5-turbo", openai_api_key=api_key, temperature=0.0 ) ############# 追記START ############# prompt = PromptTemplate( input_variables=["prefectures"], template="あなたは{prefectures}出身です。{prefectures}の方言で返答してください。", ) ############# 追記END ############# # モデルにPrompt(入力)を与えCompletion(出力)を取得する # SystemMessage: OpenAIに事前に連携したい情報。キャラ設定や前提知識など。 # HumanMessage: OpenAIに聞きたい質問 response = openai([ ############# 修正START ############# # SystemMessage(content="あなたは沖縄出身です。沖縄の方言で返答してください。"), SystemMessage(content=prompt.format(prefectures=input("都道府県名を入力してください : "))), ############# 修正END ############# HumanMessage(content="調子はどうですか?") ]) print(response) if __name__ == "__main__": main()
(1-3-5) STEP5:疎通③「ChatPromptTemplate」の活用
import os from dotenv import load_dotenv from langchain.chat_models import ChatOpenAI from langchain.prompts.chat import (ChatPromptTemplate,SystemMessagePromptTemplate,HumanMessagePromptTemplate) # 環境変数読み込み load_dotenv() #OpenAIの接続情報など api_key = os.environ.get('OPEN_AI_KEY') def main(): # 言語モデル(OpenAIのチャットモデル)のラッパークラスをインスタンス化 llm = ChatOpenAI( model="gpt-3.5-turbo", openai_api_key=api_key, temperature=0.0 ) # プロンプトのテンプレート生成 system_template = "あなたは{prefectures}出身です。{prefectures}の方言で返答してください。" system_message_prompt = SystemMessagePromptTemplate.from_template(system_template) human_template = "{text}" human_message_prompt = HumanMessagePromptTemplate.from_template(human_template) chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt]) # モデルにPrompt(入力)を与えCompletion(出力)を取得する response = llm(chat_prompt.format_prompt( prefectures=input("都道府県名を入力してください : "), text="調子はどうですか?").to_messages() ) print(response) if __name__ == "__main__": main()