接入文档
本站完全兼容 OpenAI / Anthropic 两家原生协议,原 SDK 仅需替换 Base URL 即可使用。
基础信息
| 项 | 值 |
|---|---|
| Base URL | https://aiproxynode.com |
| OpenAI 兼容前缀 | /v1/* |
| Claude 原生前缀 | /v1/messages 或 /claude/v1/messages |
| 认证方式 | Authorization: Bearer sk-xxxxxx 或 x-api-key: sk-xxxxxx |
OpenAI 兼容协议
按 OpenAI 官方 ChatCompletions 协议调用即可。模型名使用各家官方名,本站会自动路由到对应上游。
from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxx",
base_url="https://aiproxynode.com/v1",
)
# 通过 OpenAI 协议调任意模型
for model in ["claude-sonnet-4-6", "claude-haiku-4-5", "deepseek-chat", "deepseek-reasoner"]:
resp = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": "Hi"}],
)
print(model, "->", resp.choices[0].message.content)多模态(图像输入)
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "图里写了什么?"},
{"type": "image_url", "image_url": {"url": "https://example.com/x.png"}},
],
}],
)Function Calling / Tools
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询某城市天气",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"],
},
},
}]
resp = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "北京天气如何?"}],
tools=tools,
)Claude 原生接口
使用 Anthropic 官方 SDK 时,把 base_url 改为 https://aiproxynode.com 即可。
import anthropic
client = anthropic.Anthropic(
api_key="sk-xxxxxx",
base_url="https://aiproxynode.com",
)
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hi"}],
)
print(resp.content[0].text)IDE 客户端接入(Claude Code / Cline / Cursor / Continue)
aiproxynode 一个 token 只绑定一个分组,跨分组不会自动转发:
kiro分组 — 跑 Claude 系列模型 (sonnet / opus / haiku)gptpuls分组 — 跑 GPT 系列模型 (gpt-5.5 / 5.4 / 5.3-codex)
如果在客户端看到 no available channels under group X,通常是 token 分组与 model 不匹配。
⚡ 一键配置脚本
不想手抄环境变量?下载对应脚本本地运行,脚本会自动备份现有配置并写入新配置。
| 场景 | 所需分组 | Windows (.ps1) | macOS (.sh) |
|---|---|---|---|
| VSCode + Claude Code | kiro | 下载 | 下载 |
| Claude Desktop + CLI | kiro | 下载 | 下载 |
| VSCode + Cline (走 GPT) | gptpuls | 下载 | 下载 |
| Cursor + Claude | kiro | 下载 | 下载 |
| Cursor 混用 (运行时选 Claude/GPT) | 运行时选 | 下载 | 下载 |
使用方法:右键链接 → 另存到本地 → Windows 右键 .ps1 用 PowerShell 运行 / macOS 终端 bash setup-xxx.sh
脚本会提示输入 token 并自动写好配置;不在脚本内做在线验证,首次使用建议在客户端发一条消息确认连通。
常见的 IDE 内 AI 助手都支持通过环境变量或设置项指向自定义 Anthropic 兼容端点。以下是几款常用客户端的接入方法。
Claude Code(VSCode 扩展 / CLI)
Anthropic 官方 Claude Code 通过 ANTHROPIC_BASE_URL 与 ANTHROPIC_AUTH_TOKEN 两个环境变量切换到本站:
# 系统级永久生效(推荐)
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://aiproxynode.com", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-xxxxxx", "User")
# 重启 VSCode 后生效# 写入 ~/.zshrc 或 ~/.bashrc export ANTHROPIC_BASE_URL="https://aiproxynode.com" export ANTHROPIC_AUTH_TOKEN="sk-xxxxxx" # 重启 VSCode / 终端后生效
如果只想在某次会话里临时切换:
ANTHROPIC_BASE_URL=https://aiproxynode.com \ ANTHROPIC_AUTH_TOKEN=sk-xxxxxx \ claude --model claude-sonnet-4-6
Claude Code 启动后默认查询本站 /v1/models 拉模型列表,本站当前 Claude 模型可见下方模型列表。运行 /model 命令可在会话中切换。推荐日常用 claude-sonnet-4-6,强推理用 claude-opus-4-7,便宜大量调用用 claude-haiku-4-5。
Cline / Roo Code(VSCode 扩展)
- 打开 Cline 设置(齿轮图标)
- API Provider 选
Anthropic - Use custom base URL 勾上,填
https://aiproxynode.com - API Key 填本站令牌
sk-xxxxxx - Model 选
claude-sonnet-4-6或claude-opus-4-7
Cursor
Cursor 不提供 Anthropic Base URL 自定义入口,所有第三方接入都走 OpenAI 兼容协议。在 Cursor Settings → Models 页面:
- 不要同时启用 Anthropic API Key:Cursor 已知 bug — 同时开启 Anthropic Key 与 Override OpenAI Base URL,所有 Claude 调用会返回 422 错误。本站令牌只能填在 OpenAI API Key 框。
- 模型名不要直接照抄官方:Cursor 会把
claude-sonnet-4-6、gpt-4o这类"看起来是官方模型"的名字优先路由到 Cursor 自家通道,导致请求根本不到本站。请使用本站专属前缀名(见下文步骤 3)。 - 添加后还得做两件事:自定义模型加进列表后,必须打开右侧开关 toggle ON,并且在聊天框模型下拉里手动选中它,否则 Cursor 仍走默认 Auto/built-in 模型。
- 关闭 Anthropic API Key 开关。如果之前开过,请关掉并清空 Anthropic Key 输入框。
- 展开 API Keys 段 → 打开 OpenAI API Key 开关 → 输入框粘贴本站令牌
sk-xxxxxx - 打开 Override OpenAI Base URL 开关 → URL 框填
https://aiproxynode.com/v1 - 滚到上方 Models 列表,找到 Add or search model 输入框,按下表新增(输完按 Enter):
使用别名而非官方模型名是为了避开 Cursor 的"built-in 优先"路由。站长需先在 new-api 的渠道 → 模型重定向里把这些别名映射到对应的真实模型;普通用户直接照抄即可,无需配置。填入的别名 实际调用的模型 用途 aiproxy/sonnetclaude-sonnet-4-6 日常代码、平衡性能与价格(推荐) aiproxy/haikuclaude-haiku-4-5 轻量任务、最便宜 aiproxy/opusclaude-opus-4-7 强推理、复杂任务 - 把每个新加的模型右侧开关都打开(ON)。仅添加不开关,Cursor 不会把它们暴露到聊天模型下拉里。
- 打开任一聊天/Agent 会话,点左下角模型选择器,从下拉中选中刚加的
aiproxy/sonnet(或其他)。不主动选中的话,Cursor 默认走 Auto = 内置模型,请求不会到本站。
- 在 Cursor 中发一句测试消息
- 登录 aiproxynode.com 控制台 → 日志,刷新看是否出现刚才那条请求
- 能在日志里看到 → 配置成功;看不到 → 大概率没勾步骤 5 或没在步骤 6 选中
GPT-5.4 / Opus 4.6 等)列表顶部预置的那些模型走 Cursor 自家订阅通道,与本站无关。即使你正确配了 OpenAI Base URL,只要在聊天框里选了内置模型,请求仍会走 Cursor 通道而非本站。
即使配置正确,Cursor 的 Tab 自动补全 和聊天回复的 Apply 应用到文件 这两个功能由 Cursor 自家小模型驱动,不会走本站。只有 Chat/Agent 主对话才走自定义模型。
Continue(VSCode / JetBrains 扩展)
编辑 ~/.continue/config.json,在 models 数组里添加:
{
"models": [
{
"title": "Claude Sonnet 4.6 via AiProxyNode",
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"apiKey": "sk-xxxxxx",
"apiBase": "https://aiproxynode.com"
}
]
}除非业务强依赖 Claude 原生特性(如 tool_use 块、content blocks 结构),优先用 OpenAI 兼容协议 — 调试工具与生态最完整。
流式输出
所有模型都支持流式(Server-Sent Events):
stream = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "写一首五言绝句"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)curl https://aiproxynode.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "写诗"}],
"stream": true
}'视频生成 (Seedance SR)
基于 Seedance 2.0 + 超分管线,支持文生视频 / 图生视频 / 视频参考,可选自动生成同步音频。任务异步执行,创建后轮询查结果。
端点
| 操作 | 方法 | URL |
|---|---|---|
| 创建任务 | POST | https://aiproxynode.com/v1/videos |
| 查询任务 | GET | https://aiproxynode.com/v1/videos/{task_id} |
seedance 分组下aiproxynode 一个 token 只绑定一个分组。请到控制台为视频用途单独创建 token,并把分组选为 seedance;用别的分组调用会返回 no available channel under group X。
可用 SKU
| model | 输出 | 单价 (¥/任务) |
|---|---|---|
seedance-2-0-sr-720p | 720p (480p 底模 + 超分) | 0.95 |
seedance-2-0-sr-1080p | 1080p (720p 底模 + 超分) | 1.79 |
创建任务
请求体字段
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
model | string | 是 | — | 见上表 SKU |
prompt | string | 条件 | — | 文本提示词;无 images/videos 时必填,500 字内为佳。台词放双引号内 |
duration | int | 否 | 5 | 时长(秒),范围 4–15 |
ratio | string | 否 | adaptive | 16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 21:9 / adaptive |
generate_audio | bool | 否 | true | 是否生成同步音频(人声+音效+BGM)。需要纯静音视频请显式传 false |
audios | array | 否 | — | 参考音频(风格/情绪参考,非人声克隆),见下方音频章节 |
images | array | 否 | — | 图生视频参考帧 |
videos | array | 否 | — | 视频参考 |
seed | int | 否 | — | 复现种子 |
negative_prompt | string | 否 | — | 负向提示 |
fps | int | 否 | — | 输出帧率 |
文生视频(带音频)
把台词放在双引号内能优化对白效果:
curl -X POST https://aiproxynode.com/v1/videos \
-H "Authorization: Bearer sk-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-sr-720p",
"prompt": "一对情侣在咖啡馆窗边对坐。女生轻笑说\"今天天气真好啊\",男生回答\"是啊,我们出去走走吧\",电影质感",
"duration": 8,
"ratio": "16:9",
"generate_audio": true
}'纯静音视频
curl -X POST https://aiproxynode.com/v1/videos \
-H "Authorization: Bearer sk-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-sr-720p",
"prompt": "neon city street in the rain at night",
"duration": 5,
"generate_audio": false
}'图生视频(URL 数组,最常用)
最简写法就是塞 URL 字符串数组,默认作为参考帧 (reference_image):
curl -X POST https://aiproxynode.com/v1/videos \
-H "Authorization: Bearer sk-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-sr-720p",
"prompt": "a calm beach scene, gentle waves",
"duration": 5,
"images": [
"https://cdn.example.com/scene1.jpg",
"https://cdn.example.com/scene2.jpg"
]
}'图生视频(首尾帧,需 role)
要明确指定首帧 / 尾帧时,改用对象数组并写 role:
curl -X POST https://aiproxynode.com/v1/videos \
-H "Authorization: Bearer sk-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-sr-1080p",
"prompt": "smooth transition from day to night",
"duration": 8,
"images": [
{"url": "https://cdn.example.com/day.jpg", "role": "first_frame"},
{"url": "https://cdn.example.com/night.jpg", "role": "last_frame"}
]
}'两种写法都接受:"images": ["url1", "url2"] 等价于 "images": [{"url":"url1","role":"reference_image"}, ...]。videos(默认 reference_video)、audios(默认 reference_audio)同理。需要 first_frame/last_frame 等具体角色时必须用对象写法。
音频参数详解
generate_audio(推荐使用)
true(默认):模型按画面与 prompt 自动生成人声、音效、BGM 三轨混音false:仅出画面,无声音- 想要"角色说什么":把台词包裹在 prompt 的中英文双引号里。这是 Seedance 上游推荐写法
audios(参考音频,非人声克隆)
提供 1–3 段参考音频,模型按其风格/情绪/语速等特征生成新音频。不是把这段音频原样嵌进视频,也不会克隆里面的人声。
最简写法 — URL 字符串数组,默认作为 reference_audio:
{
"model": "seedance-2-0-sr-720p",
"prompt": "..., 一个温柔的女声轻声说道",
"audios": ["https://cdn.example.com/voice_sample.wav"]
}对象写法(等价,只有需要显式带 role 时才用):
{
"audios": [
{"url": "https://cdn.example.com/voice_sample.wav", "role": "reference_audio"}
]
}规格要求(来自上游):
- 格式:
wav/mp3 - 单段:2–15 秒,
<15MB - 总时长 ≤15 秒,最多 3 段
- URL 必须公网可访问(kuaizi 服务侧主动拉取)
本接口的 audios 只参考音色/情绪,不嵌入原音轨。如果你的目标是把现成的人声配到生成的视频里,需要拿到视频后用 ffmpeg / Premiere 等工具自己合成。
创建响应
{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "seedance-2-0-sr-720p",
"status": "in_progress",
"progress": 0,
"created_at": 1782628820
}记下 id(或 task_id,两者相同)用于轮询。
轮询任务
curl https://aiproxynode.com/v1/videos/task_xxxxxxxxxxxxxxxxxxxxxxxx \ -H "Authorization: Bearer sk-xxxxxx"
状态值
| status | 含义 |
|---|---|
queued | 排队中 |
in_progress | 生成中,继续轮询 |
completed | 完成,metadata.url 是带音轨的成品视频 |
failed | 失败,error 字段含原因 |
完成响应
{
"id": "task_xxx",
"task_id": "kz-cgt-...",
"object": "video",
"model": "seedance-2-0-sr-720p",
"status": "completed",
"progress": 100,
"created_at": 1782628820,
"completed_at": 1782629100,
"metadata": {
"url": "https://bk-hs-p-bj-lizhen.tos-cn-beijing.volces.com/.../xxx_output.mp4"
}
}上游返回的 metadata.url 是签名链接,默认 24 小时过期。请在到期前下载或转存到自有存储。
轮询建议
- 间隔:10 秒一次
- 总耗时:5 秒视频通常 60–300 秒出片,10 秒 + 1080p 最长可到 7 分钟
- 客户端硬超时建议设 10 分钟
Python 最小示例
import time, requests
API = "https://aiproxynode.com"
TOKEN = "sk-xxxxxx" # seedance 分组下的 token
H = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
r = requests.post(f"{API}/v1/videos", headers=H, json={
"model": "seedance-2-0-sr-720p",
"prompt": '一只猫在沙滩漫步,海浪声轻拍。猫"喵"地叫了一声',
"duration": 5,
"ratio": "16:9",
"generate_audio": True,
}).json()
tid = r["id"]
while True:
s = requests.get(f"{API}/v1/videos/{tid}", headers=H, timeout=30).json()
if s["status"] == "completed":
print(s["metadata"]["url"]); break
if s["status"] == "failed":
raise RuntimeError(s.get("error"))
time.sleep(10)模型列表
常用模型直接使用官方模型名调用即可。完整可用模型与定价见 主站 → 模型广场。
OpenAI
本站目前未开通 OpenAI 渠道,建议改用 claude-sonnet-4-6(综合能力对标 GPT-4o)或 deepseek-chat(高性价比)。后续上线 OpenAI 渠道时此处会同步更新。
Anthropic Claude
claude-haiku-4-5— 最便宜,适合大量轻量调用claude-sonnet-4-5·claude-sonnet-4-6— 平衡性能与价格claude-opus-4-5·claude-opus-4-6·claude-opus-4-7— 最强推理
推荐使用上述 alias 形式调用。当前活跃版本对应的 dated 形式(claude-haiku-4-5-20251001 / claude-sonnet-4-5-20250929 / claude-opus-4-5-20251101)同样可用——Anthropic 官方 SDK 与 Claude Code 在内部会把 alias 映射成 dated 名发出,无需手动指定。已退役的旧 dated(如 claude-sonnet-4-20250514)会返回 503 model_not_found。
DeepSeek
deepseek-chat— 通用对话与代码(V4 系列最新版)deepseek-reasoner— 长链推理 / 数学 / 复杂任务deepseek-coder— 代码专用别名
视频生成 (Seedance SR)
seedance-2-0-sr-720p— 480p 底模 + 超分到 720p,0.95 元/任务seedance-2-0-sr-1080p— 720p 底模 + 超分到 1080p,1.79 元/任务
异步任务,需调 视频生成接口 创建并轮询。token 必须在 seedance 分组下。
本站当前未开通 Moonshot / 豆包 / Qwen / GLM / Gemini / OpenAI 渠道,请勿调用上述模型名(会返回 503 No available channel)。完整可用模型与定价以 主站模型广场为准。
错误码
| HTTP | 错误类型 | 说明 |
|---|---|---|
| 400 | invalid_request_error | 请求参数错误,常见为缺字段或字段类型错 |
| 401 | authentication_error | API Key 不正确或被禁用 |
| 402 | insufficient_quota | 余额不足或令牌额度耗尽 |
| 403 | forbidden | 令牌无该模型权限 |
| 404 | not_found | 模型名不存在或已下线 |
| 429 | rate_limit_exceeded | 触发限流,重试或降低并发 |
| 500 | internal_error | 上游或网关异常,请重试 |
| 502 / 503 | upstream_error | 上游临时不可用,自动重试或换模型 |
对外服务务必加幂等重试(指数退避),并对 5xx 失败做模型自动降级。