AnyInt Docs
API 参考

兼容 OpenAI

当你希望以最快路径投入生产,或者你的应用已经支持 OpenAI Chat Completions 格式时,请使用此路由。

当你希望以最快路径投入生产,或者你的应用已经支持 OpenAI Chat Completions 格式时,请使用此路由。

基础 URL

https://api.anyint.ai/openai/v1

已发布路由

POST /chat/completions

完整 URL:

https://api.anyint.ai/openai/v1/chat/completions

身份验证

Authorization: Bearer <ANYINT_API_KEY>
Content-Type: application/json

何时使用此路由

  • 你已经在使用 OpenAI Python 或 JavaScript SDK
  • 你希望为多个模型系列使用一个稳定的聊天入口
  • 你希望以最少的集成工作实现 SSE 流式传输

如果你需要 Gemini 原生请求体或 Anthropic 特定功能(例如 token 计数),请直接使用对应提供方兼容页面。

核心请求结构

字段类型必填含义示例
model字符串本次请求使用的模型 ID。请从 Models API 获取,不要猜测。claude-sonnet-4-6
messages数组OpenAI Chat Completions 格式的有序对话轮次。[{"role":"user","content":"Hello"}]
stream布尔值设置 true 接收 SSE 分块;省略或设为 false 返回单个 JSON 响应。true
max_tokens整数模型最多生成的输出 token 数。512
temperature数字控制随机性。值越低越确定,值越高越发散。0.7
top_p数字nucleus sampling 控制项。优先只调 temperaturetop_p 之一。1
stop字符串或数组让生成提前停止的停止序列。["\nUser:"]
tools数组所选模型支持时的 OpenAI 兼容工具定义。[{"type":"function",...}]
tool_choice字符串或对象控制模型是否可以调用工具、必须调用特定工具,或不调用工具。"auto"
presence_penalty数字根据 token 是否已出现来惩罚新 token。0
frequency_penalty数字根据 token 出现频率惩罚重复。0
user字符串你自己的终端用户标识,用于滥用监控或请求追踪。不要发送未获授权的隐私数据。user_123

当前已发布的 schema 只说明了让补全工作所需的最小请求体。如果你的客户端已经使用了其他 OpenAI 兼容字段,请先针对目标模型进行验证,再在生产环境中依赖它们。

消息字段

字段类型必填含义示例
role字符串消息作者。常见值包括 systemuserassistanttooluser
content字符串或数组通常必填文本内容,或在所选模型支持时使用多模态内容块。用一句话解释 AnyInt。
name字符串某些 OpenAI 兼容客户端使用的可选参与者名称。planner
tool_call_id字符串仅工具响应将工具响应关联到之前的工具调用。call_123

多模态消息块

对于支持图像的聊天模型,请用 OpenAI 兼容内容块在 messages[].content[] 中传入图片。当你希望使用统一 AnyInt 聊天入口,同时需要带参考图时,这是推荐格式。

本页文档化的是 OpenAI 兼容聊天路由的图片输入。如果你需要视频或文件理解,请使用 Gemini 兼容 API 页面中的 Gemini 原生 fileData.fileUri 结构,不要自行猜测 OpenAI 风格的 video_url 或文件内容块。

字段类型必填含义示例
messages[].content[]数组同一条消息中的有序内容块。可同时包含文本指令和一张或多张图片。[{"type":"text",...},{"type":"image_url",...}]
content[].type字符串内容块类型。文本指令用 text,图片输入用 image_urlimage_url
content[].text字符串text 块必填文本提示词或指令。描述这张参考图。
content[].image_url.url字符串image_url 块必填公网 HTTPS 图片 URL,或 data:image/...;base64,... data URL。生产环境优先用公网 URL;本地文件可转成 data URL。https://your-domain.com/reference.png
curl https://api.anyint.ai/openai/v1/chat/completions \
  -H "Authorization: Bearer $ANYINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-3.1-flash-image-preview",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "使用这张参考图,用一句话描述产品风格。"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://your-domain.com/reference.png"
            }
          }
        ]
      }
    ]
  }'

请使用上游提供方可以抓取的 URL。某些提供方会拒绝被 robots.txt 阻止、需要 Cookie、经私有 CDN 跳转,或不是有效图片字节的地址。

如果图片在本地,不要传文件路径。请先编码图片,再传 data URL:

IMAGE_DATA="$(base64 -i ./reference.png | tr -d '\n')"

然后把 image_url.url 设置为:

data:image/png;base64,$IMAGE_DATA

当图片来自本地文件且你不想先上传时,可以使用这种格式。非常大的图片通常更适合先上传到对象存储或 CDN,再传公网 HTTPS URL。

响应字段

字段含义
id兼容 API 路径返回的响应标识符
object响应对象类型,例如 chat.completionchat.completion.chunk
created响应创建的 Unix 时间戳
model处理请求的模型
choices[]生成的消息或流式 delta 选项
choices[].message.content非流式响应中的生成文本
choices[].delta.content流式响应中的增量文本
usage.prompt_tokens提供方返回时的输入 token 数
usage.completion_tokens提供方返回时的输出 token 数
usage.total_tokens提供方返回时的总 token 数

cURL 示例

curl https://api.anyint.ai/openai/v1/chat/completions \
  -H "Authorization: Bearer $ANYINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "stream": true,
    "messages": [
      {"role": "system", "content": "You are a concise assistant."},
      {"role": "user", "content": "Explain AnyInt in one sentence."}
    ]
  }'

Python 示例

from openai import OpenAI

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

response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    stream=True,
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Explain AnyInt in one sentence."},
    ],
)

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

JavaScript 示例

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.anyint.ai/openai/v1",
  apiKey: process.env.ANYINT_API_KEY,
});

const stream = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  stream: true,
  messages: [
    { role: "system", content: "You are a concise assistant." },
    { role: "user", content: "Explain AnyInt in one sentence." },
  ],
});

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

响应行为

  • stream: true时,该路由返回 SSE 分块
  • 已发布的 schema 使用 chat.completion.chunk 样式对象
  • 每个分块都可以包含 choices[0].delta.content
  • 流在以下内容处结束 [DONE]
  • 最终使用情况数据可能会在流接近结束时到达

常见错误

  • 使用 x-api-key 而不是 Authorization: Bearer
  • 在检查 Models API 之前硬编码模型 ID
  • 将部分流分块当作最终答案
  • 发送 /tmp/image.png 这样的本地文件路径,而不是公网图片 URL 或 data URL
  • 通过未文档化的 OpenAI 风格内容块类型发送视频文件,而不是使用 Gemini 原生 fileData.fileUri
  • 在未经验证的情况下将提供方原生请求字段混入 OpenAI 负载中
  • 只传裸 base64,而不是带 data:image/...;base64, 前缀的 data URL

相关页面

On this page