立项目标:面向 C++/Qt 业务软件,解决大体积日志难排查、故障根因难定位、源码上下文补充耗时的问题,构建一个本地优先、可按项目沉淀经验的 AI 诊断助手。
核心功能:支持多项目管理、日志批量导入、流式解析与索引;支持按时间、级别、线程、关键词、上下文行数等条件检索日志;检索结果可转为分析底稿,并纳入 AI 会话。系统可将日志关键词映射到源码中的函数、类、结构体和调用方,辅助 AI 生成包含事实、根因、依据和建议的诊断报告。另提供代码审查、堆栈分析、项目规则库、历史案例知识库和 Markdown 导出。
业务流程:用户先绑定项目与源码目录,导入日志后建立索引;通过条件检索得到候选日志,选择关键片段加入底稿;AI 结合日志证据、源码片段、项目规则和历史案例完成分析;用户可继续追问、保存会话、导出报告,并将结论沉淀为可复用案例。
整体架构:项目使用 Python + PySide6 构建桌面端,SQLite 管理项目、会话、日志绑定、底稿、检索记录、规则和案例;模型适配层支持 OpenAI、Anthropic 兼容网关和 Mock 模式,业务代码不直接绑定具体模型 URL。核心模块包括日志解析索引、源码语义检索、诊断会话、代码审查、堆栈分析、知识库和统一 UI 样式。
负责内容与结果:我负责需求梳理、PRD、技术方案、UI 原型和主要功能开发,完成多项目联动、日志检索、源码线索、AI 诊断、风险审查、案例召回、Markdown 导出、项目设置和 Windows 打包。当前 77 项单元测试通过,并完成 PyInstaller onedir 桌面包。
难点与解决:针对大日志索引阻塞 UI,采用后台线程、低优先级队列和分批处理;针对 Qt 线程异常,重构线程生命周期和完成信号;针对打包后启动失败,定位到 Qt 插件版本冲突,显式打包并替换 PySide6 的 Qt6 插件;针对 AI 输出不稳定,增加结构化 Prompt、上下文快照、结果校验和错误提示。