迁移方法
已实现的内容
已支持
POST /v1/async/taskPOST /v1/async/task/batchGET /v1/async/task/{id}Webhook 回调未实现
/v1/monitor/* 同步端点/v1/async/status/v1/monitor/* 系列是有意缺席的。这里的每个引擎都异步运行;在一次查询所需的时间内阻塞请求,并不是本服务提供的形态。
行为不同之处
1. 没有速率限制,请使用批量
1. 没有速率限制,请使用批量
没有按密钥的速率限制。大量请求请使用批量提交以减少往返次数。请参阅地区与最佳实践。
2. 额度按引擎计算
2. 额度按引擎计算
credits 作为信封的一部分出现在每个响应中。提交和轮询响应报告 { "creditsToCharge": 0, "creditsCharged": 0 };
webhook 报告按引擎计算的额度消耗(视引擎为 1–3 额度)。失败的任务不计费。额度余额可在控制台查看。3. 部分引擎 × 地区组合会被直接拒绝
3. 部分引擎 × 地区组合会被直接拒绝
有一种组合完全无法服务:
CHATGPT/PERPLEXITY/GEMINI 发往 CN,那里没有出口供给,请求永远到不了目标。
它会立即以 422 REGION_UNSUPPORTED 失败,而不是被接受。422 REGION_UNAVAILABLE 则对应同一情况的暂时版本。假定所有格式正确的提交都会被接受的客户端,需要在这里增加分支。请参阅地区。4. include 标志大多不起作用
4. include 标志大多不起作用
payload.include 标志会被接受,但这里的大多数引擎返回固定结构的响应并忽略它们。只有 ChatGPT 支持全部标志;
GEMINI 只支持 markdown 和 rawResponse。例如向 Gemini 请求 html 会被静默忽略,不报错,也没有该字段。请参阅标志支持表。5. 多了一个状态码:422
5. 多了一个状态码:422
其余错误处理都很常规:校验失败返回
400,401 报告 MISSING_API_KEY,404 报告 RESOURCE_NOT_FOUND,
details 指出出错字段。唯一新增的是上文描述的 422 两个错误码(REGION_UNSUPPORTED、REGION_UNAVAILABLE)。我们会预先告知某地区
无法服务,因此从未处理过 422 的客户端会开始收到它们。6. 失败任务会多出顶层 error 字符串
6. 失败任务会多出顶层 error 字符串
对 把
FAILED 任务调用 GET /v1/async/task/{id} 会返回一个任务状态结构中未另行定义的顶层 error 字段,
而且它是普通字符串,不是请求级错误使用的 {code, message, timestamp} 对象。body.error 为真视为请求失败的客户端,会误读一个成功取回的失败任务。请改为按 task.status 分支。这些行为是通过实际调用本 API 确认的,而不是阅读结构定义得出的。当公开规范与实际响应不一致时,本文档以实际响应为准。
选择合适的 taskType
如果你当前的集成调用的是按引擎划分的端点,引擎名称对应如下 taskType:
GOOGLE 表示“AI 概览”只是命名惯例,并非 Google 的产品名。响应是一个把 aioverview 作为可空成员的 SERP 信封,
请参阅 GOOGLE 响应结构。验证切换
让现有集成与本集成并行运行一段时间,并比对你实际使用的字段,通常是response.text、response.sources[]
和 response.markdown。影子对比能发现结构检查发现不了的差异,例如来源列表已填充但顺序不同。