精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么我們勸你棄用LangChain? 原創(chuàng)

發(fā)布于 2024-6-27 13:45
瀏覽
0收藏

作者 | Fabian Both

編輯 | 伊風(fēng) 

為什么我們不再使用LangChain來(lái)構(gòu)建我們的AI代理AI agents? 

在Octomind,我們使用多個(gè)大型語(yǔ)言模型(LLM)的AI代理來(lái)自動(dòng)創(chuàng)建和修復(fù)Playwright中的端到端測(cè)試。直到幾個(gè)月前,我們還在使用LangChain框架。

在這篇文章中,我將分享我們使用LangChain時(shí)遇到的困難,并解釋為什么用模塊化的構(gòu)建塊替換其僵化的高級(jí)抽象后,我們的代碼庫(kù)變得更簡(jiǎn)潔,使我們的團(tuán)隊(duì)更快樂(lè)、更高效。

1.背景故事

我們?cè)谏a(chǎn)中使用LangChain超過(guò)12個(gè)月,從2023年初開始,然后在2024年將其移除。

2023年,LangChain似乎是我們的最佳選擇。它有一個(gè)令人印象深刻的組件和工具列表,并且其受歡迎程度迅速上升。它承諾“讓開發(fā)人員可以在一個(gè)下午內(nèi)從想法變?yōu)榭蛇\(yùn)行的代碼。”但隨著我們的需求變得更加復(fù)雜,問(wèn)題開始浮現(xiàn),LangChain變成了摩擦而不是生產(chǎn)力的來(lái)源。

隨著其不靈活性開始顯現(xiàn),我們很快發(fā)現(xiàn)自己在深入研究LangChain內(nèi)部,以改進(jìn)我們系統(tǒng)的底層行為。但由于LangChain故意抽象了許多細(xì)節(jié),因此通常不容易或不可能編寫我們所需的底層代碼。

2.早期框架的危險(xiǎn)

AI和LLM是快速變化的領(lǐng)域,每周都有新概念和想法涌現(xiàn)。因此,當(dāng)一個(gè)框架如LangChain圍繞多個(gè)新興技術(shù)創(chuàng)建時(shí),設(shè)計(jì)能經(jīng)受時(shí)間考驗(yàn)的抽象是非常困難的。

我相信,如果我在他們創(chuàng)建LangChain時(shí)嘗試構(gòu)建一個(gè)類似的框架,我也不會(huì)做得更好。事后看錯(cuò)誤是很容易的,這篇文章的目的是不公平地批評(píng)LangChain的核心開發(fā)人員或其貢獻(xiàn)者。每個(gè)人都在盡力而為。

設(shè)計(jì)良好的抽象很難,即使需求是明確的。但當(dāng)你在這樣一個(gè)變化多端的狀態(tài)下建模組件(如代理)時(shí),僅對(duì)低級(jí)構(gòu)建塊使用抽象是更安全的方式。

3.LangChain抽象帶來(lái)的問(wèn)題

在我們簡(jiǎn)單的需求與其使用假設(shè)一致時(shí),LangChain最初是好用的。但其高度的抽象很快使我們的代碼變得難以理解與維護(hù)。當(dāng)我們的團(tuán)隊(duì)開始花費(fèi)與構(gòu)建功能一樣多的時(shí)間來(lái)理解和調(diào)試LangChain時(shí),這不是一個(gè)好兆頭。

LangChain的抽象方法的問(wèn)題可以通過(guò)這個(gè)將英文單詞翻譯成意大利語(yǔ)的簡(jiǎn)單示例來(lái)展示。

這是一個(gè)僅使用OpenAI包的Python示例:

為什么我們勸你棄用LangChain?-AI.x社區(qū)圖片

這是簡(jiǎn)單且易于理解的代碼,包含一個(gè)類和一個(gè)函數(shù)調(diào)用。其余是標(biāo)準(zhǔn)的Python。

讓我們對(duì)比一下LangChain的版本:

為什么我們勸你棄用LangChain?-AI.x社區(qū)圖片

代碼大致相同,但相似之處僅此而已。

我們現(xiàn)在有三個(gè)類和四個(gè)函數(shù)調(diào)用。但最令人擔(dān)憂的是引入了三個(gè)新的抽象:

  • 提示模板:提供給LLM的提示
  • 輸出解析器:處理LLM的輸出
  • 鏈:LangChain的“LCEL語(yǔ)法”覆蓋Python的 `|` 運(yùn)算符

所有LangChain所做的就是增加了代碼的復(fù)雜性而沒(méi)有明顯的好處。

這段代碼可能適用于早期階段的原型。但對(duì)于生產(chǎn)使用,每個(gè)組件都必須合理理解,以確保在實(shí)際使用條件下不會(huì)意外爆炸。你必須遵守給定的數(shù)據(jù)結(jié)構(gòu),并圍繞這些抽象設(shè)計(jì)你的應(yīng)用程序。

讓我們?cè)倏纯匆粋€(gè)Python中的抽象對(duì)比,這次是從API獲取JSON。

使用內(nèi)置的http包:

為什么我們勸你棄用LangChain?-AI.x社區(qū)圖片

使用requests包:

為什么我們勸你棄用LangChain?-AI.x社區(qū)圖片

勝利者顯而易見(jiàn)。這就是一個(gè)好的抽象的感覺(jué)。

當(dāng)然,這些是簡(jiǎn)單的例子。但我的觀點(diǎn)是,好的抽象簡(jiǎn)化了你的代碼并減少了理解它所需的認(rèn)知負(fù)擔(dān)。

LangChain試圖通過(guò)隱藏細(xì)節(jié),用更少的代碼做更多的事情來(lái)讓你的生活更輕松。但當(dāng)這以犧牲簡(jiǎn)單性和靈活性為代價(jià)時(shí),抽象就失去了價(jià)值。

LangChain還習(xí)慣于在其他抽象之上使用抽象,因此你常常被迫以嵌套抽象的方式思考如何正確使用API。這不可避免地導(dǎo)致理解巨大的堆棧跟蹤并調(diào)試你沒(méi)有編寫的內(nèi)部框架代碼,而不是實(shí)現(xiàn)新功能。

4.LangChain對(duì)我們開發(fā)團(tuán)隊(duì)的影響

我們的應(yīng)用程序大量使用AI代理來(lái)執(zhí)行不同類型的任務(wù),例如測(cè)試用例發(fā)現(xiàn)、Playwright測(cè)試生成和自動(dòng)修復(fù)。

當(dāng)我們想從單一的順序代理架構(gòu)轉(zhuǎn)向更復(fù)雜的架構(gòu)時(shí),LangChain成了限制因素。例如,生成子代理并讓它們與原始代理交互,或者多個(gè)專家代理相互交互。

在另一個(gè)實(shí)例中,我們需要根據(jù)業(yè)務(wù)邏輯和LLM的輸出動(dòng)態(tài)更改我們的代理可以訪問(wèn)的工具的可用性。但LangChain并沒(méi)有提供一種方法來(lái)外部觀察代理的狀態(tài),導(dǎo)致我們不得不縮小實(shí)現(xiàn)的范圍以適應(yīng)LangChain代理的有限功能。

一旦我們移除它,我們就不再需要將我們的需求轉(zhuǎn)換為L(zhǎng)angChain適當(dāng)?shù)慕鉀Q方案。我們只需編碼即可。

因此,如果不是LangChain,你應(yīng)該使用什么框架?也許你根本不需要框架。

5.你需要一個(gè)框架來(lái)構(gòu)建AI應(yīng)用程序嗎?

LangChain在早期幫助了我們,因?yàn)樗峁┝薒LM功能,使我們能夠?qū)W⒂跇?gòu)建應(yīng)用程序。但事后看來(lái),從長(zhǎng)遠(yuǎn)來(lái)看,我們會(huì)更好地不用框架。

LangChain的長(zhǎng)組件列表給人的印象是,構(gòu)建一個(gè)LLM驅(qū)動(dòng)的應(yīng)用程序很復(fù)雜。但大多數(shù)應(yīng)用程序需要的核心組件通常是:

  • 一個(gè)用于LLM通信的客戶端
  • 用于函數(shù)調(diào)用的函數(shù)/工具
  • 一個(gè)用于RAG的向量數(shù)據(jù)庫(kù)
  • 一個(gè)用于跟蹤、評(píng)估等的可觀察性平臺(tái)

其余的是圍繞這些組件的幫助工具(例如,用于向量數(shù)據(jù)庫(kù)的分塊和嵌入),或者是常規(guī)的應(yīng)用程序任務(wù),例如通過(guò)數(shù)據(jù)持久性和緩存管理文件和應(yīng)用程序狀態(tài)。

如果你在沒(méi)有框架的情況下開始你的AI開發(fā)之旅,是的,組建你自己的工具箱會(huì)花費(fèi)更長(zhǎng)的時(shí)間,并且需要更多的前期學(xué)習(xí)和研究。但這是值得的時(shí)間投資,因?yàn)槟阏趯W(xué)習(xí)你將要操作的領(lǐng)域的基本知識(shí)。

在大多數(shù)情況下,你對(duì)LLM的使用將是簡(jiǎn)單而直接的。你主要會(huì)編寫順序代碼,迭代提示,并改進(jìn)輸出的質(zhì)量和可預(yù)測(cè)性。大多數(shù)任務(wù)可以通過(guò)簡(jiǎn)單的代碼和相對(duì)較少的外部包來(lái)完成。

即使使用代理,也不太可能做超出簡(jiǎn)單的代理到代理通信,在預(yù)定的順序流程中處理代理狀態(tài)和它們的響應(yīng)。你不需要框架來(lái)實(shí)現(xiàn)這一點(diǎn)。

雖然代理領(lǐng)域正在迅速發(fā)展,有許多令人興奮的可能性和有趣的用例,但我們建議在代理使用模式穩(wěn)定下來(lái)之前,保持簡(jiǎn)單。

6.使用構(gòu)建塊保持快速和精簡(jiǎn)

假設(shè)你沒(méi)有向生產(chǎn)發(fā)布垃圾代碼,那么團(tuán)隊(duì)創(chuàng)新和迭代的速度是成功的最重要指標(biāo)。AI領(lǐng)域的許多開發(fā)是由實(shí)驗(yàn)和原型驅(qū)動(dòng)的。

但框架通常是為基于已建立的使用模式強(qiáng)制結(jié)構(gòu)而設(shè)計(jì)的——LLM驅(qū)動(dòng)的應(yīng)用程序尚未有這些模式。將新想法轉(zhuǎn)換為框架特定的代碼,限制了你的迭代速度。

構(gòu)建塊方法更喜歡使用簡(jiǎn)單的低級(jí)代碼和精心選擇的外部包,保持你的架構(gòu)精簡(jiǎn),使開發(fā)人員可以將注意力集中在他們?cè)噲D解決的問(wèn)題上。

構(gòu)建塊是指你覺(jué)得已經(jīng)全面理解且不太可能改變的簡(jiǎn)單組件。例如,一個(gè)向量數(shù)據(jù)庫(kù)。它是一種已知類型的模塊化組件,具有一組基礎(chǔ)功能,因此可以很容易地被替換掉。你的代碼庫(kù)需要保持精簡(jiǎn)和適應(yīng)性,以最大化你的學(xué)習(xí)速度和每個(gè)迭代周期的價(jià)值。

. . .

我希望我能恰當(dāng)?shù)睾凸降孛枋鑫覀冊(cè)谑褂肔angChain時(shí)遇到的挑戰(zhàn),以及為什么完全放棄框架對(duì)我們團(tuán)隊(duì)是非常有益的。

我們目前使用模塊化構(gòu)建塊和最小化抽象的策略使我們現(xiàn)在能夠更快地開發(fā),并減少了摩擦。

本文轉(zhuǎn)載自??51CTO技術(shù)棧??,作者:伊風(fēng)

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
已于2024-6-27 16:22:45修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
社區(qū)精華內(nèi)容

目錄

    四虎成人在线| 亚洲麻豆精品| 视频一区中文字幕| 日韩亚洲欧美中文在线| 好吊操视频这里只有精品| 波多野结衣在线高清| 久久久五月婷婷| 成人午夜黄色影院| 欧美亚洲精品天堂| 图片小说视频色综合| 亚洲国产成人久久| 中日韩av在线播放| 国产资源在线观看入口av| 中文字幕成人av| 国产成人看片| 自拍偷拍福利视频| 亚洲人成高清| 久久久成人的性感天堂| 免费黄色在线视频| 91亚洲精品视频在线观看| 欧美色爱综合网| 精品视频在线观看一区| 久操视频在线免费播放| 久久嫩草精品久久久精品一| 亚洲a∨日韩av高清在线观看| 成人乱码一区二区三区av| 麻豆一区在线| 欧美日韩欧美一区二区| 人人妻人人添人人爽欧美一区| www.五月婷婷| 日韩影院免费视频| 992tv成人免费视频| 欧美成人一二三区| 欧美xxav| 国产一区二区三区中文| 波多野结衣有码| 中文字幕一区二区三区四区久久 | 粉嫩aⅴ一区二区三区| 欧美xxxxx视频| 在线亚洲男人天堂| 久久久亚洲av波多野结衣| 超碰成人免费| 日韩免费成人网| 日韩在线不卡一区| 久久精品超碰| 欧美三级视频在线| 久久久久久久久久久免费视频| av免费在线一区二区三区| 97超碰欧美中文字幕| 国产精品成人一区二区三区| 国产精品九九九九| 韩国av一区二区三区在线观看| 欧美—级高清免费播放| 黑人巨大精品一区二区在线| 午夜影院欧美| 久久亚洲精品成人| 国产a免费视频| 欧美日韩三级| 国产+人+亚洲| 欧美性猛交bbbbb精品| 一区二区日本视频| 青青精品视频播放| 日本视频www色| 日本成人在线不卡视频| 国产精品无av码在线观看| 最新国产中文字幕| 久久丁香综合五月国产三级网站| 久久久av亚洲男天堂| 精品人妻伦九区久久aaa片| 亚洲成人免费| 日韩在线视频网| 天海翼在线视频| 欧美国产高潮xxxx1819| 欧美日韩国产成人在线观看| 国产亚洲欧美精品久久久久久| 国产影视精品一区二区三区| 亚洲视频欧洲视频| 蜜桃视频最新网址| 国内视频精品| 奇米四色中文综合久久| 中文有码在线播放| 国产麻豆欧美日韩一区| 成人高清在线观看| 你懂的视频在线| 国产精品国产三级国产aⅴ入口| 国产伦精品一区二区三毛| 日本精品999| 国产日韩欧美不卡在线| 强伦女教师2:伦理在线观看| 免费在线观看av电影| 狠狠躁天天躁日日躁欧美| 亚洲一级片免费| 成人另类视频| 深夜福利一区二区| 日本三级欧美三级| 久久精品国产久精国产爱| 99久久精品免费看国产四区| 日本私人网站在线观看| 中文字幕一区二| 久在线观看视频| 91丨精品丨国产| 亚洲精品一区二区网址| 国产精品免费在线视频| 日韩午夜在线| 成人在线国产精品| 欧美777四色影视在线 | 国产伦精品一区二区三毛| 黄色av免费在线观看| 亚洲天堂av一区| 日本一本二本在线观看| 精品一区二区三区亚洲| 亚洲片av在线| 香蕉视频一区二区| 国产主播一区二区三区| 欧美日韩精品免费观看| 日本无删减在线| 欧美日韩不卡在线| 五月天综合视频| 野花国产精品入口| 国产成人成网站在线播放青青| 黄频在线免费观看| 日韩理论片网站| 99视频免费播放| 美女呻吟一区| 欧美成人在线免费视频| 中文字幕一区二区三区人妻四季| 日本vs亚洲vs韩国一区三区| 国产日韩欧美一区二区三区四区| 欧美一级在线免费观看 | 国产精品一区二区三区精品| av在线首页| 欧美午夜影院在线视频| 4438x全国最大成人| 久久日文中文字幕乱码| 国产精品第二页| 欧美日韩伦理片| 精品国产乱码久久久久酒店| 肉丝美足丝袜一区二区三区四| 国产ts一区| 蜜月aⅴ免费一区二区三区| 不卡av电影在线| 久久亚洲捆绑美女| 黄色片久久久久| 夜色77av精品影院| 日韩av男人的天堂| 欧美女子与性| 在线视频你懂得一区| av女人的天堂| 久久久久在线| 欧美自拍资源在线| 色猫猫成人app| 中文字幕欧美日韩| 真实的国产乱xxxx在线91| 国产夜色精品一区二区av| 日韩视频免费在线播放| 蜜臀久久99精品久久一区二区| 中文字幕亚洲欧美日韩在线不卡| 国产精品成人免费观看| 国产一区二区三区黄视频 | 91久久国产最好的精华液| 精品一区二区视频在线观看| aa级大片欧美三级| 欧美日韩电影一区二区| 99久久伊人| 美女撒尿一区二区三区| 色欲av永久无码精品无码蜜桃| 中文字幕中文字幕一区| 999久久久精品视频| 中文字幕日韩一区二区不卡| 69174成人网| 国产深夜视频在线观看| 亚洲精品wwwww| 国产情侣呻吟对白高潮| 最新中文字幕一区二区三区| 日韩av成人网| 性感少妇一区| 亚洲三区在线观看| 一区二区三区欧洲区| 97国产精品视频| 国产黄色片在线播放| 7777女厕盗摄久久久| 免费一级a毛片夜夜看 | 成人在线播放av| 在线观看wwwxxxx| 日韩不卡中文字幕| 国产裸体美女永久免费无遮挡| 97精品久久久久中文字幕| 无码播放一区二区三区| 日韩专区精品| 国产在线欧美日韩| 日本在线一区二区| 欧美一级片久久久久久久| 日本韩国在线视频爽| 亚洲第一免费网站| 中文字幕第三页| 亚洲一区在线电影| 国产在线免费av| 波多野结衣中文一区| 性欧美1819| 国产日韩欧美高清免费| 91免费视频黄| 欧美日韩国产免费观看视频| 国产福利不卡| 亚洲欧洲日韩精品在线| 2019av中文字幕| 香蕉久久aⅴ一区二区三区| 亚洲天堂色网站| 全国男人的天堂网| 欧美一区二区视频在线观看| 久久黄色精品视频| 一区二区三区欧美| 国产大屁股喷水视频在线观看| 极品尤物av久久免费看| 激情深爱综合网| 韩国自拍一区| 美国av在线播放| 精品盗摄女厕tp美女嘘嘘| 国产一级精品aaaaa看| 亚洲a成人v| 国产伦精品一区二区三区精品视频 | 日韩脚交footjobhdboots| 久久夜色精品国产| 美女毛片在线看| 亚洲精品av在线播放| www香蕉视频| 日韩一区二区三区精品视频| 亚洲熟妇无码久久精品| 色猫猫国产区一区二在线视频| 99久久99久久精品免费看小说.| 蜜桃久久久久久| 成人在线免费播放视频| 羞羞答答国产精品www一本| 日韩精品综合在线| 在线观看免费一区二区| 在线码字幕一区| 色一区二区三区四区| 先锋影音亚洲资源| 成人一区二区| 色噜噜色狠狠狠狠狠综合色一 | 久久超碰97中文字幕| 男人天堂网视频| 亚洲欧美日韩专区| 欧美 日本 亚洲| 中文在线不卡| 两根大肉大捧一进一出好爽视频| 手机在线电影一区| 亚洲精品人成| 国产精品国内免费一区二区三区| 国产久一道中文一区| 99亚洲乱人伦aⅴ精品| 亚洲综合中文字幕在线| 一级欧美视频| 成人欧美一区二区三区视频xxx | 国产精品视频一区二区三区经| 欧美aa免费在线| 欧美一级视频免费在线观看| 麻豆视频在线看| 96精品视频在线| 欧美羞羞视频| 91精品国产综合久久香蕉最新版| 午夜伦理福利在线| 欧美一级视频免费在线观看| 欧美xo影院| 国产精品一区二区三| 96视频在线观看欧美| 91色精品视频在线| 日韩三级精品| 久久99精品久久久久久青青日本 | 美女网站在线看| 欧美重口另类videos人妖| 在线看的毛片| 国产欧美日韩精品专区| 国产精区一区二区| 国产视色精品亚洲一区二区| 天天做夜夜做人人爱精品| 日韩欧美在线一区二区| 久久久久久久久99精品大| 国产二区视频在线| 日本伊人色综合网| 超碰在线免费av| 91色porny蝌蚪| 开心激情五月网| 精品国产福利视频| 中文天堂在线播放| 亚洲成人久久网| 超碰免费在线| 精品自在线视频| 电影亚洲精品噜噜在线观看| 成人在线播放av| 日韩精品社区| 天天爱天天做天天操| 一本色道精品久久一区二区三区| 日韩国产成人无码av毛片| 久久综合影视| 亚洲精品鲁一鲁一区二区三区| 激情六月婷婷综合| 免费黄色三级网站| 国产精品美女一区二区三区| 精品在线视频观看| 欧美日韩午夜在线视频| 偷拍精品一区二区三区| 久久国产一区二区三区| 在线观看欧美日韩电影| 91精品中文在线| 国产伦精品一区二区三区千人斩| 欧美黄色直播| 国产在线日韩| 五月天亚洲视频| 91在线观看污| 久久久久久久久毛片| 欧美综合欧美视频| 天天操天天干天天爽| 欧美不卡视频一区发布| 外国电影一区二区| 久精品国产欧美| 亚洲午夜极品| 午夜大片在线观看| 中文欧美字幕免费| 亚洲精品中文字幕乱码三区91| 91成人网在线| 香蕉视频网站在线| 欧美精品激情在线观看| 欧美激情不卡| 亚洲国产欧美日韩| 先锋影音国产一区| 欧美xxxxx精品| 亚洲精品国产一区二区三区四区在线| 久久亚洲国产成人精品性色| 欧美另类一区二区三区| avav免费在线观看| 国产成一区二区| 蜜桃成人av| 日韩在线xxx| 久久久99免费| 中文字幕一区二区人妻电影| 国产丝袜一区二区三区| free性m.freesex欧美| 国产91社区| 在线观看一区| 日韩免费高清一区二区| 欧美日韩国产黄| 五月天婷婷在线观看| 97avcom| 美女扒开腿让男人桶爽久久动漫| 亚洲视频欧美在线| 热久久国产精品| 国产精品综合激情| 777亚洲妇女| 成人免费在线| 波多野结衣一区二区三区在线观看| 怕怕欧美视频免费大全| 久久久久久久久久久久久国产精品| 国产在线日韩欧美| www.av成人| 精品久久久网站| 17videosex性欧美| 精品国产乱码久久久久久丨区2区| 日韩国产一区二区| 亚洲图片 自拍偷拍| 一区二区在线观看免费| 黄频网站在线观看| 欧美在线观看一区二区三区| 欧美禁忌电影网| 亚洲综合色在线观看| 亚洲日本一区二区| 免费a视频在线观看| 日韩美女福利视频| 视频在线不卡免费观看| 中文字幕无人区二| 午夜不卡av免费| av中文天堂在线| 成人动漫视频在线观看免费| 性色av一区二区怡红| 永久免费观看片现看| 日韩欧美电影一二三| 成人在线黄色电影| 少妇精品久久久久久久久久| 国模娜娜一区二区三区| 国产香蕉在线视频| 亚洲欧美国产高清va在线播| 成人精品动漫| 91午夜在线观看| 国产亚洲1区2区3区| av 一区二区三区| 欧美一区第一页| 小小影院久久| 免费看污黄网站在线观看| 欧美精品久久久久久久久老牛影院| 成人77777| 99国产超薄丝袜足j在线观看 | 久久久久国产精品厨房| 国产一区二区在线不卡| 91a在线视频| 99视频精品全部免费在线视频| 亚洲欧美国产日韩综合| 亚洲国产精品久久一线不卡| 国产黄在线观看| 国产女人水真多18毛片18精品| 91久久黄色| 欧美一级特黄高清视频|