更新日志新功能

一次请求最多提交 500 个任务

API
包含三个不同引擎任务的批量请求,以及逐一列出已排队任务的响应

批量端点可在一次调用中把最多 500 个任务放入队列,引擎可任意混合,并逐项返回结果。

获得的结果

  • POST /v1/async/task/batch 接收最多 500 个任务组成的数组,每项格式与单个任务相同。
  • 引擎可以自由混合,一次调用就能把一组问题同时发给 ChatGPT、Gemini 和 Perplexity。
  • results[] 逐项报告结果:创建好的任务,或该项被拒绝的原因。
  • idempotencyKey 按项生效,重新提交批次会返回已经创建的任务。

工作原理

格式正确的批次始终返回 200。每一项都单独校验,格式有误的一项会在它自己的 results[] 条目中标出,批次中的其余任务照常入队。创建的任务与单个任务完全一样地运行、完成和计费,并各自发送 webhook。

批量提交把成千上万次 HTTP 调用缩减为寥寥几次,让定时任务更快、更简单。

应用场景

  • 每天早上用一次调用把整组问题发给多个引擎。
  • 用几次请求提交大批关键词,处理交给队列完成。

发送请求

把最多 500 个任务放进一个 JSON 数组发送,每个任务的格式与单个任务相同。同一批次里引擎和国家任意组合。

curl -X POST https://api.querying.ai/v1/async/task/batch \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "CHATGPT",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    },
    {
      "taskType": "GEMINI",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    },
    {
      "taskType": "PERPLEXITY",
      "payload": { "prompt": "best CRM for startups", "country": "US" }
    }
  ]'

响应

调用以 200 返回,按发送顺序每个任务一条。此处省略了任务 ID。

JSON
{
  "success": true,
  "summary": { "total": 3, "succeeded": 3, "failed": 0 },
  "results": [
    {
      "success": true,
      "index": 0,
      "task": {
        "id": "…",
        "taskType": "CHATGPT",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    },
    {
      "success": true,
      "index": 1,
      "task": {
        "id": "…",
        "taskType": "GEMINI",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    },
    {
      "success": true,
      "index": 2,
      "task": {
        "id": "…",
        "taskType": "PERPLEXITY",
        "status": "QUEUED",
        "priority": 1,
        "createdAt": "…"
      },
      "credits": { "creditsToCharge": 0, "creditsCharged": 0 }
    }
  ]
}
summaryobject
批次统计:total、succeeded 和 failed。
resultsarray
按发送顺序每个任务一条:index、success,以及已排队的 task 或带代码的 error。

获取结果

请求会立即返回 status 为 QUEUED 的任务。用 GET /v1/async/task/{id} 轮询,直到 status 变为 COMPLETED 或 FAILED;或者加上 webhook.url,在服务器上接收同样的 task、credits 和 response。任务结束后,结果保留 24 小时供查询。

curl https://api.querying.ai/v1/async/task/$TASK_ID \
  -H "Authorization: Bearer $QUERYING_API_KEY"

错误

如果请求体是空数组或超过 500 项,整个批次返回 400 VALIDATION_ERROR;超过 8 MiB 返回 413。在大小合规的批次中,超出套餐并发上限或引擎队列上限的项会返回 success 为 false,代码写在 error.code 中,其余项照常进入队列。稍等片刻后重新发送这些项。

PLAN_CONCURRENCY_LIMITHTTP 429
排队和运行中的任务达到套餐上限:免费套餐 2 个,Basic 10 个,Pro 25 个,Scale 50 个,Max 100 个。请在 Retry-After 秒后重新发送。
QUEUE_BACKPRESSUREHTTP 429
该引擎的队列暂时已满。请在 Retry-After 秒后重新发送。
VALIDATION_ERRORHTTP 400
缺少字段或取值超出范围。details 会指明该字段。
PAYLOAD_TOO_LARGEHTTP 413
请求体超过 1 MiB,批量请求超过 8 MiB。

价格

批次费用是各任务按引擎价格计算的总和,每个任务在完成时扣费。

更多更新

接收最新消息

通过邮件接收产品更新。

RSS 订阅