API 手册
OpenFDE 提供统一的 OpenAI-compatible 网关。模型、权限、价格和渠道是动态配置,接入前请用当前令牌调用 GET /v1/models,不要依赖旧教程中的固定模型名。
基础信息
- Base URL:
https://api.openfde.work/v1 - 认证:
Authorization: Bearer YOUR_API_KEY - 请求格式:
application/json - 编码:UTF-8
当前支持的公共入口
| 能力 | 方法与路径 | 说明 |
|---|---|---|
| 模型列表 | GET /v1/models | 返回当前令牌实际可见模型。 |
| 对话 | POST /v1/chat/completions | 通用文本、多轮和部分多模态调用。 |
| Responses | POST /v1/responses | 仅限实现了 Responses 适配的模型/渠道。 |
| 文本补全 | POST /v1/completions | 兼容旧客户端;新项目使用 Chat Completions。 |
| 图像生成 | POST /v1/images/generations | 同步生成。 |
| 图像编辑 | POST /v1/images/edits | 需要模型和渠道支持。 |
| 图像异步任务 | POST /v1/images/generations/tasks、POST /v1/images/edits/tasks | 提交后用 /v1/images/tasks/{task_id} 查询。 |
| Embeddings | POST /v1/embeddings | 只有配置了可用 embedding 模型时才能调用。 |
| 音频 | POST /v1/audio/transcriptions、/translations、/speech | 取决于令牌和渠道。 |
| Moderations | POST /v1/moderations | 取决于当前审核渠道。 |
| 视频生成 | POST /v1/video/generations 或 POST /v1/videos | 异步任务;具体模型决定请求格式。 |
微调、Files 管理、组织管理和计费管理不属于公共 Relay API。
最小对话请求
curl https://api.openfde.work/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-sol",
"messages": [{"role": "user", "content": "你好"}],
"max_completion_tokens": 256
}'
OpenAI SDK
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.openfde.work/v1",
)
models = client.models.list()
print([m.id for m in models.data])
response = client.chat.completions.create(
model="gpt-6-sol",
messages=[{"role": "user", "content": "你好"}],
max_completion_tokens=256,
)
print(response.choices[0].message.content)
参数兼容边界
平台请求 DTO 仍接收 max_tokens、max_completion_tokens、temperature、top_p、top_k、stop、tools、tool_choice、response_format、reasoning_effort 等 OpenAI 字段,但每个渠道会按自身能力处理。新项目优先使用 max_completion_tokens 和 tools;不要把旧的 functions、function_call、固定温度范围或厂商私有字段当作所有模型都支持。
模型与权限
模型列表会按令牌白名单、分组、企业等级、IP 白名单、价格配置和渠道健康状态过滤。遇到 model_not_found 时:
- 重新查询
GET /v1/models。 - 检查模型 ID 大小写和完整版本后缀。
- 检查令牌的模型白名单、分组和外部访问权限。
- 检查目标模型是否真的有可用渠道。
流式输出
Chat Completions 设置 stream: true 后返回 SSE,客户端逐行解析 data:,收到 data: [DONE] 后结束。推理模型可能在 reasoning_content 中返回推理片段;输出上限过小时可能先达到 length。
错误处理
常见 HTTP 状态码为 400(参数错误)、401(认证失败)、403(权限限制)、429(额度/限流)、500(平台错误)和 503(无可用渠道)。排查时保留 HTTP 状态码、响应中的错误码和请求 ID。