LangChain實戰(zhàn):從原型到生產(chǎn),動手打造 LLM 應(yīng)用
定 價:89 元
- 作者:張海立
- 出版時間:2024/4/1
- ISBN:9787121475450
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:268
- 紙張:
- 版次:01
- 開本:16開
本書是專為初學(xué)者和對LangChain應(yīng)用及大語言模型(LLM)應(yīng)用感興趣的開發(fā)者而編寫的。本書以LangChain團(tuán)隊于2024年1月發(fā)布的長期維護(hù)版本0.1為基礎(chǔ),重點介紹了多個核心應(yīng)用場景,并且深入探討了LCEL的應(yīng)用方式。同時,本書圍繞LangChain生態(tài)系統(tǒng)的概念,詳細(xì)探討LangChain、LangServe和LangSmith,幫助讀者全面了解LangChain團(tuán)隊在生成式人工智能領(lǐng)域的布局。此外,本書還介紹了開源模型運行工具,為讀者引入本地免費的實驗環(huán)境,讓讀者能夠親自動手進(jìn)行實際操作。 通過本書,讀者可以真正體驗到LangChain在從原型到生產(chǎn)的LLM應(yīng)用開發(fā)和上線閉環(huán)體驗方面的優(yōu)勢,全面了解LangChain的概念、原理和應(yīng)用,并且獲得實際開發(fā)LangChain應(yīng)用的經(jīng)驗。本書示例豐富,內(nèi)容通俗易懂,既可作入門教程,也可供相關(guān)技術(shù)人員參考。
張海立(網(wǎng)絡(luò)昵稱:滄海九粟) 馭勢科技云平臺研發(fā)總監(jiān),中國信息通信研究院“汽車云工作組”首批專家,目前專注的領(lǐng)域是無人駕駛運維平臺的標(biāo)準(zhǔn)化和智能化研究。同時作為開源愛好者和布道師,長期關(guān)注和致力于云原生與前沿互聯(lián)網(wǎng)技術(shù)的推廣,現(xiàn)擔(dān)任KubeSphere用戶委員會上海站站長,也是CNCF OpenFunction項目管委會成員。曾就職于英特爾亞太研發(fā)有限公司,擔(dān)任高級研發(fā)經(jīng)理和架構(gòu)師。 曹士圯(網(wǎng)絡(luò)昵稱:萬千十一) 前全棧數(shù)據(jù)科學(xué)家,關(guān)注大數(shù)據(jù)分析、建模及架構(gòu)等;現(xiàn)為獨立AI工程師,聚焦于大語言模型智能體的發(fā)展及行業(yè)應(yīng)用,同時關(guān)注各類大語言模型的端側(cè)部署推理應(yīng)用。數(shù)據(jù)玩家、工具狂魔,開源愛好者,樂于寫作和分享。 郭祖龍 馭勢科技云平臺研發(fā)經(jīng)理。關(guān)注云原生可觀測性、IoT相關(guān)技術(shù)、流式計算等。i人丈夫,新晉奶爸,熱愛運動,喜歡旅行。
第1章 LangChain生態(tài)系統(tǒng)概覽 1
1.1 LangChain生態(tài)系統(tǒng)的布局 2
1.1.1 LangChain軟件包的組織方式 4
1.1.2 LangChain核心功能模塊概覽 5
1.2 從Chat LangChain應(yīng)用看生態(tài)實踐 10
1.2.1 讀取和加載私域數(shù)據(jù) 11
1.2.2 數(shù)據(jù)預(yù)處理及存儲 13
1.2.3 基于用戶問題的數(shù)據(jù)檢索 14
1.2.4 基于檢索內(nèi)容的應(yīng)答生成 14
1.2.5 提供附帶中間結(jié)果的流式輸出 16
1.2.6 推理鏈的服務(wù)化和應(yīng)用化 17
1.2.7 追逐生產(chǎn)環(huán)境的調(diào)研鏈和指標(biāo) 18
第2章 環(huán)境準(zhǔn)備 21
2.1 在VS Code中開啟并使用Jupyter Notebook 23
2.2 通過python-dotenv隱式加載環(huán)境變量 24
2.3 使用Ollama加載大語言模型 25
第3章 角色扮演寫作實戰(zhàn) 28
3.1 場景代碼示例 29
3.2 場景代碼解析 30
3.3 Model I/O三元組 31
3.3.1 Prompt模塊 31
3.3.2 Model模塊 35
3.3.3 Output Parser模塊 36
3.4 LCEL語法解析:基礎(chǔ)語法和接口 40
3.4.1 Runnable對象的標(biāo)準(zhǔn)接口 40
3.4.2 Runnable對象的輸入和輸出 41
3.4.3 Runnable對象的動態(tài)參數(shù)綁定 41
3.4.4 審查鏈路結(jié)構(gòu)和提示詞 43
3.5 Runnable Sequence的基座:Model I/O三元組對象 44
第4章 多媒體資源的摘要實戰(zhàn) 46
4.1 場景代碼示例 47
4.2 場景代碼解析 50
4.3 Document的加載與處理 51
4.3.1 文檔加載器 51
4.3.2 文檔轉(zhuǎn)換器 51
4.3.3 文本分割器 52
4.4 3種核心文檔處理策略 56
4.4.1 Stuff策略:直接合并 56
4.4.2 MapReduce策略:分而治之 58
4.4.3 Refine策略:循序迭代 61
4.5 LCEL語法解析:RunnableLambda和RunnableMap 65
4.5.1 RunnableLambda 65
4.5.2 RunnableMap 68
第5章 面向文檔的對話機器人實戰(zhàn) 70
5.1 場景代碼示例 71
5.2 場景代碼解析 74
5.3 RAG簡介 75
5.3.1 什么是RAG 75
5.3.2 RAG的工作原理 77
5.4 LangChain中的RAG實現(xiàn) 78
5.5 Retriever模塊的實用算法概覽 80
5.5.1 檢索器融合 82
5.5.2 上下文壓縮 83
5.5.3 自組織查詢 85
5.5.4 時間戳權(quán)重 97
5.5.5 父文檔回溯 99
5.5.6 多維度回溯 103
5.5.7 多角度查詢 110
5.6 Indexing API簡介 113
5.6.1 刪除模式 114
5.6.2 使用場景和方式 115
5.7 Chain模塊和Memory模塊 119
5.7.1 通過Retrieval QA Chain實現(xiàn)文檔問答 120
5.7.2 通過Conversational Retrieval QA Chain實現(xiàn)會話文檔問答 121
5.7.3 通過Memory模塊為對話過程保駕護(hù)航 122
5.8 長上下文記憶系統(tǒng)的構(gòu)建 124
5.8.1 會話記憶系統(tǒng) 125
5.8.2 語義記憶系統(tǒng) 125
5.8.3 生成式Agent系統(tǒng) 126
5.8.4 長上下文記憶系統(tǒng)的構(gòu)建要點 126
5.9 LCEL語法解析:RunnablePassthrough 128
5.10 Runnable Sequence的數(shù)據(jù)連接:Retriever對象 130
第6章 自然語言交流的搜索引擎實戰(zhàn) 134
6.1 場景代碼示例 136
6.2 場景代碼解析 137
6.3 Agent簡介 138
6.3.1 Agent和Chain的區(qū)別 139
6.3.2 Agent的思考鏈 140
6.4 Agent的工具箱 145
6.5 面向OpenAI的Agent實現(xiàn) 148
6.6 Callback回調(diào)系統(tǒng)簡介 153
6.7 Callback和verbose的關(guān)系 158
6.8 LCEL語法解析:RunnableBranch和鏈路異;赝藱C制 159
6.8.1 RunnableBranch 159
6.8.2 鏈路異常回退機制 162
6.9 Runnable Sequence的擴展:外部工具的接入 164
6.10 LangGraph:以圖的方式構(gòu)建Agent 165
第7章 快速構(gòu)建交互式LangChain應(yīng)用原型 170
7.1 Streamlit及免費云服務(wù)“全家桶” 172
7.1.1 環(huán)境準(zhǔn)備 172
7.1.2 極簡開發(fā) 172
7.1.3 實時交互 174
7.1.4 云上部署 177
7.2 使用Chainlit快速構(gòu)建交互式文檔對話機器人 179
7.2.1 環(huán)境準(zhǔn)備 179
7.2.2 簡單示例 180
7.2.3 交互式文檔對話機器人 184
第8章 使用生態(tài)工具加速LangChain應(yīng)用開發(fā) 195
8.1 LangSmith:全面監(jiān)控LangChain應(yīng)用 197
8.1.1 追蹤LangChain應(yīng)用 199
8.1.2 數(shù)據(jù)集與評估 202
8.1.3 LangChain Hub 204
8.2 LangServe:將LangChain應(yīng)用部署至Web API 207
8.2.1 快速開始 208
8.2.2 原理詳解 211
8.3 Templates & CLI:從模板和腳手架快速啟動 214
8.3.1 LangChain Templates 214
8.3.2 LangChain CLI命令行工具 215
8.3.3 優(yōu)化升級 218
第9章 我們的“大世界” 219
9.1 大語言模型應(yīng)用開發(fā)框架的“你我他” 220
9.1.1 三大框架的簡介 221
9.1.2 三大框架的特性 222
9.1.3 三大框架的對比 223
9.2 從LangChain Hub看提示詞的豐富應(yīng)用場景 224
9.2.1 場景寫作 225
9.2.2 信息總結(jié) 228
9.2.3 信息提取 230
9.2.4 代碼分析和評審 232
9.2.5 提示優(yōu)化 234
9.2.6 RAG 235
9.2.7 自然語言SQL查詢 236
9.2.8 評價打分 237
9.2.9 合成數(shù)據(jù)生成 238
9.2.10 思考鏈 240
9.3 淺談通用人工智能的認(rèn)知架構(gòu)的發(fā)展 242