LangChain為開發(fā)人員提供了一套強(qiáng)大而靈活的工具,使其能夠輕松構(gòu)建和優(yōu)化大模型應(yīng)用。本書以簡潔而實(shí)用的方式引導(dǎo)讀者入門大模型應(yīng)用開發(fā),涵蓋LangChain 的核心概念、原理和高級特性,通過實(shí)例細(xì)致解讀了LangChain 框架的核心模塊和源碼,并結(jié)合DeepSeek等,為讀者提供了在實(shí)際項(xiàng)目中應(yīng)用LangChain 的逐步指導(dǎo)。這一版在第1 版的基礎(chǔ)上進(jìn)行了全面更新,并新增了對LangGraph 庫的詳細(xì)講解等內(nèi)容。無論是初學(xué)者還是有經(jīng)驗(yàn)的開發(fā)者,都能從中受益,能夠?qū)angChain 的獨(dú)特之處融入編程實(shí)踐。
緊貼前沿:內(nèi)容基于LangChain 0.3以及DeepSeek-V3-0324模型,涵蓋LangGraph庫
深入解析LangChain六大組件:模型輸入 輸出、檢索、鏈、記憶、代理與回調(diào),系統(tǒng)掌握核心能力
實(shí)戰(zhàn)大案例:從0到1構(gòu)建多模態(tài)智能機(jī)器人,理論結(jié)合實(shí)踐,帶你輕松開啟大模型應(yīng)用之旅
配套豐富:隨書附贈詳盡示例代碼,快速上手,輕松駕馭大模型技術(shù)
李多多 后端工程師,曾在阿里云和綠盟科技擔(dān)任研發(fā)工程師職務(wù),我目前是一名獨(dú)立開發(fā)者,同時是LLM應(yīng)用技術(shù)棧的布道師,專注于開源社區(qū)項(xiàng)目貢獻(xiàn)和介紹。我擅長使用Golang和Python編程語言,曾參與了autogpt(開源社區(qū)第一個基于大模型的agent項(xiàng)目)和agenta(開源的提示詞管理、評估、測試平臺)兩個開源項(xiàng)目的代碼貢獻(xiàn)。我還具備從零到一開發(fā)基于大模型的人工智能應(yīng)用的經(jīng)驗(yàn),比如智能閱讀助手(https: readergpt.fullstackllm.com)。在早期,我撰寫了許多關(guān)于LangChain的中文文章(谷歌搜索的首頁,收錄了我所有的相關(guān)文章),并在線維護(hù)了一本名為《LLM應(yīng)用開發(fā)實(shí)踐筆記》的開源書籍(https: aitutor.liduos.com 02-langchain 02-1.html,用戶3500,瀏覽量1萬)。https: github.com morsoli,公眾號LLM應(yīng)用全棧開發(fā)作者。
目 錄
第 1章 LangChain簡介 1
1.1 LangChain的產(chǎn)生背景 1
1.1.1 大模型技術(shù)浪潮 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 小結(jié) 14
1.3 LangChain與其他框架的比較 15
1.3.1 框架介紹 15
1.3.2 框架比較 17
1.3.3 小結(jié) 18
第 2章 LangChain初體驗(yàn) 20
2.1 開發(fā)環(huán)境準(zhǔ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進(jìn)行組合 26
2.2.5 使用LangSmith進(jìn)行觀測 28
2.2.6 使用LangServe提供服務(wù) 29
2.3 最佳安全實(shí)踐 31
第3章 模型輸入與輸出 33
3.1 大模型原理解釋 33
3.1.1 為什么模型輸出不可控 33
3.1.2 輸入對輸出的影響 34
3.2 提示詞模板組件 37
3.2.1 基礎(chǔ)提示詞模板 37
3.2.2 自定義提示詞模板 39
3.2.3 使用FewShotPromptTemplate 40
3.2.4 示例選擇器 42
3.3 大模型接口 45
3.3.1 聊天模型 46
3.3.2 聊天模型提示詞的構(gòu)建 46
3.3.3 定制大模型接口 49
3.3.4 擴(kuò)展模型接口 54
3.4 輸出解析器 54
第4章 鏈的構(gòu)建 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 容錯機(jī)制 77
第5章 RAG介紹 78
5.1 RAG技術(shù)概述 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技術(shù)的關(guān)鍵挑戰(zhàn) 108
5.3 RAG實(shí)踐 108
5.3.1 文檔預(yù)處理過程 108
5.3.2 文檔檢索過程 113
5.3.3 方案優(yōu)勢 118
第6章 智能代理設(shè)計 119
6.1 智能代理的概念 119
6.2 LangChain中的代理 120
6.2.1 LLM驅(qū)動的智能代理 120
6.2.2 代理組件 122
6.3 LangGraph庫 126
6.3.1 LangGraph核心概念 127
6.3.2 LangGraph代理能力 136
6.3.3 使用LangGraph構(gòu)建代理
應(yīng)用 143
第7章 記憶系統(tǒng) 152
7.1 記憶系統(tǒng)介紹 153
7.2 短期記憶管理 153
7.2.1 保留全部對話 153
7.2.2 記憶窗口機(jī)制 154
7.2.3 按條件篩選對話 156
7.2.4 創(chuàng)建對話摘要 157
7.3 長期記憶管理 161
7.3.1 基于向量的記憶存儲 161
7.3.2 基于知識圖譜構(gòu)建結(jié)構(gòu)化
記憶 168
7.4 自定義記憶組件 170
7.4.1 方案說明 170
7.4.2 代碼實(shí)踐 171
第8章 回調(diào)機(jī)制 177
8.1 回調(diào)處理器 177
8.2 使用回調(diào)的兩種方式 179
8.2.1 構(gòu)造器回調(diào) 179
8.2.2 請求回調(diào) 179
8.3 實(shí)現(xiàn)可觀測性插件 180
第9章 構(gòu)建多模態(tài)智能機(jī)器人 183
9.1 需求思考與設(shè)計 183
9.1.1 需求分析 183
9.1.2 應(yīng)用設(shè)計 183
9.1.3 Slack應(yīng)用配置 185
9.2 利用LangChain開發(fā)應(yīng)用 189
9.2.1 構(gòu)建Slack事件接口 189
9.2.2 消息處理框架 190
9.2.3 實(shí)現(xiàn)多模態(tài)代理 193
9.3 應(yīng)用監(jiān)控和調(diào)優(yōu) 196
9.3.1 應(yīng)用監(jiān)控 197
9.3.2 模型效果評估 197
9.3.3 模型備選服務(wù) 198
9.3.4 模型內(nèi)容安全 198
9.3.5 應(yīng)用部署 198
第 10章 社區(qū)和資源 199
10.1 LangChain社區(qū)介紹 199
10.1.1 官方博客 199
10.1.2 項(xiàng)目代碼與文檔 199
10.1.3 社區(qū)貢獻(xiàn) 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 變化與重構(gòu) 210
10.3.3 發(fā)展計劃 210