快速跳轉目錄
LangChain 是什麼?正在學習 AI 的你一定要知道!
(一)什麼是 LangChain?跟開發 AI 有什麼關聯?
LangChain 是一種幫助應用程式構築的框架,特別是「大型語言模型」 LLM。LLM 是一種人工智慧模型,通過大量的文本資料訓練,即可生成文字、翻譯以及回答問題。而 LangChain 整合了 LLMs(多種 LLM)、資料庫與應用介面,使我們能夠更直觀地操作。
根據 LangChain 中文官網 的資訊,其包含 Chains(鏈)以及一些功能元件,這些是可以直接使用的程式碼,讓我們能根據實際需求自由組合。
簡單來說,可以將 LangChain 形容成一個積木箱,裡面提供了許多現成的積木,讓我們可以依據情況取用並組裝,因此建構時就不需要從零開始寫所有的程式碼。
因為 AI 的發展變化迅速,若是每次改變方式都要從頭寫程式碼,會浪費太多時間在基礎的變動上。如果藉由 LangChain 整合、串聯 LLMs 與程式應用 ,就能簡化編寫 AI 的過程,讓使用者更專注在系統的設計,也能提高效率!
(二)LangChain 為什麼重要?4 大優勢一次解析!
上面我們介紹 LangChain 主要功能在於整合 LLMs 、資料庫和程式應用,使得我們可以更加簡單地使用 LLMs。除此之外, LangChain 還有哪些特點讓它如此重要呢?以下就來談談 LangChain 的 4 大優勢:
1. 高度靈活性
LangChain 支援 Python、JavaScript 這兩種主要程式語言。由於兩者的語法和編寫方式不同,所以在兩種語言之間切換時需要修改程式碼。不過 LangChain 的設計使其在各個語言版本中提供相似的介面和功能,讓你可以在不同的語言環境下,用相似的操作邏輯來完成,這為開發者在不同語言間切換時提供了一定的靈活性。
2. 簡化使用流程
LangChain 提供相當豐富的應用程式介面(API),裡面包含多種常使用到的元件,這讓使用者可以直接根據情況自由運用,不需要一一深入了解模型內容、從頭開始撰寫程式碼,簡化了使用流程。
3. 方便擴充
LangChain 可以配置和擴充外部的資源和工具,如資料數據庫。因此當使用者需要更詳細的資料時,便能方便使用。同時也能運用外部的工具和資源,進行更複雜的數據運算。
4. 整合組件生態系統
LangChain 支援多種 LLM 及各類第三方服務,能夠快速整合應用組件的生態系統。這讓使用者可以輕易切換不同工具,也可以運用外部的功能,使得應用過程獲得全面的支援。
LangChain 需要付費嗎?費用怎麼算?
只單純使用 LangChain 不需要付費,但如果你想進一步提升開發效率和準確性,可以考慮使 LangSmith 檢查、監控和評估你在 LangChain 上的應用,包含更深入的測試、評估和數據追蹤等。
這時你可以參考官網上提供的不同付費方案,以便你的運作過程。接下來我們將詳細介紹這些方案的類型,幫助你根據需求挑選適合的方案!
1. Startups
此方案提供使用者免費使用,但僅限最基礎的功能。此外,因為這個方案不限制人數,所以適合初期接觸 LangChain 的團隊。
2. Developer
這個方案提供 1 人免費使用,並且可以使用 LangSmith 的追蹤、監測等進階功能,因此適合一人開發者。除此之外,該方案中每月提供 5,000 個追蹤額度。如果你覺得免費的數量不夠,還可以用 0.50 美金加購 1,000 基本追蹤額度。
3. Plus
此方案的使用者人數上限為 10 人,一人每月 39 美金。相較於 Developer,Plus 特別提供了官方信箱,使用時遇到的相關問題都能寄信詢問。除此之外,此方案提供的追蹤額度增加到每月 1 萬個,同樣能以加價的方式增價額度。綜合以上特點,方案 Plus 相當適合小型開發團隊。
4. Enterprise
企業版包含最完整的功能,你會發現在官網中沒有標示明確的價格,因為這個方案會依照企業的所有需求,提供客製的數量。除了能使用更進階的 LangSmith 技術功能,企業版還擁有完善的服務功能,包含數據隱私管理以及 SLA(服務級別協定),因此相當適合具規模的企業或開發團隊。
根據上述提到的特點,我們幫你整理成以下表格:
Developer | Plus | Enterprise | |
---|---|---|---|
使用者人數 | 1人 | 最多10人 | 根據客製 |
追蹤功能 | 有 | 有 | 有 |
監測功能 | 有 | 有 | 有 |
信箱支援 | 無 | 有 | 有 |
Slack 頻道支援 | 無 | 無 | 有 |
數據隱私管理 | 無 | 無 | 有 |
LangChain 框架介紹|功能及元件完整解析
(一)LangChain 架構包含什麼?
- LangChain-core
LangChain-core 是 LangChain 的核心部分,包含可使用的基礎元件,和 LangChain 表達式語言(LangChain Expression Language),用於連結和組成 LangChain 的不同功能。
- LangChain-community
第三方集成庫,包含了各種組件,如記憶功能。當我們在使用 LangChain 時,可以依據情形使用這個第三方提供的組件功能。常見的組件為了方便使用者直接運用,會被另外區分出來(例如 OpenAI)。
- LangChain(物件儲存服務 OSS)
物件儲存服務(OSS) 是 LangChain 上的儲存區塊,用來存放和管理數據。其中包含所有的 LangChain。
- LangGraph
LangChain 的擴展,幫助 LangChain 在使用大型語言模型時,能更有效地抓取相關資料。可以想像成每個資料都有對應的節點,這樣就能快速依據資料性質找到跟問題相關的資訊。
- LangServe
LangServe 用於將流程機制或應用擴展成一個可使用的服務,這樣其他人可以通過應用程式請求來使用這些應用,讓操作過程變得更加簡單。例 如,有人將網路相關的機制建立成一個服務,這樣當我們需要在處理相關問題的時候,就能使用現成的網路服務,不需要自己另外從頭建設。
- LangSmith
LangSmith 是專門為開發者設計的平台,它提供了檢查、評估和追蹤 LangChain 等的工具。當我們想更進一步檢視並提升 LangChain 的效率時,便可以使用 LangSmith 進行更深入測試。
(二)LangChain 包含哪些功能元件?
上面我們介紹了 LangChain 的框架,接著來講述我們使用 LangChain 時會用到的主要功能 。首先 LangChain 基礎是 Models,我們需要先要執行的語言模型,再根據使用需求加入其他元件。以下介紹 7 個常用功能元件:
1. Models
LangChain 可以串聯不同的模型,其中包含 LLMs 語言模型和 ChatModel 聊天模型,讓使用者根據情況選擇想執行的模型。
- LLMs
這裡提到的 LLMs 是一種用來生成和摘要文字的語言模型。我們可以對語言模型下達指令,並仔細描述這個動作內容。LLMs 便會根據這段文字敘述,創造或改寫出新的內容。
- ChatModel
ChatModel 則是用來進行對話的聊天模型,它會接收一系列的對話訊息,然後輸出回應訊息。在 LangChain 裡,我們會依照情境使用 3 種角色(Role)讓語言模型辨識說話者,其中HumanMessage 代表「使用者」;AI 表示語言模型的回應; System 則指示語言模型需要執行的動作。
2. Prompt Templates
提示(Prompt) 是指使用者提供的一組指示或輸入,可以理解為我們對 LLMs 下達的指令動作,或是想要它如何執行的詳細描述。在 Langchain 含有 Prompt Template 可以使用,這是一個固定的框架或模板,讓使用者可以只藉由替換部分元件,就能在不同的語言模型上重複使用指令。
3. Output Parser
Output Parser 是 LangChain 中的輸出解析器,它能接收並處理 LLMs 生成的回應。LLMs 的回應通常會是一大段文字,但我們在其他應用場景,會需要使用具結構化的資料,例如表格、列表或特定的格式,可以讓電腦更有效地分析。這時就需使用解析器轉換資料,使其變成更有結構化的格式,以方便後續的處理。
Output Parser 提供了多種解析器,例如我們需要 JSON 物件(Object)時,便可以利用 JsonOutputParser 輸出。
4. Embedding Models
因為 LLMs 一次只能接受幾千個單字,但我們大多時候都需要語言模型分析並解讀相當大的文檔,所以這時會需要使用向量嵌入模型(Embedding Models)。它會將文本轉換成向量呈現,這些向量可以視為一組數字。
嵌入(Embedding)是指將一段文字轉換成數字的技術,這組數字能涵蓋文本的內容意義並代表文本。這使得 LLMs 可以透過數學運算,不需要分析大量的文字或圖片,就能找到意義相似的其他文本。
5. Vector Stores
Vector Stores 可當作一個向量資料庫,將 Embedding Models 產生的向量(數字)儲存在其中。當 LLMs 遇到問題時,LangChain 的 Vector Stores 會先將查詢內容轉換成向量,接著系統會搜尋大量的資料庫,分析最相似的其他向量,這個過程稱為檢索(Retrieval)。如此就能找到意義相近的內容,並將這項結果回傳給 LLMs,幫助其回答。
6. Agents
我們通常會想利用 LLMs 回答一些較為複雜的問題,並希望得到更精確的結 果。但 LLMs 自己只能輸出簡單訊息(如回應或是翻譯文本)。這時候我們就需要使用 LangChain 中的 Agent 代理元件。
Agent 代理元件可以將 LLMs 視為一種推理引擎,藉此讓 LLMs 使用其他功能去分析問題,讓它看起來像能夠「思考」。這樣 LLMs 能依據我們設定的資料,自動選擇使用適合的工具執行,並運用得出的結果回答我們輸入的問題。
7. Chat History
Chat History 主要是用來記錄和管理對話的過程。它可以包裝任何類型的鏈,因此能跟蹤這些鏈的輸入和輸出,並且將這些訊息傳送到數據庫內。如此一來,系統就可以調動以前的訊息,根據這些舊資訊作為背景資訊,以應對未來的對話。
舉例來說,當你跟機器人進行對話的時候,Chat History 會記錄這個完整對話,可以幫助機器人回憶之前的紀錄,提供更連貫、更精準的回應。
LangChain 應用實例教學,6 步驟讓你輕鬆上手!
現在我們已經對 LangChain 有了基本認識。接下來,我們將使用 LangChain 來實現一個簡單的翻譯功能,藉由實例教學,幫助你更深入了解 LangChain 的工作原理。
步驟 1:安裝 LangChian
首先,我們要在電腦上安裝 LangChain,可以使用 pip 安裝:
pip install langchain
步驟 3:設計提示模板
提示模板可以告訴模型我們要讓它執行的動作,這裡我們希望模型幫我們把句子翻譯成特定語言,因此設定模板如下:
rom langchain_core.prompts import ChatPromptTemplate
system_template = "Translate the following into {language}:"
prompt_template = ChatPromptTemplate.from_messages(
[("system", system_template), ("user", "{text}")]
)
其中,{language} 可以填入我們想翻譯成的語言,比如義大利語或法語;而 {text} 則是我們希望翻譯的句子內容。
步驟 4:設置輸出解析器
這一步驟是告訴 LangChain 如何處理模型的回應。因為我們只需要模型回傳簡單的句子,所以使用 StrOutputParser(),它可以確保最終的輸出為純文字,方便我們後續直接使用或顯示。輸入以下語法:
from langchain_core.output_parsers import StrOutputParser
parser = StrOutputParser()
步驟 5:組合成鏈(Chain)
我們把上面的提示模板、模型和輸出解析器串在一起,形成一個「鏈(Chain)」。這條鏈的作用是讓每一部分依序執行:先用模板告訴模型該做什麼,再由模型產生回應,最後由解析器處 理輸出。語法如下:
chain = prompt_template | model | parser
步驟 6:執行並取得結果
最後,我們可以啟動這條「鏈」,並給它一些要翻譯的內容,例如翻譯「hi」成義大利語:
chain.invoke({"language": "italian", "text": "hi"})
這時你便會得到翻譯好的結果。
以上就是 LangChain 的介紹,如果您想要了解更多 Solwen AI 資訊,或者想要免費諮詢 AI 導入評估,都可以透過下方藍色按鈕與 Solwen AI 團隊聯繫!
李彤
AI 工程師
擁有深厚的Fintech背景,曾任職於玉山金控與台灣經濟新報。專精於 NLP,在 RAG 技術應用與 AI Agent 開發方面有豐富經驗。曾獲工研院離職預測分析競賽冠軍,以及玉山 AI 手寫辨識競賽前段佳績。擅長運用 AI 技術優化業務流程,在風險管理與效能提升方面實作經驗豐富。
黃適文.
2024-11-29
Perplexity 是什麼?連黃仁勳都愛用的 AI 搜尋引擎!本文帶你了解 Perplexity 功能、Perplexity AI 教學,並有其他 4 大工具與 Perplexity 比較,以及Perplexity 方案介紹。
黃適文.
2024-11-19
Vertex AI 是什麼?Vertex AI 怎麼用?本文將介紹 Vertex AI 定義、Vertex AI 功能和 Vertex AI 平台使用 ,最後分享 Vertex AI 方案,最 完整 Vertex AI 教學操作攻略在這邊。
黃適文.
2024-11-03
Claude 怎麼用?Claude 需要付費嗎?本文介紹 3 大 Claude 種類、Claude 方案以及 ChatGPT、Gemini 和 Claude 比較!最完整 Claude 教學指南在這邊,一次搞懂 Claude 怎麼用。
黃適文.
2024-10-27
ChatBot 是什麼?ChatBot 優點有哪些?本文將介紹 2 大 ChatBot 類型以及實際 ChatBot 應用,最後分享 8 大 ChatBot 推薦平台!最完整 ChatBot 使用指南在這邊!一起打造企業專屬聊天機器人。
編輯精選
黃適文.
2024-11-29
NLP 是什麼?NLP 怎麼運作的?本文帶你了解 NLP 基本概念、NLP 運作原理,以及 LLM 與 NLP 比較,最後是 NLP 應用,讓你全方位了解 NLP 自然語言處理。
黃適文.
2024-11-20
數位轉型是什麼?數位轉型步驟該怎麼做?本文介紹數位轉型三階段、數位轉型5步驟,從0開始帶你了解數位轉型概念,內容還包含數位轉型成功案例、常見數位轉型問題以及如何利用AI數位轉型!
黃適文.
2024-11-03
Claude 怎麼用?Claude 需要付費嗎?本文介紹 3 大 Claude 種類、Claude 方案以及 ChatGPT、Gemini 和 Claude 比較!最完整 Claude 教學指南在這邊,一次搞懂 Claude 怎麼用。
黃適文.
2024-10-27
ChatBot 是什麼?ChatBot 優點有哪些?本文將介紹 2 大 ChatBot 類型以及實際 ChatBot 應用,最後分享 8 大 ChatBot 推薦平台!最完整 ChatBot 使用指南在這邊!一起打造企業專屬聊天機器人。
黃適文.
2024-10-14
LLM 是什麼?LLM 原理有哪些?本文詳細帶你認識 LLM 意思、LLM 模型訓練流程以及實際的 LLM 應用,透過基礎概念和實際案例,讓你快速入門大型語言模型。
黃適文.
2024-10-11
知識管理現已成為提升企業競爭力的關鍵!本文將帶你了解知識管理的定義、知識管理步驟的應用與知識管理案例,並介紹如何通過知識管理系統,結合 AI 知識管理,替企業帶來創新與效率提升。
最新文章
黃適文.
2024-11-29
NLP 是什麼?NLP 怎麼運作的?本文帶你了解 NLP 基本概念、NLP 運作原理,以及 LLM 與 NLP 比較,最後是 NLP 應用,讓你全方位了解 NLP 自然語言處理。
黃適文.
2024-11-29
Perplexity 是什麼?連黃仁勳都愛用的 AI 搜尋引擎!本文帶你了解 Perplexity 功能、Perplexity AI 教學,並有其他 4 大工具與 Perplexity 比較,以及Perplexity 方案介紹。
黃適文.
2024-11-28
RPA 意思是什麼?RPA 軟體怎麼選?本文介紹 RPA優缺點、RPA 原理運作和推薦 4 款 RPA 軟體,最後分享 RPA 應用案例以及 RPA 趨勢洞察!幫助你全面掌握 RPA 的知識。
李彤.
2024-11-21
LangChain是什麼?為什麼LangChain很重要?跟開發AI有什麼關聯?LangChain需要付費嗎?本文將介紹LangChain 框架,介紹並整理不同的付費方案,最後透過LangChain應用實例,帶你深入認識LangChain!
黃適文.
2024-11-20
數位轉型是什麼?數位轉型步驟該怎麼做?本文介紹數位轉型三階段、數位轉型5步驟,從0開始帶你了解數位轉型概念,內容還包含數位轉型成功案例、常見數位轉型問題以及如何利用AI數位轉型!
黃適文.
2024-11-19
Vertex AI 是什麼?Vertex AI 怎麼用?本文將介紹 Vertex AI 定義、Vertex AI 功能和 Vertex AI 平台使用 ,最後分享 Vertex AI 方案,最完整 Vertex AI 教學操作攻略在這邊。