甚麼是LangChain
LangChain是根據大型語言模型(LLM) 打造應用程式的框架。LangChain使用基礎鏈來建立由 LLM(大型語言模型)支援的應用程式。這些基本鍊是模組化構建塊,用於在應用程式中執行特定任務。
LangChain 是用於開發由語言模型驅動的應用程式的框架。
- 具有上下文採集能力:將語言模型連接到上下文來源(提示指令,少量的範例,需要回應的內容等)
- 具有推理能力:依賴語言模型進行推理(根據提供的上下文如何回答,採取什麼行動等)
教學資源
- LangChain 中文文档 v0.1.7: https://python.langchain.com.cn/docs/
- LangChain中文網Concepts: https://docs.langchain.com.cn/docs/
- [LangChain for LLM Application Development] 課程筆記: https://hackmd.io/@YungHuiHsu/SJJvZ-ya2?utm_source=preview-mode&utm_medium=rec
鏈結構介紹
鏈( 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 工作原理的詳細說明:
- 輸入: TransformChain 接收 LLM 的輸出作為輸入。此輸出可以是文字、程式碼或任何其他資料格式。
- 轉換:然後 TransformChain 對輸入資料套用一系列轉換。這些轉換由使用者提供的函數或預先定義的 LangChain 轉換定義。
- 輸出: TransformChain 的最終輸出是將所有轉換應用於輸入資料的結果。此輸出可以用作另一個鏈的輸入或作為應用程式的最終輸出。
以下是如何使用 TransformChain 的一些範例:
- 文字清理: TransformChain 可用於透過刪除標點符號、將文字轉換為小寫以及刪除停用詞來清理文字。
- 特徵提取: TransformChain 可用於從文本中提取特徵,例如詞頻或情緒分數。
- 數據標準化: TransformChain 可用於標準化數據,例如縮放數值數據或將分類數據轉換為數值表示。