Skip to content

模型请求失败 ​

模型请求失败不是页面动作失败。它可能源于缺失配置、错误的 base URL、鉴权拒绝、CORS、网关超时或服务商限流。先确定请求发到了哪里,再排查响应。

快速判断 ​

症状可能原因
NOT_CONFIGURED没有完整的模型配置
网络错误 / CORS浏览器直连跨域端点,或同源路由未代理
401 / 403网关鉴权或上游密钥错误
429服务商限流,或网关重试耗尽
502 / 504上游不可用或超时
流式中断代理缓冲、连接超时、取消信号
页面无响应但无错误请求未挂载、会话被销毁或 UI 未渲染

配置检查 ​

确认:

  • 生产浏览器使用同源相对路径,例如 /api/llm/v1;
  • 模型名是网关允许的固定别名;
  • 浏览器没有服务商密钥;
  • 网关有 authorize,不是匿名开放;
  • 上游地址只来自服务端;
  • 超时与重试预算没有被两层重复放大。

MODEL_BASE_URL_MISSING、MODEL_NAME_MISSING、MODEL_API_KEY_MISSING 与 LIMITS_INVALID 应显示为配置诊断,不要显示成一条模糊的“模型失败”。

网关检查 ​

用请求 id 在审计中查:

  • 状态码与上游状态码;
  • 尝试次数、是否可重试、是否重试耗尽;
  • 是否配置了模型白名单;
  • 请求大小与超时;
  • 是否有人把 prompt / 密钥写进日志。

不要为了本地调试关闭鉴权后忘记恢复,也不要把上游错误正文原样返回给浏览器。

客户端处理 ​

  • 401/403:重新认证或修配置,不自动重试;
  • 408/429/5xx:遵守可重试标记与退避;
  • 已开始流式输出后失败:不要重放整个请求,展示可恢复状态;
  • retryExhausted:不要继续在浏览器层叠加循环;
  • 页面动作已执行但模型失败:保留工具结果,重连后从当前状态继续。

安全边界 ​

模型密钥只存在服务端。VITE_* 或等价前端变量会进入构建产物,不是秘密存储。日志中不得记录 Authorization、完整提示词或回复正文,除非应用明确选择并且符合隐私要求。

相关 ​

接入模型网关、模型访问与信任边界、错误码与诊断。