文档目录
使用 OpenAI SDK
用 OpenAI / Anthropic 官方 SDK 调用 Tokenway:Python、Node.js 示例,流式输出,环境变量,常见报错。
只要把 base_url 指向本站、api_key 换成你的密钥,官方 SDK 就能直接使用。
两个地址别搞混
OpenAI SDK 的
base_url 带 /v1(https://tokenwayapi.com/v1);Anthropic SDK 的 base_url 不带(https://tokenwayapi.com)。先选对 SDK
| 模型 | 用哪个 SDK | 接口 |
|---|---|---|
| GPT | OpenAI SDK | Chat Completions 或 Responses |
| 其他模型(DeepSeek、Kimi、Gemini 等) | OpenAI SDK | 只能 Chat Completions |
| Claude | Anthropic SDK | 只能 Anthropic Messages |
Python(Chat Completions)
需要先 pip install openai
from openai import OpenAI
client = OpenAI(base_url="https://tokenwayapi.com/v1", api_key="sk-xxxxxxxx")
r = client.chat.completions.create(
model="gpt-6.1-sol",
messages=[{"role": "user", "content": "你好"}],
)
print(r.choices[0].message.content)Node.js(Chat Completions)
需要先 npm install openai
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://tokenwayapi.com/v1", apiKey: "sk-xxxxxxxx" });
const r = await client.chat.completions.create({
model: "gpt-6.1-sol",
messages: [{ role: "user", content: "你好" }],
});
console.log(r.choices[0].message.content);流式输出(边生成边返回)
Python
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="")用环境变量,不把地址和密钥写进代码
OpenAI 官方 SDK 会自动读取这两个环境变量,代码里就可以直接写 OpenAI():
macOS / Linux
export OPENAI_BASE_URL="https://tokenwayapi.com/v1"
export OPENAI_API_KEY="sk-xxxxxxxx"用其他系列的模型(DeepSeek、Kimi 等)
同一个 client,把 model 换成价格页上的模型名即可,只能走 Chat Completions:
Python
r = client.chat.completions.create(model="deepseek-v4.1-flash", messages=[{"role": "user", "content": "你好"}])
print(r.choices[0].message.content)查看有哪些模型
Python
for m in client.models.list():
print(m.id)列出的就是 模型定价 页上现在能调用的模型名。
Responses 接口(仅 GPT)
GPT 系列也支持 Responses,使用同一个 client;其他模型只支持 Chat Completions:
Python
r = client.responses.create(model="gpt-6.1-sol", input="你好")
print(r.output_text)Claude 用 Anthropic SDK
Claude 只支持 Anthropic 原生接口,不能通过 OpenAI SDK 的 Chat Completions 或 Responses 调用(会返回 400)。
Python(需要先 pip install anthropic)
import anthropic
client = anthropic.Anthropic(base_url="https://tokenwayapi.com", api_key="sk-xxxxxxxx")
m = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=256,
messages=[{"role": "user", "content": "你好"}],
)
print(m.content[0].text)Node.js(需要先 npm install @anthropic-ai/sdk)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://tokenwayapi.com", apiKey: "sk-xxxxxxxx" });
const m = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 256,
messages: [{ role: "user", content: "你好" }],
});
console.log(m.content[0].text);怎么确认接通了
运行上面任意一个示例,能打印出回复就说明接通了;再到控制台的 使用记录 看这一笔的模型、token 和扣费。
常见问题
| 现象 | 原因和处理 |
|---|---|
401 | 密钥填错或已停用,到 API 密钥 页确认。 |
402 | 余额不足,见 充值购买。 |
404 / 模型不存在 | 模型名要和 模型定价 页完全一致;OpenAI SDK 的 base_url 要带 /v1,Anthropic SDK 的不带。 |
400:不支持 xxx 接口 | 这个系列的模型用错了 SDK:Claude 用 Anthropic SDK,GPT 和其他模型用 OpenAI SDK,见 接口格式。 |
| 请求超时 | 长输出或推理类模型耗时会比较长,调大 SDK 的超时时间;到 服务状态 看线路是否正常。 |
其他错误见 错误码。
选好模型,核对费用再接入
查看当前模型的价格与参数,用自己的输入、输出和缓存用量估算成本;遇到报错时按错误码排查。