Python 程式設計 - 高階

LangChain 怎麼玩?用 Streamlit 打造 LLM 個人工具箱

每個程式設計師多多少少都有打造私人工具箱,不僅可以增加工作效率,還可以跟著職業生涯累積起來帶著走。

AI 時代來臨,工具箱當然免不了要多一些 AI 相關的工具,本文將介紹怎麼用 LangChain 結合 Python 知名套件 Streamlit 打造屬於你的個人工具箱!

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

LangChain 怎麼玩?用 Hugging Face 結合 LangChain,做個英文對話機器人模擬面試吧

LangChain 作為 1 個框架,讓開發者可以很輕鬆地開發語言模型相關的應用,不過語言模型還是有其極限,有些功能仍須仰賴傳統的程式設計、機器學習等領域,譬如語音辨識、語音合成等等,所幸這些功能可以藉由 Hugging Face 等平台輕鬆實現。

本文將教導如何使用 Hugging Face 上的模型,並結合 LangChain 做出可以用英文對話的機器人,讓語言模型的應用跨出文字以外的領域!

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

LangChain 怎麼玩?如何做資料庫查詢機器人

作為軟體開發者,你開始發想任何語言模型可以應用的領域了嗎?

如果你沒有任何想法,也許可以先看看怎麼藉由語言模型,讓我們可以用對話方式,就能夠自動對資料庫執行 SQL 進行查詢,而且過程中完全不需要寫任何 SQL 喔!

也許看完本文,你會對語言模型的應用想像會有更清楚的畫面!

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

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