一、Chains的本質(zhì)

Chains是什么?Chains 在 LangChain 框架中的核心概念是用于將多個組件及其他 Chains 組合成更復(fù)雜功能,通過模塊化與復(fù)用提高開發(fā)效率、代碼可讀性及可維護(hù)性。

Chains兩種類型的鏈:通用鏈和實用鏈。

通用鏈和實用鏈

Chains能干什么?

Chains的靈活性使得我們可以根據(jù)具體需求將多個鏈組合在一起,或者將鏈與其他功能組件相結(jié)合,從而構(gòu)建出更復(fù)雜、更強大的應(yīng)用程序。

Legacy Chains 是一系列傳統(tǒng)的工具鏈,用于處理和轉(zhuǎn)換數(shù)據(jù),執(zhí)行特定的任務(wù),并在早期的技術(shù)環(huán)境中提供關(guān)鍵的功能支持。

二、Chains的原理

Chains的工作流程:通過定義鏈構(gòu)造函數(shù)來初始化鏈,配置所需的組件和可能的其他鏈,以形成具有特定功能的執(zhí)行流程。

Chains流程包含以下四個核心步驟:

Chains的工作流程

Chains的架構(gòu):Chains作為LangChain的核心組件,通過串聯(lián)各個邏輯單元,實現(xiàn)了流程控制、數(shù)據(jù)傳遞和狀態(tài)管理,使得復(fù)雜的業(yè)務(wù)邏輯能夠高效、有序地執(zhí)行。

三、Chains的應(yīng)用

LangChain Expression Language(LCEL)是一種聲明式的方式,可以輕松地組合鏈。LCEL 從一開始就被設(shè)計為支持將原型投入生產(chǎn),無需任何代碼更改,從最簡單的“提示+LLM”鏈到最復(fù)雜的鏈。

Chains的基本案例:prompt + model + output parser

在此鏈中,用戶輸入傳遞到提示模板,然后提示模板輸出傳遞到模型,然后模型輸出傳遞到輸出解析器。

基本案例的流程

1. 提示(Prompt):你創(chuàng)建了一個?ChatPromptTemplate?對象,該對象使用給定的模板字符串,并根據(jù)提供的輸入(在這種情況下是主題)生成完整的提示。當(dāng)你調(diào)用?prompt.invoke({“topic”: “ice cream”})?時,它會返回一個?ChatPromptValue?對象,該對象包含要傳遞給模型的完整提示。

prompt value = prompt,invoke({"topic": "ice cream"])
prompt value
ChatPromptValue(messages=[HumanMessage(content='tell me a short joke about ice crean')])
prompt value,to messages )
[HumanMessage(content='tell me a short joke about ice cream')]
prompt value.to string()
Human: tell me a short joke about ice cream'

ChatPromptTemplate

2. 模型(Model):PromptValue作為輸入傳遞給ChatModel,該模型處理后輸出一個BaseMessage格式的回復(fù)。

message = model invoke(prompt value)
message
AIMessage(content-"why don't ice creams ever get invited to parties?\n\nBecause they al

ChatModel

如果我們的模型是一個大語言模型(LLM),它將輸出一個字符串作為結(jié)果。

from langchain openai. llms import OpenAI
llm = OpenAI(model="gpt-3.5-turbo-instruct")
llm. invoke(prompt value)
\nnRobot: Why did the ice cream truck break down? Because it had a meltdown!'

大語言模型(LLM)

3. 輸出解析器(Output Parser):最后,我們將模型輸出傳遞給output_parser,它是一個BaseOutputParser,可以接受字符串或BaseMessage作為輸入。其中,StrOutputParser專門將任何輸入簡單轉(zhuǎn)換為字符串。

output parser.invoke(messagel
"why did the ice cream go to therapy? ininBecause it had too many toppings and couldn't

輸出解析器(Output Parser)

RAG Search Example:在這個例子中,我們想要運行一個檢索增強的生成鏈,以便在回答問題時添加一些上下文。

RAG Search Example的流程

該流程通過創(chuàng)建一個包含上下文和問題的RunnableParallel對象,將其傳遞給提示組件以生成PromptValue,然后將該值輸入到OpenAI的大型語言模型(LLM)中以生成ChatMessage,最后通過輸出解析器將其轉(zhuǎn)換為Python字符串并返回。

1. 創(chuàng)建RunnableParallel對象:首先,創(chuàng)建一個RunnableParallel對象,它包含兩個條目:一個是context(由檢索器獲取的文檔結(jié)果),另一個是question(用戶的原始問題)。為了傳遞問題,使用RunnablePassthrough來復(fù)制這個條目。

2. 傳遞給提示組件:將上述步驟中創(chuàng)建的字典傳遞給提示組件。提示組件接收用戶輸入的問題和檢索到的文檔(作為上下文),然后構(gòu)建一個提示并輸出一個PromptValue

3. 模型組件評估:模型組件接收生成的提示,并將其傳遞給OpenAI的大型語言模型(LLM)進(jìn)行評估。模型生成的輸出是一個ChatMessage對象。

4. 輸出解析:最后,output_parser組件接收一個ChatMessage對象,并將其轉(zhuǎn)換為Python字符串。這個字符串是從調(diào)用方法中返回的最終結(jié)果。

# Requires:
# pip install langchain docarray tiktoken
from langchain community.vectorstores import DocArrayInMemorySearchfromlangchain core.output parsers import StrOutputParser
langchain core.prompts import ChatPromptTemplatefrom
fromilangchain core,runnables import RunnableParallel, RunnablePassthrough
fromlangchain openaichat models import ChatOpenAIfrom langchain openai.embeddings import OpenAIEmbeddings
vectorstore = DocArrayInMemorySearch, from texts(
["harrison worked at kensho", "bears like to eat honey"].embedding 0penAIEmbeddings()
retriever = vectorstore.as retriever()
template = mAnswer the question based only on the following context;{context}
Question: {question》
prompt = ChatPromptTemplate.from template(template)model = ChatOpenAi()
output parser = StrOutputParser()
setup and retrieval = RunnableParallel(["context": retriever,"question": RunnablePassthrough()]
chain = setup and retrieval l prompt model output parser
chain.invoke("where did harrison work?")

本文章轉(zhuǎn)載微信公眾號@架構(gòu)師帶你玩轉(zhuǎn)AI

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業(yè)工程師共享工作效率翻倍的秘密
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
返回頂部
上一篇
大模型開發(fā) - 一文搞懂 LangChain(四):Agents
下一篇
大模型開發(fā) - 一文搞懂 Function Calling(函數(shù)調(diào)用)
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
午夜亚洲福利老司机| 亚洲精品欧美在线| 国产精品视频一二三区| 国产精品一区二区果冻传媒| 亚洲国产日韩一级| 91高清视频免费看| 激情久久五月天| 亚洲另类在线一区| 国产亚洲精品免费| 精品免费一区二区三区| 毛片av一区二区三区| 亚洲天堂免费看| 日韩免费看的电影| 91香蕉视频污在线| 国产一区二区三区美女| 亚洲超碰精品一区二区| 亚洲人精品一区| 久久久久国色av免费看影院| 欧美片在线播放| 91婷婷韩国欧美一区二区| 成人蜜臀av电影| 国精品**一区二区三区在线蜜桃| 欧美日韩黄色影视| 亚洲国产精品久久人人爱蜜臀| 国产亚洲成aⅴ人片在线观看| 欧美成人一区二区三区在线观看| 在线一区二区三区四区五区 | 99re66热这里只有精品3直播| 色综合久久综合| 亚洲精品国产成人久久av盗摄 | 成人深夜在线观看| 偷拍一区二区三区| 国产精品久久久久久亚洲毛片 | 91啪亚洲精品| 国产精品系列在线播放| 五月激情六月综合| 亚洲欧美日韩精品久久久久| 国产亚洲午夜高清国产拍精品| 欧美日韩一区二区三区不卡| 99国产精品久久久| 波多野结衣中文字幕一区二区三区| 精品无人码麻豆乱码1区2区| 日日欢夜夜爽一区| 蜜臀99久久精品久久久久久软件| 亚洲国产婷婷综合在线精品| 亚洲亚洲人成综合网络| 午夜精品久久久久久久久| 亚洲不卡在线观看| 日本在线不卡视频一二三区| 天天影视网天天综合色在线播放| 亚洲人成在线播放网站岛国| 亚洲欧美在线另类| 亚洲不卡av一区二区三区| 日本怡春院一区二区| 激情偷乱视频一区二区三区| 国产精品亚洲第一区在线暖暖韩国 | 精品国产凹凸成av人导航| 久久久久国产精品厨房| 亚洲色图清纯唯美| 轻轻草成人在线| 91亚洲精华国产精华精华液| 9191久久久久久久久久久| 久久美女高清视频| 亚洲高清三级视频| 成人在线一区二区三区| 欧美一区二区三区在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 亚洲国产一区二区视频| 韩国欧美一区二区| 91麻豆精品国产91久久久资源速度| 国产欧美一区二区精品忘忧草| 亚洲va欧美va天堂v国产综合| 成人app软件下载大全免费| 精品国产免费一区二区三区四区| 在线观看一区二区视频| 亚洲欧洲国产专区| 91在线观看地址| 国产日韩欧美不卡| 国产福利一区在线| 国产精品欧美一区二区三区| 久久精品国产精品亚洲综合| 91麻豆精品国产91久久久久久| 亚洲精品欧美二区三区中文字幕| 波多野结衣中文一区| 成人免费在线观看入口| 欧美无人高清视频在线观看| 奇米色一区二区三区四区| 欧美xxxx老人做受| aaa欧美色吧激情视频| 综合精品久久久| 欧美精品少妇一区二区三区| 青青草97国产精品免费观看| 国产日产亚洲精品系列| 91国偷自产一区二区使用方法| 亚洲成人动漫av| 欧美国产丝袜视频| 欧美精品日日鲁夜夜添| 国产91在线看| 日本成人超碰在线观看| 中文字幕一区二区三| 日韩一级黄色大片| 91精品福利视频| 99精品偷自拍| 国产精品一区二区x88av| 日韩精品欧美成人高清一区二区| 中文字幕欧美激情| 久久久久久亚洲综合| 欧美一区二区在线免费播放| 欧美亚洲另类激情小说| 91在线免费看| 色域天天综合网| kk眼镜猥琐国模调教系列一区二区 | 久久精品国产第一区二区三区| 综合精品久久久| 亚洲免费伊人电影| 亚洲免费视频中文字幕| 一区二区三区在线观看欧美| 亚洲色图制服诱惑 | 99视频国产精品| 色婷婷av一区二区三区gif| 欧美视频中文一区二区三区在线观看| 色综合天天综合狠狠| 色天天综合色天天久久| 欧美唯美清纯偷拍| 日韩午夜激情视频| 国产欧美日韩三级| 亚洲午夜免费福利视频| 美女脱光内衣内裤视频久久网站 | 精品少妇一区二区三区视频免付费 | 99re视频精品| 欧美日韩另类国产亚洲欧美一级| 中文乱码免费一区二区| 免费在线观看视频一区| 久久蜜桃av一区二区天堂| 911精品产国品一二三产区| 99精品国产99久久久久久白柏| 一区二区三区加勒比av| 欧美影院一区二区三区| 久久精品国内一区二区三区| 中文字幕一区二区三区在线不卡| 日韩一区二区视频| 欧美肥妇free| 91福利国产成人精品照片| 奇米一区二区三区| 国产精品正在播放| 亚洲成人在线免费| 亚洲高清免费在线| 欧美激情中文字幕一区二区| 日韩午夜中文字幕| 色视频成人在线观看免| 亚洲一区二区三区激情| 国产一区二三区| 一区二区三区毛片| 久久久久久夜精品精品免费| 91在线播放网址| 九九久久精品视频| 美女脱光内衣内裤视频久久影院| 国产高清在线观看免费不卡| 国产精品资源网站| 一卡二卡欧美日韩| 中文字幕一区在线观看视频| 久久久久九九视频| 欧美福利电影网| 欧美在线视频不卡| 日韩欧美的一区| 91免费国产在线观看| 欧美一区二区三区四区五区| 亚洲福利一区二区三区| 国产原创一区二区三区| 国产福利一区二区三区在线视频| 色综合天天综合| 一区二区三区91| 9191国产精品| 天天影视涩香欲综合网| 欧美午夜视频网站| 亚洲综合激情小说| 91精品国产色综合久久ai换脸| 午夜视频在线观看一区二区 | 波多野结衣在线一区| 亚洲欧美另类久久久精品| 精品国产伦一区二区三区观看体验 | 国产欧美日韩在线| 欧美视频一二三区| a级高清视频欧美日韩| 国产一区二区精品久久99| 日韩高清不卡一区| 视频在线观看一区| 亚洲aaa精品| 亚洲图片一区二区| 夜夜夜精品看看| 亚洲一区日韩精品中文字幕| 亚洲精品高清在线| 中文字幕一区在线观看视频| 亚洲精品在线一区二区| 91精品欧美综合在线观看最新 | 欧美一区二区三区四区久久| 欧美一区二区三区视频免费| 中文一区在线播放| 日韩不卡在线观看日韩不卡视频| 不卡视频在线看|