開發者實作
開發者實戰:接入百度 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:資料不能出機房、或現場網路不穩的情況才需要。要先確認授權方式與裝置需求。
不管走哪一條,對外的網路呼叫都不要直接跑在事件迴圈或請求執行緒上。一個慢掉的上游,會讓所有使用者一起卡住,而這種故障看起來像網路問題,其實是你的併發模型有洞。
成本控制:貴的通常不是單價
我不寫任何價格與配額數字,那些會變,而且各能力不同。真正能長期壓低帳單的是實作習慣,這幾條放到哪一家雲都成立。
- 先在本地擋掉不必要的呼叫:空白圖、過小的檔案、明顯不合格式的輸入,根本不用送出去。
- 把結果快取起來:同一張圖、同一段文字被重複處理,是帳單裡最常見的浪費。用內容雜湊當鍵。
- 批次處理走批次介面:如果該能力有批次形式,一次送一筆是最貴的用法。
- 壓縮與預處理放前面:影像先裁切與縮放、音訊先轉成規定的格式,既省流量也提高成功率。
- 設上限與熔斷:單一使用者、單一時間窗的呼叫次數要有天花板,避免一支迴圈把整個月的預算燒光。
- 記錄每一次呼叫:能力別、耗時、回傳碼、輸入大小。沒有這份紀錄,優化就只能靠猜。
2026 年的變化:從單點能力到模型服務
如果你是現在才開始接,值得知道生態已經往大模型那一側傾斜。百度千帆是模型服務與智能體開發平台,2026 年也在調整方案結構。
官方公告過 Coding Plan 於 2026 年 6 月底停止續費、後續由 Token Plan 個人版承接;企業版則主打相容 OpenAI 與 Anthropic 協議,並宣稱適配多種主流 AI 開發工具。
這對開發者其實是好消息:協議相容代表你寫的呼叫層可以在不同供應商之間搬,鎖定風險變小。但方案與模型清單變動很快,動手前一定要看當下的官方公告。
建立應用拿憑證,寫一個會快取 token 的授權模組,接一個最單純的能力打通端到端,補上重試與日誌,最後才加第二個能力。四步走完,你已經有一套可以長期用的骨架,而不是一支跑得起來的示範腳本。
延伸學習
做出你的第一個 Skill
一場快閃直播的完整重製。從搞懂 Skill 的五個層級開始,帶你把一件你每天在做的重複工作,寫成一支 AI 真的會照做的 Skill ── 命名、description、輸入拆解、Workflow 訪談、Output 與 Checks,最後組成一份能通過格式檢查的 SKILL.md。
NT$ 999
HE101|Harness Engineering Foundation(3 小時)
三小時的地圖課,不是操作課。把 Model 與 AI System 分開,拆解一套 AI Harness 的八個組成(Goal、Context、Knowledge、Rules、Tools、Workflow、Evaluation、Iteration),再帶你逆向拆解四個你已經在用的系統,最後畫出自己的第一張 Harness Blueprint。5 章 27 課,附學員講義 PDF 與術語速查表。
NT$ 2,599

