文章

LangChain 怎麼玩?用 LangSmith 幫忙追查問題

LangChain 或其他語言模型框架的應用,先天上就相對不容易進行除錯,畢竟有太多步驟被包裝的相當好,一旦打開除錯模式(debug mode),就會有相當多的資訊輸出,即使是專家也很難馬上從眾多資訊中迅速定位問題。

如果能藉由較好的 UI 介面或工具,肯定可以減輕在除錯上的困難度。

LangChain 也知道這些痛點,因此將資訊的收集、彙整、呈現都整合到 LangSmith 之中,可以幫助我們更輕鬆地開發 LangChain 應用!

本文將帶各位簡略地認識與學習使用 LangSmith 。

Posted on  Mar 11, 2024  in  LangChain , Python 程式設計 - 高階  by  Amo Chen  ‐ 3 min read

LangChain 怎麼玩?用 Document Loaders / Text Splitter 處理多種類型的資料

有一些 LLM 應用有提供上傳檔案並為使用者產生摘要、查詢答案的功能,譬如 ChatGPT Plus 與 ChatGPT Enterprise 可以上傳 PDF, CSV 檔等,除了能產生摘要、擷取重點資料之外,還可以進行一些數據分析,相當強大。

要做到這些強大的功能之前,有個前置作業是我們需要知道怎麼載入不同類型的資料,以及怎麼處理這些資料,而這些處理程序在 LangChain 的框架下,也有相對應的函式庫可以使用,並不需要從零開始打造。

本文將教導如何使用 LangChain 處理多種類型的資料。

Posted on  Mar 7, 2024  in  LangChain , Python 程式設計 - 高階  by  Amo Chen  ‐ 6 min read

LangChain 怎麼玩?為了荷包著想,管好你的 prompt 長度(size)

每 1 個語言模型都有其限制,而所有語言模型都會有的限制就是 tokens 上限,而 tokens 上限會影響能夠接受的 prompt 長度。

如果你使用的不是開源語言模型,那不控制 prompt 長度所帶來的影響還有伴隨而來的費用。

以 OpenAI 所提供的語言模型 GPT-4 為例,每輸入 1 百萬個 tokens 就需要收費 $30 美元,如果你的應用沒有注意使用者所輸入 prompt 長度,那你很可能會為不必要的 tokens 付出代價。

所以學會如何控制 prompt 長度也是一門重要的課題!因為會幫助你避免踩到語言模型的限制之外,也可以幫助你控制費用支出。

Posted on  Mar 5, 2024  in  LangChain , Python 程式設計 - 高階  by  Amo Chen  ‐ 5 min read

LangChain 怎麼玩?用 LangServe 架個 API 伺服器吧!

打造語言模型相關應用,總不能要求使用者都要透過網路下載/更新語言模型,畢竟每個使用者的硬體條件不一,包含 CPU / GPU / 記憶體 / 硬碟容量都可能需要滿足一定條件,才能夠執行語言模型,而且語言模型作為競爭力核心,無法輕易開放他人下載使用,也是一種商業考量。

綜觀而言,將語言模型的功能透過 API 方式開放,是 1 個相當合理的選項,不僅使用者不需要滿足硬體條件,又可以保護開發者的商業競爭力。

LangChain 自然也有提供將語言模型轉回 API 服務的能力,該功能/套件稱為 LangServe 。

本文將教學如何使用 LangServe 將語言模型轉為 API 服務!

Posted on  Mar 1, 2024  in  LangChain , Python 程式設計 - 高階  by  Amo Chen  ‐ 9 min read

LangChain 怎麼玩? 動態修改運作中的 Chain 設定 / configure chain internals at runtime

不知道你有沒有想過 1 個 Chain 要如何做到動態載入不同使用者的資料?或者如何像 ChatGPT 那樣可以切換模型?

這個功能在 LangChain 中稱為 configurable_fieldsconfigurable_alternatives ,可以讓我們動態修改 chain 的設定,或者置換 chain 上的某個 Runnable (例如 prompt, language model 都是 Runnable) 。

能動態變更 chain 設定的功能相當重要,學會使用它也是必要的功課之一,否則我們所開發出來的應用會喪失不少彈性!

Posted on  Feb 29, 2024  in  LangChain , Python 程式設計 - 高階  by  Amo Chen  ‐ 6 min read

LangChain 怎麼玩? LCEL (LangChain Expression Language) 篇,一定要認識的 LangChain 核心

LangChain 怎麼玩?入門教學篇 雖然有提到 LCEL(LangChain Expression Language), 不過並沒有深入理解到底什麼是 LCEL 。

LCEL 是 LangChain 的核心,如果要能夠設計出更複雜的 LangChain 應用,甚至是將 LangChain 應用轉為 API 對外服務,那麼 LCEL 是一定要認識/理解的。

Posted on  Feb 27, 2024  in  LangChain , Python 程式設計 - 高階  by  Amo Chen  ‐ 5 min read

LangChain 怎麼玩? Agents 篇,來整合一些客製化的功能/工具吧

你有沒有特別想過如果我們開發的功能要怎麼跟語言模型進行結合?畢竟語言模型如果只能做聊天應用的話,那麼它的應用範圍就相當侷限。

這個問題的解答就是 LangChain 的 Agents 。

Agents 可以讓我們把自己開發的功能接上語言模型,讓語言模型執行我們所開發的功能!

本文同樣以 1 個簡單的範例開始,帶大家建立自己的 Agents 。

Posted on  Feb 24, 2024  in  LangChain , Python 程式設計 - 高階  by  Amo Chen  ‐ 7 min read