Fireworks AI 怎么调用:API 密钥、Python 请求与报错排查
Fireworks AI 是一个托管开源模型的推理平台,调用方式和 OpenAI 接口兼容。
你只需要在平台创建 API 密钥,然后把 OpenAI SDK 的 base_url 指向 Fireworks 的地址,就能用相同的代码结构请求模型。
下面按准备、调用、验证和排错展开。
调用前需要准备什么
开始之前,先确认三件事:
- 一个可用的 Fireworks AI 账号,并完成邮箱验证。
- 在控制台的 API Keys 页面创建一个密钥,格式类似
fw_开头的一串字符。密钥只在创建时完整显示,关闭弹窗后无法再次查看,务必立即保存到密码管理器或环境变量。 - 本机已安装 Python 3.8 以上版本,并能正常访问外网。
不建议把密钥直接写在代码文件里。
推荐用环境变量管理:
export FIREWORKS_API_KEY="fw_你的密钥"
Windows 用户可以在 PowerShell 里用 $env:FIREWORKS_API_KEY="fw_你的密钥" 临时设置。
用 OpenAI SDK 发第一个请求
Fireworks 的接口地址是 https://api.fireworks.ai/inference/v1。
安装官方 OpenAI SDK 后,把 api_key 和 base_url 换成 Fireworks 的值即可。
pip install openai
新建 test_fireworks.py:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["FIREWORKS_API_KEY"],
base_url="https://api.fireworks.ai/inference/v1",
)
response = client.chat.completions.create(
model="accounts/fireworks/models/llama-v3p1-8b-instruct",
messages=[
{"role": "user", "content": "用一句话解释什么是向量数据库"}
],
temperature=0.7,
max_tokens=200,
)
print(response.choices[0].message.content)
运行 python test_fireworks.py,如果终端打印出模型回答,说明密钥和网络都正常。
模型名称必须和 Fireworks 控制台模型库中显示的完整路径一致。
不同模型支持的上下文长度和参数不同,写错模型名会直接返回 404。
怎么确认请求真的成功了
不要只看程序有没有报错,建议同时检查三处:
- 终端输出是否是一段完整、通顺的中文回答,而不是空字符串或报错堆栈。
- Fireworks 控制台的 Usage 或 Logs 页面是否出现刚才这次调用的记录,包括模型名和 token 消耗。
- 如果代码里打印了
response.usage,确认prompt_tokens和completion_tokens都有数值。
print(response.usage)
三项都对得上,才算调用链路打通。
只看到 200 状态码但内容为空,通常和 max_tokens 设得太小或模型名称不匹配有关。
常见报错与处理方式
401 Unauthorized:密钥无效或没有正确传入。
先检查环境变量是否存在:echo $FIREWORKS_API_KEY。
注意不要多复制空格或换行,重新创建密钥后重试。
404 Not Found:最常见的原因是模型名写错。
Fireworks 的模型标识通常带 accounts/fireworks/models/ 前缀,直接从控制台模型详情页复制完整名称,不要自己拼写。
429 Too Many Requests:触发了速率限制。
降低并发数,或在代码里加入指数退避重试。
不要无间隔循环重试,会加重限制。
请求超时:先确认本机能否访问 api.fireworks.ai,再检查代理设置。
如果服务器在境内,建议确认出口网络稳定;
超时和密钥错误是两类问题,不要混在一起排查。
费用和参数上的避坑点
Fireworks 按 token 用量计费,具体单价以控制台账单页显示为准,不同模型价格不同。
调用前注意两点:
max_tokens是生成上限,不是固定消耗。设置过大不会直接扣满,但长输出会显著增加费用。- 批量任务先用小样本跑通,再扩大请求量。建议在代码里记录每次请求的
usage,方便对账。
另外,Fireworks 也支持部分模型的自定义部署和微调,但那属于另外的计费和使用流程,普通 API 调用不需要先部署模型。
如果你只是验证接口,直接用平台托管的模型即可。
适合继续深入的场景
接口跑通后,可以继续做流式输出、函数调用或多模型对比。
流式输出只需在 create 里加 stream=True,然后逐块读取 delta.content。
需要提醒的是,不同模型对函数调用和结构化输出的支持程度不一样,切换模型前先查看该模型的参数说明,避免代码在某个模型上正常、换一个就报错。
整体上,Fireworks AI 的使用门槛主要在密钥管理和模型名称准确性上,把这两点固定成环境变量和配置常量,后续接入其他应用会省很多排错时间。