LangChain:2023 年最潮大語言模型 Web 開發框架
作者丨 Richard MacManus
譯者丨明知山
策劃丨 Tina
LangChain 是一個幫助在應用程序中使用大型語言模型(LLM)的編程框架。與生成式 AI 中的所有東西一樣,這個項目的發展也非常迅速。2022 年 10 月,它先是作爲一款 Python 工具,然後在今年 2 月增加了對 TypeScript 的支持。到今年 4 月,它支持多種 JavaScript 環境,包括 Node.js、瀏覽器、Cloudflare Workers、Vercel/Next.js、Deno 和 Supabase Edge Functions。
那麼,對於 JavaScript 開發者來說,他們需要了解有關 LangChain 的哪些方面以及如何使用 LLM?在本文中,我們將通過分析 LangChain 作者 Harrison Chase 最近的兩次演講來回答這個問題。
LangChain 最初是一個開源項目,在 GitHub 上獲得大量關注之後迅速轉變爲一家初創公司。2017 年,Harrison Chase 還在哈佛上大學,如今已是硅谷的一家熱門初創公司的 CEO,這對他來說是一次重大而迅速的躍遷。早些時候,微軟首席技術官 Kevin Scott 在他的 Build 主題演講中對 Chase 大加讚賞。
Chat App 的風靡
不出所料,LangChain 目前的主要應用是在 LLM(尤其是 ChatGPT)之上構建基於聊天的應用程序。正如 Tyler McGinnis 在 bytes.dev 上對 LangChain 調侃的那樣:“聊天接口再多都不爲過。”
在今年早些時候的一次採訪中,Chase 說目前 LangChain 最好的一個應用場景是 “基於文檔的聊天”。LangChain 也提供了其他功能來增強聊天體驗,比如流——也就是可以逐個返回 LLM 輸出的單詞,而不是一次返回所有內容。
不過 Chase 也指出,其他類型的接口也在迅速發展。
“從長遠來看,可能會有比聊天應用更好的體驗。但我認爲,就目前而言,這是我們不需要做很多額外工作就能夠迅速起步的一種方式。我們能說聊天應用在這半年內就一定是最好的體驗嗎?可能不能,但我認爲目前能夠帶來價值的東西很可能就是聊天應用。”
畢竟基於 LLM 開發應用程序是一項新技術,這個領域的初創公司(比如 LangChain)一直都在努力推出一些工具來幫助瞭解與 LLM 相關的問題。以提示詞工程爲例,它仍然主要依賴開發者的直覺來判斷哪個提示詞會更好。不過,LangChain 今年引入了 “追蹤” 等功能來幫助解決這個問題。
代理
LangChain 最近引入的一個特性是 “定製代理”,Chase 在今年 4 月於舊金山舉行的 LLM 訓練營上提到了這個。他將代理定義爲一種“使用語言模型作爲推理引擎” 來確定如何根據用戶輸入與外部世界發生交互的方式。
Harrison Chase 在 LLM 訓練營上
他舉了一個與 SQL 數據庫發生交互的例子。他說,通常我們會使用自然語言查詢和將其轉換爲 SQL 查詢的語言模型。我們執行查詢,並將結果傳給語言模型,要求它根據原始問題對其進行綜合,最終得到 Chase 所說的 “基於 SQL 數據庫的自然語言包裝器”。
代理的作用是處理 Chase 所說的 “邊緣情況”,也就是 LLM 在上述示例中任何時候都可能出現的模糊輸出。
他說:“你可以通過代理來選擇要使用的工具和針對工具的輸入。然後你執行它,得到結果,再把結果反饋到語言模型中。然後繼續這樣做,直到滿足停止條件。”
實現代理
我們把代理稱爲 “ReAct”,這與 JavaScript 框架 React 沒有任何關係,“ReAct” 是指“Reason + Act”。Chase 表示,與其他形式的提示詞工程相比,這種方法能產生“更高質量、更可靠的結果”。
ReAct(並非 React)
Chase 承認,代理也存在 “很多挑戰”,而且 “大多數代理目前還沒有做好生產就緒的準備。”
記憶問題
他列出的一些問題似乎都是基礎的計算機問題,但在 LLM 中,它們更具挑戰性。例如,LLM 通常沒有長期記憶。正如 Pinecone 教程中所指出的,“默認情況下,LLM 是無狀態的——這意味着每一個查詢的處理都是獨立於其他查詢進行的。”
LangChain 在這方面爲開發者提供了幫助,它將記憶等組件添加到 LLM 的處理過程中。實際上,對於 JavaScript 和 TypeScript,LangChain 提供了兩個與記憶相關的方法:loadMemoryVariables 和 saveContext。第一個方法 “用於從內存中檢索數據(也可使用當前輸入值),第二個方法用於在內存中保存數據”。
Chase 提到的另一種形式的代理是 Auto-GPT,一種可以配置和部署自主 AI 代理的程序。
他說:“Auto-GPT 爲代理和工具之間的交互提供了長期記憶,並使用檢索向量作爲存儲(向量數據庫)。”
新的 LAMP 技術棧?
顯然,構建基於 LLM 的應用程序還有很多事情要做。在 Build 主題演講中,微軟將 LangChain 作爲其 “Copilot 技術棧” 的“編排”層的一部分。在微軟的系統中,編排包括提示詞工程和所謂的“元提示詞(Meta Prompt)”。
微軟推出了自己的工具 Semantic Kernel,功能與 LangChain 類似。微軟還發布了一個叫作 Prompt Flow 的工具,微軟首席技術官 Kevin Scott 稱其爲 “另一種整合了 LangChain 和 Semantic Kernel 的編排機制”。
需要注意的是,LangChain 中的 “Chain” 表明它可以與其他工具互操作——不僅是各種 LLM,還有其他開發框架。今年 5 月,Cloudflare 宣佈其 Workers 框架支持 LangChain。
甚至還出現了一個關於 LangChain 的縮略詞:OPL,即 OpenAI、Pinecone 和 LangChain。它的靈感可能來自 LAMP(Linux、Apache、MySQL、PHP/Perl/Python),20 世紀 90 年代的一個關鍵技術棧,Web 2.0 的推動器。我們不知道 OPL 會不會成爲一個技術術語——當然,它的組件並不都是開源的——但無論如何,這是一個好跡象,表明 LangChain 已經成爲許多開發者個人技術棧的重要組成部分。
原文鏈接:
https://thenewstack.io/langchain-the-trendiest-web-framework-of-2023-thanks-to-ai/
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/ChbEm4uHdJoTPdUQsZpxlg