きっかけ
ま、前の続きっす
ほんと、あのライトニングトークは素晴らしかった。
うん。
紹介し忘れてましたね。じゃ、ご本人のnoteをば。
バージョン関連
Python 3.10.8
langchain==0.3.7
python-dotenv
langchain-openai==0.2.5
langgraph>0.2.27
langchain-core
※LLMのAPIはAzureOpenAIのgpt-4o-mini
を使いました
準備
.env
ファイルに以下を用意しましょうね
END_POINT="https://<<ほにゃらら>>.openai.azure.com/"
API_KEY="<<ほにゃらら>>"
API_VERSION="2023-05-15"
LANG_SMITH = "<<ほにゃらら>>"
今日の目的
LCEL(Langchain Expression Langage)使う
ライブラリのインポート
import os
from dotenv import load_dotenv
# from openai import AzureOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import AzureChatOpenAI
from langchain_core.output_parsers import StrOutputParser
.env
からAPI_KEYやらなにやらを取ってくる準備
load_dotenv(dotenv_path='.env')
その1でやったChatPromptTemplate
prompt_template = ChatPromptTemplate([
('system', 'あなたは偉大な漫才師です'),
('user', '{topic}について大喜利してください'),
])
モデルの準備
model = AzureChatOpenAI(
model='gpt-4o-mini',
azure_endpoint=os.getenv("END_POINT"),
api_version=os.getenv("API_VERSION"),
api_key=os.getenv("API_KEY")
)
出力の準備
これでテキストで出力ができる
output_parser = StrOutputParser()
LCEL(LangChain Expression Language)の設定
今日のキモっす
上で設定したprompt_template
とmodel
とoutput_parser
を連結させるんです。
chain = prompt_template | model | output_parser
chainに入れて出力させます
response3 = chain.invoke({'topic': '靴下'})
print(response3)
output
'もちろん!靴下についての大喜利、いきますよ!\n\n1. 靴下が「お前、今日もいい匂いだな!」と言われた理由は?\n - 洗濯したのを忘れて、靴の中で大宴会してたから!\n\n2. 靴下がデートに行くとき、何を気をつける?\n - 相手の靴と色を合わせること!靴下の恋愛は「足元」から!\n\n3. 靴下が自分の存在意義を悩んでいるとき、どうする?\n - 「私はただの布じゃない、あなたの足を守るヒーローだ!」と自己啓発セミナーに参加!\n\n4. 靴下が友達に「どうしていつも片方だけ無くなるの?」と聞かれたら?\n - 「それは、片方が夢を追いかけて旅に出るからさ!」\n\n5. 靴下が流行を追いかけているとしたら、どんなスタイルを提案する?\n - 「今季のトレンドは、足元に“スニーカー”と“サンダル”のハイブリッド!通気性抜群!」\n\nどうでしたか?靴下も意外と面白いネタになるんですね!'
あら面白い。そして簡単。
今日はLCELが中心なんですが、御覧の通り、パイプ(|)で繋げるだけなんですよね。
これで順に処理をしてくれちゃいます。
また次々回くらいでLCELを使いますのでお楽しみに
今日はココまで。