自己寫程式(curl / Python / Node) 串接教學
一把 key 三種介面:OpenAI Chat、Responses、Claude Messages,官方 SDK 改個網址就能用
- 介面:OpenAI Chat Completions
- 網址寫法:寫到 /v1(https://gpt.cherrychat.org/v1)
- 推薦模型:gpt-6.1-sol、claude-sonnet-5-5、deepseek-v4-flash
- 平台:macOS、Windows、Linux
串接步驟
記下接入三件套
同一把 key 三種介面格式都能用。用 OpenAI 的 SDK 時網址寫到 /v1;用 Anthropic(Claude)的 SDK 時網址只寫網域。
- Base URL(OpenAI 格式):https://gpt.cherrychat.org/v1(Chat 與 Responses 都用這個)
- Base URL(Anthropic 格式):https://gpt.cherrychat.org(只到網域,SDK 自己補 /v1/messages)
- API Key(金鑰):sk-你的金鑰
- 模型名稱:gpt-6.1-sol
先用 curl 測通
複製到終端機執行,回傳一段 JSON、裡面有 "content" 就代表網址和 key 都對。
macOS / Linux
curl https://gpt.cherrychat.org/v1/chat/completions \ -H "Authorization: Bearer sk-你的金鑰" \ -H "Content-Type: application/json" \ -d '{"model": "gpt-6.1-sol", "messages": [{"role": "user", "content": "你好"}]}'Windows(PowerShell)
$body = @{ model = "gpt-6.1-sol" messages = @(@{ role = "user"; content = "你好" }) } | ConvertTo-Json -Depth 5 Invoke-RestMethod -Method Post -Uri "https://gpt.cherrychat.org/v1/chat/completions" ` -Headers @{ Authorization = "Bearer sk-你的金鑰" } ` -ContentType "application/json; charset=utf-8" ` -Body ([System.Text.Encoding]::UTF8.GetBytes($body))Python(OpenAI SDK)
先執行 pip install openai,再把下方程式碼存成 demo.py,執行 python demo.py。後半段是串流輸出(邊產生邊列印)。
from openai import OpenAI client = OpenAI(base_url="https://gpt.cherrychat.org/v1", api_key="sk-你的金鑰") resp = client.chat.completions.create( model="gpt-6.1-sol", messages=[{"role": "user", "content": "用一句話介紹你自己"}], ) print(resp.choices[0].message.content) # 流式輸出 stream = client.chat.completions.create( model="gpt-6.1-sol", messages=[{"role": "user", "content": "寫一首關於春天的短詩"}], stream=True, ) for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)Node.js(OpenAI SDK)
先執行 npm install openai,把程式碼存成 demo.mjs,執行 node demo.mjs(需要 Node.js 18 以上)。
import OpenAI from 'openai'; const client = new OpenAI({ baseURL: 'https://gpt.cherrychat.org/v1', apiKey: 'sk-你的金鑰' }); const resp = await client.chat.completions.create({ model: 'gpt-6.1-sol', messages: [{ role: 'user', content: '用一句話介紹你自己' }], }); console.log(resp.choices[0].message.content); // 流式輸出 const stream = await client.chat.completions.create({ model: 'gpt-6.1-sol', messages: [{ role: 'user', content: '寫一首關於春天的短詩' }], stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ''); }Claude 原生格式(Anthropic SDK)
已有用 Anthropic SDK 寫的程式碼時,只改 base_url 和 api_key。注意這裡的網址只到網域。Python 先 pip install anthropic,Node 先 npm install @anthropic-ai/sdk。
Python
import anthropic client = anthropic.Anthropic(base_url="https://gpt.cherrychat.org", api_key="sk-你的金鑰") msg = client.messages.create( model="claude-sonnet-5-5", max_tokens=1024, messages=[{"role": "user", "content": "你好"}], ) print(msg.content[0].text)Node.js
import Anthropic from '@anthropic-ai/sdk'; const client = new Anthropic({ baseURL: 'https://gpt.cherrychat.org', apiKey: 'sk-你的金鑰' }); const msg = await client.messages.create({ model: 'claude-sonnet-5-5', max_tokens: 1024, messages: [{ role: 'user', content: '你好' }], }); console.log(msg.content[0].text);Responses 介面
OpenAI 新的 Responses 介面同樣可用,網址是 https://gpt.cherrychat.org/v1/responses。
Python
from openai import OpenAI client = OpenAI(base_url="https://gpt.cherrychat.org/v1", api_key="sk-你的金鑰") resp = client.responses.create(model="gpt-6.1-sol", input="用一句話介紹你自己") print(resp.output_text)curl
curl https://gpt.cherrychat.org/v1/responses \ -H "Authorization: Bearer sk-你的金鑰" \ -H "Content-Type: application/json" \ -d '{"model": "gpt-6.1-sol", "input": "你好"}'查看可用模型
回傳的清單就是這把 key 能用的全部模型名稱。
curl https://gpt.cherrychat.org/v1/models -H "Authorization: Bearer sk-你的金鑰"
容易踩的坑
- OpenAI SDK 的網址帶 /v1(https://gpt.cherrychat.org/v1);Anthropic SDK 的網址只到網域(https://gpt.cherrychat.org),兩者別混用。
- 正式專案不要把 key 寫死在要提交到 Git 的程式碼裡:OpenAI SDK 會自動讀 OPENAI_BASE_URL、OPENAI_API_KEY,Anthropic SDK 讀 ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY 環境變數。
- Responses 介面的平台內建工具(web_search、file_search、code_interpreter 等)與 background 模式暫不支援,需要聯網請自行用函式呼叫實作。
- 每個模型支援哪幾種介面格式,以「模型價格」頁的標示為準;模型名稱全小寫。
- 串流輸出的最後一塊可能只帶用量、沒有文字,程式碼裡要判斷空值(範例已處理)。
- 批次任務注意並行:預設每把 key 每分鐘 120 次請求、每個帳號同時最多 8 個請求。
錯誤訊息 → 原因 → 怎麼辦
| 看到的錯誤 | 原因 | 怎麼辦 |
|---|---|---|
| 出現 401(invalid api key / authentication_error) | key 複製錯了、帶了空格或換行,或這把 key 已停用 | 到 API 頁「我的金鑰」重新複製;用環境變數時確認讀到的不是舊值 |
| 出現 404 Not Found | OpenAI SDK 的網址少了 /v1,或 Anthropic SDK 的網址多了 /v1(變成 /v1/v1/messages) | OpenAI SDK 用 https://gpt.cherrychat.org/v1,Anthropic SDK 用 https://gpt.cherrychat.org |
| 提示模型不存在(model_not_found) | 模型名稱寫錯,或這個模型不支援目前的介面格式 | 用第 7 步列出的名稱,或換「模型價格」頁標示支援該格式的模型 |
| 出現 402 或「餘額不足」(Claude 格式顯示 billing_error) | 帳戶點數不足以支付這次呼叫。API 呼叫只扣點數,會員卡與無限卡都不抵扣 | 到櫻桃茶·智域GPT 的「商店」儲值任意金額,幾秒後重試即可 |
| 出現 403,提示 IP 或模型不被允許 | 這把 key 設了 IP 白名單或「允許的模型」,目前的 IP 或模型不在其中 | 到 API 頁「我的金鑰」編輯這把 key,補上或移除對應限制 |
| 出現 429 Too Many Requests | 請求太快:預設每把 key 每分鐘最多 120 次,每個帳號同時最多 8 個請求 | 調低工具裡的並行數或每秒請求數,依提示的 Retry-After 秒數稍等再試;多數工具會自動重試 |
教學核對於 2026-11-02。工具介面改版後可能和這裡略有不同,以官方文件為準。
Operated by UK Company CHERRYCHAT LTD · Company Number 16096119 · 客服微信 JsnonoChat · 內容由 AI 生成,請仔細甄別
