SuperAPI AI 工具集

groq-webhooks-events

智能体与模型

查看项目

更新于 10-16 04:38

技能介绍

用途

该技能面向需要围绕 Groq 推理 API 构建事件驱动架构的开发者。Groq 不提供原生 webhook,但其亚秒级延迟支持一些独特模式:实时 SSE 流式输出、带回调的批处理、基于队列的流水线,以及把 Groq 当作 LLM 分类/抽取引擎的事件处理器。

主要能力

技能通过 Read、Write、Edit 在代码库中搭建和更新这些处理器,并用 curl 验证生成的端点。文档中给出了五类模式:

  • 步骤 1:SSE 流式端点。将 token 实时推送到浏览器,设置 text/event-stream 头,用 X-Accel-Buffering: no 关闭代理缓冲,每个 token 写一个 data: 帧,最后以 done 事件结束。
  • 步骤 2:使用 BullMQ 的批处理。将提示入队,由限速 worker 处理(concurrency: 5,limiter: 25 RPM),每项触发一次回调。
  • 步骤 3:Webhook 事件处理器。立即向发送方返回 202 确认,然后用 llama-3.1-8b-instant 异步对事件进行分类/抽取。
  • 步骤 4:定时健康监控。按间隔用单 token 请求 ping 每个模型,跟踪延迟和 tokens/sec。
  • 步骤 5:Python 异步批处理。使用 asyncio.Semaphore + gather 实现无需队列的并发处理。

步骤 1 的代码内联在正文中,步骤 2–5 的完整可运行代码位于 references/implementation.md。

使用方式

前置条件:安装 groq-sdk(Node)或 groq(Python),设置 GROQ_API_KEY;批处理模式需要队列系统(BullMQ、Redis、SQS);需要理解 Server-Sent Events(SSE)。

认证:Groq 使用单个 API key 认证。在环境中导出 GROQ_API_KEY,SDK 会自动读取——切勿硬编码密钥或将其嵌入请求体。该密钥是 bearer 凭证,应像任何机密一样对待(环境变量或密钥管理器,绝不提交)。当用 new Groq() / AsyncGroq() 构造 SDK 时,无需逐请求的认证头。

操作流程:将每个处理器作为项目中的文件写入(Read/Write/Edit),然后用 curl 驱动以确认行为。

输出

每种模式产生不同的、可观察的产物,可用于断言:

  • SSE 端点:text/event-stream 响应,每个 token 一个 data: {"content":…,"type":"token"} 帧,以 data: {"type":"done"} 结束(失败时为 type:"error" 帧)。
  • 批处理 worker:每个提示一次 groq.batch.item_completed 回调 POST,携带 batchId、index、total、content、model 和 token 用量。
  • Webhook 处理器:立即返回 202 {"received": true} 确认,随后是后台分类对象 {type, priority, summary, action}。
  • 健康监控:每个间隔记录每个模型的 {status, latencyMs, tokensPerSec}(或 {status:"error", error})。

具体载荷见 references/examples.md。

事件模式概览

模式 Groq 模型 延迟 用例
SSE 流式 llama-3.3-70b-versatile ~200ms TTFT 实时聊天
批处理队列 llama-3.1-8b-instant ~80ms TTFT 文档处理
Webhook 处理器 llama-3.1-8b-instant ~80ms TTFT 事件分类
健康监控 llama-3.1-8b-instant ~80ms TTFT 正常运行时间跟踪

错误处理

问题 原因 解决方案
SSE 断开 客户端超时或网络问题 使用 last-event-id 实现重连
批处理项失败 限速或模型错误 使用指数退避的队列重试
Webhook 超时 处理耗时过长 立即确认(202),异步处理
健康检查 429 监控消耗配额 降低检查频率,使用最小模型

示例

可运行的示例(用 curl 消费 SSE 端点、提交批处理并接收回调、对入站 webhook 分类)位于 references/examples.md。最小首次调用:

curl -N -X POST http://localhost:3000/api/chat/stream \
  -H "Content-Type: application/json" \
  -d '{"messages":[{"role":"user","content":"Explain SSE in one sentence."}]}'

资源

  • 完整实现演练——步骤 2–5 及可运行代码
  • 可运行示例——curl 调用与预期载荷
  • Groq API Reference
  • Groq Text Generation (streaming)
  • BullMQ Documentation

性能优化请参见 groq-performance-tuning 技能。

限制

Groq 不提供原生 webhook,因此 webhook 相关模式需自行搭建接收与处理逻辑。批处理模式依赖外部队列系统(BullMQ、Redis、SQS)。资料未提供具体收费、价格或平台支持范围等信息。