用途
该技能面向需要围绕 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)。资料未提供具体收费、价格或平台支持范围等信息。