Experience & Runtime API

通过统一的 entitlement API 浏览和运行网络漫画、FMV 游戏、角色聊天机器人及线性视频。目录调用需要 catalog:read;会话与交互需要 runtime:session。

端点

方法路径Runtime 令牌
GET/catalog/experiences否
GET/catalog/experiences/{experience_id}否
GET/catalog/experiences/{experience_id}/units否
POST/runtime/sessions在响应中签发一次
GET/runtime/sessions/{session_id}必需
POST/runtime/sessions/{session_id}/revoke必需
GET/runtime/sessions/{session_id}/manifest必需
POST/runtime/sessions/{session_id}/fmv/decisions必需
POST/runtime/sessions/{session_id}/chat/turns必需

Experience 目录

地区、语言、平台和 capability 必须在同一 offers[] 行内解释。不得组合不同 offer 或 rights package 的字段来创建新权限。网络漫画、FMV 和角色聊天权利均须明确授予,默认拒绝。

curl "https://signal-partners.newunivers.ai/v1/catalog/experiences?experience_type=webtoon&territory=KR&language=ko&platform=web" \
  -H "Authorization: Bearer nsp_live_xxx" \
  -H "X-NU-Partner-Id: org_acme"

Runtime 会话

curl -X POST "https://signal-partners.newunivers.ai/v1/runtime/sessions" \
  -H "Authorization: Bearer nsp_live_xxx" \
  -H "X-NU-Partner-Id: org_acme" \
  -H "X-NU-Request-Id: req_runtime_0001" \
  -H "Content-Type: application/json" \
  -d '{
    "experience_id": "exp_webtoon_01",
    "country": "KR",
    "language": "ko",
    "platform": "web",
    "viewer_id_hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "expires_in": 1800
      }'
  • country、language 和 platform 为必填项。
  • 请求 TTL 为 60–3,600 秒。实际到期时间不会晚于 entitlement、deal 或 rights 中最早的结束时间。
  • 原始 session_token 仅出现在创建响应中;服务器只存储其哈希。
  • 后续调用必须同时发送 API 密钥和 X-NU-Runtime-Token。
  • 建议创建会话时使用稳定的 request ID;FMV 决策和聊天轮次必须提供。revoke 本身幂等。
  • 每次调用都会重新检查 rights、deal 和 entitlement,因此撤销会立即影响现有会话。

Manifest 与内容路径

Manifest 仅返回绑定 release 的安全 logical_path。不会暴露源 bucket、storage key 或私有存储库 URL。独立 delivery plane 可用后再提供会话范围的交付 URL。

FMV 决策

curl -X POST "https://signal-partners.newunivers.ai/v1/runtime/sessions/run_01/fmv/decisions" \
  -H "Authorization: Bearer nsp_live_xxx" \
  -H "X-NU-Partner-Id: org_acme" \
  -H "X-NU-Runtime-Token: nsp_rt_xxx" \
  -H "X-NU-Request-Id: req_fmv_0001" \
  -H "Content-Type: application/json" \
      -d '{"choice_id":"choice_left"}'

服务器仅以原子方式应用当前节点允许的无条件 choice。使用同一请求 ID 重试会返回相同结果;将其用于其他会话或 payload 会返回 409。

角色聊天

curl -X POST "https://signal-partners.newunivers.ai/v1/runtime/sessions/run_01/chat/turns" \
  -H "Authorization: Bearer nsp_live_xxx" \
  -H "X-NU-Partner-Id: org_acme" \
  -H "X-NU-Runtime-Token: nsp_rt_xxx" \
  -H "X-NU-Request-Id: req_chat_0001" \
  -H "Content-Type: application/json" \
  -d '{"message":"Hello"}'
  • 当前 foundation 仅支持文本,并对输入输出检查 PII 及配置的 turn/token budget。
  • 原文不会写入 audit、event 或 usage metadata;ChatTurn 仅存储特定用途的 HMAC 指纹。
  • Provider 调用后被拒绝的响应仅按实际消耗 token 和非内容拒绝原因计量,不保存原文,并计入会话预算。
  • 成功响应会加密并临时保留最多 24 小时以便幂等重放,随后过期。
  • 如果没有获批 provider 或调用失败,请求将以 503 service_unavailable 结束,绝不会编造响应。