- 登入
- 註冊
本地端 Ollama× LangChain×LangGraph× LangSmith 開發手冊:打造 RAG、Agent、SQL 應用
NT$750
資料不外流,模型任你遊
No data out, all models in play
10 件庫存
>資 料 不 外 流,模 型 任 你 遊< No data out, all models in play 本書是專為考量資料隱私問題但又想開發結合大型語言模型 LLM 應用者所設計,不倚賴大型 AI 公司的雲端服務,利用 Ollama 系統建置本機 LLM 推論引擎,既保護隱私又節省串接大型 AI 公司 API 服務的費用。更重要的是,可視需要變換模型,不會被大型 AI 公司綁架,完全彈性自主。本書還具備以下特色: 🛩️ LangChain 應用程式開發框架 除了簡化程式撰寫,更可跨模型,即使要改用大型 AI 公司的模型也不需要重新撰寫程式。LangChain 框架提供有外部函式(工具)的抽象層,可立即將既有的函式變成模型可用的工具,加上 LangChain 社群的豐富工具,簡直就像是 LLM 軍火庫,讓模型不只能說一口好話,還能付諸行動,可以達成像是執行 SQL 語句查詢資料庫等各種功能。 🛩️ RAG 應用開發 對於需要參考私有資料的應用情境,LangChain 也提供有完整的 RAG 支援,不但可讀取 PDF/網頁/JSON 等各種格式資料來源,也提供多種文檔切割方式與 FAISS 等嵌入式資料庫儲存/檢索機制,瞬間就能幫模型補足專屬知識,協助解答問題。 🛩️ AI Agent 代理應用 LangChain 設計有現成的 AI Agent 框架,搭配剛剛提到的各式工具與 RAG 機制,即可設計可自主思考,規劃行動並實際完成任務的 ReAct Agent。 🛩️ 獨家 LangGraph 主題 考量到一般 Agent 帶來的不確定性,LangChain 生態系加入了 LangGraph 框架,可以設計具備穩定流程的 Agent 代理,避免 Agent 陷入無窮迴圈無法完成任務的窘境。 🛩️ LangSmith 評估系統 補上 Agent 代理應用的最後一塊拼圖,透過 LangSmith 服務檢視 Agent 執行過程,可評估執行效能、prompt 成效、模型規劃行動優劣,不再只用感覺評斷。 🛩️ 自由彈性的本地端 Ollama 模型,節省 API 串接費用 🛩️ 出張嘴用自然語言替代 SQL 語句查詢資料庫 🛩️ 從 PDF/網頁/JSON 檔擷取資料補充模型知識打造 RAG 應用 🛩️ 善用 prompt 技巧避免模型產生幻覺 🛩️ 設計有記憶、可自主決策規劃並執行任務的 AI Agent 代理 🛩️ 獨家 LangGraph 教學,設計穩定流程的 AI Agent 🛩️ 利用 LangSmith 監測 AI Agent 執行流程 第 1 章 本地化低硬體門檻的 LLM 應用開發 1-1 解決高昂的 API 成本與硬體需求 API 成本的負擔 硬體需求的挑戰 免費與本地化運算的崛起 1-2 對雲端的依賴與資料安全性 雲端依賴的挑戰 資料安全性的考量 在本地運行模型以減少對雲端的倚賴 1-3 為什麼選擇免費的本地化運算 成本效益 自主性與可客製化 技術可行性 1-4 LangChain、Ollama 和 LangGraph 的特色與優勢 LangChain Ollama LangGraph 最低硬體需求與資源建議 第 2 章 環境建置與模型量化技術 2-1 低硬體需求的環境準備與 Ollama 模型選擇 本書撰寫時使用之硬體環境 本書推薦之大型語言模型 2-2 模型選擇指南與量化技術解析 模型的命名慣例 模型挑選方式 Ollama 模型尋找教學 2-3 如何在本地環境中運行 LangChain 和 Ollama 使用 Docker 快速部署 手動配置本地環境 (適合不方便使用 Docker 的讀者) Colab 雲端部署 Ollama 版本相容性提醒 本書實作範例採用的量化模型說明 程式碼中更換模型的方法 第 3 章 LangChain 基礎入門 3-1 認識 LangChain 生態系統的架構與組成 3-2 認識 LangChain 底層模組 Base Packages (基礎套件群) Integrations (整合模組群) 3-3 可執行單元 (Runnables) 最核心的 Runnable 元件:LLM 生成 提示模板 (Prompt Templates) RunnableLambda 3-4 表達式語言 LCEL (LangChain Expression Language) RunnableSequence RunnableParallel 3-5 回呼 (Callbacks) 回呼事件 (Callback Events) 回呼處理器 (Callback Handlers) 回呼添加方式 (Passing Callbacks) StreamingStdOutCallbackHandler 3-6 避免數字幻覺:用 Prompt 確保 LLM 只根據提供的數據回答 LLM 會如何產生數字幻覺? 提示詞 (Prompt):避免 LLM 生成錯誤數值 temperature (溫度) 結合 Prompt 與 LLM,驗證是否能有效抑制數字幻覺 3-7 建立多國語言翻譯助手應用 步驟 1:定義提示模版 (Prompt Template) 步驟 2:接收用戶輸入 步驟 3:建立流程鏈並在執行時傳入回呼 執行結果展示 3-8 建立搜尋引擎最佳化 SEO 標題產生器 步驟 1:定義提示模版 (Prompt Templates) 步驟 2:接收用戶輸入 步驟 3:建立流程鏈 步驟 4:使用 .stream() 實現串流輸出 執行結果展示 第 4 章 SQL:結合資料庫打造自然語言查詢系統 4-1 如何透過 LLM 達到 SQL 查詢自動化 認識 SQLite 資料庫 自然語言轉 SQL 查詢 4-2 建立 SQL 人資小幫手問答機器人 步驟 1:初始化模型與連接資料庫 步驟 2:獲取資料庫結構 步驟 3:執行 SQL 查詢的函式 步驟 4:SQL 查詢語句生成 (自然語言輸入 → SQL 語句) 步驟 5:執行 SQL 查詢,並將查詢結果轉換為自然語言回答 步驟 6:主程式 執行結果展示 4-3 跨資料表 SQL 查詢:讓 LLM 理解關聯資料並生成查詢語句 程式碼修改說明 執行結果展示 第 5 章 向量資料庫:基礎 RAG 與語義相似性檢索 5-1 認識檢索增強生成 (RAG) RAG 使用檢索系統帶來的優勢 幫 LLM 擴展知識並減少幻覺 (Hallucination) 5-2 嵌入向量與語義相似性檢索流程 嵌入向量 (Embedding Vector) 語義相似性檢索 (Semantic Similarity Retrieval) 5-3 FAISS 向量資料庫與相似度計算方式 FAISS 的記憶體特性 FAISS 索引類型概覽 相似度計算方式介紹 5-4 OllamaEmbeddings 嵌入模型 在 Ollama 尋找、更換與下載嵌入模型的方法 正規化測試 嵌入模型測試與相似性檢索 5-5 設定相似度閾值:控制語義檢索範圍 L2 距離 (歐幾里得距離, Euclidean Distance) 使用 MAX_INNER_PRODUCT 實現餘弦相似度 (Cosine Similarity) 5-6 將 FAISS 向量資料庫本地化:實現持久化儲存與載入 向量資料庫本地化流程 檢索本地向量資料庫流程 建立與檢索本地 FAISS 向量資料庫 整合 LLM 來回答問題 第 6 章 進階 RAG:記憶、數據向量化、檔案載入器與多資料來源 6-1 認識檢索、生成與數據向量化流程 RAG 詳細運作流程 RAG 數據向量化流程 6-2 建立 RAG 向量化檢索泛用聊天機器人 步驟 1:初始化 LLM 步驟 2:儲存向量並初始化檢索器 步驟 3:建立提示模板 步驟 4:建立檢索鏈與檔案處理鏈 步驟 5:啟動對話系統 執行結果展示 常見觀念誤區整理 6-3 建立相似度閾值機制:本地 RAG 球員戰績問答機器人 步驟 1:新增 SIMILARITY_THRESHOLD 與準備數據 步驟 2:檢查數據是否需要更新 步驟 3:建立 FAISS 向量資料庫 步驟 4:建立檢索與問答系統 執行結果展示 6-4 文本分割 (Chunking) 短片段 vs. 長片段 分割時需要考量的因素 常見的文本分割策略 文本分割的實I建議 6-5 檔案載入器 (Document Loaders) LangChain 的檔案載入器 檔案載入器用法介紹 6-6 建立 PDF、網頁爬蟲、JSON 檢索問答機器人 PDF 檢索問答機器人 執行結果展示 網頁爬蟲檢索問答機器人 執行結果展示 JSON 檢索問答機器人 執行結果展示 6-7 LangChain 記憶 (Memory) LangChain 記憶類型介紹 LangChain 記憶執行流程 6-8 建立有記憶能力的檢索問答機器人 保留完整對話的 ConversationBufferMemory 執行結果展示 保留對話摘要的 ConversationSummaryMemory 執行結果展示 第 7 章 Agent × Memory:讓模型自己選擇工具並擁有對話記憶 7-1 認識代理 (Agent) AgentExecutor (代理執行器) AgentType (代理類型) initialize_agent (初始化代理) 7-2 工具 (Tool) 使用 LangChain 提供的搜尋引擎查詢工具 (Tool) 建立函式當作自訂工具 (Tool) 7-3 建立有記憶的泛用電腦助手 Agent:密碼生成 × 網頁爬蟲 × 搜尋引擎 步驟 1:初始化 Ollama LLM 步驟 2:建立密碼生成函式當工具 步驟 3:建立網頁爬蟲函式當工具 步驟 4:加入搜尋引擎查詢工具 (DuckDuckGoSearchRun) 步驟 5:組成工具清單 步驟 6:設定 Prompt 步驟 7:加入記憶機制 (Memory) 步驟 8:建立代理 (Agent) 步驟 9:建立主程式 執行結果展示 第 8 章 LangGraph:用狀態、節點、邊建構圖結構流程 8-1 認識 LangGraph 圖結構流程控制原理 LangChain AgentExecutor 與 LangGraph 的差異 圖結構 (Graph) 節點與邊 (Nodes and Edges) 8-2 LangGraph 狀態與其更新機制 (State + Reducer) 狀態 (State) Reducer:控制狀態的更新機制 8-3 建立圖結構條件邏輯 Agent:日期查詢 × 數學計算 步驟 1:初始化模型 步驟 2:定義狀態類別 步驟 3:定義節點函式 步驟 4:建構圖 步驟 5:添加節點與邊 步驟 6:編譯圖與主程式 執行結果展示 8-4 建立圖結構網路查詢助手 Agent:維基百科 × 搜尋引擎 步驟 1:定義狀態類別 步驟 2:初始化工具 步驟 3:定義節點函式 步驟 4:構建圖 步驟 5:執行主程式 執行結果展示 8-5 LangGraph 記憶:Checkpointer Checkpointer (檢查點保存器) Thread (執行緒) 與 Checkpoint (檢查點) 檢查點的獲取:get_state 與 get_state_history 8-6 建立有記憶的圖結構泛用聊天機器人 步驟 1:定義狀態類別 步驟 2:定義節點函式 步驟 3:構建圖 步驟 4:建立 Checkpointer 和初始化狀態 步驟 5:執行主程式 執行結果展示 第 9 章 LangSmith:視覺化追蹤與分析 LLM 工作流的每一步 9-1 LangSmith 核心功能與API 金鑰設定 LangSmith 使用教學 探索 LangSmith 的核心功能 9-2 追蹤 SQL、RAG、Agent、Memory 與 LangGraph 等執行流程 基礎執行流程 SQL 執行流程 RAG 執行流程 Agent × Memory 執行流程 LangGraph 執行流程