错误码与限制

错误码与限制

请求失败时,Favonis API 返回 HTTP 状态码和一个 JSON 对象:code 是错误码,fields 是这个错误附带的参数,无参数时省略。程序应当按 code 判断错误类型,不要依赖错误的文字说明。

错误格式

{
	"code": "error.invalid_input",
	"fields": {
		"detail": "validating root: required: missing properties: [\"prompt\"]"
	}
}

参数错误一律返回 400 和 error.invalid_input,fields.detail 写明原因,过长时会被截断。常见的原因:

  • 请求体不是 JSON 对象,缺少必填字段,类型不对,或者出现未定义的字段
  • prompt 为空或全是空白,prompt、text 超过长度上限
  • wait 超出 0 到 25,limit 不在 1 到 100 之间(不传时为 20,传 0 同样是错误),status 的取值不对,after 不是这个列表返回的 next
  • level 不是这个模型的档位
  • 申请上传时 name、size、sha256、mime 不符合要求
  • 任务不在暂停状态时发送空消息,或者回答问题时附带文件、超过 10 万字

detail 只用于排查,内容可能随版本变化,不要用程序解析它。

错误码

状态 code 含义和处理方式
400 error.invalid_input 参数不合法,原因见 fields.detail
401 error.invalid_token 未带密钥,或密钥无效、已过期、已删除(包括离开团队时一并删除的密钥)
403 error.user_banned 密钥所属的账号已被封禁
403 error.account_unavailable 密钥所属的空间无法使用
403 error.api_key_read_only 只读密钥调用会修改内容或消耗积分的接口
403 error.api_key_monthly_cap_reached 这个密钥本月的积分已达到上限,新建任务和发消息都被拒绝;下个月恢复,或在设置中调高上限
403 error.consent_required 协议或政策有新版本,需要先在 Favonis 应用中同意
404 error.not_found 任务、文件或项目不存在,或者不属于密钥代表的身份
404 error.model_not_found 模型不存在,或当前套餐不能使用
409 error.conflict 任务的状态恰好发生变化,这次请求未生效,重新发送后按新的状态处理;任务在等待应用里的操作(action_required)时发空消息,同样返回这个错误码
409 error.file_not_ready 文件的文字仍在提取中,稍后再读取
413 error.file_too_large 附件超过 32 MiB
429 error.rate_limited 请求过于频繁,稍等片刻再试
429 error.chat_concurrency_exceeded 同时运行的任务数已满,新建任务、继续暂停的任务、开始新的一轮都会遇到;等已有任务停下后再试
500 error.internal 服务内部出错,稍后重试;503 时也可能是这个错误码
503 error.maintenance 服务正在维护或暂时不可用,按 Retry-After 响应头的秒数之后重试

积分不足不会返回错误:任务照常建好或继续,随后暂停,reason 为 insufficient_credits,见积分用完时。

以后可能增加新的错误码。遇到不认识的 code 时,按 HTTP 状态码处理:4xx 先检查请求,5xx 稍后重试。

限制

项目 限制
请求频率 每分钟 120 次,按你在这个空间里的身份计算,这个身份的全部密钥和 MCP 调用合计
同时运行的任务 和应用共用套餐能同时生成的回复数,见定价
等待任务 wait 最多 25 秒
列表 一页 1 到 100 个,默认 20
消息 prompt 和 text 最多 100 万字,回答问题时最多 10 万字
附件 单个最大 32 MiB,上传后 48 小时内未使用会被清理
读取文字 每次最多 10 万字
下载地址 2 小时内有效
API 密钥 你在每个空间中最多 20 个
Webhook 地址 你在每个空间中最多 10 个,每次推送 10 秒内要返回 2xx

团队里的每位成员各自计算请求频率、同时运行的任务数、密钥数和 Webhook 地址数,互不占用。

收到 429 时,请等待一段时间再重试,并逐次拉长间隔,不要立即连续重发。轮询任务时用 wait 等待,比频繁查询更省请求次数。

版本与兼容

当前版本是 v1,路径都以 /v1 开头。在 v1 之内,Favonis 只增加内容,例如新的接口、可选参数、返回字段、状态值、事件类型和错误码,不删除已有的接口和字段,也不改变它们的含义。你的程序应当忽略不认识的字段和取值。

需要不兼容的修改时,会发布新的版本,并提前在开发者文档中公告。