大模型實戰 從零實現RAG與Agent系統
鄭天民
相關主題
商品描述
本書深入探討了RAG技術體系及其應用,內容涉及從基礎概念到高級應用的各個方面。首先,解構了大模型應用的基本模式與局限性,並引入RAG作為增強生成能力的一種方法,講解了RAG的核心概念、組成結構及應用場景,還涵蓋了RAG的基礎、高級、模塊化和智能體形式的技術體系。其次,以LlamaIndex為工具,展示瞭如何實現RAG,包括提示詞設計、文檔與索引創建、上下文檢索及查詢引擎構建等具體步驟。最後,介紹了基於RAG構建文檔聊天助手、多模態內容解析器、數據庫檢索器、知識圖譜系統、工作流引擎及多Agent系統的實踐案例,每個案例均包含技術細節與實現效果演示。
本書適合人工智能領域的開發者、研究人員,以及自然語言處理、知識圖譜、智能客服等專業人士閱讀。
作者簡介
鄭天民,日本足利工業大學信息工程學碩士,擁有十餘年軟件行業從業經驗,目前在一家大健康領域的創新型科技公司擔任CTO,負責產品研發與技術團隊管理工作。他開發過十餘個面向開發人員的技術和管理類培訓課程項目,在架構設計和技術管理方面有豐富的經驗。他是阿裡雲MVP、騰訊雲TVP、TGO鯤鵬會會員。他著有《Apache ShardingSphere實戰》《Spring響應式微服務:Spring Boot 2+Spring 5+Spring Cloud實戰》《系統架構設計》《微服務設計原理與架構》《Spring Security原理與實踐》等圖書。
目錄大綱
第 1章 解構RAG 1
1.1 LLM應用概述 1
1.1.1 LLM應用的基本模式 1
1.1.2 LLM應用的局限性 3
1.2 引入RAG 4
1.2.1 RAG核心概念 4
1.2.2 RAG的組成結構 6
1.2.3 RAG的應用場景 8
1.3 RAG的技術體系 9
1.3.1 基礎RAG 9
1.3.2 高級RAG 9
1.3.3 模塊化RAG 10
1.3.4 智能體RAG 10
本章小結 11
第 2章 使用LlamaIndex實現RAG 13
2.1 LlamaIndex概述 13
2.1.1 LlamaIndex的工作流程 14
2.1.2 LlamaIndex RAG技術組件 15
2.2 提示詞 18
2.2.1 提示詞結構 19
2.2.2 提示詞模板 20
2.2.3 定製化提示詞 22
2.3 文檔與索引 24
2.3.1 文檔加載和解析 24
2.3.2 索引創建和管理 30
2.4 上下文檢索 34
2.4.1 創建多樣化檢索器 34
2.4.2 構建高級檢索機制 37
2.5 響應結果處理 39
2.5.1 後處理器 40
2.5.2 響應整合器 42
2.6 構建查詢引擎 44
2.6.1 查詢引擎的基礎用法 44
2.6.2 查詢引擎的高級用法 45
本章小結 46
第3章 使用RAG構建文檔聊天助手 47
3.1 文檔RAG工作機制 47
3.1.1 初始化OpenAI模型 48
3.1.2 OpenAI模型的功能特性 50
3.1.3 OpenAI消息類型 50
3.2 實現文檔處理與聊天引擎 52
3.2.1 使用DirectoryReader讀取文檔 52
3.2.2 基於VectorStoreIndex構建索引 54
3.2.3 實現聊天引擎 56
3.3 基於Streamlit運行RAG應用 60
3.3.1 使用Streamlit構建可視化系統 60
3.3.2 整合Streamlit與文檔聊天助手 63
3.3.3 執行效果演示 64
本章小結 66
第4章 使用RAG實現多模態內容解析器 67
4.1 引入多模態RAG 67
4.2 LlamaIndex多模態技術 69
4.3 實現圖像解析與存儲 71
4.3.1 處理圖像文件 71
4.3.2 執行圖像解析 73
4.3.3 集成圖像持久化 77
4.3.4 執行效果演示 79
本章小結 84
第5章 使用RAG實現數據庫檢索器 85
5.1 使用非結構化數據訪問RAG 85
5.2 實現基礎版數據庫檢索器 87
5.2.1 創建SQLDatabase 87
5.2.2 創建NLSQLTableQueryEngine實例 90
5.3 LlamaIndex數據庫檢索技術 91
5.4 實現高階版數據庫檢索器 92
5.4.1 整合向量存儲和檢索 93
5.4.2 實現SQLAutoVector檢索 97
5.4.3 實現SQL Join檢索 104
本章小結 105
第6章 使用RAG搭建知識圖譜系統 107
6.1 知識圖譜與GraphRAG 107
6.1.1 知識圖譜技術 107
6.1.2 GraphRAG基本結構 109
6.2 LlamaIndex圖處理技術 110
6.2.1 使用屬性圖構建知識圖譜 110
6.2.2 圖數據庫集成 111
6.3 知識圖譜系統實現 112
6.3.1 使用GraphExtractor構建圖結構 112
6.3.2 構建PropertyGraphIndex 114
6.3.3 創建Retriever和QueryEngine 118
6.3.4 集成圖數據庫 120
6.4 實現RAG的可觀測性 122
6.4.1 鏈路追蹤基本原理 122
6.4.2 基於Phoenix追蹤RAG 123
本章小結 125
第7章 使用RAG集成工作流引擎 127
7.1 工作流RAG場景分析 128
7.2 LlamaIndex的工作流組件 128
7.2.1 LlamaIndex工作流核心概念 128
7.2.2 LlamaIndex工作流開發模式 130
7.2.3 LlamaIndex工作流功能特性 133
7.2.4 LlamaIndex查詢管道機制 136
7.3 基於工作流實現自定義ReActAgent 138
7.3.1 ReAct工作流設計 139
7.3.2 ReAct工作流實現步驟 141
7.3.3 執行效果演示 146
7.4 基於工作流實現CRAG 148
7.4.1 CRAG基本概念 148
7.4.2 CRAG實現步驟 149
7.4.3 執行效果演示 156
本章小結 158
第8章 使用RAG構建多Agent系統 159
8.1 多Agent系統場景分析與設計 159
8.2 LlamaIndex Agent技術詳解 161
8.2.1 理解Agent機制 161
8.2.2 LlamaIndex Agent組件 164
8.3 多Agent文檔處理系統實現 169
8.3.1 實現兩層文檔處理Agent 170
8.3.2 執行效果演示 173
8.4 多Agent智能客服助手實現 175
8.4.1 業務分析和系統設計 175
8.4.2 實現協調類Agent 177
8.4.3 實現任務類Agent 184
8.4.4 執行效果演示 189
本章小結 192