OpenAI API 調用教學(Python):安裝 SDK、第一個請求與常見報錯

用 Python 調用 OpenAI API 的入門示例:安裝官方 openai 庫、用環境變量配置密鑰、用 Responses API 發出第一個請求、讀取 token 用量、流式輸出,以及 401、429、連接失敗等報錯怎麼排查。代碼按官方文檔 2026-10-07 版本整理。

NNathaniel bigo··原創首發·AI 輔助撰寫
9 分鐘讀完
資料核對於 2026-10-07 · 依據官方文檔與公開資料整理 其他 帳號
本文根據 OpenAI 開發者文檔(Quickstart、SDKs、Text generation、Streaming、Error codes)和 openai-python 官方倉庫 README 整理,資料核對於 2026-10-07。代碼裏的模型名會隨官方更新而變化,請以 Models 頁面 為準。

適用於誰

  • 會一點 Python,想寫出第一段調用 OpenAI 模型的代碼的人;
  • 照着網上舊教學寫代碼,發現寫法和現在的官方 SDK 對不上、運行就報錯的人;
  • 想知道報錯時先查哪裏的人。

結論先說

  1. 準備:Python 3.10 及以上;一個 API Key(獲取方法見 /guides/openai-api-key),並設為環境變量 OPENAI_API_KEY。
  2. 安裝:pip install openai。
  3. 最小代碼:client = OpenAI() → client.responses.create(model=..., input=...) → print(response.output_text)。官方現在推薦新項目用 Responses API;老的 Chat Completions 仍然可用。
  4. 報錯先看狀態碼:401 是密鑰問題,429 要區分「請求太快」和「餘額 / 限額用完」,APIConnectionError 是網絡連不上。

步驟

1. 建一個乾淨的環境並安裝 SDK

bash
python -m venv .venv
# macOS / Linux 激活:source .venv/bin/activate
# Windows 激活:.venv\Scripts\activate
pip install openai

裝完可以用 python -c "import openai; print(openai.__version__)" 查看版本。README 提醒:升級後看不到新功能,多半是當前環境還在用舊版本。

2. 配置密鑰

官方 SDK 會自動讀取環境變量 OPENAI_API_KEY,所以代碼裏不需要也不應該寫密鑰。

  • macOS / Linux:export OPENAI_API_KEY="你的密鑰"
  • Windows PowerShell:setx OPENAI_API_KEY "你的密鑰",然後重新打開終端

如果習慣用 .env 文件,README 推薦配合 python-dotenv 加載,並把 .env 加進 .gitignore,避免密鑰進到代碼倉庫。

3. 發出第一個請求

新建 example.py:

python
from openai import OpenAI

client = OpenAI()  # 自動讀取環境變量 OPENAI_API_KEY

response = client.responses.create(
    model="gpt-6-astra",  # 2026-10 官方 Quickstart 使用的模型,可換成其他模型
    instructions="你是一位說話簡潔的中文助手。",
    input="用兩句話解釋什麼是 API。",
)

print(response.output_text)

運行 python example.py,幾秒後會打印模型回答。幾個參數的意思:

  • model:模型 ID。Models 頁面把 GPT-6 Astra 列為複雜推理和編程的旗艦,GPT-6.1 Sol 兼顧能力和成本,GPT-6 Luna 適合注重成本、大批量的任務。模型會更新換代,以頁面為準。
  • instructions:高層級的行為要求(語氣、角色、規則),優先級高於 input 裏的內容。
  • input:可以是一段字符串,也可以是帶 role 的消息列表。
  • output_text:SDK 提供的便捷屬性,把所有文字輸出拼成一個字符串。官方提醒 output 數組裏經常不止一項(還有推理、工具調用等),不要硬寫 output[0].content[0].text。

4. 看這次用了多少 token

python
print(response.usage.input_tokens, response.usage.output_tokens, response.usage.total_tokens)

Responses API 的用量字段是 input_tokens / output_tokens / total_tokens(Chat Completions 叫 prompt_tokens / completion_tokens)。推理模型的內部推理 token 不顯示成文字,但按輸出 token 計費,所以回答很短、用量卻不小是正常的。費用怎麼算見 /guides/openai-api-pricing-billing。

5. 流式輸出(邊生成邊顯示)

做聊天介面時,加 stream=True,然後按事件類型取文字增量:

python
from openai import OpenAI

client = OpenAI()

stream = client.responses.create(
    model="gpt-6-astra",
    input="寫一首四行的小詩,主題是秋天。",
    stream=True,
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)
    elif event.type == "response.completed":
        print()

Responses 的流式返回是帶類型的事件,常用的有 response.created、response.output_text.delta、response.completed 和 error。

6. 加上錯誤處理

python
import openai
from openai import OpenAI

client = OpenAI()

try:
    response = client.responses.create(model="gpt-6-astra", input="你好")
    print(response.output_text)
except openai.AuthenticationError:
    print("401:密鑰無效或已被刪除,檢查 OPENAI_API_KEY")
except openai.RateLimitError as e:
    print("429:", e.code, e.message)  # 先看 code 判斷是限速還是餘額/限額問題
except openai.APIConnectionError:
    print("連不上 API:檢查網絡、防火牆或證書設定")
except openai.APIStatusError as e:
    print("其他錯誤:", e.status_code, e.request_id)

SDK 預設會對連接錯誤、408、409、429 和 5xx 自動重試 2 次(短暫的指數退避),可以用 OpenAI(max_retries=0) 關掉或改次數;預設超時是 10 分鐘,可以用 timeout= 調整。

常見報錯速查

報錯常見原因處理
401 Incorrect API key provided密鑰複製不全、有空格、已刪除,或用了別的組織 / 項目的密鑰重新複製或生成新密鑰
403 Country, region, or territory not supported所在地區不在支持列表查看官方支持國家和地區
429 + credit_balance_exhausted預付額度用完去 Billing 充值,重試沒用
429 Rate limit reached請求或 token 發得太快降速、按 Retry-After 等待,詳見 /guides/openai-api-429-error
400 BadRequestError參數名、類型寫錯,或模型不支持該參數讀報錯訊息,對照 API Reference
APIConnectionError / APITimeoutError網絡不穩、防火牆攔截、證書問題、請求太大太慢檢查網絡環境後重試

排查時記下返回的 request ID(SDK 裏是 response._request_id,出錯時是 e.request_id),聯絡官方支持時會用到。

常見問題

Q:還能用 client.chat.completions.create 嗎?

可以。README 說明 Chat Completions 會長期支持;但官方建議新項目用 Responses API。兩者的區別和遷移方法見 /guides/openai-responses-api。

Q:想先不寫代碼、在網頁上試效果?

用 OpenAI Playground,見 /guides/openai-playground。注意 Playground 的調用同樣計入 API 用量和費用。

Q:異步怎麼寫?

把 OpenAI 換成 AsyncOpenAI,每次調用前加 await,其餘參數一樣。

Q:能把密鑰直接寫在 OpenAI(api_key="...") 裏嗎?

技術上可以,但官方不推薦:代碼一旦分享或上載倉庫,密鑰就泄露了。

參考資料

  • OpenAI 開發者文檔:Developer quickstart — https://developers.openai.com/api/docs/quickstart
  • OpenAI 開發者文檔:SDKs and CLI — https://developers.openai.com/api/docs/libraries
  • openai-python 官方倉庫 README — https://github.com/openai/openai-python
  • OpenAI API Reference:Create a response — https://developers.openai.com/api/reference/resources/responses/methods/create
  • OpenAI 開發者文檔:Text generation — https://developers.openai.com/api/docs/guides/text
  • OpenAI 開發者文檔:Streaming API responses — https://developers.openai.com/api/docs/guides/streaming-responses
  • OpenAI 開發者文檔:Error codes — https://developers.openai.com/api/docs/guides/error-codes
  • OpenAI 開發者文檔:Models — https://developers.openai.com/api/docs/models
  • OpenAI 幫助中心:Reviewing API usage and costs — https://help.openai.com/en/articles/10478918-reviewing-api-usage-and-costs
需要開通或續費?ChatGPT Plus 充值 →

Nathaniel 的更多內容

  1. 01

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同產品的其他教學

  1. 01

    ChatGPT 搜尋怎麼用:聯網搜尋、查看來源與結果不準怎麼辦

    ChatGPT 能聯網搜尋最新資訊並附上來源連結。本文按官方幫助中心講清怎麼手動開啟搜尋、怎麼看引用來源、本地結果不準的原因(位置設定)、搜尋按鈕不見了怎麼排查,以及什麼時候該用深度研究。

    ChatGPT0
  2. 02

    ChatGPT 出現 network error 怎麼辦:長回答中斷、連接失敗與公司網絡的處理方法

    ChatGPT 提示 A network error occurred 或 websocket 連接錯誤、長回答寫到一半斷掉?本文按官方幫助中心講清原因、個人排查步驟,以及公司網絡需要放行的域名、WebSocket 和語音端口。

    ChatGPT0
  3. 03

    AI商品圖怎麼做:從實拍原圖到白底圖、場景圖、模特圖的完整流程

    用 AI 做電商商品圖,怎麼既好看又不「貨不對板」?本文按 OpenAI、Google 官方提示指南整理一套流程:拍好原圖 → 摳圖白底 → 場景合成 → 模特上身 → 檢查細節,附提示詞模板,並提醒廣告法對商品展示真實性的要求。

    ChatGPT其他 AI 工具0
  4. 04

    AI 做 PPT 哪個好:直接生成文件、Office 插件、Google 幻燈片、專用工具四條路線對比

    AI 做 PPT 用哪個?不排名,按官方文檔對比四條路線:在 ChatGPT / Claude 對話裏直接生成 pptx、用 PowerPoint 裏的 AI 插件、用 Google 幻燈片裏的 Gemini、用 Gamma 等專用工具;講清各自能不能編輯、套不套得了模板、適合什麼場景,並給出通用的五步做法。

    ChatGPTClaude0
  5. 05

    Codex CLI 怎麼安裝、怎麼更新:官方 4 種安裝命令(腳本、npm、Homebrew)、查看版本和 codex update

    Codex CLI 怎麼裝、怎麼更新?官方有 macOS/Linux 與 Windows 的安裝腳本、npm、Homebrew 四種方式,更新多是重跑同一條命令。本文原樣列出官方命令,講查版本、codex update 和首次登入。

    ChatGPTCodex0
  6. 06

    ChatGPT 公式怎麼複製到 Word、公式亂碼怎麼辦:用 Word 自帶的 LaTeX 輸入,什麼寫法會不識別

    ChatGPT 給的公式粘進 Word 亂碼?Word(Microsoft 365)支持 LaTeX 輸入:Alt + = 插入公式區,格式選 LaTeX,粘貼後轉成專業格式。按微軟文檔講步驟、寫法對照和不識別的關鍵詞。

    ChatGPT0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~