零基礎自學AI應用開發

李光毅

  • 出版商: 人民郵電
  • 出版日期: 2025-12-01
  • 售價: $480
  • 語言: 簡體中文
  • 頁數: 318
  • ISBN: 7115682607
  • ISBN-13: 9787115682604
  • 相關分類: AI Coding
  • 尚未上市,歡迎預購

相關主題

商品描述

本書旨在用傳統前後端開發過程中開發者熟悉的詞匯與術語對AI應用開發的專業知識進行深入淺出的講解,使開發者能夠從0到1入門AI應用開發。本書不拘泥於講解單一編程語言、單一模型和單一框架,而是盡可能完整地展現不同技術方案的優劣、技術選型時的考量和技術生態的全貌。書中涵蓋當下多種熱門類型AI應用的開發,從OpenAI API調用到RAG開發,從MCP服務器創建到智能體開發。本書的內容編排循序漸進,前半部分聚焦“入門”,通過控制代碼覆雜度及詳細的基礎知識講解,幫助讀者快速熟悉AI應用開發中的概念與常見模式;後半部分聚焦“進階”,將向量數據庫、第三方雲服務等技術組件引入示例,並嘗試通過構建完整的端到端應用將知識點串起來。此外,本書不僅包含業務代碼,還涉及AI應用的調試、監控、部署乃至最佳實踐,力求帶給讀者可工作的上線代碼。

本書非常適合想用AI提升產品競爭力的前後端開發者、需要進行快速概念驗證的技術經理與創業者,以及希望將大模型接入現有系統的架構師與運維工程師閱讀。讀者無須擁有與AI應用開發相關的經驗,無須掌握Python或者Node.js編程語言,只要具有編程基礎知識即可暢讀本書。

作者簡介

李光毅 曾就職於愛奇藝、百度、知乎等大型互聯網公司,目前就職於Thoughtworks,

任高級咨詢師。從事軟件開發工作超過10年,具備豐富的大型系統架構設計和團隊管理經驗。著有《高性能響應式Web開發實戰》,譯有《編程原則》。現為播客“程序員新聲”主播,其個人公眾號為“技術圓桌”。

目錄大綱

第 1章 理解模型 1

1.1 如何學習“魔法” 1

1.2 Teachable Machine 2

1.2.1 打造自己的模型 3

1.2.2 部署代碼 6

1.3 線性模型 9

1.3.1 機器學習是如何工作的 9

1.3.2 代碼實現 12

1.4 神經網絡雛形 13

1.4.1 使用代碼實現 14

1.4.2 為什麼需要神經“網絡” 17

第 2章 環境配置與基礎語法 18

2.1 配置Python環境 18

2.1.1 安裝Python 18

2.1.2 配置虛擬環境 21

2.1.3 類庫管理 24

2.2 Python快速入門 25

2.2.1 運行Python腳本 25

2.2.2 數據類型 25

2.2.3 縮進 27

2.2.4 函數的定義和使用 27

2.2.5 模塊的使用 27

2.2.6 推導式 28

2.2.7 類型註解 28

2.3 配置Node.js環境 29

2.3.1 在macOS系統和Windows系統中安裝Node.js 29

2.3.2 在Ubuntu系統中安裝Node.js 30

2.4 Node.js快速入門 31

2.4.1 運行Node.js腳本 31

2.4.2 動態類型語言 31

2.4.3 package.json文件 32

2.4.4 Node.js模塊系統 32

2.4.5 類庫管理 33

2.4.6 異步編程 34

2.5 其他應知內容 36

2.5.1 cURL 36

2.5.2 YAML 37

第3章 制作一款音頻轉錄工具 40

3.1 區分OpenAI、ChatGPT與大模型 40

3.2 集成OpenAI SDK 41

3.2.1 創建API密鑰 41

3.2.2 使用API密鑰 43

3.2.3 使用API密鑰的註意事項 45

3.3 初試OpenAI SDK 45

3.3.1 發送請求 45

3.3.2 返回結果解析 46

3.3.3 計算token數量 49

3.4 通過REST風格的API調用OpenAI API 50

3.5 使用OpenAI SDK轉錄音頻 52

3.5.1 讀取音頻文件 52

3.5.2 標記轉錄文字的時間戳 54

3.6 安裝自己的Whisper模型 58

3.6.1 在本地安裝Whisper模型 58

3.6.2 以命令行的方式運行Whisper 58

3.6.3 在代碼中使用Whisper模型 60

第4章 AI助手開發 61

4.1 AI助手 61

4.1.1 創建AI助手 61

4.1.2 函數是如何工作的 64

4.1.3 調用AI助手 65

4.1.4 通過第三方獲取城市氣溫 69

4.2 打造播客摘要生成助手 71

4.2.1 什麼是播客摘要生成助手 71

4.2.2 創建播客摘要生成助手 71

4.2.3 響應OpenAI的流式返回 73

4.2.4 使用助手 75

4.3 創建HTTP服務器 76

4.3.1 引入Express.js 76

4.3.2 實現文件上傳 78

4.3.3 完善路由 81

4.3.4 提升代碼的健壯性 84

4.4 使用代碼管理AI助手 85

4.4.1 引入GitHub Actions 86

4.4.2 編寫工作流 87

4.4.3 編寫部署腳本 91

4.4.4 看懂工作流 93

4.5 部署上線 94

4.5.1 創建守護進程 95

4.5.2 準備服務器 97

4.5.3 通過GitHub Actions部署上線 101

4.5.4 驗證服務 103

第5章 使用Haystack開發AI應用 108

5.1 重新認識框架 108

5.1.1 為什麼需要框架 108

5.1.2 何謂好的框架 109

5.1.3 也許你不需要框架 110

5.2 為什麼選擇Haystack 112

5.2.1 為什麼不推薦LangChain 112

5.2.2 其他框架 115

5.2.3 迎接Haystack 117

5.3 初試Haystack 119

5.3.1 基本概念 119

5.3.2 初試組件與流水線 119

5.3.3 自定義組件 122

5.4 使用Haystack重構播客助手 124

5.4.1 使用Haystack進行重構 125

5.4.2 使用Gemini替代GPT模型 128

5.5 啟用Haystack日誌 132

5.6 啟用Haystack追蹤 136

5.6.1 啟用追蹤 136

5.6.2 與OpenTelemetry集成 138

5.6.3 與Langfuse集成 142

第6章 RAG應用開發 148

6.1 初試RAG技術 148

6.1.1 使用Chroma實現語義化搜索 149

6.1.2 元數據過濾 151

6.1.3 與OpenAI配合 153

6.2 向量數據庫原理 154

6.2.1 余弦相似度 154

6.2.2 文本嵌入 156

6.2.3 對Chroma進行嵌入配置 157

6.3 長文本處理 159

6.3.1 分割數據 160

6.3.2 固定大小的分塊策略 160

6.3.3 基於文檔結構的分塊策略 162

6.3.4 遞歸式分塊策略 166

6.4 使用Haystack實現流水線 168

6.4.1 索引流水線 168

6.4.2 查詢流水線 170

6.4.3 簡化流水線 172

6.5 拓展流水線 173

6.5.1 索引數據 173

6.5.2 優化數據檢索 179

第7章 接入第三方AI服務 184

7.1 Hugging Face 184

7.1.1 註冊Hugging Face 184

7.1.2 調用Hugging Face推理服務 187

7.1.3 與Haystack集成 189

7.1.4 Hugging Face的服務類型 189

7.2 Together AI 190

7.2.1 註冊Together AI服務 191

7.2.2 訪問推理服務 193

7.2.3 函數調用 194

7.3 Pinecone 198

7.3.1 註冊Pinecone 199

7.3.2 使用Pinecone 200

7.4 Cohere 207

7.4.1 註冊Cohere 208

7.4.2 調用Cohere推理服務 209

7.4.3 在Haystack中使用Cohere模型 212

7.5 Railway 214

7.5.1 需要解決的問題 214

7.5.2 使用Railway部署我們的服務 215

7.6 博客存儲流水線 220

7.6.1 下載文章 220

7.6.2 組裝流水線 223

7.6.3 部署服務 225

第8章 微調模型 228

8.1 在OpenAI中進行微調 228

8.1.1 準備訓練數據 228

8.1.2 通過界面進行微調 229

8.2 使用Google AI進行微調 234

8.2.1 使用Vertex AI Studio進行微調 234

8.2.2 通過API進行微調 240

第9章 智能體開發入門 244

9.1 OpenAI智能體 244

9.1.1 第 一個簡單的智能體 244

9.1.2 任務轉移 245

9.1.3 調用工具 246

9.1.4 借用智能體對播客摘要生成助手進行重構 249

9.2 自定義智能體處理流程 251

9.3 利用Cohere的Command模型開發智能體 255

9.3.1 準備工作 255

9.3.2 編寫智能體 258

9.4 護欄 262

9.4.1 輸入護欄 262

9.4.2 輸出護欄 264

9.4.3 第三方護欄 265

9.5 模型上下文協議 268

9.5.1 MCP架構 268

9.5.2 MCP工具 269

9.5.3 使用已有的MCP服務器 272

第 10章 使用LangGraph構建智能體 276

10.1 一個簡單的LangGraph應用 276

10.1.1 創建圖對象 277

10.1.2 添加節點 278

10.1.3 stream_mode 279

10.2 在LangGraph中使用工具 280

10.2.1 簡單的工具調用 280

10.2.2 覆雜的工具調用 283

10.3 子圖機制 285

10.3.1 簡單子圖 285

10.3.2 參數不兼容的情況 288

10.3.3 使用LangSmith對數據流進行 追蹤 289

10.4 任務轉移 291

10.4.1 智能體間的任務轉移 291

10.4.2 監督者模式 294

10.5 一個覆雜的圖 296

10.5.1 在向量數據庫中搜索 298

10.5.2 在網絡上搜索 300

10.5.3 連接圖 303

10.6 添加前端界面 305

10.6.1 LangGraph服務 305

10.6.2 前端 308

10.7 實現人機交互 312

10.7.1 簡單的人機交互 312

10.7.2 借助CopilotKit實現人機 交互 314