Python 如何给 AI API 做健康检查:快速判断接口是否可用
在 AI 工具、自动化脚本或后端服务中接口偶尔超时并不罕见。增加健康检查可以在真正处理用户请求前先判断接口、模型和网络是否正常。为什么需要健康检查如果程序只有在用户请求时才发现接口异常通常会带来几个问题用户直接看到错误故障发现不及时很难判断是网络还是接口问题备用方案无法及时切换排查时缺少基础数据健康检查的目标不是验证所有功能而是用一个轻量请求快速回答当前 API 地址能访问吗 鉴权信息有效吗 指定模型能响应吗一、健康检查应该检查哪些内容建议拆成三层1. 网络层确认域名、端口和 HTTPS 连接是否正常。2. 鉴权层确认 API Key 是否可用但不要在日志中打印完整 Key。3. 模型层发送一个最小请求确认指定模型可以返回结果。分层检查比只访问首页更有意义因为网页能打开不代表 API 调用一定正常。二、用 requests 做最小健康检查importosimporttimeimportrequestsfromdotenvimportload_dotenv load_dotenv()BASE_URLos.getenv(BASE_URL,).rstrip(/)API_KEYos.getenv(API_KEY,)MODELos.getenv(MODEL,your-model-name)defcheck_api(timeout:int10)-dict:urlf{BASE_URL}/chat/completionsheaders{Authorization:fBearer{API_KEY},Content-Type:application/json,}payload{model:MODEL,messages:[{role:user,content:请只回复ok}],max_tokens:8,}startedtime.perf_counter()try:responserequests.post(url,headersheaders,jsonpayload,timeouttimeout,)elapsedtime.perf_counter()-startedreturn{ok:response.ok,status_code:response.status_code,latency_ms:round(elapsed*1000,2),}exceptrequests.RequestExceptionasexc:elapsedtime.perf_counter()-startedreturn{ok:False,status_code:None,latency_ms:round(elapsed*1000,2),error:str(exc),}这里使用了一个很短的提示词和较小的输出限制目的是降低健康检查本身的请求开销。三、不要把敏感信息写进检查结果健康检查的结果可能会进入日志、监控面板或通知消息因此不要返回完整 API KeyAuthorization 请求头用户原始提示词模型生成的完整内容建议只保留这些字段{ok:True,status_code:200,latency_ms:532.4}如果需要区分不同环境可以额外记录环境名称但不要记录密钥本身。四、根据状态码判断问题类型可以先做一个简单分类defclassify_status(status_code):ifstatus_codeisNone:returnnetwork_errorifstatus_code401:returnauthentication_errorifstatus_code429:returnrate_limitif500status_code600:returnupstream_errorif200status_code300:returnhealthyreturnrequest_error分类之后通知内容会比简单显示“失败”更有帮助。五、健康检查不应该太频繁健康检查也会占用请求额度因此不要设置过短间隔。可以根据用途选择本地开发手动执行测试环境每 1 到 5 分钟一次正式服务结合流量和故障等级调整如果接口本身有严格的频率限制应该优先查看服务说明再设计检查周期。六、把健康检查接到启动流程在程序启动时执行一次可以提前发现配置问题if__name____main__:resultcheck_api()ifresult[ok]:print(fAPI healthy:{result[latency_ms]}ms)else:print(fAPI unavailable:{result})raiseSystemExit(1)这样可以避免服务已经启动但实际无法调用模型的情况。七、健康检查和业务请求要分开健康检查只需要验证最小链路不应该复用复杂业务提示词。建议使用固定、简短的测试内容使用低输出限制不读取真实用户数据不把检查结果当作业务结果给健康检查设置单独的超时时间这样既容易分析也不会影响正常业务。八、哪些场景适合增加健康检查AI 工具后端定时自动化任务多模型调用服务个人开发环境测试部署流程需要备用接口的项目当项目开始依赖外部 API 时健康检查就是一个很实用的基础能力。九、结语一个好用的健康检查不需要很复杂关键是做到检查真实 API 调用链路记录状态码和响应时间不泄露密钥和用户内容区分网络、鉴权、限流和服务错误按合理频率执行对于 Python AI 项目可以先从一个最小check_api()函数开始再逐步接入日志、告警和备用模型策略。免责声明本文内容仅用于技术交流与经验分享具体实现请结合项目实际情况调整。