OpenAI API 開發手冊 - 用 Responses API、Realtime API、MCP、Agents SDK、Function calling 打造即時語音、RAG、Agent 應用
施威銘研究室 著
買這商品的人也買了...
-
$450$351 -
$680$537 -
$800$600 -
$520$411 -
$630$498 -
$780$616 -
$600$468 -
$630$536 -
$580$458 -
$750$593 -
$750$593 -
$880$695 -
$580$458 -
$1,280$960 -
$650$507 -
$650$487 -
$720$562 -
$680$537 -
$650$507 -
$690$545 -
$920$727 -
$750$593 -
$1,080$853 -
$980$774 -
$580$458
相關主題
商品描述
內容介紹:
不要再問『為什麼 ChatGPT 可以?』,你寫的程式也可以!
開發生成式 AI 應用程式時總是在想『為什麼 ChatGPT 有這個功能?』,現在你也可以。本書帶你學會 OpenAI API 關鍵元素,達到跟 ChatGPT 類似的功能。
|用 Realtime API 提供進階語音模式|
開發直接語音交談,隨時插話的應用,再加上其他章節介紹的 function calling 與 MCP 等,實現真正出一張嘴、連打字都不用就可以操控的應用程式。書中會帶你實踐桌面版與網頁版的語音交談程式,各種情境都能派上用場。
|透過 MCP 介接全世界|
MCP 雖然不是 OpenAI API 的一部分,但卻可以接上各式各樣的輸入與控制功能,本書會教你設計可分享功能給他人使用的 MCP 伺服器,也會實作具備 MCP 用戶端的主控程式,介接你自己或別人提供的 MCP 伺服器幫模型長出感官與手腳。
|用 Responses API+內建工具快速實作 RAG 應用|
Responses API 可以使用多種內建工具,搜尋網路、文字生圖、撰寫並執行 Python 程式碼都難不倒它,還可以檢索檔案,提供檢索片段內容幫模型增長知識,快速設計 RAG 應用。
|可運作多 agent 的 Agnets SDK|
實現讓程式自主決策並執行任務、達成代理人(agent)的理想,Agents SDK 還可以協調多個 agent 彼此合作,把任務交棒給最合適的 agent 處理。
|運用推理模型解決複雜數理問題|
透過 API 使用推理模型,還可以像是 ChatGPT 那樣呈現推理過程,不再需要撰寫複雜的提示內容或是指示,就可以解決數理或是邏輯問題。
|深度瞭解 function calling 機制|
不論是 Agents SDK 還是 MCP,底層的運作關鍵就是 function calling,你不一定會直接使用它,但瞭解它卻是延伸模型能力的必備基礎。
|直指核心設計的範例|
學習 API 當然可以直接看官方文件與範例,不過官方範例有時候因為想要有漂亮的 UI 呈現等原因,採用了你不一定熟悉的框架,使得範例本身摻雜太多非必要的元素,混淆了真正的關鍵主題,在設計範例時我們就特意保留最精簡的架構,高度聚焦提升成效。
|能踩的雷我們都先幫你踩過一遍|
使用 API 光看文件是一回事,實際測試又是一回事,尤其像是 MCP 要介接其他人提供的服務,更容易遇到不相容的問題;還有文件上寫了但可能使用上有問題,或是文件上可能沒寫,但其實可以這樣用的,我們都先盡量測過一遍,節省你的時間。
本書特色:
ChatGPT 做得到、你也能做到
Do what ChatGPT can do
□ 使用 Realtime API 提供即時交談、隨時插話的進階語音模式
□ 串接各種 MCP 伺服器,幫 AI 生出五官手腳與真實世界接軌
□ 自己設計 MCP 伺服器補完 AI 欠缺的功能,還可以分享給別人使用
□ 用 Responses API 快速設計 RAG 系統
□ 使用 Agents SDK 設計自主決策完成任務的 agent
□ 套用推理模型、呈現推理過程解決複雜數理問題
□ 針對核心元素設計範例,避免官方範例旁枝末節增加無謂複雜度
目錄大綱
目錄:
| CHAPTER 1 OpenAI API 入門
1-1 為什麼要使用 API
- 學習 OpenAI API 的好處
1-2 從零開始使用 OpenAI API
- 認識 Open AI API 家族
- 牛刀小試
1-3 認識 token
- 使用 OpenAI 的視覺化網頁觀察 token 轉換結果
- 使用程式取得 token 轉換結果
- 計算實際傳送的 token 數
1-4 認識訊息角色
- 訊息與角色
- 幫模型制訂規則
1-5 錯誤處理
1-6 非同步方式使用 API
- 幫 API 的使用加上等待動畫
1-7 在沒有 openai 套件的環境中使用 API
- 透過 requests 套件以 HTTP POST 使用 API
- 透過 HTTPX 套件以非同步方式使用 API
- 連 Python 都沒有的環境下使用 API
| CHAPTER 2 AI 聊天功能的基礎–Responses API
2-1 更換模型--使用推理模型
- 調整推理強度
- 觀察推理過程
2-2 控制生成結果
- 限制生成的 token 數量
- 控制回覆內容的變化性--temperature
- 控制生成內容的可能性--top_p
2-3 控制回覆格式--生成 JSON
- 生成 JSON 格式
- 使用 Pydantic 標準化 JSON 格式生成步驟
2-4 輸入圖片/檔案當提示
- 輸入圖片
- 輸入 PDF 檔案
| CHAPTER 3 有記憶的簡易聊天程式–串接記錄與串流回應
3-1 文字形式的簡易聊天程式
- 建立輔助函式與聊天程式雛形
3-2 串接對話記錄
- 使用回應識別碼提供對談內容
- 幫聊天輔助函式串接對話過程
3-3 使用串流功能即時顯示回覆內容
- 啟用串流功能
- 加入串流選項的聊天類別
3-4 具有記憶的聊天程式
- 將回應識別碼儲存到檔案以及從檔案讀回的方法
- 可延續討論串交談的應用程式
- 透過網頁檢視儲存的回應
- 利用程式碼管理對談記錄
3-5 手動建立對話記錄
- 自行建立對話記錄
- 儲存對話紀錄
| CHAPTER 4 RAG 的基礎–用搜尋與檢索幫 AI 長知識
4-1 使用內建搜尋工具幫 AI 走遍全世界
- 啟用內建的搜尋功能
- 設定搜尋地區
- 設定提供給模型的搜尋資料量
- 串流方式使用工具
- 搜尋工具的計價方式
4-2 幫簡易聊天程式加上搜尋功能
- 設計處理指令的類別
- 修改 Chat 類別
- 建立處理內建搜尋工具指令的類別
4-3 使用內建檔案檢索 RAG 工具
- RAG 簡介
- 上傳檔案進行 RAG
- 使用內建的檔案檢索工具
- 查看檢索結果
- 限制檢索筆數
- 限制相似度
- 檔案檢索工具的計費方式
4-4 利用程式碼動態管理要檢索的檔案
- 動態上傳檔案
- 建立向量儲存區同時加入檔案
- 動態加入檔案到向量儲存區
- 顯示向量儲存區內的檔案
- 移除向量儲存區
4-5 幫簡易聊天程式加上檔案檢索功能
- 設計處理檔案檢索指令的類別
- 測試具備網頁搜尋與檔案檢索功能的聊天程式
- 加上可以檢視工具執行結果的功能
| CHAPTER 5 Agent 的基礎 – 用 Function Calling 幫 AI 長手腳
5-1 認識 function calling 機制
5-2 提供客製搜尋功能
- 提供 Google 搜尋的函式
- 使用 JSON Schema 描述函式
- 使用 function calling
- 依據模型指示叫用函式
- 建立方便進行 function calling 的輔助函式
- 同時叫用多個函式(parallel function calling)
- 串流模式下的 function calling
5-3 幫簡易聊天應用程式加入 function calling 功能
- 設計處理自訂函式工具的類別
- 修改 Chat 類別搭配 function calling 運作
- 測試使用自訂函式工具聊天
- 檢視函式叫用的指示
- 強制使用內建工具
- 不允許單回叫用多個函式
5-4 讓 AI 長出手腳打造智慧 CLI 指令介面
- 執行 shell 指令的自訂函式工具
- 提供模型自訂的 shell 指令執行函式
- 測試用說的就可以操控電腦的樂趣
- 處理 IPython 特有的問題
- 設立防護機制
| CHAPTER 6 會寫程式與生圖的內建工具
6-1 使用內建工具執行 shell 指令
6-2 Code Interpreter 內建工具
- 取得程式碼輸出結果
- 使用串流方式
- 由 Code Interpreter 處理檔案
- 手動建立容器
6-3 文字生圖內建工具
- 串接回應持續修改
- 以串流模式取得生成過程的變化圖
- 在背景執行 Responses API
6-4 幫聊天程式加入寫程式與生圖功能
- 修改 Chat 類別
- 處理 Code Interpreter 指令的類別
- 處理生圖指令的類別
- 測試全功能的聊天程式
| CHAPTER 7 Agent 的橋樑–用 MCP 介接外部工具
7-1 MCP 協定簡介
- MCP 的組成要素
7-2 MCP 伺服器開發
- 安裝 uv 工具並建置 Python 環境
- 可在本機執行指令的 MCP 伺服器
- 測試 MCP 伺服器
- 多個 MCP 伺服器共同運作
7-3 MCP 用戶端
- 使用單一 MCP 伺服器的應用程式
- 同時使用多個 MCP 伺服器
- 使用其他人設計的 MCP 伺服器
| CHAPTER 8 遠端 MCP 與遙控應用程式
8-1 使用 SSE 將 MCP 伺服器部署在網路上
- 使用 SSE 的 MCP 伺服器
- 測試採用 SSE 傳輸的 MCP 伺服器
- 使用 SSE 傳輸的 MCP 用戶端
- 使用 Streamable HTTP 在網路上部署 MCP 伺服器
8-2 使用公開在網路上的 MCP 伺服器
- GitMCP 使用方法
- 手動修正 MCP 伺服器提供的 JSON Schema
- 使用 OpenAI 內建工具連接部署在公開網路上的 MCP 伺服器
- 先讓使用者同意才執行 MCP 工具
- 讓用戶端程式使用內建 MCP 工具
8-3 使用環境變數傳遞機密資訊給 MCP 伺服器
- 預設揭露給 MCP 伺服器的環境變數
- 使用 env 項目傳遞環境變數給 MCP 伺服器
8-4 操控其他應用程式的 MCP 伺服器
- 建立 Spotify App
- 撰寫 MCP 伺服器
- 測試控制 Spotify 的 MCP 伺服器
| CHAPTER 9 即時語音 Realtime API - 進階語音模式體驗
9-1 Realtime API 多模態輸入輸出
- Realtime API 的運作方式
- 準備工作
9-2 Realtime API 基本架構
- 修改交談階段的參數
- 傳送文字並取得回應
- 在 Realtime API 中使用 function calling
9-3 進入 Realtime API 的語音世界
- 準備工作
- 從聲音檔傳送語音
- 進入即時語音交談的世界
- 顯示輸入語音的文字轉換結果
- 加入 function calling 功能
- 用語音控制 MCP 伺服器
9-4 手動控制語音段落
- 關閉 VAD 功能
- 取消正在進行中的回覆
9-5 網頁版的 Realtime API 應用程式
- 派發臨時金鑰
- 網站主頁面
- 建立 WebRTC 連線
- 計價方式
| CHAPTER 10 Agents SDK – 邁向代理人最後一哩路
10-1 Agents SDK 簡介
10-2 建立基本的 agent 架構
- 以同步方式執行
- 以串流方式執行
- 串接結果建立討論串
10-3 在 agent 中使用工具
- 使用內建工具
- 使用 MCP 伺服器
- 使用自訂函式工具
10-4 Guardrail(防護欄)
- 自訂 agent 的輸出格式
- 建立 guardrail
- 使用 traces 頁面觀察 agent 執行結果
10-5 agent 的交棒(handoff)機制
- 建立可以抓取網頁文字的 agent
- 把 agent 當工具使用
- 使用 handoff 交棒機制
- 顯示交棒的理由
10-6 使用語音交談的 agent
- 前置工作
- 撰寫第一個語音版的 agent 程式
- 顯示輸入內容
- 同時顯示輸入內容與回覆內容
- 啟動 VAD 自動偵測講話機制
- 使用 MCP 伺服器