SuperAPI AI 工具集

replicate-webhooks

编程与开发

查看项目

更新于 10-15 15:17

技能介绍

用途

该技能面向需要接收和处理 Replicate Webhook 的开发者,典型用途包括:搭建 Replicate Webhook 处理器、调试签名验证失败问题、理解 Replicate 的事件类型与请求负载(payload)结构,以及处理预测(Prediction)生命周期事件(start、output、logs、completed)。

主要能力

  • 提供可直接使用的 Express Webhook 处理器代码。
  • 演示手动签名验证流程:使用 webhook-id、webhook-timestamp 与原始请求体拼接成签名内容,再用来自 Replicate 的 whsec_ 前缀密钥做 HMAC-SHA256 校验。
  • 支持处理 Replicate 可能发送的多个签名,逐个比对并使用 timingSafeEqual 做安全比较。
  • 通过时间戳检查(5 分钟窗口)防止重放攻击。
  • 按预测状态分支处理:starting(初始化)、processing(运行中,可读取 logs)、succeeded(成功,处理 output)、failed(失败,读取 error)、canceled(已取消)。

使用方式

在 Webhook 端点必须使用 express.raw({ type: 'application/json' }) 获取原始请求体。读取三个必需请求头,缺少任意一个则返回 400。密钥通过环境变量 REPLICATE_WEBHOOK_SECRET 提供,格式为 whsec_your_secret_here。签名校验时取密钥中 whsec_ 之后的部分做 base64 解码,计算 HMAC-SHA256 并转为 base64;将请求头中的签名按空格拆分、按逗号取第二部分后逐一比对。校验通过后再检查时间戳是否超过 300 秒。最后解析 JSON 正文并按 status 分支处理,成功时返回 200 与 { received: true }。

本地开发可安装 Hookdeck CLI,并运行:npx hookdeck-cli listen 3000 replicate --path /webhooks/replicate。该命令无需账号,提供本地隧道与用于检查请求的 Web UI。

适用场景

适用于需要接收 Replicate 预测事件的 Node.js/Express 服务,也提供 Next.js、FastAPI 等框架示例供参考。常见预测状态与用途对照:starting 用于在 UI 显示加载状态;processing 用于显示进度并在可用时展示日志;succeeded 用于处理最终输出并更新 UI;failed 用于向用户显示错误信息;canceled 用于清理资源并通知用户。

限制与补充

资料中未提供具体收费、价格、平台限制或性能指标。生产环境部署建议参考官方 Replicate Webhook 文档。资料推荐结合 webhook-handler-patterns 模式,以增强处理器序列、幂等性、错误处理与重试逻辑。相关技能还包括 stripe-webhooks、github-webhooks、shopify-webhooks、clerk-webhooks 与 hookdeck-event-gateway。