跳到主要內容
Open on GitHub

為什麼選擇 LangChain?

Python 套件 `langchain` 和 LangChain 公司目標是讓開發人員盡可能輕鬆地建置具備推理能力的應用程式。雖然 LangChain 最初只是一個開放原始碼套件,但它已發展成為一家公司和一個完整的生態系統。本頁將討論整個 LangChain 生態系統。LangChain 生態系統中的大多數組件都可以單獨使用 - 因此,如果您對某些組件特別感興趣,但對其他組件不感興趣,那也完全沒問題!為您自己的用例挑選您最喜歡的任何組件!

功能

LangChain 旨在解決以下幾個主要需求

  1. 標準化組件介面: 人工智慧應用程式中 模型相關組件 的數量不斷增加,導致開發人員需要學習和使用的各種不同 API。這種多樣性使得開發人員在建置應用程式時難以在供應商之間切換或組合組件。LangChain 為關鍵組件公開了標準介面,使供應商之間的切換變得容易。

  2. 協調: 隨著應用程式變得越來越複雜,組合多個組件和模型,越來越需要有效地將這些元素連接到控制流程中,以便可以 完成各種任務協調 對於建置此類應用程式至關重要。

  3. 可觀察性和評估: 隨著應用程式變得越來越複雜,了解應用程式內部發生的事情變得越來越困難。此外,開發速度可能會受到 選擇悖論 的速率限制。例如,開發人員經常想知道如何設計他們的提示,或者哪個 LLM 最好地平衡了準確性、延遲和成本。可觀察性 和評估可以幫助開發人員監控他們的應用程式,並快速自信地回答這些類型的問題。

標準化組件介面

LangChain 為許多人工智慧應用程式的核心組件提供了通用介面。例如,所有 聊天模型 都實作了 BaseChatModel 介面。這提供了一種與聊天模型互動的標準方式,支援重要但通常是供應商特定的功能,例如 工具呼叫結構化輸出

範例:聊天模型

許多 模型供應商 支援 工具呼叫,這是許多應用程式(例如,代理)的關鍵功能,它允許開發人員請求符合特定架構的模型回應。每個供應商的 API 各不相同。LangChain 的 聊天模型 介面提供了一種通用方式,將 工具 綁定到模型,以支援 工具呼叫

# Tool creation
tools = [my_tool]
# Tool binding
model_with_tools = model.bind_tools(tools)

同樣地,讓模型產生 結構化輸出 是一個極其常見的用例。供應商為此支援不同的方法,包括 JSON 模式或工具呼叫,以及不同的 API。LangChain 的 聊天模型 介面提供了一種使用 with_structured_output() 方法產生結構化輸出的通用方式

# Define schema
schema = ...
# Bind schema to model
model_with_structure = model.with_structured_output(schema)

範例:檢索器

RAG 和 LLM 應用程式組件的上下文中,LangChain 的 檢索器 介面提供了一種標準方式,可以連接到許多不同類型的資料服務或資料庫(例如,向量儲存 或資料庫)。檢索器的底層實作取決於您連接的資料儲存或資料庫類型,但所有檢索器都實作了 可執行介面,這意味著它們可以以通用方式調用。

documents = my_retriever.invoke("What is the meaning of life?")

協調

雖然個別組件的標準化很有用,但我們越來越多地看到開發人員希望將組件組合到更複雜的應用程式中。這促使需要 協調。LLM 應用程式有幾個常見特徵,此協調層應支援這些特徵

  • 複雜的控制流程: 應用程式需要複雜的模式,例如循環(例如,重複執行直到滿足條件的循環)。
  • 持久性 應用程式需要維護 短期和/或長期記憶
  • 人為迴路 應用程式需要人為互動,例如,暫停、審查、編輯、批准某些步驟。

對於複雜應用程式,建議的組件協調方式是 LangGraph。LangGraph 是一個程式庫,它透過將應用程式的流程表示為一組節點和邊緣,為開發人員提供高度的控制權。LangGraph 內建支援 持久性人為迴路記憶體 和其他功能。它特別適合建置 代理多代理 應用程式。重要的是,個別 LangChain 組件可以用作 LangGraph 節點,但您也可以在使用 LangChain 組件的情況下使用 LangGraph。

延伸閱讀

看看我們的免費課程 LangGraph 簡介,以了解更多關於如何使用 LangGraph 建置複雜應用程式的資訊。

可觀察性和評估

人工智慧應用程式開發的速度通常受到高品質評估的速率限制,因為存在選擇悖論。開發人員經常想知道如何設計他們的提示,或者哪個 LLM 最好地平衡了準確性、延遲和成本。高品質的追蹤和評估可以幫助您快速自信地回答這些類型的問題。LangSmith 是我們的平台,支援人工智慧應用程式的可觀察性和評估。請參閱我們關於 評估追蹤 的概念指南,以取得更多詳細資訊。

延伸閱讀

請觀看我們的影片播放清單,了解更多關於 LangSmith 追蹤和評估 的資訊。

結論

LangChain 為許多人工智慧應用程式的核心組件提供標準介面,這提供了一些特定的優點

  • 輕鬆更換供應商: 它允許您更換不同的組件供應商,而無需變更底層程式碼。
  • 進階功能: 它為更進階的功能提供通用方法,例如 串流工具呼叫

LangGraph 使協調複雜的應用程式(例如,代理)成為可能,並提供包括 持久性人為迴路記憶體 等功能。

LangSmith 透過提供 LLM 專用的可觀察性和用於測試和評估您的應用程式的框架,使您可以自信地迭代您的應用程式。


此頁面是否有幫助?