LangChain核心技術與LLM項目實踐
凌峰
相關主題
商品描述
目錄大綱
目 錄
第 1 章 大語言模型與LangChain 1
1.1 大語言模型基本原理 1
1.1.1 語言模型的構建:從N-grams到深度學習 1
1.1.2 Transformer架構的崛起:自註意力機制解析 5
1.1.3 預訓練與微調:如何提升模型性能 9
1.2 LangChain基本原理與開發流程 10
1.2.1 LangChain的核心組件:理解任務鏈與內存模塊 10
1.2.2 LangChain開發流程概述 15
1.2.3 如何快速上手LangChain開發 17
1.3 本章小結 21
1.4 思考題 22
第 2 章 LangChain開發前的準備 23
2.1 創建OpenAI API密鑰 23
2.1.1 註冊與賬戶配置 23
2.1.2 生成和管理API密鑰 26
2.1.3 設置訪問權限與安全性 30
2.2 構建Anaconda+PyCharm開發工具鏈 31
2.2.1 安裝與配置Anaconda環境 32
2.2.2 PyCharm集成Anaconda環境 36
2.2.3 包管理與環境管理 39
2.3 初探LangChain依賴庫 44
2.3.1 LangChain核心依賴庫概覽 44
2.3.2 openai庫的安裝與配置 47
2.3.3 其他輔助工具與擴展包 49
2.4 本章小結 53
2.5 思考題 53
第 3 章 模型、模型類與緩存 54
3.1 關於模型 54
3.1.1 模型的定義與應用 55
3.1.2 語言模型的工作原理 60
3.2 Chat類、LLM類模型簡介 62
3.2.1 Chat類模型概述 63
3.2.2 LLM類模型概述 65
3.3 基於OpenAI API的初步開發 68
3.3.1 OpenAI API調用基礎 68
3.3.2 完成基本文本生成任務 71
3.4 自定義LangChain Model類 72
3.4.1 LangChain Model類的構建基礎 73
3.4.2 模型參數的自定義與調優 75
3.5 LangChain與緩存 78
3.5.1 緩存的作用與類型 78
3.5.2 內存緩存的使用 79
3.5.3 文件緩存與持久化管理 82
3.5.4 Redis緩存的集成與優化 84
3.6 本章小結 89
3.7 思考題 89
第 4 章 提示詞工程 91
4.1 提示詞的定義與提示詞模板 91
4.1.1 理解提示詞在模型中的核心角色 91
4.1.2 構建提示詞模板:實現靈活多樣的提示結構 94
4.2 動態提示詞生成技術 96
4.2.1 基於用戶輸入的提示詞自適應生成 97
4.2.2 動態提示詞生成 100
4.3 插槽填充與鏈式提示 103
4.3.1 插槽填充技術:快速實現變量插入的提示詞模板 104
4.3.2 鏈式提示詞:通過分步驟生成復雜內容 107
4.4 多輪對話提示詞 111
4.4.1 維護連續對話的提示詞設計 111
4.4.2 構建連貫自然的多輪交互 114
4.5 嵌套提示詞與少樣本提示詞 118
4.5.1 分層級處理復雜任務的多級提示詞 118
4.5.2 Few-shot提示詞:通過示例提升生成效果的準確性 121
4.6 本章小結 126
4.7 思考題 126
第 5 章 核心組件1:鏈 128
5.1 LLM鏈 128
5.1.1 LLM鏈的基本工作流程和參數設置 129
5.1.2 如何在LLM鏈中嵌入提示詞模板和預處理邏輯 131
5.2 序列鏈 134
5.2.1 序列鏈的構建與分層調用 135
5.2.2 在序列鏈中連接多個LLM和工具模塊 137
5.3 路由鏈 141
5.3.1 根據輸入內容動態選擇鏈路徑 141
5.3.2 設置不同的模型和任務路徑以適應復雜需求 145
5.4 文檔鏈 148
5.4.1 Stuff鏈與Refine鏈的應用場景和適用文檔類型 149
5.4.2 Map-Reduce鏈與Map-Rerank鏈的文檔處理策略 152
5.5 本章小結 156
5.6 思考題 156
第 6 章 核心組件2:內存模塊 158
6.1 聊天消息記憶 158
6.1.1 聊天消息存儲機制:保障對話連續性 158
6.1.2 動態消息記憶策略的設計與實現 161
6.2 會話緩沖區與會話緩沖窗口 165
6.2.1 會話緩沖區的配置與應用場景 165
6.2.2 會話緩沖窗口的實現 168
6.3 會話摘要與支持向量存儲 171
6.3.1 長會話摘要的生成與更新 172
6.3.2 使用向量存儲實現會話內容的高效檢索 174
6.4 使用Postgres與Redis存儲聊天消息記錄 177
6.4.1 基於Postgres的持久化消息存儲方案 178
6.4.2 Redis緩存技術在消息快速存取中的應用 182
6.5 本章小結 186
6.6 思考題 186
第 7 章 LangChain與表達式語言 188
7.1 LCEL初探與流式支持 188
7.1.1 LangChian表達式語言初探 188
7.1.2 LCEL流式處理實現 190
7.2 LCEL並行執行優化 193
7.2.1 多任務並行執行策略 193
7.2.2 LCEL並行執行 198
7.3 回退機制的設計與實現 201
7.4 LCEL與LangSmith集成 205
7.4.1 LangSmith入門 205
7.4.2 LangSmith的初步應用 209
7.5 本章小結 214
7.6 思考題 214
第 8 章 核心組件3:Agents 216
8.1 何為LangChain Agent 216
8.1.1 Agent的核心概念與工作原理 216
8.1.2 LangChain中Agent的應用場景分析 218
8.1.3 自定義LLM代理 219
8.2 ReAct Agent 222
8.2.1 ReAct Agent解析 222
8.2.2 ReAct Agent的典型應用 224
8.3 Zero-shot ReAct與結構化輸入ReAct 227
8.3.1 Zero-shot ReAct的原理與實現 227
8.3.2 結構化輸入ReAct的使用 229
8.4 ReAct文檔存儲庫 231
8.5 本章小結 232
8.6 思考題 233
第 9 章 核心組件4:回調機制 234
9.1 自定義回調處理程序 234
9.1.1 創建自定義回調處理程序 234
9.1.2 自定義鏈的回調函數 236
9.2 多個回調處理程序 238
9.3 跟蹤LangChains 242
9.3.1 鏈式任務的跟蹤和調試方法 242
9.3.2 任務流數據的實時監控與分析 243
9.3.3 將日誌記錄到文件 245
9.3.4 Token計數器 246
9.4 利用Argilla進行數據整理 248
9.4.1 初步使用Argilla 248
9.4.2 Argilla輔助數據整理 250
9.5 本章小結 251
9.6 思考題 251
第 10 章 模型I/O與檢索 253
10.1 模型I/O解釋器 253
10.1.1 輸入預處理與輸出格式化:確保模型I/O一致性 253
10.1.2 自定義輸出解析器的實現與應用 256
10.2 文本嵌入模型與向量存儲 262
10.2.1 文本嵌入模型 262
10.2.2 向量存儲 267
10.3 本章小結 271
10.4 思考題 272
第 11 章 LangChain深度開發 273
11.1 性能優化與並發處理 273
11.1.1 模型加速、蒸餾、FP16精度 273
11.1.2 並發處理多用戶請求 278
11.2 復雜查詢與多級任務鏈設計 281
11.3 本章小結 284
11.4 思考題 284
第 12 章 企業級智能問答系統 286
12.1 項目概述與分析 286
12.1.1 項目概述 286
12.1.2 項目任務分析 287
12.2 模塊化開發與測試 287
12.2.1 數據加載模塊 288
12.2.2 嵌入生成與存儲模塊 290
12.2.3 提示詞工程 293
12.2.4 任務鏈設計 296
12.2.5 Agent系統 299
12.2.6 回調機制與監控 304
12.2.7 單元測試與集成測試 307
12.3 系統集成、部署與優化 314
12.3.1 系統集成與部署 315
12.3.2 響應速度優化 321
12.4 本章小結 329
12.5 思考題 330