这是一份基于你提供的 main.py 代码生成的《卫星星务软件代码RAG知识库系统使用手册》。

这份文档详细梳理了系统的功能模块、操作流程和注意事项，旨在帮助用户快速上手并理解如何使用该工具进行代码知识管理与分析。

🛰️ 卫星星务软件代码RAG知识库系统使用手册
版本：3.0 | 适用对象： 软件开发工程师、代码审查员、项目经理

系统概述
本系统是一个集成了RAG（检索增强生成）与静态分析技术的代码知识管理平台。主要针对卫星星务软件的C/C++代码库，提供知识库构建、自然语言功能检索、问题单过滤及代码静态分析四大核心功能。

环境准备
在运行系统前，请确保完成以下基础配置：
API Key配置： 打开 config.py 文件，将 QWEN_API_KEY 替换为你的真实密钥。
   注意： 如果未配置或使用默认值，系统会在启动时发出警告，但允许用户选择是否继续。
依赖库安装： 确保已安装 faiss, numpy, openpyxl (用于Excel处理) 等相关Python库。

主菜单操作
启动 main.py 后，系统将显示主菜单。共有 5 个选项：
选项   功能   描述
1   创建项目知识库   扫描代码，构建向量数据库与元数据（后续功能的基础）。

2   功能需求检索   通过自然语言查询代码功能实现。

3   问题单过滤   对Excel中的问题单进行智能分类与紧急度评分。

4   静态分析   执行代码审查规则，生成审计报告。

5   退出系统   结束程序。

核心功能详解

4.1 创建项目知识库 (选项 1)
这是使用检索和过滤功能的前提步骤。

操作流程：
    在主菜单选择 1。
    系统会提示确认（输入 y）。
    调用 build_rag_database_interactive() 进行交互式构建。
输出文件：
    satellite_rag.faiss (FAISS向量数据库)
    satellite_rag_metadata.json (元数据文件)
注意： 构建过程可能耗时较长，取决于代码库规模。

4.2 功能需求检索 (选项 2)
利用大模型对代码功能进行语义搜索。

前置条件： 必须先通过选项 1 创建知识库，或手动配置已有知识库文件。
操作流程：
    选择 2。
    系统自动加载默认知识库（或引导手动配置）。
    进入交互模式，提示输入“功能需求”。
    输入自然语言： 例如 "如何初始化姿态控制模块？"
    查看结果：
        实现状态： 已实现 / 未实现。
        综合评分： 相关性分数。
        最相关函数： 匹配到的具体函数名。
    输入 quit 返回主菜单。

4.3 问题单过滤 (选项 3)
针对科代问题单（Excel格式）进行自动化过滤，识别真实缺陷并评估紧急程度。

前置条件： 需要知识库支持。
交互配置参数：
    输入文件： 默认 科代问题单样例.xlsx。如果文件不存在，系统会提示手动输入路径。
    输出文件： 默认 filtered_defects.json。如果指定目录不存在，系统会询问是否创建。
    项目路径： 指定代码根目录（用于定位问题单中的文件）。
结果查看：
    过滤完成后，可选择查看统计摘要（真实缺陷数、紧急程度分布）。
    可选择打开JSON文件查看详细结果，或筛选“高紧急缺陷”进行重点检查。

4.4 静态分析 (选项 4)
基于规则的代码静态扫描工具。

操作流程：
    选择 4。
    项目路径： 输入待分析的 C/C++ 项目根目录。
    规则文件： 默认使用 审查规则.xlsx，系统会检查文件是否存在。
    报告名称： 输入输出报告的基础名称（默认 audit_report）。
输出： 生成包含审查结果的报告文件。

常见问题与故障排除

Q: 提示 "API Key未配置"
    A: 请检查 config.py 文件中的 QWEN_API_KEY。虽然可以选择继续，但部分依赖大模型的功能可能无法正常工作。
Q: 功能检索/问题单过滤提示 "知识库配置失败"
    A: 请先执行选项 1 创建知识库。如果已有文件，请确保路径正确，或在报错后选择手动配置路径。
Q: 报错 "文件不存在"
    A: 系统默认会在当前工作目录查找文件。请确保 科代问题单样例.xlsx 或 审查规则.xlsx 放在程序运行的目录下，或者在提示时输入文件的绝对路径。

总结
该系统通过将代码转化为知识库，极大地降低了卫星软件代码的维护门槛。建议在日常开发中：
先建库： 每次代码大版本更新后，重新执行选项 1。
多检索： 利用选项 2 快速理解代码逻辑。
严审查： 利用选项 3 和 4 确保代码质量。