第一次调用
复制即用的示例,先跑通最小请求,再加高级参数。
准备 Key
在运行示例的同一个终端设置环境变量,再选择下方示例。命令只对当前终端及其新启动的程序生效;不要把真实 Key 提交到代码仓库。
- macOS / Linux / Git Bash
- Windows PowerShell
export TOKENROUTE_API_KEY="sk-你的Token"
$env:TOKENROUTE_API_KEY = "sk-你的Token"
下文 curl 命令使用 Bash 的换行与引号规则。Windows PowerShell 用户可使用 OpenAI 兼容接口中的 PowerShell 示例;其他协议也可使用 Python SDK。
OpenAI 兼容接口
常用的文本调用方式;本轮当前目录中的 36 个文本模型均完成最小调用,具体范围见厂商调用差异。
- curl
- Python
- Node.js
- PowerShell
curl https://api.smartwan.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${TOKENROUTE_API_KEY}" \
-d '{
"model": "deepseek-v4-flash",
"messages": [
{"role": "user", "content": "你好,请用一句话确认你已接入成功。"}
],
"max_tokens": 100
}'
pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["TOKENROUTE_API_KEY"],
base_url="https://api.smartwan.com/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "你好,请回复一句:调用成功"}],
max_tokens=100,
)
print(response.choices[0].message.content)
npm install openai
Node.js 示例可保存为 example.mjs,在已设置 Key 的终端运行 node example.mjs。
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.TOKENROUTE_API_KEY,
baseURL: "https://api.smartwan.com/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [{ role: "user", content: "你好,请回复一句:调用成功" }],
max_tokens: 100,
});
console.log(response.choices[0].message.content);
if (-not $env:TOKENROUTE_API_KEY) { throw "Set TOKENROUTE_API_KEY first" }
$requestHeaders = @{
Authorization = "Bearer $env:TOKENROUTE_API_KEY"
}
$requestBody = @{
model = "deepseek-v4-flash"
messages = @(@{ role = "user"; content = "Reply with OK" })
max_tokens = 1024
} | ConvertTo-Json -Depth 6
$response = Invoke-RestMethod -Method Post `
-Uri "https://api.smartwan.com/v1/chat/completions" `
-Headers $requestHeaders `
-ContentType "application/json; charset=utf-8" `
-Body ([System.Text.Encoding]::UTF8.GetBytes($requestBody))
$response.choices[0].message.content
成功时 choices[0].message.content 里是模型回复。
Anthropic Messages 接口
用 Claude 系列或需要 Anthropic 格式时用这个。下例使用 x-api-key,也可使用 Bearer,见认证说明。
curl https://api.smartwan.com/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: ${TOKENROUTE_API_KEY}" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-haiku-4-5",
"max_tokens": 100,
"messages": [
{"role": "user", "content": "你好,请回复一句:调用成功"}
]
}'
回复在 content 数组的 text 字段里。
Python(已验证配置:Anthropic SDK 1.7.0):
pip install anthropic
import os
import anthropic
client = anthropic.Anthropic(
api_key=os.environ["TOKENROUTE_API_KEY"],
base_url="https://api.smartwan.com",
)
response = client.messages.create(
model="claude-haiku-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Reply with OK"}],
)
print("".join(block.text for block in response.content if block.type == "text"))
Gemini 原生接口
Gemini 已列入模型目录。2026-09-22 已验证 gemini-3.6-flash、gemini-3.7-flash、gemini-3.8-flash 原生文本调用,以及 gemini-3.1-flash-image 图片生成。可用范围仍以账户权限和渠道状态为准。
模型名写在 URL 路径里,Header 用 x-goog-api-key。
curl https://api.smartwan.com/v1beta/models/gemini-3.8-flash:generateContent \
-H "Content-Type: application/json" \
-H "x-goog-api-key: ${TOKENROUTE_API_KEY}" \
-d '{
"contents": [{"parts": [{"text": "你好,请回复一句:调用成功"}]}],
"generationConfig": {"maxOutputTokens": 100, "temperature": 0.7}
}'
示例使用已验证的 gemini-3.8-flash;也可从模型列表选择你有权限使用的 Gemini 模型。
Python(已验证配置:Google GenAI SDK 2.24.0)。Base URL 使用根地址,版本由 api_version 指定:
pip install google-genai
import os
from google import genai
from google.genai import types
client = genai.Client(
api_key=os.environ["TOKENROUTE_API_KEY"],
http_options=types.HttpOptions(
base_url="https://api.smartwan.com",
api_version="v1beta",
),
)
response = client.models.generate_content(
model="gemini-3.8-flash",
contents="Reply with OK",
)
print(response.text)
Responses API
curl https://api.smartwan.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${TOKENROUTE_API_KEY}" \
-d '{
"model": "gpt-5.5",
"input": "用一句话介绍你自己",
"max_output_tokens": 100
}'
本次已验证 GPT 代表模型可用。Chat Completions 成功不代表支持 Responses;其他模型可能因协议转换或参数不匹配失败,错误不一定是 not implemented。具体结果见厂商调用差异。
图片生成
curl https://api.smartwan.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${TOKENROUTE_API_KEY}" \
-d '{
"model": "gpt-image-2",
"prompt": "一只坐在书桌旁阅读文档的橘猫,简洁插画风格",
"n": 1,
"size": "1024x1024"
}'
图片编辑用 /v1/images/edits,需上传有效图片文件。
常用参数
先使用上面的 model、prompt、n: 1 与 size: "1024x1024" 示例。size 是请求尺寸,返回成品仍需检查。
quality、background、output_format、output_compression 等高级参数的取值和行为需要按模型、接口与渠道分别验证。不要把某款模型的参数表直接套给其他图像模型;本页不将这些参数组合标为全部验证通过。
本次 gpt-image-2、grok-imagine-image-quality 返回 data[].b64_json,Gemini 返回 candidates[].content.parts[].inlineData,均通过了图像解码校验。客户端应按实际字段和 MIME 类型解析;若响应是 data URL 或外部 URL,分别按其格式处理,不要假定总会得到外部链接。
对成品尺寸有要求时,请检查实际像素尺寸。本次 GPT 请求 size: "1024x1024",一个返回样本实际为 1254×1254;请求尺寸不能代替成品校验。图片编辑、mask 与流式编辑没有在本轮覆盖。
怎么算成功
| 项目 | 预期 |
|---|---|
| HTTP 状态码 | 200 |
| OpenAI 兼容响应 | choices[0].message.content 有文本 |
| Anthropic 响应 | content 数组里有 text |
| Gemini 文本响应 | candidates[].content.parts[].text 有文本 |
| Responses 文本响应 | 在 output[] 的 message 中读取 content[] 的 output_text;不要假设只在第一个元素 |
usage | 部分接口返回 token 用量,可用于核对消耗 |
HTTP 200 但最终文本为空时,检查 finish_reason 和输出预算;推理模型可能先消耗推理 Token。本次 glm-5-turbo 从 128 提高到 1024 Token 后得到最终文本,其他任务应按需要调整。
跑不通先查这四项
| 检查项 | 说明 |
|---|---|
| Key | 是否完整复制、是否过期、账户是否有额度 |
| Base URL | 按客户端配置表填写;curl 写完整路径 |
| 模型名 | 从模型列表复制,大小写敏感 |
| Header | 与协议匹配——OpenAI 用 Authorization,Anthropic 可用 x-api-key 或 Bearer,Gemini 用 x-goog-api-key |
先用最小参数跑通,再逐步加 temperature、tools 这些。仍失败见常见问题。
下一步
- 厂商调用差异 — 各家的特殊参数限制
- 认证与 Base URL — 地址和鉴权的完整说明