指南

點樣將 OpenAI API 整合入你嘅 App

要整合 OpenAI API,先喺 OpenAI 專案入面建立一條 API 金鑰,將佢儲存為名叫 OPENAI_API_KEY 嘅伺服器端機密,然後喺你自己嘅伺服器路由,用 OpenAI 官方 SDK 去呼叫,絕對唔好喺瀏覽器程式碼入面呼叫。截至 2026 年 9 月,OpenAI 嘅快速入門將 Responses API 列為新專案嘅起點。上線之前要設定消費上限,限制回覆長度,限制每位用戶可以幾耐用一次功能,並且用重試處理速率限制錯誤。

本指南涵蓋設定、請求流程、畀 AI builder 用嘅提示,以及會洩露金鑰或者浪費金錢嘅常見錯誤。OpenAI 嘅資料取自佢哋截至 2026 年 9 月嘅官方文件。如果你未識一般概念(token、上下文視窗、定價),請先睇點樣使用 LLM API。

你可以用佢整咩

  • 喺你 App 入面嘅聊天助理(點樣建立 AI 聊天機械人 App)
  • 「摘要」、「改寫」或者「草擬回覆」按鈕
  • 由自由文字抽取結構化資料:將一封電郵變成一張訂單,為支援工單加標籤
  • 根據你自己內容嘅搜尋同問答
  • 圖像生成、語音同其他媒體功能,視乎可用嘅模型而定

更多idea可以睇點樣為你嘅 App 加入 AI 功能。

設定你嘅 OpenAI 帳戶

  1. 喺 OpenAI 平台建立帳戶同一個專案。 OpenAI 嘅正式環境最佳實踐建議測試同正式環境用獨立嘅專案,咁樣各自可以有自己嘅金鑰同限額。
  2. 建立專案 API 金鑰。 OpenAI 建議設定到期日,並且定期輪換金鑰。
  3. 喺限額頁面設定消費提示同硬性消費上限。 OpenAI 嘅指南表示,提示會喺用量超過某個金額時通知你,而硬性上限就會強制執行每月上限。
  4. 加入帳單。 OpenAI 嘅速率限制文件描述咗用量等級:你花得越多,限制就會自動提高。

請求流程

瀏覽器  ->  你嘅伺服器路由  ->  OpenAI API
        <-  (串流)回覆    <-
  1. 用戶撳一個按鈕或者傳送一條訊息。
  2. 瀏覽器呼叫你自己嘅路由,例如 POST /api/summarise。
  3. 你嘅伺服器檢查用戶已登入,並且有權使用該功能。
  4. 伺服器組裝請求:指示、用戶嘅輸入,以及任務需要嘅資料庫資料。
  5. 用環境入面嘅金鑰呼叫 OpenAI。OpenAI 嘅 SDK 會自動讀取 OPENAI_API_KEY。
  6. 串流或者一次過返回回覆,並且記錄 token 用量。

OpenAI 嘅官方 SDK 套件名叫 openai,JavaScript/TypeScript 用 npm 安裝,Python 用 pip 安裝。

點樣揀模型

OpenAI 提供幾個唔同價錢同速度嘅模型,而且陣容經常更新。先用細啲、平啲嘅模型,喺真實例子上量度質素,只有需要時先升級。將模型名稱放喺設定值或者機密入面,咁樣唔使重寫程式碼就可以更改。現行收費請睇 OpenAI 嘅定價頁面。

選項同取捨

決定簡單選擇幾時要進一步
串流返回完整答案聊天同長回覆用串流;用戶即刻見到文字
對話記憶每次都傳送最近嘅訊息對話變長時,摘要較舊嘅訊息
輸出格式純文字當你嘅程式碼要讀取欄位時,要求結構化 JSON
你自己嘅資料請求中加入相關記錄內容太多放唔晒時,加入對你內容嘅搜尋(參閱什麼是 RAG)
大量、唔緊急嘅工作逐個項目循環處理結果可以等嘅時候,用 OpenAI 嘅批次選項以降低成本

畀你嘅 AI builder 嘅提示

第一個功能:

喺工單頁面加入一個「摘要」按鈕。佢會呼叫伺服器路由 POST /api/summarise,檢查用戶已登入,載入該工單,然後用官方 openai SDK 同機密 OPENAI_API_KEY 去呼叫 OpenAI Responses API。由機密 OPENAI_MODEL 讀取模型名稱。指示:「用 3 點摘要,然後建議一個簡短嘅回覆。唔好自己創造訂單編號。」限制輸出長度,將回覆串流到頁面,並且絕對唔好將金鑰傳送去瀏覽器。

防護措施:

限制每位用戶每個鐘頭最多 30 次 AI 請求,記錄喺資料庫入面。每個請求都記錄輸入同輸出 token,連同用戶 ID 同功能名稱。如果 OpenAI 返回 429,要遵從 Retry-After 標頭,用指數退避加隨機抖動重試最多 3 次;之後顯示「AI 而家忙緊,一分鐘後再試」。其他任何失敗都顯示友善嘅錯誤,並且令頁面其餘部分照常運作。

處理錯誤同限制

OpenAI 用幾種方式計算速率限制,包括每分鐘請求數同每分鐘 token 數,而你會先撞到用完嗰一個。超出其中一個時,API 會返回 429,附帶 Retry-After 標頭。OpenAI 嘅文件表示,要將該數值當作最短等待時間,並且加入少少隨機延遲,避免所有客戶端同時重試。

另外亦要預先考慮:

  • 長時間生成嘅逾時。串流有幫助,合理嘅輸出上限亦有幫助。
  • 供應商中斷。 AI 功能應該優雅地失敗,唔會弄壞頁面。
  • 輸出質素欠佳。 儲存之前要驗證結構化輸出;唔好讓模型輸出在冇你程式碼檢查之下觸發敏感動作。

常見錯誤

  • 金鑰放喺前端或者程式碼庫入面。 瀏覽器程式碼係公開嘅,外洩嘅金鑰幾分鐘內就可能被濫用。睇點樣保護 API 金鑰。
  • 冇消費上限。 一個循環或者濫用嘅用戶,可以好快令帳單暴漲。
  • 冇每位用戶限制。 供應商嘅限制保護嘅係你嘅錢包,唔係你其他用戶。
  • 用提示去做保安。 用戶可以打「忽略之前嘅指示」。權限應該放喺伺服器程式碼入面。
  • 傳送超過所需嘅內容。 整份文件同超長嘅對話歷史會成倍增加成本。只傳送任務需要嘅嘢。
  • 寫死模型名稱。 模型會更新同退役;要將佢變成設定。
  • 隨便傳送個人資料。 讀吓 OpenAI 嘅資料使用條款,而且只傳送功能需要嘅資料。

檢查清單

  • 測試同正式環境用獨立嘅 OpenAI 專案(或金鑰)
  • 金鑰儲存為伺服器端機密,絕對唔會放喺瀏覽器程式碼或者程式碼庫
  • 已設定消費提示同硬性消費上限
  • 所有呼叫都經過你嘅伺服器,並且檢查用戶權限
  • 輸出長度有上限;模型名稱可以設定
  • App 入面有每位用戶嘅速率限制
  • 429 處理包括 Retry-After、退避同抖動
  • 友善嘅錯誤狀態;冇 AI 時頁面都可以運作
  • 每個功能都記錄 token 用量
  • 用長、空白同惡意輸入測試過

喺 Mythex 使用 OpenAI API

你用 Mythex 建立嘅 App 入面嘅 AI 功能,會用你自己嘅 OpenAI 金鑰,費用計喺你嘅 OpenAI 帳戶,而唔係 Mythex 建構點數。經 /secrets、專案設定,或者 Agent 需要金鑰時顯示嘅機密卡,將 OPENAI_API_KEY 加為專案機密,然後用似上面嘅提示描述功能。改咗已發佈 App 嘅機密之後,要再次發佈,App 先會用新嘅機密。文件入面嘅食譜用你自己嘅 API 金鑰加入 AI 功能有一個入門提示,而聊天中嘅機密則解釋機密卡。想比較供應商?可以睇點樣整合 Claude API。

常見問題

新 App 應該用邊個 OpenAI API?

截至 2026 年 9 月,OpenAI 嘅快速入門將 Responses API 列為新專案嘅起點,其官方 SDK 嘅範例都用 client.responses.create()。開始之前,請查閱 OpenAI 嘅文件,睇吓而家嘅建議。

我可唔可以喺瀏覽器呼叫 OpenAI API?

用你嘅秘密金鑰就唔可以。任何人都可以讀取瀏覽器程式碼,然後重用金鑰去增加你嘅帳單。瀏覽器應該呼叫你自己嘅伺服器路由,再由伺服器用儲存為環境變數嘅金鑰去呼叫 OpenAI。

點樣防止 OpenAI API 費用太高?

OpenAI 嘅正式環境指南建議,喺限額頁面設定消費提示同每月硬性消費上限。喺你個 App 入面,限制回覆長度、限制每位用戶嘅請求次數,並且記錄 token 用量,咁樣你就知道邊啲功能最貴。

OpenAI 嘅 429 錯誤係咩意思?

即係你超過咗速率限制。OpenAI 嘅速率限制文件表示,回應會包含 Retry-After 標頭;至少要等咁耐,再加少少隨機延遲,然後用指數退避重試。

Mythex · Pricing · 用 AI 建造任何嘢 · 網站及應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(台灣)