Part 7 · 排查流程与实战

6 步标准化排查

● 从 UI 到 Dashboard 逐层定位 ● 心流产出:复盘你曾卡住的问题 ● Part 7 / 7

> 本篇定位:系列收官。学完本篇,你将拥有"面对一个不响应的按钮,能 5 分钟内定位根因"的能力。 > 阅读时长:20 分钟 > 心流产出:用本篇 6 步排查法,独立解决一个你曾经卡住的问题。


一、6 步标准化排查顺序

当 AI 应用出现异常时,严格按以下顺序逐层排查。每一步只看一个窗口,避免"同时打开 5 个面板越看越乱"。

┌──────────────────────────────────────────────────────┐
│ Step 1  UI 层                                          │
│         ↓  界面没反馈?说明前端没做异常捕获              │
│ Step 2  Console 层                                     │
│         ↓  前端 JS 报错?点击后有正确日志输出吗?        │
│ Step 3  Network 层                                     │
│         ↓  请求是否成功发出?状态码?返回内容是否含错误?│
│ Step 4  Terminal / Server Logs 层                      │
│         ↓  后端是否崩溃?Python/Node 抛异常了吗?       │
│ Step 5  SDK Debug Logs 层                              │
│         ↓  API Key 是否正确携带?请求体是否符合规范?   │
│ Step 6  AI Service Dashboard 层                        │
│         ↓  额度耗尽?触发限流?服务商宕机?             │
└──────────────────────────────────────────────────────┘

核心思想从最便宜的检查开始(看 UI),到最贵的检查结束(联系服务商)。 99% 的问题在前 3 步就能定位。


二、6 步排查详解

Step 1 · UI 层(2 秒)

看什么

  • 是否显示了 Loading 状态?
  • 是否弹出了错误提示?
  • 按钮是否变灰(说明前端做了防抖或禁用)?

判断

  • 有 Loading / 错误提示 → 前端至少捕获了异常,往 Step 2 看具体错误。
  • 没任何反馈 → 前端完全没做异常捕获,这是第一个 bug,先去修前端。

Step 2 · Console 层(10 秒)

F12 打开 Console,触发一次操作后观察:

  • 红色报错?看堆栈,定位到具体 JS 文件和行号。
  • console.log 输出?检查日志内容是否符合预期(例如发送的 Prompt 是不是被截断)。
  • 无任何输出?说明代码根本没跑到那一步。

> 关键:90% 的前端问题在这一步就能定位。

Step 3 · Network 层(15 秒)

切到 Network 标签,点击按钮后找一个发往 AI 服务商域名的请求:

状态码含义下一步
请求都没发出前端没发起调用回 Step 2 看 JS 报错
200 OK成功,看 Response检查返回 JSON 是否有 error 字段
401 UnauthorizedAPI Key 错或缺失检查环境变量 / .env 文件
429 Too Many Requests触发限流降低调用频率或升级套餐
500 Server ErrorAI 服务端异常查看 AI Service Dashboard 状态

Step 4 · Terminal / Server Logs 层(30 秒)

切回运行后端的 Terminal:

  • 进程在不在?是否还活着?
  • print 日志?最近一次打印是什么?卡在哪一步?
  • Python 报错堆栈?最后一行就是根因,看 TypeError / KeyError / Timeout 等关键字。

> 小贴士:线上环境没有 Terminal,但 Server Logs 的 ERROR 行会包含同样信息。

Step 5 · SDK Debug Logs 层(1 分钟,仅疑难问题)

开启方式(以 OpenAI 为例):

export OPENAI_LOG=debug
python your_app.py

观察:

  • 请求头 Authorization 里是不是真的带上了 Bearer sk-...
  • 请求体 里的 messages 数组是否符合服务商文档要求
  • 重试信息 是不是触发了自动重试

> 这一步通常只在前面 4 步都查不出问题时才用。

Step 6 · AI Service Dashboard 层(2 分钟)

登录服务商管理后台:

  • 余额:是不是欠费了?
  • 速率限制:今天调用次数是否已用完?
  • 服务状态:是不是 OpenAI / 厂商全局宕机?

如果是服务商宕机,恭喜你——不是你的问题,去休息吧。


三、实战案例:从"按钮没反应"到"定位根因"

故障现象

用户点击「智能问答」按钮后,UI 一直转圈,3 分钟后弹一个红框:网络错误

按 6 步排查

Step 1 · UI 层

  • ✅ 有 Loading 状态(按钮变灰 + 转圈)。
  • ✅ 有错误提示("网络错误")。
  • 结论:前端至少做了错误捕获,问题不在 UI 设计层面。

Step 2 · Console 层

  • 看到 1 条红色报错:TypeError: Cannot read properties of undefined (reading 'content')
  • 定位到 chat.js 第 87 行。
  • 结论:前端解析返回 JSON 时崩溃。是后端返回结构不对,还是前端没做防御?继续看 Step 3。

Step 3 · Network 层

  • 找到发往 /api/chat 的请求。
  • 状态码 200(说明后端没崩)。
  • Response 内容:

  {"data": null, "error": "AI service timeout"}
  

  • 结论:后端正确捕获了 AI 服务的超时错误并返回了结构化响应,但前端没处理 datanull 的情况
  • 根因定位:前端代码健壮性问题。

修复:在 chat.js 第 87 行前加防御:

const content = response.data?.choices?.[0]?.message?.content ?? "AI 暂未返回内容";

问题解决

复盘

  • 故障层级:前端代码
  • 关键证据TypeError 堆栈 + Network 返回的 data: null
  • 典型耗时的步骤:实际只用了 Step 1+2+3,约 1 分钟内完成。
  • 后端与 AI 服务 一切正常,无需查看 Terminal / SDK / Dashboard。

四、心流收官:6 条排查守则

  1. 严格按顺序排查,不要"5 个面板一起看",会被信息淹没。
  2. 每一步先问"看到了吗",再决定是否进入下一步。
  3. 保留现场:报错时第一时间截屏,包括完整堆栈和状态码。
  4. 修复一处后重测,不要批量改 5 处再运行——容易引入新 bug。
  5. 建立自己的"常见错误清单",比如 401 几乎总是 API Key 问题。
  6. 把"外部服务商宕机"放在最后——大多数时候,不是他们的错

五、动手任务(30 分钟)

任务 A:复盘你最近一次卡住的问题

回想你最近一次写 AI 应用被卡住超过 30 分钟的经历,用本篇 6 步法重新走一遍,写出每一步的观察和结论。你会发现:当初如果按这个顺序查,本可以 5 分钟搞定。

任务 B:建立你的个人排查清单

把任务 A 的复盘结果整理成一份 markdown 文档,永久保存

# 我的常见问题速查表

## 401 Unauthorized
- 现象:Network 状态码 401
- 原因:API Key 缺失/错误
- 修复:检查环境变量

## (继续补充)


六、系列完结

至此,AI 编程基本概念 7 篇系列已全部完成。回顾你的成长:

你已掌握数量
5 星核心概念8 个(API、Prompt、Token、Model、Context Window、RAG、Console、Network、Terminal)
4 星重要概念7 个(SDK、System Prompt、Embedding、Vector Database、UI Feedback、Server Logs、AI Service Dashboard)
3 星进阶概念3 个(Streaming、Temperature、SDK Debug Logs)
编程语法基础变量、函数、判断、循环、类
排查能力6 步标准化流程

接下来怎么走?

  • 实战派:拿一个真实需求(周报生成、客服机器人),从零搭一个端到端 AI 应用。
  • 原理派:去读 LangChain / LlamaIndex 源码,看它们怎么把本系列的概念"工程化"。
  • 业务派:调研你所在行业的 AI 应用场景,思考哪些能用本系列方法快速落地。

你已经具备了"独立完成一个 AI 应用开发与调试"的能力。 剩下的,是不断动手、不断踩坑、不断精进。


系列总目录返回 main.md