AnyInt Docs
指南

验证你的集成

上线前验证 AnyInt 集成:模型发现、鉴权、首次请求、流式输出、异步任务、回调和错误处理。

上线前请使用本指南验证 AnyInt 集成。这不是支付类 API 的沙盒或测试卡指南。AnyInt 是 AI API 平台,因此验证重点是确认你的 API 密钥、模型 ID、请求格式、流式链路、任务轮询、回调处理和重试逻辑能在你的环境中正常工作。

验证清单

检查项为什么重要
将 API 密钥存入环境变量避免凭证进入源码、日志或截图
先调用 Models API确认当前账号实际可用的模型 ID
发起一个最小文本请求验证 base URL、鉴权、JSON 结构和模型访问权限
如果 UI 使用流式输出,验证 streaming确认 HTTP 客户端能处理 SSE 分块和最终结束事件
分别验证提供方原生 APIAnthropic 和 Gemini 的请求体不同于 OpenAI chat
用可观察锚点验证媒体输入格式正确的 JSON 不代表模型真的处理了文件
验证异步媒体或音乐任务初始任务创建响应不是最终生成资产
如果使用回调,验证回调接收你的端点必须可公网访问、快速返回并支持幂等
处理 401403429 和临时上游错误生产集成需要明确的重试和用户提示策略

1. 安全配置密钥

使用环境变量,不要硬编码密钥。

export ANYINT_API_KEY="your-anyint-api-key"

除非你的产品有明确的服务端代理或短期令牌设计,否则不要把 API 密钥发送到浏览器。大多数生产应用应从后端服务调用 AnyInt。

2. 发现模型 ID

在硬编码模型名称之前,先调用 Models API。

curl https://api.anyint.ai/openai/v1/models \
  -H "Authorization: Bearer $ANYINT_API_KEY"

确认响应中包含你计划使用的模型:

{
  "data": [
    {
      "id": "claude-sonnet-4-6",
      "display_name": "Claude Sonnet 4.6"
    }
  ]
}

后续请求请使用 data[].id。不要直接使用营销名称,也不要把其他账号中复制来的模型 ID 当作当前账号一定可用。

3. 发起最小请求

除非你需要提供方原生请求结构,否则先从 OpenAI 兼容 Chat Completions API 开始。

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",
    "messages": [
      {"role": "user", "content": "Reply with exactly: AnyInt OK"}
    ]
  }'

如果这个请求失败,请先检查模型 ID、API 密钥、端点家族和鉴权请求头,再扩大请求体。

4. 验证流式输出

如果产品会向用户流式展示回答,请验证 HTTP 客户端能读取 server-sent events。

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": "user", "content": "Stream three short bullet points about API gateways."}
    ]
  }'

OpenAI 兼容流式响应会返回增量分块,并以最终结束事件收尾。不要把第一个分块当作完整答案。

5. 验证提供方原生请求结构

当你的应用已经使用某个提供方的原生格式时,提供方兼容 API 很有用。

Anthropic 兼容示例:

curl https://api.anyint.ai/anthropic/v1/messages \
  -H "x-api-key: $ANYINT_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 128,
    "messages": [
      {"role": "user", "content": "用一句话解释 token 计数。"}
    ]
  }'

Gemini 兼容流式示例:

curl "https://api.anyint.ai/gemini/v1beta/models/gemini-3-flash-preview:streamGenerateContent?alt=sse" \
  -H "Authorization: Bearer $ANYINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "流式输出一个关于模型路由的简短回答。"}]
      }
    ]
  }'

不要混用不同 API 家族的请求体。OpenAI 使用 messages,Anthropic 使用 Claude 风格 messages 和内容块,Gemini 使用 contents[].parts[]

6. 验证媒体文件输入

如果请求包含图片、视频、音频或其他文件引用,请先确认提供方能访问文件,再要求完整分析。

使用能直接返回字节的公网 HTTPS URL,不要使用 HTML 分享页。避免需要登录、Cookie、私有网络访问或不透明跳转的 URL。

Gemini 原生视频或文件理解请在 Gemini 兼容 API 路由中使用 contents[].parts[].fileData.fileUri。对于大视频或长分析,优先使用 streamGenerateContent?alt=sse

一个实用的首次 prompt 是让模型描述你能独立核对的时间点画面或物体。不要把格式正确的 JSON、高置信度回答或看起来合理的摘要当作媒体已被处理的证据。

7. 验证异步媒体或音乐任务

对于基于任务的 API,请保存返回的任务 ID,并轮询文档中对应的查询路由,直到任务成功或失败。

curl https://api.anyint.ai/dashscope/v1/services/aigc/video-generation/video-synthesis \
  -H "Authorization: Bearer $ANYINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "happyhorse-1.0-t2v",
    "input": {
      "prompt": "A cinematic product reveal with soft camera movement.",
      "img_url": "https://your-domain.com/source-image.png"
    },
    "parameters": {
      "resolution": "720P",
      "duration": 5,
      "audio": false
    }
  }'

用返回的任务 ID 轮询:

curl "https://api.anyint.ai/dashscope/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $ANYINT_API_KEY"

只有当结果中包含成功状态和输出 URL 后,才应将资产标记为可用。

8. 验证回调处理

如果某个 API 接受回调 URL,请让回调处理器具备幂等性。

要求建议
可访问性使用 AnyInt 可访问的公网 HTTPS URL
幂等性保存回调 ID 或任务 ID,并安全忽略重复回调
速度快速返回,把重处理逻辑放入队列
校验确认任务 ID 属于你的应用创建的任务
兜底如果回调延迟,仍保留轮询逻辑

9. 处理预期错误

HTTP 状态常见含义集成行为
400请求体无效或缺少必填字段修正请求后再重试
401API 密钥缺失或无效提示操作人员检查密钥和鉴权请求头
403模型、能力或策略不可用检查账号权限、模型可用性或方案限制
429速率或配额达到限制退避、稍后重试或降低并发
5xx临时上游或网关故障使用指数退避重试,并向用户展示临时失败

更多细节请阅读 错误与限制

生产就绪检查

上线前确认:

  1. 你的服务在源码之外保存 ANYINT_API_KEY
  2. 应用会发现或定期刷新可用模型 ID。
  3. 首选模型和回退模型都已为当前账号启用。
  4. 流式客户端能处理部分分块、最终分块和中断流。
  5. 媒体文件输入使用直接 URL,并通过可观察锚点验证。
  6. 异步任务代码会保存任务 ID,并具备可重试的轮询逻辑。
  7. 回调处理器具备幂等性,并有轮询兜底。
  8. 面向用户的错误能区分请求无效、鉴权问题、配额限制和临时故障。
  9. 日志不会包含 API 密钥、私密提示词或私密生成内容,除非用户明确同意。

On this page