Files
catonline_ai/vw-agentic-rag/docs/topics/DEBUG_README.md
2025-09-26 17:15:54 +08:00

3.9 KiB
Raw Blame History

VS Code 调试配置指南

本文档说明如何在 VS Code 中运行和调试 Agentic RAG 服务。

🚀 快速开始

1. 打开VS Code

cd /home/fl/code/ai-solution/agentic-rag-4
code .

2. 选择Python解释器

  • Ctrl+Shift+P 打开命令面板
  • 输入 "Python: Select Interpreter"
  • 选择 .venv/bin/python (项目虚拟环境)

🐛 调试配置

已配置了以下调试选项,可在"运行和调试"面板中使用:

1. Debug Agentic RAG Service

  • 用途: 直接调试服务主程序
  • 端口: 8000
  • 特点: 支持断点调试,实时代码重载

2. Debug Service with uvicorn

  • 用途: 使用uvicorn调试服务推荐
  • 端口: 8000
  • 特点: 更接近生产环境,支持热重载

3. Run Tests

  • 用途: 运行所有测试用例
  • 特点: 支持测试断点调试

4. Run Streaming Test

  • 用途: 运行流式API测试
  • 特点: 测试实际的流式响应

📋 如何使用

方法1: 使用VS Code调试面板

  1. 点击左侧活动栏的"运行和调试"图标 (Ctrl+Shift+D)
  2. 选择调试配置(推荐 "Debug Service with uvicorn"
  3. 点击绿色的"开始调试"按钮或按 F5

方法2: 使用调试启动器

python debug_service.py

方法3: 使用任务

  1. Ctrl+Shift+P 打开命令面板
  2. 输入 "Tasks: Run Task"
  3. 选择相应的任务(如 "Start Service"

🔧 断点调试

设置断点

  • 在代码行号左侧点击设置断点
  • 红色圆点表示断点已设置

常用调试点

  • service/main.py:app - 应用入口
  • service/graph/graph.py - 核心逻辑
  • service/llm_client.py:astream - LLM流式调用你选中的代码
  • service/config.py - 配置加载

调试控制

  • F5: 继续执行
  • F10: 单步跳过
  • F11: 单步进入
  • Shift+F11: 单步跳出
  • Ctrl+Shift+F5: 重启调试

🌐 服务端点

调试时服务运行在:

📊 调试技巧

1. 查看变量

  • 鼠标悬停在变量上查看值
  • 使用"变量"面板查看作用域内的所有变量
  • 使用"监视"面板添加表达式监视

2. 控制台调试

  • 在"调试控制台"中执行Python表达式
  • 例如: config.get_llm_config()

3. 异步调试

  • 对于 async 函数,断点会在 await 处暂停
  • 可以查看异步调用栈

4. 流式调试

  • llm_client.pyastream 方法设置断点
  • 观察流式数据的生成过程

🛠️ 故障排除

问题1: 端口已占用

./stop_service.sh  # 停止现有服务

问题2: 模块导入错误

确保环境变量正确设置:

  • PYTHONPATH: 项目根目录
  • CONFIG_FILE: config.yaml路径

问题3: 配置文件找不到

确保 config.yaml 在项目根目录

问题4: 虚拟环境问题

uv sync  # 重新同步依赖

🔄 开发工作流

标准调试流程

  1. 设置断点
  2. 启动调试 (F5)
  3. 发送测试请求
  4. 在断点处检查状态
  5. 修改代码
  6. 热重载自动生效

测试流程

  1. 运行 "Run Tests" 配置
  2. 或使用任务 "Run Tests"
  3. 查看测试结果

流式测试

  1. 运行 "Run Streaming Test" 配置
  2. 观察流式输出
  3. 检查事件序列

📝 日志查看

调试模式日志

  • 在VS Code终端中查看详细日志
  • 日志级别: DEBUG

服务日志

tail -f server.log  # 查看服务日志

🎯 最佳实践

  1. 使用条件断点: 右键断点设置条件
  2. 异常断点: 设置在异常处暂停
  3. 日志断点: 不停止执行,只记录日志
  4. 热重载: 保存文件自动重启服务
  5. 环境隔离: 使用项目专用虚拟环境

现在你可以愉快地在VS Code中调试你的Agentic RAG服务了🎉