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