Spring AI實戰

(美國)克雷格·沃斯 張衛濱

商品描述

Spring AI框架能讓你直接借助Java或Kotlin 等JVM語言,為任意Spring應用輕松加入基於大語 言模型(LLM)的AI能力。從搭建檢索增強生成 (RAG)到創建AI智能體,Spring AI快捷、強大, 並且對Spring開發者 友好。 在《Spring AI實戰》中,暢銷書作者Craig Walls將帶你基於Spring AI與Spring Boot構建原 汁原味的AI應用。你將從 簡單的“Hello AI World”示例起步,快速進階到 的技術,包括 RAG、AI智能體、工具調用、語音交互與AI可觀測 性。全書采用Craig標誌性的實戰示例驅動教學方式 ,專註於讓你真正動手實現自己的成果。

目錄大綱

1 Spring AI起步
1.1 初識Spring AI
1.1.1 初始化項目
1.1.2 提交提示詞
1.1.3 編寫測試
1.1.4 嘗試運行
1.2 選擇模型
1.2.1 配置OpenAI模型
1.2.2 使用Ollama在本地托管模型
1.3 Spring AI能力概覽
小結
2 評估生成的響應
2.1 確保回答的相關性
2.2 測試事實的準確性
2.3 在運行時應用自評估
小結
3 提交提示詞以生成內容
3.1 使用提示詞模板
3.1.1 定義提示詞模板
3.1.2 以資源的形式導入模板
3.2 用上下文填充提示詞
3.3 分配提示詞角色
3.4 影響響應的生成
3.4.1 聲明對話的可選項
3.4.2 格式化響應的輸出
3.4.3 流式響應
3.5 使用響應元數據
小結
4 與文檔進行對話
4.1 理解RAG
4.2 搭建向量存儲
4.3 加載文檔
4.3.1 初始化加載器項目
4.3.2 聲明加載器流水線
4.3.3 創建流水線組件
4.3.4 運行流水線
4.4 實現RAG
4.4.1 搜索類似的文檔
4.4.2 新服務
4.5 使用Advisor實現RAG
4.6 應用模塊化RAG
4.6.1 重寫用戶查詢
4.6.2 翻譯用戶查詢
4.6.3 擴展用戶查詢
小結
5 啟用會話式記憶
5.1 在AI中創建記憶
5.2 添加會話式記憶
5.2.1 啟用以內存存儲聊天記憶的Advisor
5.2.2 探查含聊天記憶的提示詞結構
5.2.3 配置聊天記憶的大小限制
5.3 聲明對話ID
5.4 持久化聊天記憶
5.4.1 將聊天記憶持久化到數據庫
5.4.2 將對話記憶保存到向量存儲中
小結
6 激活工具驅動的內容生成
6.1 AI工具入門
6.1.1 開發支持工具的應用
6.1.2 深入探究
6.2 實現工具
6.2.1 編寫實現工具的基礎功能
6.2.2 定義工具
6.2.3 讓工具運行起來
6.3 實現函數即工具
小結
7 應用模型上下文協議
7.1 模型上下文協議簡介
7.2 使用MCP Client
7.3 創建自己的MCP Server
7.3.1 構建Server
7.3.2 搭建數據庫
7.3.3 創建MCP Server工具
7.3.4 探查MCP Server
7.3.5 在Client應用中使用數據庫
7.4 使用HTTP+SSE進行傳輸
7.4.1 在MCP Server中配置HTTP+SSE
7.4.2 探查MCP Server
7.4.3 配置Client使用HTTP+SSE Server
7.5 暴露提示詞和資源
7.5.1 聲明暴露提示詞和資源的Bean
7.5.2 應用註解驅動的提示詞和資源
小結
8 生成音頻和圖片
8.1 使用音頻
8.1.1 語音轉錄
8.1.2 文本轉語音
8.1.3 直接應用音頻輸入輸出
8.2 詢問關於圖片的問題
8.3 生成圖片
小結
9 觀測AI操作
9.1 啟用Actuator指標
9.1.1 探查向量存儲的操作
9.1.2 檢查與AI模型的交互
9.1.3 統計Token的使用量
9.1.4 觀測ChatClient的操作
9.2 在Prometheus中查看指標
9.3 創建AI儀表盤
9.4 跟蹤AI操作
小結
10 保護生成式AI
10.1 使用RAG控制文檔訪問
10.1.1 內容
10.1.2 為Board Game Buddy添加安全機制
10.1.3 過濾 內容
10.1.4 實現用戶級的對話記憶
10.1.5 功能測試
10.2 工具的安全防護
10.3 防禦對抗性提示詞
10.3.1 阻止包含敏感詞的提示詞
10.3.2 預防提示詞泄露
10.4 用戶輸入內容審核
小結
11 應用生成式AI的模式
11.1 內容總結
11.2 翻譯消息
11.2.1 構建簡易的翻譯器
11.2.2 翻譯桌遊規則的回答內容
11.3 情感分析
小結
12 運用智能體
12.1 理解智能體
12.2 實現智能體工作流與模式
12.2.1 提示詞的鏈式調用
12.2.2 任務路由
12.2.3 實現並行處理
12.3 構建自主規劃的智能體解決方案
12.3.1 初始化Embabel項目
12.3.2 定義智能體類
12.3.3 定義獲取遊戲規則的動作
12.3.4 定義獲取規則文件名的動作
12.3.5 定義獲取遊戲名稱的動作
12.3.6 通過Embabel命令行工具運行智能體
12.3.7 通過MCP訪問智能體
小結