開發者實作

開發者實戰:接入百度 AI 開放平台 API 的第一支應用

接入百度 AI 開放平台的流程可以拆成三步:在控制台建立應用,拿到 AppID、API Key 與 Secret Key;用 API Key 與 Secret Key 走 OAuth 2.0 的 client_credentials 換取 access_token;之後每次呼叫都帶著這顆 token 打對應能力的介面。OCR、語音、NLP 三類介面的差別主要在請求內容與回傳結構,授權方式是共用的。實際端點、參數名與計費方式請以官方文件為準。
開發者實戰:接入百度 AI 開放平台 API 的第一支應用:文章重點卡

開發者實戰:接入百度 AI 開放平台 API 的第一支應用

第一次接一個雲端 AI 平台的 API,卡住的地方通常不是演算法,而是授權。文件很長,端點很多,你只想知道那顆 token 到底從哪裡來、要放在哪裡。

這篇把百度 AI 開放平台的接入邏輯拆成三步講完,順便談 OCR、語音、NLP 三類介面該怎麼想,以及成本要怎麼控。程式碼只寫結構示意,實際端點與參數名請對照官方文件。

你將學到什麼

授權流程

三個憑證怎麼來,access_token 怎麼換、怎麼快取、怎麼失效。

介面的共同形狀

OCR、語音、NLP 差在請求內容,授權與錯誤處理其實共用一套。

SDK 的取捨

官方 SDK、離線 SDK 與自己包 HTTP,各適合什麼情況。

成本控制

六個能同時降低帳單與延遲的實作習慣。

接 API 這件事,八成的時間會花在前面三十分鐘。憑證放哪、token 怎麼換、錯了要看哪個欄位。這三件事想通,剩下的都是查文件。

先分清楚你要接的是哪一層

百度這邊的開發者入口不只一個,一開始沒分清楚很容易在文件之間繞路。粗略可以分成兩層。

  • AI 開放能力:文字識別、語音技術、人臉與影像、自然語言處理這類單點能力。輸入一張圖或一段音訊,回傳結構化結果。
  • 大模型與智能體平台:百度千帆這一側,處理的是模型呼叫、微調、智能體編排這類需求。

如果你要做的是「把發票掃成欄位」或「把錄音轉成文字」,走第一層最省事。要做對話、生成、工具呼叫,才需要往第二層看。

文件會出現在兩個網域

同一項能力的說明頁,可能同時掛在 AI 開放平台與智能雲的文件站上。這不是你走錯地方,兩邊共用同一套帳號體系。挑一個當主要參考就好,但版本資訊以你當下開通的那個控制台為準。

授權:三個憑證與一顆 access_token

流程本身很短。在控制台建立一個應用,平台會分配 AppID、API Key、Secret Key 三個憑證。之後用後兩者去換 access_token。

官方採用的是 OAuth 2.0 的 client_credentials 模式:帶著 API Key 與 Secret Key 打授權端點,回傳的 JSON 裡就有 access_token 與有效期。

# structural sketch, check official docs for exact fields

POST https://aip.baidubce.com/oauth/2.0/token
    grant_type    = client_credentials
    client_id     = YOUR_API_KEY
    client_secret = YOUR_SECRET_KEY

# response
{
    "access_token" : "...",
    "expires_in"   : ...
}

拿到 token 之後,呼叫各項能力時把它帶上去即可。重點在於 token 要快取,不要每次呼叫都重換一次。

# structural sketch only

token = token_cache.get()          # refresh only when near expiry
if token is None:
    token = fetch_token(API_KEY, SECRET_KEY)
    token_cache.set(token, ttl=safe_ttl)

result = http_post(
    endpoint,                      # per ability, see official docs
    params  = {"access_token": token},
    headers = {"Content-Type": "application/x-www-form-urlencoded"},
    body    = payload,             # base64 image, audio, or text
)
憑證的三條紅線
  • 不要把 API Key 與 Secret Key 硬編碼進前端或行動應用,官方文件也明確提醒過這一點。
  • 一律走 HTTPS,明文傳輸有被攔截的風險。
  • 懷疑外洩就更新 Secret Key。更新後,先前產生的 token 會立即失效,這是最快的止血動作。

三類介面的共同形狀

把 OCR、語音、NLP 三類擺在一起看,你會發現差別其實不大。授權共用、錯誤處理共用,真正不同的只有請求內容與回傳結構。

能力類型你要送什麼回傳大致長什麼樣最常踩的坑
文字識別圖片,通常是 base64 或網址文字區塊清單,多半帶座標圖片過大或方向不對,辨識率掉很快
語音技術音訊資料與格式參數辨識結果文字,或合成後的音訊取樣率與編碼格式不符,會直接被拒
自然語言處理純文字結構化欄位,例如斷詞與情感傾向編碼與長度限制,超長要自己先切

所以第一支應用的正確做法,是先把授權、重試、錯誤解析這層寫成共用模組,再讓三類能力共用它。不要每接一個能力就複製一份。

各能力的實際端點、參數名、輸入限制與回傳欄位都以官方文件為準,而且會隨版本調整,程式裡要留得住變化。

SDK、離線 SDK,還是自己包 HTTP

官方提供多語言 SDK,也針對部分能力提供可在裝置端執行的離線 SDK。三種做法各有適用情境。

  • 官方 SDK:最快跑起來,適合驗證可行性與內部工具。缺點是升級節奏被綁住。
  • 自己包 HTTP:多寫一點,但重試、逾時、日誌、快取全部握在自己手上。要上正式環境的服務,我會選這條。
  • 離線 SDK:資料不能出機房、或現場網路不穩的情況才需要。要先確認授權方式與裝置需求。
一個容易漏掉的工程細節

不管走哪一條,對外的網路呼叫都不要直接跑在事件迴圈或請求執行緒上。一個慢掉的上游,會讓所有使用者一起卡住,而這種故障看起來像網路問題,其實是你的併發模型有洞。

成本控制:貴的通常不是單價

我不寫任何價格與配額數字,那些會變,而且各能力不同。真正能長期壓低帳單的是實作習慣,這幾條放到哪一家雲都成立。

  1. 先在本地擋掉不必要的呼叫:空白圖、過小的檔案、明顯不合格式的輸入,根本不用送出去。
  2. 把結果快取起來:同一張圖、同一段文字被重複處理,是帳單裡最常見的浪費。用內容雜湊當鍵。
  3. 批次處理走批次介面:如果該能力有批次形式,一次送一筆是最貴的用法。
  4. 壓縮與預處理放前面:影像先裁切與縮放、音訊先轉成規定的格式,既省流量也提高成功率。
  5. 設上限與熔斷:單一使用者、單一時間窗的呼叫次數要有天花板,避免一支迴圈把整個月的預算燒光。
  6. 記錄每一次呼叫:能力別、耗時、回傳碼、輸入大小。沒有這份紀錄,優化就只能靠猜。

2026 年的變化:從單點能力到模型服務

如果你是現在才開始接,值得知道生態已經往大模型那一側傾斜。百度千帆是模型服務與智能體開發平台,2026 年也在調整方案結構。

官方公告過 Coding Plan 於 2026 年 6 月底停止續費、後續由 Token Plan 個人版承接;企業版則主打相容 OpenAI 與 Anthropic 協議,並宣稱適配多種主流 AI 開發工具。

這對開發者其實是好消息:協議相容代表你寫的呼叫層可以在不同供應商之間搬,鎖定風險變小。但方案與模型清單變動很快,動手前一定要看當下的官方公告。

第一支應用的最小路徑

建立應用拿憑證,寫一個會快取 token 的授權模組,接一個最單純的能力打通端到端,補上重試與日誌,最後才加第二個能力。四步走完,你已經有一套可以長期用的骨架,而不是一支跑得起來的示範腳本。

本文源起本文依百度官方公開資料與 2026 年公開報導整理,由酒Ann 以自己的視角編寫成中文導覽。實際功能與規格以 百度智能雲官網 為準。

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

access_token 要每次呼叫都重新換嗎?
不要。官方文件說明 token 有有效期,正確做法是換到之後快取起來,直到接近到期或收到失效錯誤才重新換。每次呼叫都去換一次,會多一趟往返、拖慢延遲,也容易撞上授權端的限制。
API Key 可以寫在前端或 App 裡嗎?
不行。官方明確提醒不要把 API Key 與 Secret Key 分享給他人或硬編碼進 App。憑證要放在伺服器端,由後端代打並對外只暴露你自己的介面。萬一外洩,可以在應用詳情更新 Secret Key,更新後先前產生的 token 會立即失效。
同一組憑證可以呼叫不同能力嗎?
依官方說明,同一個 API Key 可以同時呼叫平台上的多種 AI 開放能力,例如文字識別、人臉識別與語音技術。不過各項能力的開通狀態與配額是分開管理的,實際情況請在控制台確認。
呼叫失敗要怎麼判斷是誰的問題?
先看回傳的錯誤碼屬於授權層還是能力層。授權層的錯誤通常是憑證錯、token 過期或未開通;能力層的錯誤多半是內容格式、大小或編碼不符。分不出來的時候,用最小的合法輸入重打一次,能立刻切開兩種可能。
本地開發要注意什麼?
三件事:憑證從環境變數讀而不是寫進程式碼、對外請求一律走 HTTPS、把每一次呼叫的耗時與回傳碼記下來。第三件在你開始煩惱帳單的時候會非常有用。