文档

接口约定

飞鱼Token 对外提供两套兼容接口:OpenAI 格式与 Anthropic 格式。改 base_url 与 API Key 就能用现有 SDK。

接入地址

两套协议用同一个域名,但 base_url 的写法不一样 —— 这一点最容易填错:

协议 base_url 完整路径
OpenAI 格式 https://open.feiyutoken.com/v1 https://open.feiyutoken.com/v1/chat/completions
Anthropic(Claude)格式 https://open.feiyutoken.com https://open.feiyutoken.com/v1/messages

Anthropic 系的 SDK 与工具会自己补 /v1/messages,所以 base_url 填到域名就够了; 填成带 /v1 的会变成 /v1/v1/messages。

鉴权

API Key 在控制台创建,可以给每个 Key 单独设有效期、额度上限与 IP 白名单。 两种协议带的头不一样,SDK 会自动处理,手写请求时要注意:

# OpenAI 格式
-H "Authorization: Bearer <你的飞鱼Token API Key>"

# Anthropic 格式
-H "x-api-key: <你的飞鱼Token API Key>"
-H "anthropic-version: 2023-06-01"

请求与响应

请求体是 JSON,响应体的结构与你用的协议完全一致 —— 用 OpenAI SDK 就得到 OpenAI 的返回结构,用 Anthropic SDK 就得到 Anthropic 的返回结构,现有解析代码不用改。

每次响应都会带用量字段,可以直接拿来对账:

协议 用量字段
OpenAI 格式 usage.prompt_tokens / usage.completion_tokens / usage.total_tokens
Anthropic 格式 usage.input_tokens / usage.output_tokens

流式输出

请求体里加 stream: true 即走 SSE 流式:响应按 SSE 协议逐块下发,客户端边收边处理。

流式响应默认不带用量,需要统计 Token 时在请求里加上:

{ "stream": true, "stream_options": { "include_usage": true } }

这样最后一个 chunk 会带上 usage。SSE 本身不支持断点续传,连接中断后重新发起请求,需要重新发起请求。

错误处理

错误响应沿用对应协议的格式(OpenAI 格式是 {"error": {"message": ..., "type": ...}}), HTTP 状态码含义:

状态码 含义 怎么处理
401 / 403 鉴权失败:Key 不对、已删除或鉴权失败或没有该模型的访问权限 检查 Key 与 base_url
429 触发限流(请求过于频繁) 退避重试;确认余额
5xx 服务端或网络问题 稍后重试;持续失败请联系客服

计费与用量

按实际用量计费,费用从账户余额扣减。计费单位与模型厂商官网一致:文本按 Token, 图像按张数或分辨率,语音按字符数或时长,视频按时长。控制台可以按模型、按 Key、按时间查看 调用记录、用量与消费明细,报表支持导出。

接口一览

按分类列全。没列在这里的接口,就是当前部署没有开放。

对话(Chat)

接口 方法 路径
Chat Completions API POST https://open.feiyutoken.com/v1/chat/completions
Claude Messages API POST https://open.feiyutoken.com/v1/messages
Responses API POST https://open.feiyutoken.com/v1/responses

这几个功能怎么用,另有三篇指南:JSON Output(结构化输出)、 Tool Calls(工具调用)、多轮对话(拼上下文)。

模型列表

接口 方法 路径
模型列表 GET https://open.feiyutoken.com/v1/models

补全(Completions)

接口 方法 路径
创建补全 POST https://open.feiyutoken.com/v1/completions

图像(Images)

接口 方法 路径
生成图像 POST https://open.feiyutoken.com/v1/images/generations
编辑图像 POST https://open.feiyutoken.com/v1/images/edits

音频(Audio)

实时语音是 WebSocket 握手入口,其余三个都是普通 HTTP 请求。

接口 方法 路径
文本转语音 POST https://open.feiyutoken.com/v1/audio/speech
音频转录 POST https://open.feiyutoken.com/v1/audio/transcriptions
音频翻译 POST https://open.feiyutoken.com/v1/audio/translations
实时语音会话 GET https://open.feiyutoken.com/v1/realtime

视频(Videos)

视频是异步任务:先创建,再用状态接口轮询。

接口 方法 路径
创建视频生成任务 POST https://open.feiyutoken.com/v1/video/generations
获取视频生成任务状态 GET https://open.feiyutoken.com/v1/video/generations/{task_id}

其他接口

接口 方法 路径
创建嵌入 POST https://open.feiyutoken.com/v1/embeddings
文档重排序 POST https://open.feiyutoken.com/v1/rerank
内容审核 POST https://open.feiyutoken.com/v1/moderations