跳转到主要内容
文档目录

使用 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接口
GPTOpenAI SDKChat Completions 或 Responses
其他模型(DeepSeek、Kimi、Gemini 等)OpenAI SDK只能 Chat Completions
ClaudeAnthropic 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 的超时时间;到 服务状态 看线路是否正常。

其他错误见 错误码。

选好模型,核对费用再接入

查看当前模型的价格与参数,用自己的输入、输出和缓存用量估算成本;遇到报错时按错误码排查。