OpenAPI v1 · R1

AIPanda 接入文档

通过同一套 API 接入八字、六爻确定性排盘、AI 解读、连续追问和用户反馈。本文示例可直接复制修改。

一、整体接入流程

创建 App平台运营人员配置环境、能力、RPM 和月配额。
获取 API KeyKey 只展示一次,服务端安全保存。
创建 Subject八字创建命盘;六爻针对明确问题起卦。
创建 ResponseAI 解释程序已经确认的命盘或卦盘事实。
追问与反馈携带上一次 Response ID 追问,并回传评价。

核心数据边界:八字命盘和六爻卦盘由本地算法计算,是事实来源;AI 只解释确认后的 evidence,不会自行重新排盘或修改卦象。

接入前准备

  1. 向 AIPanda 平台运营人员申请 App,并说明需要 baziliuyao 或两项能力。
  2. 先获取 ap_test_ Key 完成联调,通过验收后再申请 ap_live_ Key。
  3. 服务端保存 Key;不要放进浏览器、移动端包、日志或公开仓库。

二、地址、认证与幂等

export BASE_URL="https://api.qbb.me"
export AIPANDA_API_KEY="ap_test_xxx"

# 所有业务 API 都需要
Authorization: Bearer $AIPANDA_API_KEY

# 创建 Subject / Response 时必须提供
Idempotency-Key: partner-order-or-request-id

幂等重试:一次业务写入使用一个稳定且唯一的 Idempotency-Key。网络超时后,必须用相同 Key 和相同请求体重试。

不要复用:不同业务请求不能使用同一个 Idempotency-Key;同 Key 但请求体不同会返回 IDEMPOTENCY_CONFLICT

三、八字接入流程

步骤 1:创建命盘 Subject

curl -sS -X POST "$BASE_URL/v1/bazi/charts" \
  -H "Authorization: Bearer $AIPANDA_API_KEY" \
  -H "Idempotency-Key: user-1001-bazi-v1" \
  -H "Content-Type: application/json" \
  -d '{
    "birth": {
      "year": 1990,
      "month": 5,
      "day": 15,
      "hour": 10,
      "minute": 30,
      "gender": "男",
      "calendar_type": "solar",
      "birthplace": "上海",
      "time_confidence": "exact"
    },
    "end_user_id": "partner-user-1001"
  }'

保存返回的 id,格式为 bzc_xxx。同一张命盘只需创建一次,后续问题复用该 Subject。

步骤 2:创建首次解读

curl -sS -X POST "$BASE_URL/v1/responses" \
  -H "Authorization: Bearer $AIPANDA_API_KEY" \
  -H "Idempotency-Key: user-1001-response-001" \
  -H "Content-Type: application/json" \
  -d '{
    "capability": "bazi",
    "subject_id": "bzc_xxx",
    "input": "请分析我的事业特点和更适合的工作方式。",
    "end_user_id": "partner-user-1001"
  }'

成功后保存 resp_xxx。成功创建一条 Response 计 1 个计费单位;创建或查询命盘本身不计 Response 次数。

四、六爻接入流程

步骤 1:围绕一个明确事件创建卦盘 Subject

curl -sS -X POST "$BASE_URL/v1/liuyao/casts" \
  -H "Authorization: Bearer $AIPANDA_API_KEY" \
  -H "Idempotency-Key: user-1001-liuyao-001" \
  -H "Content-Type: application/json" \
  -d '{
    "question": "这次合作能否按计划在本月签约?",
    "method": "dayan",
    "end_user_id": "partner-user-1001"
  }'

dayan 由平台安全生成一次爻值并固定保存。若第三方已经完成起卦,可使用 manual_lines,并提供六个 6/7/8/9 数值:

{
  "question": "这次合作能否按计划在本月签约?",
  "method": "manual_lines",
  "lines": [7, 8, 9, 7, 6, 8]
}

六个爻值必须按初爻到上爻排列。六爻用于一事一问;如果用户换了事件,应重新创建 lyc_xxx,不要沿用旧卦。

步骤 2:创建首次解读

curl -sS -X POST "$BASE_URL/v1/responses" \
  -H "Authorization: Bearer $AIPANDA_API_KEY" \
  -H "Idempotency-Key: user-1001-response-002" \
  -H "Content-Type: application/json" \
  -d '{
    "capability": "liuyao",
    "subject_id": "lyc_xxx",
    "input": "请分析当前进展、主要阻力和应期。"
  }'

五、围绕同一 Subject 连续追问

八字和六爻使用同一个追问接口。只传上一次 previous_response_id 和当前问题,不需要客户端重复发送整段历史。

curl -sS -X POST "$BASE_URL/v1/responses" \
  -H "Authorization: Bearer $AIPANDA_API_KEY" \
  -H "Idempotency-Key: user-1001-response-003" \
  -H "Content-Type: application/json" \
  -d '{
    "previous_response_id": "resp_xxx",
    "input": "结合刚才的结论,未来两年应该重点注意什么?"
  }'

平台使用固定长度的滚动摘要维持上下文,不会随着轮次无限携带全部历史。六爻检测到明显换事时会返回 NEW_SUBJECT_REQUIRED

查询已有资源

GET /v1/bazi/charts/bzc_xxx
GET /v1/liuyao/casts/lyc_xxx
GET /v1/responses/resp_xxx

六、回传用户反馈

建议第三方把点赞、点踩、标签、文字意见和纠正信息同步回来,用于持续优化外部用户体验。

curl -sS -X POST "$BASE_URL/v1/feedback" \
  -H "Authorization: Bearer $AIPANDA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "response_id": "resp_xxx",
    "rating": "positive",
    "tags": ["准确", "有帮助"],
    "comment": "事业部分与实际情况比较贴合"
  }'

七、错误处理与上线检查

状态/错误码含义接入方处理
401 INVALID_API_KEYKey 无效、过期或已撤销停止重试并检查使用环境和 Key。
403App 暂停或能力未开通联系平台运营人员调整 App。
409 IDEMPOTENCY_CONFLICT同一幂等 Key 对应了不同请求体为新业务生成新 Key。
409 NEW_SUBJECT_REQUIRED六爻追问已经明显换事重新起卦并创建新的 Subject。
429RPM、并发或月配额受限读取 retry_after_ms,退避后重试;月配额需联系运营人员。
503/504模型临时不可用或超时复用原 Idempotency-Key 和原请求体进行有限重试。

上线前检查清单

机器可读合同:OpenAPI 3.1 JSON · 服务健康检查:/health · 数据库就绪检查:/ready