LangChain 實戰:從原型到生產,動手打造 LLM 應用

張海立,曹士圯,郭祖龍

  • 出版商: 電子工業
  • 出版日期: 2024-04-01
  • 售價: $534
  • 貴賓價: 9.5$507
  • 語言: 簡體中文
  • 頁數: 268
  • ISBN: 7121475456
  • ISBN-13: 9787121475450
  • 立即出貨

買這商品的人也買了...

商品描述

本書是專為初學者和對LangChain應用及大語言模型(LLM)應用感興趣的開發者而編寫的。本書以LangChain團隊於2024年1月發布的長期維護版本0.1為基礎,重點介紹了多個核心應用場景,並且深入探討了LCEL的應用方式。同時,本書圍繞LangChain生態系統的概念,詳細探討LangChain、LangServe和LangSmith,幫助讀者全面瞭解LangChain團隊在生成式人工智能領域的佈局。此外,本書還介紹了開源模型運行工具,為讀者引入本地免費的實驗環境,讓讀者能夠親自動手進行實際操作。 通過本書,讀者可以真正體驗到LangChain在從原型到生產的LLM應用開發和上線閉環體驗方面的優勢,全面瞭解LangChain的概念、原理和應用,並且獲得實際開發LangChain應用的經驗。本書示例豐富,內容通俗易懂,既可作入門教程,也可供相關技術人員參考。

目錄大綱

第1章 LangChain生態系統概覽 1
1.1 LangChain生態系統的佈局 2
1.1.1 LangChain軟件包的組織方式 4
1.1.2 LangChain核心功能模塊概覽 5
1.2 從Chat LangChain應用看生態實踐 10
1.2.1 讀取和加載私域數據 11
1.2.2 數據預處理及存儲 13
1.2.3 基於用戶問題的數據檢索 14
1.2.4 基於檢索內容的應答生成 14
1.2.5 提供附帶中間結果的流式輸出 16
1.2.6 推理鏈的服務化和應用化 17
1.2.7 追逐生產環境的調研鏈和指標 18
第2章 環境準備 21
2.1 在VS Code中開啟並使用Jupyter Notebook 23
2.2 通過python-dotenv隱式加載環境變量 24
2.3 使用Ollama加載大語言模型 25
第3章 角色扮演寫作實戰 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語法解析:基礎語法和接口 40
3.4.1 Runnable對象的標準接口 40
3.4.2 Runnable對象的輸入和輸出 41
3.4.3 Runnable對象的動態參數綁定 41
3.4.4 審查鏈路結構和提示詞 43
3.5 Runnable Sequence的基座:Model I/O三元組對象 44
第4章 多媒體資源的摘要實戰 46
4.1 場景代碼示例 47
4.2 場景代碼解析 50
4.3 Document的加載與處理 51
4.3.1 文檔加載器 51
4.3.2 文檔轉換器 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章 面向文檔的對話機器人實戰 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實現 78
5.5 Retriever模塊的實用算法概覽 80
5.5.1 檢索器融合 82
5.5.2 上下文壓縮 83
5.5.3 自組織查詢 85
5.5.4 時間戳權重 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實現文檔問答 120
5.7.2 通過Conversational Retrieval QA Chain實現會話文檔問答 121
5.7.3 通過Memory模塊為對話過程保駕護航 122
5.8 長上下文記憶系統的構建 124
5.8.1 會話記憶系統 125
5.8.2 語義記憶系統 125
5.8.3 生成式Agent系統 126
5.8.4 長上下文記憶系統的構建要點 126
5.9 LCEL語法解析:RunnablePassthrough 128
5.10 Runnable Sequence的數據連接:Retriever對象 130
第6章 自然語言交流的搜索引擎實戰 134
6.1 場景代碼示例 136
6.2 場景代碼解析 137
6.3 Agent簡介 138
6.3.1 Agent和Chain的區別 139
6.3.2 Agent的思考鏈 140
6.4 Agent的工具箱 145
6.5 面向OpenAI的Agent實現 148
6.6 Callback回調系統簡介 153
6.7 Callback和verbose的關系 158
6.8 LCEL語法解析:RunnableBranch和鏈路異常回退機制 159
6.8.1 RunnableBranch 159
6.8.2 鏈路異常回退機制 162
6.9 Runnable Sequence的擴展:外部工具的接入 164
6.10 LangGraph:以圖的方式構建Agent 165
第7章 快速構建交互式LangChain應用原型 170
7.1 Streamlit及免費雲服務“全家桶” 172
7.1.1 環境準備 172
7.1.2 極簡開發 172
7.1.3 實時交互 174
7.1.4 雲上部署 177
7.2 使用Chainlit快速構建交互式文檔對話機器人 179
7.2.1 環境準備 179
7.2.2 簡單示例 180
7.2.3 交互式文檔對話機器人 184
第8章 使用生態工具加速LangChain應用開發 195
8.1 LangSmith:全面監控LangChain應用 197
8.1.1 追蹤LangChain應用 199
8.1.2 數據集與評估 202
8.1.3 LangChain Hub 204
8.2 LangServe:將LangChain應用部署至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 優化升級 218
第9章 我們的“大世界” 219
9.1 大語言模型應用開發框架的“你我他” 220
9.1.1 三大框架的簡介 221
9.1.2 三大框架的特性 222
9.1.3 三大框架的對比 223
9.2 從LangChain Hub看提示詞的豐富應用場景 224
9.2.1 場景寫作 225
9.2.2 信息總結 228
9.2.3 信息提取 230
9.2.4 代碼分析和評審 232
9.2.5 提示優化 234
9.2.6 RAG 235
9.2.7 自然語言SQL查詢 236
9.2.8 評價打分 237
9.2.9 合成數據生成 238
9.2.10 思考鏈 240
9.3 淺談通用人工智能的認知架構的發展 242