API 参考 / blueprints

提交生成任务(带配额确认 + 原子预占 + 幂等键)

POST /api/v1/orgs/{orgId}/blueprint-drafts/{draftId}/generate · generateBlueprint

提交一次立项方向生成任务。必须携带已确认的 surveyVersionId、marketSnapshotId 和 idempotencyKey(同 org 范围内相同幂等键返回原任务,不重复创建 / 扣费)。

流程(服务端原子):① 校验 surveyVersionId 已确认 + marketSnapshotId 存在 ② 校验同 org 无 running/queued 任务(并发上限 1,串行)③ 同事务校验余额 + 预占 1 配额(FOR UPDATE 锁 余额行)④ 创建 generation_job(queued)⑤ worker 异步执行(成功结算 / 失败释放)。

仅 active Org Admin 可调用;普通成员 404。余额不足 → 402;并发冲突 → 409; 问卷未确认 / 快照缺失 / AI 未配置 → 400。PAT 不可调用本端点。

本接口要求浏览器会话。Bearer API Token 无法调用——Token 的生命周期管理必须在网页端完成。

参数

orgId(必填)
string
draftId(必填)
string

请求体

surveyVersionId(必填)
string
marketSnapshotId(必填)
string
coverageGapAcknowledged
boolean
idempotencyKey(必填)
string

响应字段 · 202

id(必填)
string
orgId(必填)
string
draftId(必填)
string
surveyVersionId(必填)
string
marketSnapshotId(必填)
string
idempotencyKey(必填)
string
status(必填)
enum;取值:queued / running / needs_review / succeeded / failed / canceled
ledgerEntryId
string
errorCode
string
errorMessage
string
needsReviewReason
string
createdBy
string
createdAt(必填)
string
updatedAt
string
startedAt
string
finishedAt
string

错误

请求示例(curl)

curl -X POST "https://workflow.games/api/v1/orgs/{orgId}/blueprint-drafts/{draftId}/generate" \
  -H "Authorization: Bearer wfp_…" \
  -H "content-type: application/json" \
  --data '{"surveyVersionId":"018f3c2e-0000-7000-8000-000000000000","marketSnapshotId":"018f3c2e-0000-7000-8000-000000000000","idempotencyKey":"示例文本"}'

响应示例

HTTP/1.1 202
{
  "id": "018f3c2e-0000-7000-8000-000000000000",
  "orgId": "018f3c2e-0000-7000-8000-000000000000",
  "draftId": "018f3c2e-0000-7000-8000-000000000000",
  "surveyVersionId": "018f3c2e-0000-7000-8000-000000000000",
  "marketSnapshotId": "018f3c2e-0000-7000-8000-000000000000",
  "idempotencyKey": "示例文本",
  "status": "queued",
  "createdAt": "示例文本"
}

合同真值:OpenAPI 3.1(0.1.0)。

相关:Agent 接入指南 · 使用指南 · API 参考索引

Workflow 正在加载…