LangChain 實戰派:大語言模型 + LangChain + 向量數據庫

龍中華

  • 出版商: 電子工業
  • 出版日期: 2024-11-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 276
  • ISBN: 7121490684
  • ISBN-13: 9787121490682
  • 相關分類: LangChain
  • 下單後立即進貨 (約4週~6週)

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

相關主題

商品描述

本書採用“知識點+實戰”的編寫方式,共包含28個基礎實戰和1個綜合性實戰,旨在深入解析大語言模型應用開發的核心知識。每個知識點的介紹均遵循清晰的邏輯脈絡:介紹概念、闡述應用原理、說明使用方法、探討選擇該方法的理由、提供優化建議,並且分享最佳實踐案例。本書適合對LangChain感興趣的讀者閱讀。

目錄大綱

▌入門篇

第1章 認識LLM 應用開發
▲1.1 LLM /2
1.1.1 LLM 的分類 /2
1.1.2 發展歷程 /3
1.1.3 應用領域 /4
1.1.4 面臨的挑戰 /4
▲1.2 LLM 應用開發 /5
1.2.1 LLM 應用開發前景 /6
1.2.2 LLM 應用開發的技術方向 /7
▲1.3 LangChain /8
1.3.1 認識LangChain /8
1.3.2 LangChain 的價值 /9
1.3.3 其他開發框架 /10
-
第2章 搭建環境並實現簡單的應用
▲2.1 搭建環境 /12
2.1.1 搭建開發環境 /12
2.1.2 搭建LLM 環境 /13
▲2.2 【實戰】實現問答應用——基於基礎模型 /14
▲2.3 【實戰】實現翻譯應用——基於聊天模型和指令模板 /15
-
▌基礎篇
-
第3章 LangChain 基礎
▲3.1 認識LangChain /19
3.1.1 LangChain 的架構 /19
3.1.2 LangChain 的庫 /19
3.1.3 LangChain 的模塊 /0
▲3.2 LangChain 的調試 /20
3.2.1 跟蹤工具LangSmith /21
3.2.2 【實戰】調試LLM 應用 /1
▲3.3 LangChain 的回退 /24
3.3.1 【實戰】處理LLM 調用API 的錯誤 /25
3.3.2 【實戰】處理序列的回退 /27
3.3.3 【實戰】處理長輸入 /9
3.3.4 回退到更好的模型 /30
▲3.4 LangChain 的回調 /31
3.4.1 認識回調處理程序 /31
3.4.2 認識異步回調 /32
3.4.3 認識標簽 /34
3.4.4 【實戰】自定義回調 /34
3.4.5 【實戰】使用回調記錄日誌 /35
3.4.6 【實戰】處理多個回調 /35
▲3.5 隱私保護 /37
-
第4章 管理LLM 的接口和解析輸出
▲4.1 認識LLM 的接口 /40
4.1.1 認識基礎模型的接口 /40
4.1.2 認識聊天模型的接口 /42
4.1.3 使用異步API /44
4.1.4 認識流式處理 /45
4.1.5 跟蹤令牌的使用情況 /46
4.1.6 認識緩存 /49
4.1.7 【實戰】緩存LLM 生成的內容 /49
4.1.8 序列化LLM 配置 /51
▲4.2 認識OpenAI 適配器 /53
▲4.3 認識ModelLaboratory /55
▲4.4 認識輸出解析器 /56
4.4.1 列表解析器 /57
4.4.2 日期時間解析器 /58
4.4.3 枚舉解析器 /58
4.4.4 JSON 解析器 /59
4.4.5 輸出修正解析器 /61
4.4.6 重試解析器 /61
4.4.7 XML 解析器 /63
▲4.5 【實戰】自定義輸出解析器 /66
4.5.1 在LCEL 中使用RunnableGenerator 類 /66
4.5.2 繼承解析器的基類來自定義輸出解析器 /67
-
第5章 指令——激活LLM 能力的鑰匙
▲5.1 認識指令 /72
5.1.1 指令的概念 /72
5.1.2 指令的構成要素 /73
▲5.2 編寫指令的18 個策略 /73
▲5.3 防禦惡意攻擊 /81
-
第6章 指令模板和示例選擇器
▲6.1 指令模板 /84
6.1.1 認識指令模板 /84
6.1.2 聊天消息指令模板的類型 /86
▲6.2 指令模板的應用 /88
6.2.1 格式化指令模板 /88
6.2.2 自定義指令模板 /90
6.2.3 驗證指令模板 /90
6.2.4 序列化指令模板 /91
6.2.5 分隔指令模板 /92
6.2.6 使用指令管道組合指令 /93
6.2.7 【實戰】組合指令 /95
▲6.3 示例選擇器 /97
▲6.4 少樣本指令模板 /97
6.4.1 認識少樣本指令模板 /97
6.4.2 在聊天模型中使用少樣本指令模板 /103
-
第7章 使用外部數據
▲7.1 文檔加載器. /108
7.1.1 認識文檔加載器 /108
7.1.2 【實戰】使用文檔加載器 /109
▲7.2 文本拆分器. /114
7.2.1 認識文本拆分器 /114
7.2.2 拆分文本和代碼 /116
▲7.3 檢索器 /118
▲7.4 索引 /121
-
第8章 集成向量數據庫,實現對向量的操作
▲8.1 向量數據庫 /12 3
8.1.1 認識向量數據庫 /12 3
8.1.2 向量數據庫的發展機遇 /12 5
8.1.3 常見的向量數據庫 /12 7
▲8.2 文本嵌入模型和緩存向量 /12 8
8.2.1 文本嵌入模型 /12 8
8.2.2 緩存向量 /130
8.2.3 【實戰】偽造嵌入模型 /131
▲8.3 開源的向量數據庫Chroma /132
8.3.1 支持的嵌入模型 /133
8.3.2 認識客戶端 /135
8.3.3 數據操作方法 /138
8.3.4 使用集合 /141
▲8.4 【實戰】使用LangChain 和Chroma 操作向量 /148
8.4.1 使用Chroma 存儲和查詢向量 /148
8.4.2 將向量保存到磁盤上 /149
8.4.3 使用Chroma 客戶端 /150
8.4.4 更新和刪除向量 /151
8.4.5 使用OpenAIEmbeddings 嵌入向量 /151
8.4.6 使用帶分數的相似性搜索 /152
8.4.7 使用MMR 優化搜索結果 /153
8.4.8 根據元數據篩選集合 /153
-
▌進階篇
-
第9章 使用內存保持應用狀態
▲9.1 認識內存和聊天消息歷史記錄. /156
9.1.1 認識內存 /156
9.1.2 認識聊天消息歷史記錄類 /157
▲9.2 內存的類型 /157
9.2.1 會話內存 /157
9.2.2 滑動窗口會話內存 /158
9.2.3 實體內存 /159
9.2.4 知識圖譜會話內存 /161
9.2.5 會話摘要內存 /163
9.2.6 會話摘要緩沖內存 /165
9.2.7 會話令牌緩沖內存 /166
9.2.8 向量儲存檢索內存 /167
▲9.3 【實戰】自定義會話內存. /169
▲9.4 【實戰】組合多個內存類. /172
-
第10章 使用鏈構造調用序列
▲10.1 【實戰】使用鏈接入LLM /175
▲10.2 鏈 /176
10.2.1 認識鏈 /176
10.2.2 基礎鏈 /180
10.2.3 文檔鏈 /181
10.2.4 chain_type 參數 /182
10.2.5 鏈的調用方法 /183
10.2.6 鏈的安全 /184
▲10.3 鏈的序列化和反序列化 /185
▲10.4 在鏈中使用內存. /188
10.4.1 瞭解在鏈中使用內存 /188
10.4.2 【實戰】為會話鏈添加內存 /189
10.4.3 【實戰】為LLMChain 添加內存 /190
-
第11章 使用和自定義工具
▲11.1 認識工具 /195
▲11.2 認識、使用和自定義內置工具. /197
11.2.1 認識內置工具 /197
11.2.2 使用內置工具 /198
11.2.3 自定義內置工具 /199
▲11.3 自定義工具 /200
11.3.1 使用@tool 裝飾器 /201
11.3.2 繼承BaseTool 類. /202
11.3.3 使用StructuredTool 類 /204
11.3.4 處理工具錯誤 /206
▲11.4 【實戰】實現人工驗證工具 /207
▲11.5 【實戰】實現多輸入工具 /209
-
第12章 使用代理串聯工具
▲12.1 代理 /212
▲12.2 代理類型和工具調用代理 /214
12.2.1 代理類型 /214
12.2.2 【實戰】實現工具調用代理 /215
▲12.3 自定義代理操作和配置 /216
12.3.1 處理解析錯誤 /216
12.3.2 處理代理運行超時 /217
12.3.3 處理流式處理的輸出 /217
12.3.4 訪問中間步驟 /219
12.3.5 返回結構化的內容 /219
12.3.6 限制最大迭代次數 /220
-
第13章 使用LCEL 將原型直接投入生產
▲13.1 LCEL /224
13.1.1 認識LCEL /224
13.1.2 LCEL 的優勢 /225
13.1.3 【實戰】使用LCEL 鏈接指令模板、模型和輸出解析器
13.1.4 Runnable 接口 /226
13.1.5 流式處理 /229
13.1.6 基於輸入的動態路由邏輯 /229
▲13.2 LCEL 鏈 /229
▲13.3 消息歷史和存儲聊天消息 /230
13.3.1 消息歷史 /230
13.3.2 【實戰】存儲聊天消息 /232
▲13.4 基本體 /235
13.4.1 鏈接可運行對象 /235
13.4.2 輸入與輸出格式化 /238
13.4.3 附加運行時參數 /240
13.4.4 運行自定義函數 /241
13.4.5 數據傳遞 /244
13.4.6 向鏈狀態添加值 /244
13.4.7 運行時配置鏈 /244
▲13.5 【實戰】檢查可運行對象 /244
-
第14章 使用LangChain 全家桶
▲14.1 LangSmith /247
▲14.2 LangServe /248
▲14.3 使用LangGraph 構建有狀態、多角色應用. /249
14.3.1 認識LangGraph /249
14.3.2 認識流式處理 /250
14.3.3 【實戰】創建可視化執行圖 /251
14.3.4 【實戰】創建節點和邊,設置圖的入口點和結束點 /252
-
▌項目實戰篇
-
第15章 【實戰】使用RAG 構建問答智能體
▲15.1 整體架構 /255
15.1.1 項目介紹 /255
15.1.2 核心組件 /255
▲15.2 實現索引和檢索 /256
15.2.1 實現索引 /256
15.2.2 實現檢索 /257
▲15.3 生成回答 /257
15.3.1 創建指令模板 /258
15.3.2 定義鏈 /258
▲15.4 實現溯源 /259
▲15.5 實現流式傳輸最終輸出 /260
▲15.6 實現結構化數據的檢索和生成. /260
15.6.1 連接數據庫 /260
15.6.2 將問題轉換為SQL 查詢語句 /261
15.6.3 執行SQL 查詢 /261
15.6.4 生成最終答案 /262