內容簡介
《Llamalndex大模型RAG開發實踐》是一本深入探討基於 Llamalndex 和 RAG 技術構建 LLM 應用和智能體的實踐指南,旨在幫助讀者掌握生成式 AI的核心技能。本書介紹了工LM 與 RAG 的概念,闡述了如何通過 Uamalndex 增強ILM 的檢索推理與回答能力。此外,本書還涵蓋了工作流效率提升、RAG 項目的定制開發與部署、性能追蹤與評估技術、智能體構建和提示工程實踐等多方面內容。
作者簡介
安德烈 喬爾基烏(Andrei Gheorghiu)是一位經驗豐富的IT專業人士和ITAcademy的資深培訓師,擁有超過20年的培訓、諮詢和審計經驗。安德烈擁有包括ITIL Master、CISA、ISO2700 Lead Auditor和CISSP等多項認證,這些證書彰顯了安德烈在IT服務管理、信息安全、IT治理和審計等領域的深厚造詣。安德烈曾經為數千名學生提供了關於ERP和CRM系統的實施,以及安全評估和審計的培訓。
譯者簡介
楊森,Epsilla(YC S23)聯合創始人,AI Infra領域專家。南京航空航天大學本碩,曾在貝爾、英特爾、眾安保險、達達、得物等多家企業擔任核心技術崗位,主導過雙雲雙活、彈性調度等重大項目。現聚焦AI在企業私有數據場景的應用實踐,賦能企業釋放數據價值,推動智能化轉型與商業增長。
秦婧,Epsilla(YC S23)聯合創始人,前TigerGraph高級工程師,人工智能與圖數據基礎設施專家。畢業于南加州大學計算機碩士,具備多年大型圖數據庫系統開發經驗,參與多個企業級產品落地。現致力於打造面向私有數據的AI智能體平臺,為AI應用提供堅實的數據與知識基礎。
宋壬初,Epsilla(YC S23)聯合創始人兼CEO,圖數據庫與RAG技術專家。畢業于復旦大學與康奈爾大學,曾任Meta高級工程師、TigerGraph雲工程總監,具備豐富的圖技術與企業級AI平臺構建經驗。現專注於打造基於私有數據的AI智能體平臺,助力領域專家高效構建垂直AI應用。熱衷技術創新,擁有多項軌跡計算專利與頂會論文,致力於以技術推動商業與社會進步。
目錄
第一篇 生成式 AI 和 LlamaIndex 入門
第 1 章 大語言模型入門 2
1 1 生成式 AI 與大語言模型 3
1 1 1 什麼是生成式 AI 3
1 1 2 什麼是大語言模型 3
1 2 大語言模型在現代技術中的角色 5
1 3 大語言模型面臨的挑戰 7
1 4 使用 RAG 技術增強大語言模型 11
1 5 本章 小結 13
第 2 章 LlamaIndex 生態概覽 14
2 1 技術需求 14
2 2 優化語言模型—微調、RAG 和 LlamaIndex 的關係 15
2 2 1 RAG 是唯一的解決方案嗎 16
2 2 2 LlamaIndex:構建可注入數據的大語言模型應用 17
2 3 漸進式揭示複雜性的優勢 19
2 4 實踐項目—個性化智能輔導系統 PITS 簡介 21
2 5 配置開發環境 23
2 5 1 安裝 Python 23
2 5 2 安裝 Git 24
2 5 3 安裝 LlamaIndex 25
2 5 4 註冊 OpenAI 獲取 API 密鑰 25
2 5 5 Streamlit 快速構建和部署應用的理想工具 28
2 5 6 安裝 Streamlit 29
2 5 7 完成環境配置 29
2 5 8 最終檢查 30
2 6 熟悉 LlamaIndex 代碼倉庫的組織結構 31
2 7 本章 小結 33
第二篇 LlamaIndex 從入門到實踐
第 3 章 LlamaIndex 入門 36
3 1 技術需求 36
3 2 LlamaIndex 的核心構建塊—文檔、節 點和索引 37
3 2 1 文檔 37
3 2 2 節 點 41
3 2 3 手動創建節 點 42
3 2 4 從文檔中提取節 點 43
3 2 5 節 點間的關係 45
3 2 6 為什麼節 點間的關係很重要 46
3 2 7 索引 47
3 2 8 檢索和響應合成 49
3 2 9 查詢引擎的工作原理 50
3 2 10 快速回顧關鍵概念 51
3 3 構建第 1 個交互式增強型大語言模型應用 52
3 3 1 借助 LlamaIndex 日誌特性理解邏輯並調試應用 53
3 3 2 使用 LlamaIndex 定制大語言模型 54
3 3 3 三步完成大語言模型定制 55
3 3 4 Temperature 溫度係數 56
3 3 5 如何使用 Settings 用於定制 58
3 4 動手實踐—構建個性化智能輔導系統 PITS 59
3 5 本章 小結 64
第 4 章 RAG 工作流中的數據整合 65
4 1 技術需求 65
4 2 通過 LlamaHub 導入數據 66
4 3 LlamaHub 概述 67
4 4 使用 LlamaHub 數據讀取器導入內容 68
4 4 1 從網頁導入數據 69
4 4 2 從數據庫導入數據 70
4 4 3 從多種文件格式的數據源批量導入數據 72
4 5 將文檔解析為節 點 76
4 5 1 簡單的文本切分器 76
4 5 2 高級的節 點解析器 79
4 5 3 節 點關係解析器 82
4 5 4 節 點解析器和文本切分器的區別 83
4 5 5 理解 chunk_size 與 chunk_overlap 84
4 5 6 使用 include_prev_next_rel 包含關係 85
4 5 7 節 點生成的三種實踐方式 86
4 6 善用元數據優化上下文理解 88
4 6 1 摘要提取器 90
4 6 2 問答提取器 91
4 6 3 標題提取器 92
4 6 4 實體提取器 92
4 6 5 關鍵詞提取器 94
4 6 6 Pydantic 程序提取器 95
4 6 7 Marvin 元數據提取器 95
4 6 8 自定義提取器 96
4 6 9 元數據越多越好嗎 97
4 7 元數據提取的成本評估 98
4 7 1 遵循最佳實踐以最小化成本 98
4 7 2 在真正運行前評估最大成本 99
4 8 通過元數據提取器保護隱私 101
4 9 通過數據導入流水線提高效率 104
4 10 處理包含文本和表格數據的文檔 109
4 11 動手實踐—將學習資料導入 PITS 項目 110
4 12 本章 小結 112
第 5 章 LlamaIndex 索引詳解 113
5 1 技術需求 113
5 2 索引數據概覽 114
5 3 理解 VectorStoreIndex 116
5 3 1 VectorStoreIndex 使用示例 116
5 3 2 理解向量嵌入 118
5 3 3 理解相似度搜索 120
5 3 4 LlamaIndex 如何創建向量嵌入 124
5 3 5 如何選擇合適的嵌入模型 125
5 4 索引持久化和重用 127
5 4 1 理解存儲上下文 128
5 4 2 向量存儲和向量數據庫的區別 131
5 5 LlamaIndex 的其他索引類型 132
5 5 1 摘要索引 132
5 5 2 文檔摘要索引 134
5 5 3 關鍵詞表索引 136
5 5 4 樹索引 139
5 5 5 知識圖譜索引 143
5 6 使用 ComposableGraph 構建組合索引 146
5 6 1 ComposableGraph 的基本使用 147
5 6 2 ComposableGraph 的概念解釋 148
5 7 索引構建和查詢的成本評估 149
5 8 動手實踐—為 PITS 項目的學習資料構建索引 154
5 9 本章 小結 156
第三篇 索引數據的檢索和使用
第 6 章 數據查詢—上下文索引 158
6 1 技術需求 158
6 2 查詢機制概述 159
6 3 基本檢索器的原理 160
6 3 1 向量存儲索引檢索器 161
6 3 2 摘要索引檢索器 163
6 3 3 文檔摘要索引檢索器 166
6 3 4 樹索引檢索器 168
6 3 5 關鍵詞表索引檢索器 172
6 3 6 知識圖譜索引檢索器 174
6 3 7 檢索器的共同特點 178
6 3 8 檢索機制的高效使用—異步操作 178
6 4 構建更高級的檢索機制 179
6 4 1 樸素的檢索方法 180
6 4 2 實現元數據過濾器 180
6 4 3 使用選擇器實現更高級的決策邏輯 184
6 4 4 工具的重要性 186
6 4 5 轉換和重寫查詢 188
6 4 6 生成更具體的子查詢 190
6 5 密集檢索和稀疏檢索 193
6 5 1 密集檢索 193
6 5 2 稀疏檢索 194
6 5 3 在 LlamaIndex 中實現稀疏檢索 196
6 5 4 探索其他高級檢索方法 199
6 6 本章 小結 200
第 7 章 數據查詢—後處理和響應合成 201
7 1 技術需求 201
7 2 後處理器—對節 點進行重排、轉換和過濾 202
7 2 1 探索後處理器如何對節 點進行過濾、轉換和重排 203
7 2 2 相似度後處理器 205
7 2 3 關鍵詞節 點後處理器 207
7 2 4 前後節 點後處理器 209
7 2 5 長文本記錄後處理器 210
7 2 6 隱私信息屏蔽後處理器 211
7 2 7 元數據替換後處理器 212
7 2 8 句子嵌入優化後處理器 214
7 2 9 基於時間的後處理器 215
7 2 10 重排後處理器 217
7 2 11 關於節 點後處理器的小結 222
7 3 響應合成器 222
7 4 輸出解析技術 226
7 4 1 使用輸出解析器提取結構化輸出 227
7 4 2 使用 Pydantic 程序提取結構化輸出 231
7 5 查詢引擎的構建和使用 232
7 5 1 探索構建查詢引擎的各種方法 232
7 5 2 查詢引擎接口的高級用法 234
7 6 動手實踐—在 PITS 項目中構建測驗 241
7 7 本章 小結 244
第 8 章 構建聊天機器人和智能體 246
8 1 技術需求 246
8 2 理解聊天機器人和智能體 247
8 2 1 聊天引擎 ChatEngine 249
8 2 2 不同的聊天模式 251
8 3 在應用中實現自主智能體 261
8 3 1 智能體的工具和 ToolSpec 類 261
8 3 2 智能體的推理循環 264
8 3 3 OpenAI 智能體 266
8 3 4 ReAct 智能體 271
8 3 5 如何與智能體互動 273
8 3 6 借助實用工具提升智能體 273
8 3 7 使用 LLMCompiler 智能體處理更高級的場景 278
8 3 8 使用底層智能體協議 API 281
8 4 動手實踐—在 PITS 項目中實施對話追蹤 284
8 5 本章 小結 289
第四篇 定制化、提示工程與總結
第 9 章 LlamaIndex 項目定制與部署 292
9 1 技術需求 292
9 2 定制 RAG 組件 293
9 2 1 LLaMA 和 LLaMA 2 推動開源領域變革 294
9 2 2 使用 LM Studio 運行本地大語言模型 295
9 2 3 使用 Neutrino 或 OpenRouter 等服務智能路由大語言模型 302
9 2 4 自定義嵌入模型 304
9 2