处理异常,让你的应用更加健壮
大模型本身在运行过程中,存在一定的随机性,这些随机性也会带来一些可能的问题或异常。此外,当请求频次过高时,也会触发阶跃星辰所设定的请求限制,因此作为开发者,你可以通过在你的应用程序中添加错误处理的逻辑,来帮助你更好的提供服务。
阶跃星辰 API 提供的异常类型一共有两种:
- HTTP 层面的异常
- 模型层面的异常
HTTP 层面的异常
目前阶跃星辰可能会返回如下几类错误码,你可以通过在应用程序中添加不同的拦截和处理,来优化你的应用程序体验。
400 错误
当阶跃星辰 API 返回 HTTP 400 错误时,表明你的请求当中存在了超出参数配置的内容, 因此,你需要参考所调用的 API 文档,检查自己的请求是否出现了问题。 如果你的请求信息中包含 UGC 内容, 则可以前置的在应用程序中参考阶跃星辰 API 的限制进行用户输入的验证,以帮助用户更早的感知到自己输入的问题。
401 错误
当阶跃星辰 API 返回 HTTP 401 错误时,表明你的认证无效。这可能是由于你使用了错误的 API 密钥。你需要仔细检查你所使用的 API 密钥是否正确,确保其准确无误。 如果问题仍然存在,你可以联系我们的技术支持团队,他们将为你提供进一步的帮助和指导,以解决认证相关的问题,确保你能够正常使用阶跃星辰 API 的各项功能。
402 错误
当阶跃星辰 API 返回 HTTP 402 错误时,表明你的账号当中的余额已经无法支撑本次调用,因此,你需要尽快访问阶跃星辰开放平台充值费用,以恢复正常调用。
404 错误
当阶跃星辰 API 返回 HTTP 404 错误时,表明你的请求路径不正确。这意味着你所请求的资源在服务器上无法按照你提供的路径被找到。你需要仔细参照文档,检查并修复请求路径信息。
- 首先,确认你输入的路径格式是否符合 API 的规范要求,包括大小写、特殊字符等是否准确。
- 如果经过检查和修复后,仍然返回 404 错误,你可以进一步查看文档中关于路径结构和层级的详细说明,确保你对 API 的资源组织结构有清晰的理解。
如果问题依旧无法解决,你可以联系我们的技术支持团队,他们将为你提供更深入的指导和帮助,以确保你能够正确地访问到所需的资源,顺利使用阶跃星辰 API 的相关功能。
429 错误
当阶跃星辰 API 返回 HTTP 429 错误时,表明你的请求频次已经超出了允许的频次。你可以通过设定一定的 delay 时间后,再次请求。如果 delay 仍无法解决,则可以通过充值获得更高的频次。 如充值后的限额依然无法满足你的需求,可以联系我们以开通更高的频次。
451 错误
当阶跃星辰 API 返回 HTTP 451 错误时,表明你的请求内容或大模型响应内容中出现了无法通过安全审核的内容,你可以通过前置添加安全审核能力,来前置完成验证,以帮助用户更早的感知到自己输入的问题。
500 / 503 / 504 错误
当阶跃星辰 API 返回 HTTP 500 /503 /504 错误时,表明是阶跃星辰的服务端出现的问题,当你遇到 5XX 错误时,可以稍等重试。如多次重试后依然无法解决,则可以联系我们定位。
模型层面的异常
在大模型补全时,可能会因为多种原因停止返回,因此需要根据返回的 finish_reason
进行下一步的处理
- 当结束原因为
stop
时,表示大模型按照预定计划结束生成,可直接处理 Message。 - 当结束原因为
length
时,表示大模型没有按照预定计划结束生成,受限于 max_token 未能完整输出。 - 当结束原因为
content_filter
时,表示大模型虽然按照预定计划结束生成,但未通过安全审核,可以通过前置添加安全审核能力,来前置完成验证,以帮助用户更早的感知到自己输入的问题。 - 当结束原因为
tool_calls
时,表示大模型希望调用函数,则需要进行相应的处理,并将返回的函数调用结果传入下一次请求中。
流式请求下的处理
在使用流式请求时,请求可能会在生成过程中因为模型输出原因结束,因此,你需要在获取到服务器的流式返回时,根据每一个 chunk 返回的 finish_reason
进行下一步的处理。
completion = client.chat.completions.create()
for c in completion:
for choice in c.choices:
if choice.finish_reason == "stop":
# 表示正常结束,直接输出即可。
print(c.to_dict())
if choice.finish_reason == "content_filter":
# 表示此请求被安全审核拦截
print(c.to_dict())
### .... 更多处理