OpenAI 相容 API;一組 sk-cafe- 金鑰、一個台幣錢包。為人類開發者與 AI Agent 設計。
Base URL: https://api.aciemind.com/v1
API Key: sk-cafe-...(帳號中心建立,或 Agent 用 POST /api/agent/register 自助取得)
from openai import OpenAI
client = OpenAI(base_url="https://api.aciemind.com/v1", api_key="sk-cafe-...")
r = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "你好"}],
)
print(r.choices[0].message.content)
curl https://api.aciemind.com/v1/chat/completions \
-H "Authorization: Bearer sk-cafe-..." \
-H "Content-Type: application/json" \
-d '{"model":"MiniMax-M3","messages":[{"role":"user","content":"ping"}]}'
不用改程式碼的其他部分,只需要換 base_url 和 api_key。Model ID 用短名稱(見模型目錄),不用 provider 前綴。
Authorization: Bearer sk-cafe-...。金鑰只在建立/註冊當下顯示一次,請立即保存;遺失只能重新建立。
| Header | 說明 |
|---|---|
x-cafe-channel | 本次請求實際使用的上游通道名稱 |
x-cafe-credit-remaining | 錢包剩餘餘額(mTWD;÷1000 = NT$) |
x-cafe-quota-remaining | token 硬上限模式下的剩餘額度(quota_tokens > 0 時才有意義) |
x-cafe-ratelimit-limit-requests | 每分鐘請求數上限(RPM) |
x-cafe-ratelimit-remaining-requests | 本分鐘視窗剩餘請求數 |
| 層級 | RPM | 每日次數 | 備註 |
|---|---|---|---|
| 一般 token(預設) | 60 | 不限(吃錢包) | 建立 token 時可調整 |
| Agent 自助註冊 | 30 | rpd 上限 1000 | 保守配額,防單一 agent 失控 |
auto:free 免費層 | 6 | 300(有餘額)/100(餘額 0) | 不論 token 本身 RPM 多高都夾這層 |
| 狀態碼 | code | 說明 |
|---|---|---|
| 400 | — | 請求格式錯誤(無效 JSON、缺必填欄位) |
| 401 | invalid_token | API Key 遺失、無效 |
| 402 | insufficient_credits | 錢包餘額不足(免費模型不受此限) |
| 403 | token_disabled / model_not_allowed | token 已停用,或模型不在白名單 |
| 404 | — | 該 model 沒有設定可用 channel |
| 429 | quota_exhausted / free_tier_daily_limit / agent_register_ip_limit | 硬上限用罄、免費層次數上限,或 agent 註冊防刷 |
| 502 | — | 所有上游 channel 皆失敗(含自動 fallback 後) |
| 503 | agent_register_site_limit | 全站 agent 註冊今日名額已滿 |
| 方法 | 路徑 | 說明 |
|---|---|---|
| POST | /api/agent/register | Agent 自助註冊,公開端點,立即發 API Key + NT$1 試用金 |
| POST | /v1/chat/completions | Chat(主要端點,支援 stream、tools) |
| POST | /v1/messages | Anthropic 相容(Claude Code / ZCode 等原生 Claude 協議客戶端) |
| POST | /v1/embeddings | Embeddings(需模型有 route) |
| POST | /v1/images/generations | 圖像生成(需模型有 route) |
| GET | /v1/models | 此 token 可用模型(依白名單過濾) |
| GET | /api/public/models | 公開模型清單 + 定價(免驗證) |
| GET | /api/public/catalog | 公開完整目錄(含 capabilities / modalities / provider) |
| POST | /api/redeem | 程式化兌換 TC- 預付卡(body: {"code":"TC-..."}) |
POST /v1/chat/completions{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "..."}],
"stream": false,
"tools": [ /* OpenAI function-calling 格式,選填 */ ]
}
回傳 usage.total_tokens 用來換算成本;stream:true 時走 SSE,串流結束後才在背景結算扣款。
POST /v1/messages(Anthropic 相容)金鑰放 x-api-key(Anthropic 慣例),也接受 Authorization: Bearer。完整支援 tool_use 雙向轉換,串流回合規 Anthropic SSE。詳見下方「SDK 參考」的 Claude Code 設定。
模型 z-image-turbo、qwen-image-plus 已配置 BazaarLink fallback 路由(按張計費):
curl https://api.aciemind.com/v1/images/generations \
-H "Authorization: Bearer sk-cafe-..." \
-H "Content-Type: application/json" \
-d '{"model":"z-image-turbo","prompt":"一隻在咖啡廳寫程式的貓","n":1,"size":"1024x1024"}'
計費以生成張數為準;回應 header x-cafe-channel 顯示實際上游。
模型 text-embedding-3-small 已配置 BazaarLink fallback 路由,可直接呼叫:
curl https://api.aciemind.com/v1/embeddings \
-H "Authorization: Bearer sk-cafe-..." \
-H "Content-Type: application/json" \
-d '{"model":"text-embedding-3-small","input":"Token Cafe embedding test"}'
回應 header x-cafe-channel 顯示實際上游;計費以 prompt token 為主。
POST /api/agent/registercurl -X POST https://api.aciemind.com/api/agent/register \
-H "Content-Type: application/json" \
-d '{"name": "my-agent"}' # body 選填
{
"ok": true,
"api_key": "sk-cafe-...",
"endpoint": "https://api.aciemind.com/v1/chat/completions",
"trial_ntd": 1,
"free_model": "auto:free",
"limits": { "rpm": 30, "rpd": 1000, "max_concurrency": 2, "free_model_rpm": 6 }
}
api_key 只回傳這一次,收到後立即保存。防刷限制:同 IP 24 小時內限 3 次、全站每日 200 次。
完全相容 OpenAI SDK 生態——只需更改 base_url 與 api_key,其餘程式碼不變。
from openai import OpenAI
client = OpenAI(base_url="https://api.aciemind.com/v1", api_key="sk-cafe-...")
resp = client.chat.completions.create(model="gpt-4o-mini", messages=[...])
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.aciemind.com/v1", apiKey: "sk-cafe-..." });
const resp = await client.chat.completions.create({ model: "gpt-4o-mini", messages: [...] });
# Anthropic Python/TS SDK
base_url="https://api.aciemind.com", api_key="sk-cafe-..."
# Claude Code CLI
export ANTHROPIC_BASE_URL=https://api.aciemind.com
export ANTHROPIC_API_KEY=sk-cafe-...
https://api.aciemind.com/v1aider --openai-api-base https://api.aciemind.com/v1 --openai-api-key sk-cafe-...from langchain_openai import ChatOpenAI
llm = ChatOpenAI(base_url="https://api.aciemind.com/v1", api_key="sk-cafe-...", model="gpt-4o-mini")
Token Cafe 對 agent 沒有登入介面、沒有人工審批——自助註冊、免費層、標準 Bearer 金鑰,任何支援 OpenAI API 的框架都能直接接。
# Step 1:申請 Key(一次性,全程無人工介入)
curl -X POST https://api.aciemind.com/api/agent/register -d '{}'
# → { "api_key": "sk-cafe-...", "free_model": "auto:free", "trial_ntd": 1, ... }
# Step 2:免費開始(不消耗試用金,完全免費)
curl https://api.aciemind.com/v1/chat/completions \
-H "Authorization: Bearer sk-cafe-..." \
-H "Content-Type: application/json" \
-d '{"model":"auto:free","messages":[{"role":"user","content":"hello"}]}'
# Step 3:需要 Claude / GPT 等更強模型時,用試用金或儲值
curl https://api.aciemind.com/v1/chat/completions \
-H "Authorization: Bearer sk-cafe-..." \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"hello"}]}'
model: "auto:free" 完全免費,系統自動選擇當下最適合的免費模型(不保證是哪一家)。免費層有嚴格限流(6 RPM,儲值帳號每日 300 次、未儲值 100 次),適合 agent 開發測試、CI、demo;正式生產工作流建議儲值改用固定模型(品質與延遲更穩定)。
把 skill.md 餵給 Claude / Cursor / Copilot 等助理,它就能自己理解 Token Cafe 的接入方式,不需要你手動貼程式碼片段。
curl -s https://token.aciemind.com/skill.md
# CrewAI(透過 langchain_openai)
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(base_url="https://api.aciemind.com/v1", api_key="sk-cafe-...", model="claude-haiku-4-5")
# AutoGen
config_list = [{
"model": "claude-haiku-4-5",
"base_url": "https://api.aciemind.com/v1",
"api_key": "sk-cafe-...",
}]
任何支援 base_url + api_key 自訂端點的 agent 框架都適用同一模式。
帳號中心 Dashboard「計費驗證 Probe」提供兩種模式: