在實習時,偶然接觸到LangChain,以一名大學生的角度觀看LangChain這整個框架和應用
主要參照如下並進行修改
官方文件
https://python.langchain.com/v0.2/docs/introduction/
首先進行一下LangChain的簡單介紹
LangChain是個開源的框架,可以整合多個LLM和不同的資料源
並進行Prompt的優化操作,比起直接進行API串接,有多個範本和應用,讓開發者更為方便的開發出應用程式。
簡單來說就是針對Agent的開發。
主要特色為
連接多達50種的LLM
連線至不同的資料來源
格式化使用者輸入
納入記憶體,調用最近對話給予LLM作為提示,或在執行過程中保持狀態或上下文。
連接多個擷取工具,可分析和使用者最相關的回應內容以傳回最相關的結果
Prompt Template,多次且一致的給予LLM提供系統指示
Agent使用LLM作為推理引擎,決定要採取哪個工作流,執行後,回饋到LLM以確定是否需要繼續執行,或者可以完成。
資料來源:
https://aws.amazon.com/tw/what-is/langchain/
基本上LangChain的架構分為
LLM、Prompt、Document、Agent、Chain
Chains 是 LangChain 的核心元件,用於定義一系列按順序執行的工作流程。每個Chain可以包含多個步驟,這些步驟可以是不同的Model或資料處理套件。
Agents 是用於處理更複雜任務的元件,可以根據不同的上下文選擇不同的 Chains 進行處理,能夠根據實際需求動態選擇和執行 Chains。
LLM除了回應使用者,還會作為Agent來推論要採用哪個Chain來進行操作。
Prompts 是 LangChain 中用來設置和管理語言模型輸入的組件。它們幫助你設計和生成輸入模板,以便於語言模型生成更準確的輸出。
Tools 是 LangChain 提供的工具,用於擴展語言模型的功能,通常會是Chain當中的一個任務。
Document通常會做為LLM的資料庫擴充,會以提示工程RAG方式來進行LLM的提示和能力擴充。
資料來源
https://blog.stackademic.com/what-is-langchain-and-how-to-use-it-c9a656b80cea
下一天我們會進行LangCagin的安裝並且實際連接多個LLM來示範。