ModelHub Open API

一个令牌接入多模型网关:Chat Completions、Responses、Anthropic Messages、识图、生图、视频、网页搜索、抓取、向量与重排。开发者在任意支持 OpenAI / Anthropic 格式的客户端中把 base_url 指向 ModelHub 即可使用。

服务可用 Base URL: https://modelhub.xctoy.cn/v1 OpenAI + Anthropic 兼容 请求级智能路由

快速开始

联系管理员开通令牌(sk-xc-…)。拿到令牌后,第一个对话请求只需要 3 个字段:

接入要素
项值
Base URLhttps://modelhub.xctoy.cn/v1
鉴权OpenAI:Authorization: Bearer <令牌>
Anthropic:x-api-key: <令牌>
对话模型deepseek-flash(性价比首选,峰谷计价)等
响应格式POST /v1/responses,兼容 OpenAI Responses
Anthropic MessagesPOST /v1/messages,支持 Claude Code / Claude Desktop / Anthropic SDK
模型与额度GET /v1/models、GET /v1/usage
搜索 / 抓取POST /v1/tools/search、POST /v1/tools/fetch
识图 / 生图 / 视频POST /v1/image/analyze、/v1/images/generations、/v1/videos

curl 示例

curl https://modelhub.xctoy.cn/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xc-你的令牌" \
  -d '{
    "model": "deepseek-flash",
    "messages": [{"role": "user", "content": "你好"}]
  }'

Python 示例

from openai import OpenAI

client = OpenAI(
    base_url="https://modelhub.xctoy.cn/v1",
    api_key="sk-xc-你的令牌",
)

resp = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

Claude Code / Claude Desktop 将 ANTHROPIC_BASE_URL 设为 https://modelhub.xctoy.cn 或按客户端要求设为 https://modelhub.xctoy.cn/v1,API Key 使用 ModelHub 令牌;OpenAI 客户端继续使用上面的 /v1 Base URL。

鉴权

  • 所有端点使用同一把令牌。OpenAI 端点携带 Authorization: Bearer sk-xc-…;Anthropic Messages 携带 x-api-key: sk-xc-… 与 anthropic-version: 2023-06-01。
  • 可选请求头 X-App-Id 可与令牌 AppId 配合,用于调用归集。
  • 令牌可配置模型白名单(只允许调用指定模型)与金额配额(可用额度上限)。
  • 额度用尽后返回 429,充值(管理员加额)后自动恢复。
  • 令牌信息请妥善保存,泄漏后可联系管理员吊销重建。

模型目录与令牌用量

GET/v1/models

返回标准 OpenAI 模型列表。ModelHub 的上下文、模态、能力、端点和渠道信息放在 modelhub 扩展对象中。

curl https://modelhub.xctoy.cn/v1/models \
  -H "Authorization: Bearer sk-xc-你的令牌"

常用扩展字段:context_window、max_output_tokens、input_modalities、output_modalities、supported_parameters、endpoint_count、providers 与 route_modes。

GET/v1/usage

查询当前令牌的用量、金额额度与活跃预算预占。

curl https://modelhub.xctoy.cn/v1/usage \
  -H "Authorization: Bearer sk-xc-你的令牌"
{
  "key": "项目令牌",
  "used_m": 1.2,
  "quota_m": 5,
  "quota_amount": 500,
  "used_amount": 12.34,
  "reserved_amount": 0.56,
  "remaining_amount": 487.1
}

reserved_amount 是进行中请求的临时预占,不等于已扣费;remaining_amount 已扣除已用金额和活跃预占。quota_amount=0 时返回 null,表示金额额度不限。

对话 · chat/completions

POST/v1/chat/completions

OpenAI 兼容的对话补全接口,支持流式(stream: true)。请求与响应结构与 OpenAI 一致。

请求参数

字段说明
model模型名,见下方定价表
messages消息数组(OpenAI 格式)
stream可选,true 时返回 SSE 流
models可选,跨模型 fallback 顺序,最多 8 个模型
provider可选,请求级路由策略,见「路由与降级」
max_tokens 等其余参数与 OpenAI 一致,透传上游
curl https://modelhub.xctoy.cn/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xc-你的令牌" \
  -d '{"model": "deepseek-flash", "messages": [{"role": "user", "content": "帮我总结三段话"}]}'

Responses · responses

POST/v1/responses

OpenAI Responses 兼容入口,支持文本、图片输入、工具调用、流式事件、请求级路由与跨模型 fallback。网关内部翻译到现有 Chat 渠道,计费和降级口径与 Chat Completions 一致。

请求参数

字段说明
model模型名,必填
input字符串或 Responses 输入数组,必填
instructions可选,系统指令
max_output_tokens可选,最大输出 token
stream可选,true 时返回 Responses SSE 事件
models / provider可选,跨模型降级和请求级路由策略
curl https://modelhub.xctoy.cn/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xc-你的令牌" \
  -d '{
    "model": "deepseek-flash",
    "input": "用三句话解释什么是模型网关"
  }'

Anthropic · messages

POST/v1/messages

Anthropic Messages 兼容接口,适用于 Claude Code、Claude Desktop、Cherry Studio 与 Anthropic SDK。网关在内部复用现有 Chat 渠道,路由、降级、熔断与计费口径不变。

鉴权头

请求头值
x-api-keysk-xc-你的令牌
anthropic-version2023-06-01
Content-Typeapplication/json
curl https://modelhub.xctoy.cn/v1/messages \
  -H "x-api-key: sk-xc-你的令牌" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "agnes-2.5-pro-beta",
    "max_tokens": 2048,
    "system": "你是严谨的技术助手。",
    "messages": [{"role": "user", "content": "解释分布式锁的取舍"}]
  }'

支持文本、图片、工具调用、流式 SSE 与可选 models / provider 路由参数。错误体使用 Anthropic 标准:{"type":"error","error":{"type":"...","message":"..."}}。

路由与降级

Chat Completions、Responses 与 Anthropic Messages 支持同一个请求级的 provider 对象;不传时沿用后台默认路由。

字段说明
sortfixed / cheapest / fastest / reliable / balanced / latency / weighted
only只允许指定渠道,可填渠道 ID 或名称
ignore排除指定渠道,优先级高于候选生成
allow_fallbacksfalse 时当前模型只使用主渠道
max_price价格上限,单位元/百万 token,可分别限制 prompt / completion
require_parameters只选择支持当前工具、结构化输出或推理参数的端点
{
  "model": "deepseek-v4-pro",
  "models": ["deepseek-flash", "glm-5.3-flash"],
  "messages": [{"role": "user", "content": "你好"}],
  "provider": {
    "sort": "balanced",
    "only": ["DeepSeek 官方", "智谱 GLM 官方主号"],
    "ignore": ["测试渠道"],
    "allow_fallbacks": true,
    "max_price": {"prompt": 10, "completion": 30},
    "require_parameters": true
  }
}
  • models 最多 8 个模型,自动去重,并受令牌模型白名单约束。
  • 只有 429、5xx 与超时等可降级错误会切换模型;400、鉴权失败和内容审核拒绝不会切换。
  • 流式响应开始后不会中途切换模型;最终响应中的 model 是实际命中的模型。
  • 路由会综合渠道状态、余额红线、端点熔断、价格、能力、近 15 分钟失败率与平均延迟。
网关成功响应带 X-ModelHub-Request-Id:Anthropic 兼容端点同时使用标准小写 request-id。该 ID 可用于关联用量、路由尝试和账单。

抓取 · tools/fetch

POST/v1/tools/fetch

抓取单个网页,返回 Markdown 格式的标题与正文,适合把搜索命中的页面内容喂给模型。

请求参数

字段必填说明
url是目标页面地址(http/https),≤8192 字符
curl https://modelhub.xctoy.cn/v1/tools/fetch \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xc-你的令牌" \
  -d '{"url": "https://api-docs.deepseek.com/zh-cn/"}'

向量 · embeddings

POST/v1/embeddings

OpenAI 兼容的向量化接口,可用于 RAG 检索、语义去重等场景。

可用模型

模型输入价格(元/百万 token)
qwen3.7-text-embedding-flash0.125
qwen3.7-text-embedding0.5
embedding-30.5

重排 · rerank

POST/v1/rerank

对检索候选做相关性重排,适合 RAG 精排阶段。

可用模型

模型价格(元/百万 token)
qwen3.7-text-rerank0.5

识图 · image/analyze

POST/v1/image/analyze

固定结构化识图接口,返回场景、光线、人物主体、面部、身体、服装与次要人物信息。引擎由平台内部路由,响应中不暴露引擎名。

传图方式

方式请求限制
公网 URLapplication/json + image_urlURL 必须公网可访问;推荐
二进制直传Content-Type: image/* + 原始图片字节单次 1 张;单图 ≤20MB
Data URLimage_url: "data:image/...;base64,..."必须带 MIME 前缀;建议 ≤7.5MB
curl https://modelhub.xctoy.cn/v1/image/analyze \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xc-你的令牌" \
  -d '{"image_url":"https://example.com/photo.jpg"}'
  • JSON 方式单次最多 3 张,使用 images 数组或单张 image_url。
  • 不接受自定义提问参数;需要按问题分析图片时改用支持视觉输入的 Chat 或 Responses 模型。
  • 服务端会将图片压到长边 1536px 再识别;客户端提前压缩可减少传输耗时。
  • 正常耗时约 20–70 秒,建议客户端超时 ≥320 秒。
  • 频率限制 60 次/分钟,按次计费 0.05 元/次;缓存命中仍计费。

图片 / 视频

POST/v1/images/generations · /v1/videos
  • agnes-image-2.5-flash:同步图片生成,支持文生图、图生图、多图合成;1K / 2K / 3K / 4K。上游官方当前试用价为零,网关调用按张计费。
  • agnes-video-2.5:异步视频生成,支持文生视频、首尾帧和图片/音频/视频参考。

图片使用 POST /v1/images/generations;视频先用 POST /v1/videos 创建任务,再轮询 GET /v1/agnesapi?video_id=...&model_name=agnes-video-2.5。媒体 URL 必须公网可访问且任务完成前不过期。

视频任务创建后返回 video_id 与初始状态,轮询到 completed 后从返回的 url 获取视频;失败状态为 failed。

模型定价

按 token 计费,单位为元 / 千 token(与后台计费表一致);仅成功调用计费。部分模型按峰谷计价:峰 = 工作日(周一至周五)9:00–12:00、14:00–18:00,其余时间为半价。

对话与多模态模型
模型输入输出备注
deepseek-flash0.0020.008峰谷 空闲半价
deepseek-v4-pro0.0090.027旗舰 1M 长上下文
glm-5.30.0080.028旗舰高质量
glm-5.3-flash0.00080.0028高性价比
glm-5.3-flashx0.0020.007高速档
glm-4.7-flash / glm-4-flash免费免费免费
qwen3.8-max0.01440.0432旗舰高质量(千问)
qwen3.8-flash0.00080.0027高性价比(千问)
qwen3.8-omni-flash0.00080.0027全模态音视频理解
qwen3.7-plus0.0020.008综合主力(千问)
qwen3.7-flash0.00030.0012轻量对话
qwen3-vl-flash0.000150.0015视觉理解·便宜主力
qwen3-vl-plus0.00120.012视觉理解·Plus
doubao-seed-2.0-mini0.00020.002轻量对话(豆包)
doubao-seed-2.0-lite0.00060.0036高性价比(豆包)
doubao-seed-2.1-lite0.00080.0027视觉理解(豆包)
agnes-2.5-flash / agnes-3.0-flash免费免费试用免费 512K / 65536
agnes-2.5-pro-beta≈0.00071≈0.00213官方 $0.10 / $0.30 每百万,按实时 USD/CNY 折算;1M / 65536;Beta

搜索 / 抓取定价

按成功请求计费
端点单价(元/次)折合(元/千次)说明
/v1/tools/search0.0066失败 / 空结果 / 超时不计费
/v1/tools/fetch0.0066失败 / 抓取无正文不计费
限速:Search 与 Fetch 各 5 次/秒(独立计数)。底层能力由 DeepSeek 官方提供,官方限速见 DeepSeek Search & Fetch。

生图 / 视频与识图定价

按成功请求计费
能力网关单价说明
agnes-image-2.5-flash0.1 元/张按 n 张计费;上游官方当前试用免费
agnes-video-2.52 元/条按任务创建计费;查询任务进度不另计费
/v1/image/analyze0.05 元/次缓存命中仍按次计费

计费与限额

机制说明
金额配额每个令牌设置可用额度上限(元),调用按单价从额度中扣减
预算预占请求开始前按最大预估成本预占额度,完成后按实际用量结算;失败或超时释放
欠费停服额度用尽后返回 429;充值加额后自动恢复
模型白名单令牌可限制只允许调用指定模型 / 能力
用量明细每次调用记录模型、token / 次数、费用、状态、耗时,可在管理后台查询对账
请求关联响应头 X-ModelHub-Request-Id 可关联用量、路由尝试与账单
接口限流Chat / Responses / Messages 与重排 120 次/分钟/令牌;向量 600 次/分钟;识图 60 次/分钟;搜索 / 抓取各 5 次/秒
定价可能随上游调整,实际价格以开通时管理员提供的报价单为准。

错误码

状态码含义处理
400参数错误(如 query 缺失、url 非法)按返回 message 修正请求
401令牌无效 / 缺失检查 Authorization 头
403模型未在白名单内联系管理员开通权限
404端点不存在检查 Base URL 与路径
413图片或请求体超过限制压缩图片或改用二进制 / 公网 URL
415图片格式无法解析改用 jpg / png / webp
422图片 URL 无法访问或下载失败检查 URL 公网可达性
429额度用尽、触发限速、渠道余额红线或路由策略无解按 error.type 降速、加额、放宽策略或联系管理员
500 / 502上游模型或自研能力异常指数退避重试;持续异常请反馈
504上游或自研能力超时检查输入大小与网络,稍后重试

OpenAI 兼容端点统一返回 {"error":{"code":数字,"message":"...","type":"可选"}}。常见 error.type:rate_limited、quota_exceeded、provider_redline、provider_policy_unmet、model_not_allowed。

Anthropic /v1/messages 使用 Anthropic 错误结构:{"type":"error","error":{"type":"...","message":"..."}}。