如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY …如何設定OpenAI Compatible API Key (ex: POE_API_KEY )?

加入好友
加入社群
如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

OpenAI platform :
https://platform.openai.com/home

點取最左小角的Personal

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

Organization settings:

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

Billing:

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

Usage Limit

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

Edit spend limit

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

setx OPENAI_API_KEY …
是 Windows 用來永久設定環境變數的指令,
通常是把你的 OpenAI API Key 存起來,
讓程式不用把金鑰寫死在程式碼中。
例如:
setx OPENAI_API_KEY “sk-proj-xxxxxxxxxxxxxxxxxxxxxxxx”
設定成功後,會看到類似:
SUCCESS: Specified value was saved.
—和 set 有什麼不同?
只對目前 Command Prompt 有效:
set OPENAI_API_KEY=sk-proj-xxxxxxxx
關掉 CMD 就消失了。
永久儲存(建議):
setx OPENAI_API_KEY “sk-proj-xxxxxxxx”
重新開啟 CMD、PowerShell 或 VS Code Terminal 後就可以使用。
—Python 怎麼讀?

import os
api_key = os.getenv("OPENAI_API_KEY")
print(api_key)

from openai import OpenAI
client = OpenAI()  # 會自動抓 OPENAI_API_KEY
# 會自動讀取 OPENAI_API_KEY不用寫
# client = OpenAI(api_key="sk-proj-...")


—如何確認有沒有設定成功?
CMD:

echo %OPENAI_API_KEY%

PowerShell:

echo $env:OPENAI_API_KEY

Python:

import os
print(os.getenv("OPENAI_API_KEY"))

—注意事項
setx 有兩個容易踩到的地方:
1. 不會影響目前已開啟的終端機執行 setx 後,
要重新開啟 CMD、PowerShell、VS Code Terminal,
新的環境變數才會生效。
2. 不要把 API Key 上傳到 GitHub
不要直接把 sk-proj-… 寫進程式碼或公開分享。
如果你是照 OpenAI 官方文件學習 API,
使用 setx OPENAI_API_KEY … 是
官方建議的做法之一(Windows)

最小範例:

from openai import OpenAI

# 會自動讀取環境變數 OPENAI_API_KEY ,不用寫
# client = OpenAI(api_key="sk-proj-...")
client = OpenAI()

response = client.responses.create(
    model="gpt-4.1-mini", #"gpt-5.6-terra" ,#
    input="Hi"
)

print(response.output_text)

輸出:

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

1. setx 指令

  • setx 是 Windows 提供的用來永久寫入環境變數的指令(寫入後需重新開啟命令提示字元視窗才生效)。
  • Windows 上常見設法設環境變數:
    • 臨時:set OPENAI_API_KEY=...(只對目前視窗有效)
    • 永久:setx OPENAI_API_KEY ...(寫到使用者環境變數)

2. 在 Ubuntu/Linux 怎麼設?

  • Ubuntu/Linux 沒有 setx 指令。
  • 通常設環境變數有以下做法:
    • 臨時(只對當前 shell 有效):
export OPENAI_API_KEY=你的API金鑰

永久(加到 shell 啟動檔,例如 .bashrc.zshrc):

echo 'export OPENAI_API_KEY=你的API金鑰' >> ~/.bashrc
source ~/.bashrc

總結比較表

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

官方文件建議

  • OpenAI 官方文件會依照不同作業系統建議不同指令
    • Windows:set 或 setx
    • Ubuntu/Linux/macOS:export 或修改 .bashrc.zshrc

結論

  • Ubuntu/Linux 上不能用 setx,要用 export
  • 若要永久生效,請寫到 .bashrc 或 .zshrc

推薦hahow線上學習python: https://igrape.net/30afN

  1. 方法一:程式碼中指定 api_key + base_url
  2. 方法二:統一使用 OPENAI_API_KEY + OPENAI_BASE_URL 環境變數,程式碼完全不用改

第二種特別適合你做 Streamlit / LangChain / RAG 時,在不同 Provider 間切換。

OpenAI Compatible API Key:兩種設定方法完整教學

很多 AI Provider 都提供 OpenAI-compatible API,例如 Poe、OpenRouter、Ollama、vLLM 等。

所謂「OpenAI 相容」不是代表它們是 OpenAI,而是:

API 的呼叫格式盡量模仿 OpenAI SDK。

例如原本:

client.chat.completions.create(...)

換成 Poe 或其他 Provider 後,通常這段程式仍然可以繼續使用;主要差別是:

API Key
Base URL
Model Name

Poe 官方目前也是直接使用 OpenAI Python SDK,只修改 API Key 與 base_url


一、先理解 OpenAI 為什麼通常不用設定 base_url

使用 OpenAI:

from openai import OpenAI

client = OpenAI()

SDK 會自動讀取:

OPENAI_API_KEY

而且 SDK 內建預設:

https://api.openai.com/v1

所以:

client = OpenAI()

實際上概念上等於:

client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY"),
    base_url="https://api.openai.com/v1"
)

只是後面兩個預設值 SDK 已經幫你處理了。OpenAI Python SDK 的程式碼也顯示:如果沒有指定 base_url,會先讀取 OPENAI_BASE_URL,再沒有才使用 OpenAI 官方預設 URL。


二、OpenAI Compatible API 有兩種設定方法

假設我們要使用 Poe:

API Key你的 Poe API Key
Base URL:https://api.poe.com/v1

Poe 官方的 OpenAI-compatible API 就是使用這個 Base URL。


方法一:在程式碼中明確指定

這是最直觀的方法。

1. 設定 API Key

Windows CMD:

setx POE_API_KEY "你的_POE_API_KEY"

重新開啟 Terminal 後才會生效。

2. Python

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("POE_API_KEY"),
    base_url="https://api.poe.com/v1"
)

response = client.chat.completions.create(
    model="Claude-Sonnet-4.6",
    messages=[
        {
            "role": "user",
            "content": "Hello"
        }
    ]
)

print(response.choices[0].message.content)

這種方法的邏輯非常清楚:

程式

 ├─ API KeyPOE_API_KEY

 └─ Server  → https://api.poe.com/v1

Poe 官方提供的 Python 範例也是這種方式。


優點

  • 一看程式就知道使用哪個 Provider
  • OpenAI、Poe 可以同時使用
  • 適合多 Provider 專案

例如:

import os
from openai import OpenAI

openai_client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY")
)

poe_client = OpenAI(
    api_key=os.getenv("POE_API_KEY"),
    base_url="https://api.poe.com/v1"
)

然後:

openai_client

   OpenAI

poe_client

     Poe

方法二:使用 OPENAI_API_KEY + OPENAI_BASE_URL

這個方法的最大特色是:

程式碼完全不用知道你現在連的是 OpenAI、Poe
還是其他 OpenAI-compatible API。

使用 Poe 時

Windows CMD:

setx OPENAI_API_KEY "你的_POE_API_KEY"

setx OPENAI_BASE_URL "https://api.poe.com/v1"

重新開啟 Terminal。

程式就可以直接寫:

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="Claude-Sonnet-4.6",
    messages=[
        {
            "role": "user",
            "content": "Hello"
        }
    ]
)

print(response.choices[0].message.content)

完全不需要:

api_key=
base_url=

因為 SDK 會自動讀取:

OPENAI_API_KEY
OPENAI_BASE_URL

OpenAI Python SDK 的目前實作確實會在沒有明確傳入 base_url 時讀取 OPENAI_BASE_URL;沒有設定才回退到 https://api.openai.com/v1


三、兩種方法比較

如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

方法一

環境變數
POE_API_KEY


程式
api_key = POE_API_KEY
base_url = api.poe.com/v1

方法二

環境變數

OPENAI_API_KEY
OPENAI_BASE_URL


OpenAI()


自動讀取設定

最後一句話總結

方法一適合「程式明確指定 Provider」;
方法二適合「程式不變,只靠環境變數切換 Provider」。

推薦hahow線上學習python: https://igrape.net/30afN

加入好友
加入社群
如何設定OPENAI_API_KEY 每月使用上限?如何將 OPENAI_API_KEY 永久 存在環境變數?setx OPENAI_API_KEY ...如何設定OpenAI Compatible API Key (ex: POE_API_KEY )? - 儲蓄保險王

儲蓄保險王

儲蓄險是板主最喜愛的儲蓄工具,最喜愛的投資理財工具則是ETF,最喜愛的省錢工具則是信用卡

You may also like...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *