Groq
Groq 为一系列开放模型提供托管推理。AISIX 为应用提供稳定的模型别名和调用方密钥,同时将 Groq 凭证保留在网关中。
准备工作
开始前,请准备以下内容:
- 一套 AISIX 环境:
- 对于 AISIX Enterprise 或 AISIX Cloud,需要一个已关联网关的环境和具有写入作用域的 Admin Token。对于 AISIX Enterprise,请按照 AISIX Enterprise 快速入门操作。如需申请 AISIX Cloud 访问权限,请联系 API7。
- 对于开源 AISIX 网关,请准备本地 AISIX 安装,或使用开源 AISIX 网关快速入门中的 Docker 环境。配置网关以加载声明式资源文件。
- 从 Groq 控制台获取的 Groq API Key。
curl.
使用 AISIX Enterprise 或 AISIX Cloud 配置
导出控制面连接信息:
# AISIX_CP 是 Admin API 基础 URL;应包含 /api,且不含尾部斜杠
# 本地 AISIX Enterprise 快速入门使用 http://localhost:8080/api
export AISIX_CP="YOUR_AISIX_CONTROL_PLANE_API_URL"
export AISIX_TOKEN="YOUR_ADMIN_TOKEN"
export ENV_ID="YOUR_ENVIRONMENT_ID"
为 Groq 支持的 Chat Completions 和原生 Responses 创建服务提供方密钥、模型别名和调用方 API Key。
由于 Groq 提供兼容 OpenAI 的 API,AISIX 通过 openai 适配器连接,并将 Groq API 根地址用作 api_base。
创建服务提供方密钥
创建用于存储 Groq 凭证和 API 根地址的服务提供方密钥:
# 请替换为实际值
export GROQ_API_KEY="YOUR_PROVIDER_API_KEY"
curl -sS -X POST "$AISIX_CP/provider_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "groq-prod",
"provider": "groq",
"api_key": "'"${GROQ_API_KEY}"'",
"api_base": "https://api.groq.com/openai/v1",
"apis": {
"responses": {}
},
"allowed_environments": ["'"${ENV_ID}"'"]
}'
❶ provider 为 groq。AISIX Cloud Admin API 会从目录服务提供方推导适配器;适配器字段仅接受用于 BYO 服务提供方密钥。
❷ api_key 存储 Groq API Key。该值在存储前加密,读取端点绝不会返回它。它遵循服务提供方密钥中的凭证处理行为。
❸ api_base 已包含 /openai/v1 路径。AISIX 会向其追加所选端点的路径。对于此目录服务提供方,该字段是可选的,因为省略时 AISIX Cloud Admin API 会填入相同的值。示例显式设置该字段,使上游根地址在资源中保持可见。
❹ apis.responses 声明 Groq 在同一根地址提供 Responses API。这样,AISIX 就能使用 Groq 的原生请求和响应格式,而不必通过 Chat Completions 转换。
控制面当前保留了将 max_completion_tokens 重命名为 max_tokens 的旧版兼容规则。Groq 仍接受 max_tokens,但现已弃用该字段,建议使用 max_completion_tokens。
下方开源配置有意省略此覆盖设置,以便当前客户端直接发送 max_completion_tokens。
从响应中复制 provider_key.id 值(例如使用 jq -r '.provider_key.id'),并将其导出:
export PROVIDER_KEY_ID="YOUR_PROVIDER_KEY_ID"
创建模型
Groq 模型的可用性会随时间变化。创建模型别名前,请在 Groq 模型列表中查看当前模型 ID。
创建调用方将在请求中发送的模型别名:
curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/models" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "groq-gptoss-prod",
"model_name": "openai/gpt-oss-120b",
"provider_key_id": "'"${PROVIDER_KEY_ID}"'"
}'
❶ display_name 是调用方在 model 中发送的别名。
❷ model_name 是 Groq 模型 ID,例如 openai/gpt-oss-120b。
❸ provider_key_id 将别名关联到 Groq 服务提供方密钥。
保存响应中的 model.id 值:
export MODEL_ID="YOUR_MODEL_ID"
创建调用方 API Key
创建可访问该模型别名的调用方 API Key 资源。网关会生成密钥值,并仅在响应中返回一次明文:
curl -sS -X POST "$AISIX_CP/environments/$ENV_ID/api_keys" \
-H "Authorization: Bearer $AISIX_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"display_name": "groq-caller",
"allowed_models": ["'"${MODEL_ID}"'"]
}'
allowed_models 的值必须引用已保存的模型 ID。从响应中复制 plaintext 值(它只会显示一次),并将其导出为调用方密钥:
export AISIX_API_KEY="YOUR_CALLER_API_KEY"
写入后,配置会自动投射到已关联的网关。