Posted on

LangChain的基礎鏈介紹

甚麼是LangChain

LangChain是根據大型語言模型(LLM) 打造應用程式的框架。LangChain使用基礎鏈來建立由 LLM(大型語言模型)支援的應用程式。這些基本鍊是模組化構建塊,用於在應用程式中執行特定任務。

LangChain 是用於開發由語言模型驅動的應用程式的框架。

  • 具有上下文採集能力:將語言模型連接到上下文來源(提示指令,少量的範例,需要回應的內容等)
  • 具有推理能力:依賴語言模型進行推理(根據提供的上下文如何回答,採取什麼行動等)

教學資源

鏈結構介紹

鏈( Chains )是一個非常通用的概念,它指的是將一系列模組化組件(或其他鏈)以特定方式組合起來,以實現共同的用例。

LLMChain(單鏈)

類別說明: https://api.python.langchain.com/en/latest/chains/langchain.chains.llm.LLMChain.html

最常用的鏈類型,它結合了PromptTemplate(input)、Model(LLM)和Guardrails(output)來接收用戶輸入,進行相應的格式化,將其傳遞給模型並獲取回應,然後驗證和修正(如果需要)模型的輸出。

SequentialChain(循序鏈)

類別說明: https://api.python.langchain.com/en/latest/chains/langchain.chains.sequential.SequentialChain.html


同一次的詢問,至少兩次的與LLM交互,把複雜的問題拆解成小的問題,然後再輸出回應

這邊是一篇說明文章:https://blog.csdn.net/wangjiansui/article/details/137509565

總之就是讓輸入到輸出之間串聯多個LLM系統並依序執行

以下是如何使用 SequentialChain 的一些範例:

  • 機器翻譯: SequentialChain 可用於透過使用專門針對不同語言對的 LLM 呼叫鏈將文字從一種語言翻譯為另一種語言。
  • 文字摘要: SequentialChain 可用於透過使用一系列 LLM 呼叫來摘要文本,這些呼叫從文本中提取關鍵訊息,然後產生摘要。
  • Q&A: SequentialChain 可用於透過使用一系列 LLM 調用來回答問題,這些調用從文本文檔中提取信息,然後生成問題的答案。

TransformChain(轉換鏈)

類別說明: https://api.python.langchain.com/en/latest/chains/langchain.chains.transform.TransformChain.html

這些轉換可以是簡單的文字操作(例如,文字清理)或更複雜的模型。

以下是 TransformChain 工作原理的詳細說明:

  1. 輸入: TransformChain 接收 LLM 的輸出作為輸入。此輸出可以是文字、程式碼或任何其他資料格式。
  2. 轉換:然後 TransformChain 對輸入資料套用一系列轉換。這些轉換由使用者提供的函數或預先定義的 LangChain 轉換定義。
  3. 輸出: TransformChain 的最終輸出是將所有轉換應用於輸入資料的結果。此輸出可以用作另一個鏈的輸入或作為應用程式的最終輸出。

以下是如何使用 TransformChain 的一些範例:

  • 文字清理: TransformChain 可用於透過刪除標點符號、將文字轉換為小寫以及刪除停用詞來清理文字。
  • 特徵提取: TransformChain 可用於從文本中提取特徵,例如詞頻或情緒分數。
  • 數據標準化: TransformChain 可用於標準化數據,例如縮放數值數據或將分類數據轉換為數值表示。