DyRouter 开发文档 返回主站 进入控制台 →
AI 模型 API · 多协议统一网关

一个端点,接入
数十种主流模型

通过 DyRouter 统一调用全球主流大模型。兼容 OpenAI、Anthropic、Gemini 等多套协议,支持对话、向量、重排、图像与语音等能力。本页提供从创建令牌到完成首次请求的完整示例。

Base URL
https
https://api.dyrouter.ai/v1

快速开始 #

完成下面三个步骤,即可发送第一条模型请求。

1
选择模型

在模型广场查看可用模型,复制准确的模型标识(如 deepseek-chatgpt-4.1)。

2
创建 API Key

进入控制台创建令牌,按需设置分组、额度与过期时间。

3
发送请求

将 Base URL、API Key 与模型名称填入应用或代码。

Base URL 说明:大多数 OpenAI 兼容客户端填写 https://api.dyrouter.ai/v1;若工具会自动追加 /v1,则填写 https://api.dyrouter.ai。Anthropic 客户端请使用 https://api.dyrouter.ai(详见下方 Anthropic 章节)。

鉴权方式 #

所有请求均应在 HTTP Header 中携带 Bearer Token。请勿将真实密钥提交到公开仓库或暴露在前端代码中。

HTTP Header
Authorization: Bearer sk-your-api-key
Content-Type: application/json

获取模型列表 #

可通过接口获取当前令牌可访问的模型标识列表,也可在模型广场查看价格与能力。

cURL · GET /v1/models
curl https://api.dyrouter.ai/v1/models \
  -H "Authorization: Bearer sk-your-api-key"

接口类型总览 #

同一网关下按能力与协议划分的接口,按需选用对应的端点。

协议 / 能力接口端点说明
OpenAI 兼容Chat CompletionsPOST /v1/chat/completions聊天补全,最常用
OpenAI 兼容Responses APIPOST /v1/responses统一输入格式,多模态
OpenAI 兼容CompletionsPOST /v1/completions文本补全(指令式)
AnthropicMessagesPOST /v1/messagesClaude 系模型原生接口
Gemini生成POST /v1/chat/completionsGemini 模型,OpenAI 兼容调用
向量EmbeddingsPOST /v1/embeddings文本向量化
重排RerankPOST /v1/rerank检索结果重排序
图像ImagesPOST /v1/images/generations文生图
语音TTS / STTPOST /v1/audio/speech · /v1/audio/transcriptions语音合成 / 识别

Chat Completions #

适用于聊天、文本生成与绝大多数 OpenAI 兼容客户端。将 model 替换为模型广场中的实际标识。

cURL · POST /v1/chat/completions
curl https://api.dyrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-chat",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "你好,请介绍一下你自己。"}
    ]
  }'
字段类型说明
modelstring模型广场展示的准确模型标识
messagesarray按顺序排列的对话消息
streamboolean是否启用流式响应
temperaturenumber采样随机性;是否支持及范围取决于模型
max_tokensinteger生成 token 上限

Responses API #

支持 Responses API 的模型(如 GPT 系列)可使用统一输入格式,适合工具调用与多模态场景。

cURL · POST /v1/responses
curl https://api.dyrouter.ai/v1/responses \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4.1",
    "input": "用三句话解释什么是 API 网关。"
  }'
提示:并非所有模型都支持 Responses API;能否使用取决于模型详情中声明的端点能力。

Completions #

面向文本补全的旧式接口,部分模型仍支持。入参使用 prompt 而非 messages

cURL · POST /v1/completions
curl https://api.dyrouter.ai/v1/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "your-model-id",
    "prompt": "请续写下面的句子:\n\n人工智能正在改变",
    "max_tokens": 100
  }'

Anthropic Messages #

Claude 系列模型使用 Anthropic 原生 Messages 协议。Base URL 不携带 /v1,需显式指定 anthropic-version 头。

Base URL:使用官方 Anthropic SDK 时设置为 https://api.dyrouter.ai(SDK 会自动补全 /v1/messages)。
cURL · POST /v1/messages
curl https://api.dyrouter.ai/v1/messages \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-3-5-sonnet-20241022",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "帮我写一句产品 slogan"}
    ]
  }'

Gemini 接口 #

Gemini 模型通过 OpenAI 兼容的 Chat Completions 入口调用,无需切换协议。

cURL · Gemini(OpenAI 兼容)
curl https://api.dyrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-2.0-flash",
    "messages": [
      {"role": "user", "content": "用一句话介绍你自己"}
    ]
  }'

如你的网关开启了 Gemini 原生透传,也可用 generateContent 形式:

cURL · generateContent(原生)
curl "https://api.dyrouter.ai/v1/models/gemini-2.0-flash:generateContent" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "你好"}]}]
  }'
注意:原生 generateContent 端点可用性取决于网关的渠道配置,默认建议使用 OpenAI 兼容入口。

Embeddings #

将文本转为高维向量,用于语义检索、聚类与推荐。

cURL · POST /v1/embeddings
curl https://api.dyrouter.ai/v1/embeddings \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "什么是向量数据库"
  }'

Rerank #

对检索召回的多段文档按与查询的相关性重新排序,提升 RAG 效果。

cURL · POST /v1/rerank
curl https://api.dyrouter.ai/v1/rerank \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bge-reranker-v2-m3",
    "query": "什么是 API 网关",
    "documents": [
      "API 网关是统一管理 API 调用的入口层……",
      "向量数据库用于存储多维向量……",
      "负载均衡将流量分发到多个后端……"
    ],
    "top_n": 2
  }'

图像生成 #

通过文生图接口生成图片,支持的模型与尺寸以模型详情为准。

cURL · POST /v1/images/generations
curl https://api.dyrouter.ai/v1/images/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-1",
    "prompt": "一只戴着宇航头盔的柴犬",
    "size": "1024x1024"
  }'

语音 TTS / STT #

语音合成(TTS)

cURL · POST /v1/audio/speech
curl https://api.dyrouter.ai/v1/audio/speech \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "你好,欢迎使用 DyRouter。",
    "voice": "alloy"
  }' \
  --output speech.mp3

语音识别(STT)

cURL · POST /v1/audio/transcriptions
curl https://api.dyrouter.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer sk-your-api-key" \
  -F file="@audio.mp3" \
  -F model="whisper-1"

流式输出 #

在请求体中设置 "stream": true,服务通过 SSE 分段返回结果,客户端应持续读取事件直到结束标记。

stream 参数
{
  "model": "deepseek-chat",
  "messages": [{"role": "user", "content": "你好"}],
  "stream": true
}

状态码与排错 #

状态码常见原因处理建议
400参数或请求体格式错误检查 JSON、模型名与必填字段
401API Key 缺失或无效检查 Authorization Header 与令牌状态
403令牌无权访问目标资源检查分组、模型权限与额度
404端点或模型不可用确认接口路径与模型标识是否正确
429请求频率或额度受限降低并发、检查额度并采用指数退避
5xx服务或上游暂时异常记录请求时间和错误信息后重试

Claude Code #

在 Claude Code 中指向本网关即可接入。

环境变量
export ANTHROPIC_BASE_URL=https://api.dyrouter.ai
export ANTHROPIC_AUTH_TOKEN=sk-your-api-key

常用客户端 #

Cherry Studio

  • 提供商类型:选择 OpenAI(Anthropic 模型请选择 Anthropic)
  • API 地址:https://api.dyrouter.ai/v1
  • API 密钥:你的 sk- 令牌
  • 模型标识:模型广场中的模型名

Cline / Roo Code 等

  • 选择 OpenAI Compatible 提供商,填入同样的 Base URL 与密钥。
  • Anthropic 系模型请选择 Anthropic 提供商,Base URL 填 https://api.dyrouter.ai

SDK 示例 #

Python(openai-python)

Python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.dyrouter.ai/v1",
)

resp = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "你好"}],
    stream=True,
)

for chunk in resp:
    print(chunk.choices[0].delta.content or "", end="")

JavaScript(openai-node)

JavaScript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-your-api-key",
  baseURL: "https://api.dyrouter.ai/v1",
});

const stream = await client.chat.completions.create({
  model: "deepseek-chat",
  messages: [{ role: "user", content: "你好" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

安全建议 #

1
只在服务端保存密钥

密钥属于敏感凭据,切勿写入前端代码、客户端安装包或公开仓库。

2
最小化授权范围

为不同应用创建独立令牌,限制分组与可用额度。

3
定期轮换

定期更换长期令牌,及时吊销不再使用的密钥。

4
记录请求标识

保留请求 ID 与时间,便于排错与审计。

常见问题 #

为什么返回 401?

通常是未携带或错误的 Authorization: Bearer 头。请确认密钥完整、未被删除或禁用。

Base URL 需要带 /v1 吗?

取决于客户端。OpenAI 兼容客户端填 https://api.dyrouter.ai/v1;会自动追加 /v1 的工具填 https://api.dyrouter.ai

Claude / Gemini 模型怎么调用?

Claude 用 Anthropic Messages 接口(/v1/messages);Gemini 用 OpenAI 兼容的 Chat Completions 入口即可。

如何查看用量与余额?

登录控制台,在「令牌 / 用量」页面查看实时消耗与额度。

流式输出怎么开启?

在请求体设置 "stream": true,通过 SSE 持续读取分段结果。