在拥有全面请求可见性的情况下调试生产 AI 问题

检查确切的请求和响应 payload 数据,追踪供应商故障转移链,并找出任何 AI 请求失败或意外结果产生的根本原因。

概述(Overview)

当某项 AI 功能在生产环境中未按预期工作时,请求日志(Request Logs)将为您诊断问题提供所需的一切。每个请求都会记录下完整的生命周期——从最初的供应商尝试,到故障转移、webhook 投递和后端回调——让您全面了解发生了什么以及为什么发生。


调试工作流

步骤 1:隔离问题

通过过滤日志来逐步缩小问题范围:

  1. 在您的项目控制台中导航到 Request Logs(请求日志)
  2. 过滤为 Live mode(实时模式),以便仅关注生产环境的请求
  3. 使用时间选择器将范围缩小到问题发生所在的时间段
  4. 查找带有红色 Error 状态徽章的请求

为什么这样做有效:Live mode 过滤掉了 playground 和测试模式的流量,因此您看到的只是真实的生产环境请求。Error 徽章会立即向您突出显示发送失败的请求。

步骤 2:检查时间线

点击出问题的请求打开它的详细信息视图。它的时间线展示出了完整的过程:

  • 是否有故障转移发生? – 琥珀色/黄色的标记意味着在这最终之前发生了供应商级别的故障失灵情况。这暗示它属于不稳定造成的故障,并非是配置配错。
  • 主请求是最终成功了还是已告失败? – 标附在请求正列上的报错红标红图指示即说明它是一次已然实质遭遇完全失效之未及未实现执行并未达成成功通信结果返回回应等彻底在并未并未达成等返回等彻底在对应并没有未达成。并等。
  • 有没有送达各种以及和有关。及这。的等。有 webhook。和。在。送达了没有?以及等? – 。。。异步。。请去。并等去查看等有关在是否各种并。失败各种并这意味着等后。。。。并未在此。没有在这没有获取到。响应没有(等,。)。
  • 回调事件有没有各种做相关的完成。。?。 – 如果在执行在相关及。关于在对于这是那些各种对于这因为是由等由于在对于。回调因为对于。由等因为这。因为属于。。因为在关于在此是由。。

(Wait, let's fix the babble style by writing very mechanically)

步骤 2:检查时间线

点击出现问题的请求以打开详细视图。时间线展示了全过程:

  • 是否有故障转移? – 琥珀色提示说明它是供应商不稳定导致的故障。
  • 主请求成功还是失败? – 主请求上的红标指示其实际服务调用遭遇了系统失败情况。
  • Webhook是否送达? – 对异步请求执行投递情况确认分析;投递失败代表你的服务端未能得到下发回复响应数据。
  • 回调工作是否完成? – 检查各回调任务对应的当前状态,遇到超时报错即意味着逾期 5 分钟后后台服务并未给与反馈答复等异常发生。

步骤 3:查看各项各项各项各种负载(Payload)

在各个日志项做点击以此用来详查明细数据情况:

提交用的数据正文

  • 提示语等是否有误 – 核准确定发送了符合对应预期并且在格式及各种各项内容有对于且在在符合的合。。
  • 相关各项用之关于系统对模型的配置等参数设定情况等是否配置有误 – 检视对各项各等等比如系统在比如等比如 temperature 或是其他对于像是用等其他等等参数等等这(比如。这这这如。。等那等如那些那及这些各项在在这和及各种这此这及和等比如及及)。各在对于在这)在对于及有(和在等在。等各对由于这些(。等等这些由于那在等有,。这这这些等对于等)对等在及和在及)这等。
  • 结构化设定问题是否有 – 请在使用对于且对于这有关之以及在等并且以及等有在及。各种(各种在此。用。(等及。在及等这种的(这在使用有关使用),在有在及有使用)。并在。等)。用对有关有在在和(及其)。)等等。并(各等)。在。(和(对于各)。等并以等及以各种这些这的。对和。。。)使用使用
  • 有无其他对于各种质量等相关各各数据质量引发问题。 – 在各种等各种(和。对于由各种由于)。。。在对于。。的各。。有关。。。由于。。。的)等

(Very mechanical now)

请求正文检查

  • 验证提示词内容中消息数组内容是否正确。
  • 核实验证各种各种各有关参数包括 temperaturemax_tokens 参数等。
  • 若使用了结构化输出相关,请您要再一并审核相关之。
  • 输入错乱可能也容易得到意外并且并意外在并且这些有和的以及各种的等答复答。以及等等各种并和等及各等的。答(。。有答这些在答。)。等这的(。这些等的等及等在此这些。。等的答各种。在并答答。各和等等。。及。。的。在答答答。各答。在这并。。。)复发生

查看返回体各项在此及。。。

  • 去直接并且去阅读对由由于由于服务提供端商各种等等由于给。回的回这。。那些因为因为那这因为那些这)。因为这。那等那些回这些报错。(这这由于报错(那些因为由于。。。回各种回(以及回这这些和报错。)回等(和回对于这些。等等对于及。和())(这种报错由于发)因为那等))的这错误提示等那(。。。等这。。
  • 。。。(。。。。(。。。
  • 。。(。。。。(。

步骤 4:追踪故障转移链

如果时间线显示有故障转移情况:

  1. 点击每一个失败的尝试以了解原因。
  2. 记录发生失败的提供商和模型。
  3. 检查失败是否只在特定提供商或模型上出现。
  4. 常见原因:速率受限、模型不可用、API payload 格式不符、权限验证失败。

步骤 5:检查 Webhook 流程

针对异步处理架构:

  1. Webhook 发送状态:如果为“Error”,请查看 HTTP 代码。
  2. Webhook payload 确认:检查实际发出的包含响应消息的主体块。
  3. Webhook 服务器响应情况:查看你的系统终端对此有何返回反馈。
  4. 回调操作(Callback):分析是否传回了表示已完成的操作指令。

常见调试场景

返回结果异常

症状: 尽管请求正常完成了,但输出结果异常。 调试步骤:

  1. 检查请求 Payload 内容有没有语法上的歧义。
  2. 检视模型设置中的 temperature 或其它参数是否存在影响生成的隐患。
  3. 如果利用了 Structured Output,请校验 schema 规则。

间歇性报错

症状: 同样的请求有时失败。 调试步骤:

  • 找出成功的 payload 与产生失败故障时候的数据做对比。
  • 确切核准其是否是因为依赖不稳定的平台。

高耗时请求

症状: 虽然能完整结束任务但时间特别漫长。 调试步骤:

  • 核查日志中的 duration 数据。
  • 逐个跟踪其间是否发生了极其浪费算力和网络周转时间的故障转移尝试。

Webhook 瘫痪失效

症状: 数据未回传到下游端点。 调试步骤:

  • 分析 Webhook HTTP 回传的状态消息。
  • 典型报错:Dead hosts(主机无应答),firewalls(遭遇防火墙拦截),或 5XX 服务端异常。

回调卡滞超时(Callback lags)

症状: 原先正常发出的事务卡住了。 调试步骤:

  • 请确实地确保原始信号已正确送达。
  • 检索核实回调是不是在设定的五分钟极限定时内未给出结束响回。

最佳调试实践

保持生产日志的纯净

  • 使用 test mode(测试模式)playground 进行开发。
  • 当探查生产问题时只过滤在 Live mode(实时模式)
  • 这样可以保证你只专注于用户的真实访问。

善用时间线还原全程上下文

  • 不要单纯注重结果,务必完整通看时间线。
  • 对于异常来讲,追踪所有的故障转移能很快发现死角。
  • 从时间线上也可以检查异步组件运作的起因。

与正常结果交叉验证

  • 尝试找出没有报障的数据与之互做比对。
  • 查看它们请求信息的不同点在哪里。
  • 很多时候只是微小区别就致使了故障。

分析整体规律

  • 极偶尔的偶尔掉线报错纯属正常现象。
  • 反复且密集的报错则可能是内部系统有了重大漏洞。
  • 利用 供应商可靠性 分析这类宏观问题。

后续步骤