





RAG錦囊妙計: 使用Python
從資料預處理到LLM Agents的實用訣竅
RAG with Python Cookbook
9
800720
查詢門市庫存
在各大企業爭相挖掘大型語言模型(LLM)的潛力之際,有一個關鍵難題也開始浮現:如何將這些工具接到即時的外部資料,進而解決實際的問題?
內容簡介
在各大企業爭相挖掘大型語言模型(LLM)的潛力之際,有一個關鍵難題也開始浮現:如何將這些工具接到即時的外部資料,進而解決實際的問題?
檢索增強生成(RAG)就是這個難題的解方。RAG 結合 LLM 與資訊檢索技術,可讓你打造各式應用,包括聰明的聊天機器人,乃至於自動執行任務的智慧 agent。
本書收錄超過 70 個實戰訣竅,帶你透過結構化的實際練習,一一克服生成式 AI 的應用場景。作者 Dominik Polzer 將提供所有工具,協助你為特定的業務需求設計、部署、優化 RAG 系統。無論是處理基本的資料檢索,還是開發尖端的自主代理,這本書都能讓你站在技術最前線。
• 掌握 RAG 的核心元件,包括 embedding、檢索、生成…等關鍵技術。
• 運用進階工作流程,包括語意感知分段(semantic-aware chunking)與多查詢句提示(Multiquery prompting)。
• 為特定資料需求打造自己的解決方案,例如聊天機器人與自主 agent。
• 持續評估與優化系統,以提升準確性、相關性與效能。
產品目錄
第一章 RAG 入門
1.1 為你的組織找出高價值的 RAG 應用場景
1.2 選擇你的 IDE 與設定 Coding Agent
1.3 在 VS Code 中使用 Jupyter Notebook
1.4 使用 .env 來儲存密鑰與 API 密鑰
1.5 建構你的第一個 RAG 應用程式
1.6 為你的 RAG 應用程式選擇框架與程式庫
1.7 執行本書版本庫中的範例程式
第二章 基礎模型
2.1 定義合適的提示詞模板
2.2 為你的任務選擇合適的語言模型
2.3 使用 OpenAI API 來生成內容
2.4 使用 Google 的 Gemini 模型來生成內容
2.5 使用 Anthropic API 來生成內容
2.6 在本機使用 Ollama 來執行開源模型
2.7 使用 OpenAI SDK 與 Pydantic 來建立結構化的輸出
第三章 載入資料
3.1 在 Python 中載入 Word 檔案
3.2 載入 PDF 檔案
3.3 從 Excel 和 CSV 檔案載入及處理表格資料
3.4 從 PostgreSQL 資料庫載入結構化資料
3.5 使用語音轉文字模型來載入音訊檔案
3.6 使用 Tesseract OCR 從圖像與 PDF 擷取文字
3.7 使用多模態模型從圖像擷取文字
3.8 透過多模態模型來為圖像產生文字敘述
3.9 使用多模態模型來為內嵌的表格產生文字摘要
3.10 解析含有多模態內容的 PDF
3.11 使用語音轉文字與多模態模型來載入影片
第四章 資料準備
4.1 新增中繼資料以支援中繼資料篩選
4.2 換掉縮寫與技術術語,以提升資料品質
4.3 為文字段落建立假設性問題,以提升搜尋準確度
4.4 使用字元切分法來分割文件
4.5 使用遞迴文字切分器來分割文件
4.6 使用文件感知切分法來為文件分段
4.7 使用語義感知分段器來切分文字
4.8 使用 Agentic 分段器來切分文字
第五章 Embeddings
5.1 將文字段落的語言意義對映到數值表徵
5.2 使用降維技術來將文字段落間的語義關係視覺化
5.3 計算 Embedding 之間的距離
5.4 選擇合適的 Embedding 模型
5.5 使用 CLIP 來為圖像與文字產生 Embedding
5.6 使用 Embedding 來執行文字分類
5.7 使用混合搜尋來改善搜尋結果
第六章 向量資料庫與相似度搜尋
6.1 選擇合適的向量資料庫
6.2 使用 FAISS 來儲存與搜尋 Embedding
6.3 在 Chroma 向量資料庫中儲存與使用 Embedding
6.4 使用 pgvector 擴充功能在 PostgreSQL 中儲存 Embedding
6.5 在 PostgreSQL 中執行相似度搜尋
6.6 使用索引技術來加速 PostgreSQL 中的向量搜尋
6.7 在 PostgreSQL 中結合關鍵字搜尋與相似度搜尋,讓檢索更準確
第七章 檢索
7.1 在 PostgreSQL 中使用中繼資料來篩選,並優化查詢結果
7.2 使用 HyDE 來提升檢索準確度
7.3 使用多詢問句檢索來改善搜尋結果
7.4 設計詢問句路由系統來處理複雜的請求
7.5 設計自動合併檢索器來強化檢索文件
7.6 使用句子窗口檢索器來取得更完整的文字區塊
7.7 使用重新排名法來提升檢索相關度
7.8 將複雜的詢問句拆成多個子詢問句
第八章 Agentic RAG
8.1 在 Python 中設計自訂工具
8.2 在多 Agent 系統中使用工作流程模式
8.3 選擇 Agentic Framework
8.4 透過函式呼叫來建立 Agentic 系統
8.5 使用 asyncio 來加速 Agent
8.6 使用 OpenAI Agents SDK 與 Chroma 來建立銷售談判 Agent
8.7 使用 MCP 工具來強化 Agent 的能力
8.8 使用 LangGraph 來建立 Agentic 系統
第九章 Graph RAG
9.1 建立第一個 Neo4j 知識圖譜,並從文件匯入文字內容
9.2 使用結構化的資料來擴充知識圖譜
9.3 建立第一個 Cypher 查詢
9.4 在 Neo4j 知識圖譜上啟用語義搜尋
9.5 為 RAG 系統優化知識圖譜
第十章 評估 RAG 系統
10.1 為 RAG 系統選擇合適的評估指標
10.2 讓真人評估 RAG 系統
10.3 為自動化測試建立合成資料
10.4 計算脈絡 Precision@k,以評估檢索步驟
10.5 使用 LLM-as-a-Judge 來評估生成階段的忠實度
10.6 評估 RAG 系統的答案相關度
第十一章 RAG Web Apps
11.1 建立你的第一個 Streamlit App
11.2 使用 Streamlit 來建立聊天機器人 App
11.3 為聊天機器人加入 PDF 分析功能
11.4 將 RAG App 連到 SQL 資料庫
11.5 使用 Docker 與 AWS 來部署 Streamlit App
1.1 為你的組織找出高價值的 RAG 應用場景
1.2 選擇你的 IDE 與設定 Coding Agent
1.3 在 VS Code 中使用 Jupyter Notebook
1.4 使用 .env 來儲存密鑰與 API 密鑰
1.5 建構你的第一個 RAG 應用程式
1.6 為你的 RAG 應用程式選擇框架與程式庫
1.7 執行本書版本庫中的範例程式
第二章 基礎模型
2.1 定義合適的提示詞模板
2.2 為你的任務選擇合適的語言模型
2.3 使用 OpenAI API 來生成內容
2.4 使用 Google 的 Gemini 模型來生成內容
2.5 使用 Anthropic API 來生成內容
2.6 在本機使用 Ollama 來執行開源模型
2.7 使用 OpenAI SDK 與 Pydantic 來建立結構化的輸出
第三章 載入資料
3.1 在 Python 中載入 Word 檔案
3.2 載入 PDF 檔案
3.3 從 Excel 和 CSV 檔案載入及處理表格資料
3.4 從 PostgreSQL 資料庫載入結構化資料
3.5 使用語音轉文字模型來載入音訊檔案
3.6 使用 Tesseract OCR 從圖像與 PDF 擷取文字
3.7 使用多模態模型從圖像擷取文字
3.8 透過多模態模型來為圖像產生文字敘述
3.9 使用多模態模型來為內嵌的表格產生文字摘要
3.10 解析含有多模態內容的 PDF
3.11 使用語音轉文字與多模態模型來載入影片
第四章 資料準備
4.1 新增中繼資料以支援中繼資料篩選
4.2 換掉縮寫與技術術語,以提升資料品質
4.3 為文字段落建立假設性問題,以提升搜尋準確度
4.4 使用字元切分法來分割文件
4.5 使用遞迴文字切分器來分割文件
4.6 使用文件感知切分法來為文件分段
4.7 使用語義感知分段器來切分文字
4.8 使用 Agentic 分段器來切分文字
第五章 Embeddings
5.1 將文字段落的語言意義對映到數值表徵
5.2 使用降維技術來將文字段落間的語義關係視覺化
5.3 計算 Embedding 之間的距離
5.4 選擇合適的 Embedding 模型
5.5 使用 CLIP 來為圖像與文字產生 Embedding
5.6 使用 Embedding 來執行文字分類
5.7 使用混合搜尋來改善搜尋結果
第六章 向量資料庫與相似度搜尋
6.1 選擇合適的向量資料庫
6.2 使用 FAISS 來儲存與搜尋 Embedding
6.3 在 Chroma 向量資料庫中儲存與使用 Embedding
6.4 使用 pgvector 擴充功能在 PostgreSQL 中儲存 Embedding
6.5 在 PostgreSQL 中執行相似度搜尋
6.6 使用索引技術來加速 PostgreSQL 中的向量搜尋
6.7 在 PostgreSQL 中結合關鍵字搜尋與相似度搜尋,讓檢索更準確
第七章 檢索
7.1 在 PostgreSQL 中使用中繼資料來篩選,並優化查詢結果
7.2 使用 HyDE 來提升檢索準確度
7.3 使用多詢問句檢索來改善搜尋結果
7.4 設計詢問句路由系統來處理複雜的請求
7.5 設計自動合併檢索器來強化檢索文件
7.6 使用句子窗口檢索器來取得更完整的文字區塊
7.7 使用重新排名法來提升檢索相關度
7.8 將複雜的詢問句拆成多個子詢問句
第八章 Agentic RAG
8.1 在 Python 中設計自訂工具
8.2 在多 Agent 系統中使用工作流程模式
8.3 選擇 Agentic Framework
8.4 透過函式呼叫來建立 Agentic 系統
8.5 使用 asyncio 來加速 Agent
8.6 使用 OpenAI Agents SDK 與 Chroma 來建立銷售談判 Agent
8.7 使用 MCP 工具來強化 Agent 的能力
8.8 使用 LangGraph 來建立 Agentic 系統
第九章 Graph RAG
9.1 建立第一個 Neo4j 知識圖譜,並從文件匯入文字內容
9.2 使用結構化的資料來擴充知識圖譜
9.3 建立第一個 Cypher 查詢
9.4 在 Neo4j 知識圖譜上啟用語義搜尋
9.5 為 RAG 系統優化知識圖譜
第十章 評估 RAG 系統
10.1 為 RAG 系統選擇合適的評估指標
10.2 讓真人評估 RAG 系統
10.3 為自動化測試建立合成資料
10.4 計算脈絡 Precision@k,以評估檢索步驟
10.5 使用 LLM-as-a-Judge 來評估生成階段的忠實度
10.6 評估 RAG 系統的答案相關度
第十一章 RAG Web Apps
11.1 建立你的第一個 Streamlit App
11.2 使用 Streamlit 來建立聊天機器人 App
11.3 為聊天機器人加入 PDF 分析功能
11.4 將 RAG App 連到 SQL 資料庫
11.5 使用 Docker 與 AWS 來部署 Streamlit App
作者介紹
Dominik Polzer 是資深機器學習工程師,曾在 Siemens 等指標性企業任職。他專精於預測分析、異常偵測與生成式 AI,並致力於運用基礎模型與 RAG 系統來推動業務流程自動化。此外,他也經常在廣受歡迎的 Medium 部落格分享機器學習的深度見解。賴屹民
電機碩士,曾任職多年軟體工程師。2012年起投入資訊書籍翻譯,迄今已累積 O'Reilly 叢書等百餘本譯作。
電機碩士,曾任職多年軟體工程師。2012年起投入資訊書籍翻譯,迄今已累積 O'Reilly 叢書等百餘本譯作。
規格
誠品貨碼 / 2683209174000
ISBN13 / 9786264254045
ISBN10 /
EAN貨碼 / 9786264254045
頁數 / 416
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 18.5X23X2CM
級別 / N:無
退貨說明
退貨須知:
- 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
- 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。
依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
- 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
- 報紙、期刊或雜誌。
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
- 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
- 國際航空客運服務。
若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:
- 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
- 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
- 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
- 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
- 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送








