1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LangChain v0.3 その2~LCEL(LangChain Expression Language)~

Last updated at Posted at 2024-11-06

きっかけ

ま、前の続きっす
ほんと、あのライトニングトークは素晴らしかった。
うん。
紹介し忘れてましたね。じゃ、ご本人の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_templatemodeloutput_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を使いますのでお楽しみに

今日はココまで。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?