API
Chat Completions
通过直接模型或治理策略路由发送消息
POST /v1/chat/completions 接收 OpenAI-compatible Chat 请求。Octoryn 验证工作区、解析模型或策略别名、分发给合资格供应商,并返回兼容响应或事件流。
Endpoint 与认证
使用目标工作区和环境签发的 API Key,以 Bearer Token 发送 JSON POST 请求。
POST https://api.octoryn.dev/v1/chat/completions
Authorization: Bearer $OCTORYN_API_KEY
Content-Type: application/jsonRequest body
model 与 messages 是必填字段。Router 接收标准 OpenAI-compatible 可选字段,并传递所选路由支持的字段。
- model — 直接模型 ID 或 policy/* 别名
- messages — 按顺序排列的 role/content 消息;多模态内容取决于路由能力
- stream — 默认为 false;true 返回 Server-Sent Events
- max_tokens 与 temperature — 可选生成控制
- tools、tool_choice 与 response_format — 所选路由支持时可用
{
"model": "policy/frontier",
"messages": [
{"role": "system", "content": "简洁回答。"},
{"role": "user", "content": "比较两种部署方案。"}
],
"temperature": 0.2,
"stream": false
}非流式响应
成功响应使用 OpenAI Chat Completion Envelope,包括 id、object、created、model、choices 与 usage。客户端应忽略不使用的扩展字段。
{
"id": "chatcmpl_...",
"object": "chat.completion",
"model": "policy/frontier",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 24, "completion_tokens": 96, "total_tokens": 120}
}流式返回
设置 stream=true 后返回 text/event-stream。每个 data 行包含 chat.completion.chunk,最后以 data: [DONE] 结束。客户端应处理取消、超时与部分输出。
data: {"id":"chatcmpl_...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"你好"},"finish_reason":null}]}
data: [DONE]关联信息与安全重试
记录 X-Request-Id 等关联标识、状态与延迟,但不要记录 API Key 或敏感 Prompt。只重试可安全重复的请求。
