一、简介与适用场景
Fireworks AI 是海外做开源模型高速推理的聚合平台,主打低延迟与高吞吐,Llama、Qwen、DeepSeek 等主流开源权重都能在上面找到托管版本。它的协议完全兼容 OpenAI,换个 base_url 就能跑起来。
额度上它没有长期免费档,只有新账号的一次性体验额度,用完转按 token 计费。适合的场景是:本地跑不动大参数开源模型,又不想被闭源厂商锁定,需要一个稳定、快、可随时切换模型的托管入口。
二、注册与获取 Key
- 打开 Fireworks 登录页,用 Google / GitHub 账号注册。
- 进入控制台后打开「API Keys」页面,点 Create API Key。
- 复制生成的密钥并保存,页面刷新后不再完整显示。
- 在「Models」页面浏览可用模型,记下你要用的那个模型的完整路径(下一节会讲为什么必须是完整路径)。
三、Base URL 与鉴权
- Base URL:
https://api.fireworks.ai/inference/v1 - 鉴权方式:
Authorization: Bearer fw_xxxxxxxx - 对话端点:
/chat/completions
两个必须注意的点:
第一,Base URL 里的 /inference 段不能省。只填 https://api.fireworks.ai/v1 会直接 404。
第二,Fireworks 的模型标识是三段式完整路径,形如 accounts/fireworks/models/llama-v3p1-8b-instruct。这和绝大多数平台只填模型短名的习惯不同,是新手最常见的失败原因。你自己微调部署的模型则是 accounts/<你的账号>/models/<模型名>。
官方文档:docs.fireworks.ai
四、客户端接入示例
Cherry Studio 等客户端用「自定义 OpenAI 供应商」接入:
- 「设置 → 模型服务 → 添加供应商」,类型选 OpenAI。
- API 地址填
https://api.fireworks.ai/inference/v1。 - API 密钥填
fw_字符串。 - 手动添加模型,名称原样粘贴
accounts/fireworks/models/...全路径。 - 若客户端会自动在地址后补
/v1,请把地址改填到/inference为止,避免出现双/v1。
五、代码示例
curl:
curl https://api.fireworks.ai/inference/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $FIREWORKS_API_KEY" \
-d '{
"model": "accounts/fireworks/models/llama-v3p1-8b-instruct",
"messages": [{"role": "user", "content": "用一句话解释什么是 API"}]
}'
Python:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FIREWORKS_API_KEY"],
base_url="https://api.fireworks.ai/inference/v1",
)
resp = client.chat.completions.create(
model="accounts/fireworks/models/llama-v3p1-8b-instruct",
messages=[{"role": "user", "content": "用一句话解释什么是 API"}],
)
print(resp.choices[0].message.content)
Node.js:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.FIREWORKS_API_KEY,
baseURL: 'https://api.fireworks.ai/inference/v1',
});
const resp = await client.chat.completions.create({
model: 'accounts/fireworks/models/llama-v3p1-8b-instruct',
messages: [{ role: 'user', content: '用一句话解释什么是 API' }],
stream: false,
});
console.log(resp.choices[0].message.content);
六、常见错误排查
| 错误码 | 现象 | 原因 | 解决方案 |
|---|---|---|---|
| 404 | 端点或模型找不到 | Base URL 漏了 /inference,或模型没写三段式全路径 | 补全路径后重试 |
| 401 | Unauthorized | Key 无效或已被删除 | 到控制台重新生成 |
| 402 | 余额不足 | 体验额度用尽 | 绑卡充值或改用其他平台 |
| 429 | 限流 | 未付费账号并发上限低 | 降低并发并加退避重试 |
| 400 | context length exceeded | 输入超出模型上下文 | 裁剪输入或换长上下文模型 |
| 503 | 上游不可用 | 模型正在扩容或维护 | 稍后重试或临时切换模型 |