LangChain為開發(fā)人員提供了一套強大而靈活的工具,使其能夠輕松構建和優(yōu)化大模型應用。本書以簡潔而實用的方式引導讀者入門大模型應用開發(fā),涵蓋LangChain 的核心概念、原理和高級特性,通過實例細致解讀了LangChain 框架的核心模塊和源碼,并結合DeepSeek等,為讀者提供了在實際項目中應用LangChain 的逐步指導。這一版在第1 版的基礎上進行了全面更新,并新增了對LangGraph 庫的詳細講解等內(nèi)容。無論是初學者還是有經(jīng)驗的開發(fā)者,都能從中受益,能夠將LangChain 的獨特之處融入編程實踐。
緊貼前沿:內(nèi)容基于LangChain 0.3以及DeepSeek-V3-0324模型,涵蓋LangGraph庫
深入解析LangChain六大組件:模型輸入 輸出、檢索、鏈、記憶、代理與回調(diào),系統(tǒng)掌握核心能力
實戰(zhàn)大案例:從0到1構建多模態(tài)智能機器人,理論結合實踐,帶你輕松開啟大模型應用之旅
配套豐富:隨書附贈詳盡示例代碼,快速上手,輕松駕馭大模型技術
李多多 后端工程師,曾在阿里云和綠盟科技擔任研發(fā)工程師職務,我目前是一名獨立開發(fā)者,同時是LLM應用技術棧的布道師,專注于開源社區(qū)項目貢獻和介紹。我擅長使用Golang和Python編程語言,曾參與了autogpt(開源社區(qū)第一個基于大模型的agent項目)和agenta(開源的提示詞管理、評估、測試平臺)兩個開源項目的代碼貢獻。我還具備從零到一開發(fā)基于大模型的人工智能應用的經(jīng)驗,比如智能閱讀助手(https: readergpt.fullstackllm.com)。在早期,我撰寫了許多關于LangChain的中文文章(谷歌搜索的首頁,收錄了我所有的相關文章),并在線維護了一本名為《LLM應用開發(fā)實踐筆記》的開源書籍(https: aitutor.liduos.com 02-langchain 02-1.html,用戶3500,瀏覽量1萬)。https: github.com morsoli,公眾號LLM應用全棧開發(fā)作者。
目 錄
第 1章 LangChain簡介 1
1.1 LangChain的產(chǎn)生背景 1
1.1.1 大模型技術浪潮 1
1.1.2 大模型時代的開發(fā)范式 5
1.1.3 LangChain框架的爆火 6
1.2 LangChain核心概念和模塊 8
1.2.1 模型I O模塊 9
1.2.2 RAG模塊 9
1.2.3 存儲模塊 10
1.2.4 工具模塊 11
1.2.5 回調(diào)組件 11
1.2.6 LCEL語法 11
1.2.7 LangGraph庫 12
1.2.8 小結 14
1.3 LangChain與其他框架的比較 15
1.3.1 框架介紹 15
1.3.2 框架比較 17
1.3.3 小結 18
第 2章 LangChain初體驗 20
2.1 開發(fā)環(huán)境準備 20
2.1.1 管理工具安裝 20
2.1.2 源碼安裝 21
2.1.3 其他庫安裝 21
2.2 快速開始 22
2.2.1 模型組件 22
2.2.2 提示詞模板組件 24
2.2.3 輸出解析器組件 25
2.2.4 使用LCEL進行組合 26
2.2.5 使用LangSmith進行觀測 28
2.2.6 使用LangServe提供服務 29
2.3 最佳安全實踐 31
第3章 模型輸入與輸出 33
3.1 大模型原理解釋 33
3.1.1 為什么模型輸出不可控 33
3.1.2 輸入對輸出的影響 34
3.2 提示詞模板組件 37
3.2.1 基礎提示詞模板 37
3.2.2 自定義提示詞模板 39
3.2.3 使用FewShotPromptTemplate 40
3.2.4 示例選擇器 42
3.3 大模型接口 45
3.3.1 聊天模型 46
3.3.2 聊天模型提示詞的構建 46
3.3.3 定制大模型接口 49
3.3.4 擴展模型接口 54
3.4 輸出解析器 54
第4章 鏈的構建 59
4.1 鏈的基本概念 59
4.2 LCEL語法探究 59
4.3 Runnable對象接口 61
4.3.1 schema屬性 65
4.3.2 invoke方法 66
4.3.3 stream方法 68
4.3.4 batch方法 69
4.3.5 astream_log方法 70
4.3.6 astream_events方法 72
4.4 LCEL高級特性 74
4.4.1 ConfigurableField 74
4.4.2 RunnableLambda 75
4.4.3 RunnableBranch 75
4.4.4 RunnablePassthrough 76
4.4.5 RunnableParallel 76
4.4.6 容錯機制 77
第5章 RAG介紹 78
5.1 RAG技術概述 78
5.2 LangChain中的RAG組件 81
5.2.1 文檔加載組件 81
5.2.2 文檔分割組件 82
5.2.3 文檔嵌入 87
5.2.4 向量存儲 92
5.2.5 檢索器 96
5.2.6 多文檔聯(lián)合檢索 104
5.2.7 RAG技術的關鍵挑戰(zhàn) 108
5.3 RAG實踐 108
5.3.1 文檔預處理過程 108
5.3.2 文檔檢索過程 113
5.3.3 方案優(yōu)勢 118
第6章 智能代理設計 119
6.1 智能代理的概念 119
6.2 LangChain中的代理 120
6.2.1 LLM驅動的智能代理 120
6.2.2 代理組件 122
6.3 LangGraph庫 126
6.3.1 LangGraph核心概念 127
6.3.2 LangGraph代理能力 136
6.3.3 使用LangGraph構建代理
應用 143
第7章 記憶系統(tǒng) 152
7.1 記憶系統(tǒng)介紹 153
7.2 短期記憶管理 153
7.2.1 保留全部對話 153
7.2.2 記憶窗口機制 154
7.2.3 按條件篩選對話 156
7.2.4 創(chuàng)建對話摘要 157
7.3 長期記憶管理 161
7.3.1 基于向量的記憶存儲 161
7.3.2 基于知識圖譜構建結構化
記憶 168
7.4 自定義記憶組件 170
7.4.1 方案說明 170
7.4.2 代碼實踐 171
第8章 回調(diào)機制 177
8.1 回調(diào)處理器 177
8.2 使用回調(diào)的兩種方式 179
8.2.1 構造器回調(diào) 179
8.2.2 請求回調(diào) 179
8.3 實現(xiàn)可觀測性插件 180
第9章 構建多模態(tài)智能機器人 183
9.1 需求思考與設計 183
9.1.1 需求分析 183
9.1.2 應用設計 183
9.1.3 Slack應用配置 185
9.2 利用LangChain開發(fā)應用 189
9.2.1 構建Slack事件接口 189
9.2.2 消息處理框架 190
9.2.3 實現(xiàn)多模態(tài)代理 193
9.3 應用監(jiān)控和調(diào)優(yōu) 196
9.3.1 應用監(jiān)控 197
9.3.2 模型效果評估 197
9.3.3 模型備選服務 198
9.3.4 模型內(nèi)容安全 198
9.3.5 應用部署 198
第 10章 社區(qū)和資源 199
10.1 LangChain社區(qū)介紹 199
10.1.1 官方博客 199
10.1.2 項目代碼與文檔 199
10.1.3 社區(qū)貢獻 200
10.1.4 參與社區(qū)活動 201
10.2 資源和工具推薦 201
10.2.1 模板 202
10.2.2 LangServe 203
10.2.3 LangSmith 205
10.2.4 教程用例 208
10.3 LangChain的未來展望 208
10.3.1 生態(tài)系統(tǒng)概覽 209
10.3.2 變化與重構 210
10.3.3 發(fā)展計劃 210