SDK(開發工具包)
又稱:開發工具包 · software development kit · client library · 官方 SDK
某家服務官方打包好的工具包:把呼叫它 API 的細節包成幾個好用的函式,讓你不必自己組請求。
你會在什麼時候遇到它
教學會給你兩條路:pip install 官方 SDK,或直接 curl 打 API。不知道差別,你會在自己組請求時被簽章、串流、重試卡住整整一天 —— 那些 SDK 都替你處理好了。反過來,當 SDK 的版本落後於模型的新功能時,你也得知道可以直接打 API 繞過去。
打個比方
直接打 API 像自己買零件組電腦;用 SDK 像買原廠組裝好的整機。整機省事、出了問題好找人,但想換一塊原廠沒出過的顯卡就卡死了。
最小範例
同一件事的兩種寫法:
自己打 API(網址、標頭、JSON、錯誤、重試都得你自己處理)
POST https://api.example.com/v1/chat/completions
Header: Authorization: Bearer <你的 API key>
Body: {"model": "...", "messages": [{"role":"user","content":"你好"}]}
→ 然後自己解析回傳的那一大段 JSON
用官方 SDK(pip install 之後)
client = OpenAI() # key 自動從環境變數讀
resp = client.chat.completions.create(model="...", messages=[...])
print(resp.choices[0].message.content)SDK 替你做的三件事:把 key 從環境變數讀出來、把請求組成正確格式、把回傳的 JSON 變成你能用點號取的物件。它沒有替你做的兩件事:決定要問模型什麼,以及檢查模型答得對不對。
最常搞錯的地方
- 以為 SDK 跟 API 是兩套不同的東西、能力也不一樣。SDK 底下打的還是同一個 API,它只是一層包裝。API 有的功能 SDK 大致都有,但剛推出的新功能常常要等 SDK 更新才用得到。
- 看到某家有 SDK 就以為別家不能用。多數模型服務都提供「OpenAI 相容」的 API,同一套 SDK 改一個 base_url 就能指向別家。