iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0

前言

昨天進行了model的串接功能

今天主要會說明串接model之後,會需要進行一系列的任務串接,包含Prompt的使用、LLM的呼叫、格式化輸出,涉及多個複雜的工作流程的串聯。

正文

Chain的介紹

Chains 是 LangChain 的核心元件,用於定義一系列按順序執行的工作流程。每個Chain可以包含多個步驟,這些步驟可以是不同的Model或資料處理套件。

以昨天的串接OpenAI 為例

import os
from langchain_openai import ChatOpenAI

os.environ["OPENAI_API_KEY"] = "你的OpenAI key"

model = ChatOpenAI(model="gpt-4o")

text = model.invoke("hi!")

print(text)
  • 模型的回應是一個AIMessage物件。包含LLM的回應以及有關回應的其他資料。通常我們只想處理字串回應。我們可以使用一個簡單的輸出解析器來處理這個回應。
import os
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
os.environ["OPENAI_API_KEY"] = "你的OpenAI key"

model = ChatOpenAI(model="gpt-4o")

text = "hi!"

parser = StrOutputParser()

result = model.invoke(text)

print(parser.invoke(result))
Hello! How can I assist you today?
  • 可以看到輸出的部分就只有LLM的回應
  • 之後有時間我們可以說明自訂輸出解析器的部分

但是有更方便的串接方式,就是使用Chain

import os
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
os.environ["OPENAI_API_KEY"] = "你的OpenAI key"

model = ChatOpenAI(model="gpt-4o")

text = "hi!"

parser = StrOutputParser()

chain = model | parser

result = chain.invoke(text)

print(result)

Hello! How can I assist you today?
  • LangChain中使用|運算符號,將兩個元素組合在一起,以便達成一系列照順序的任務流程。

明天將會介紹PromptTemplate,將提示重複使用


上一篇
day2 LangChain的安裝與連接多種LLM
下一篇
day4 PromptTemplates : 兩人對話劇本產生器
系列文
智能雲端架構圖生成:結合LangChain&LangGrpah與Rag的創新應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言