# SRS需求文档解析工具 一个智能的SRS(软件需求规格说明书)文档解析工具,支持PDF和Docx格式,能够自动提取需求并生成结构化JSON输出。 ## 特性 - **LLM增强**:集成阿里云千问大模型,智能识别和提取需求 - **多格式支持**:支持PDF和Docx格式的SRS文档 - **非严格GJB结构**:支持不完全遵循GJB 438B标准的文档结构 - **智能过滤**:自动过滤系统描述、重复需求等非需求内容 - **结构化输出**:按章节层次组织的JSON格式输出 - **灵活模式**:支持纯规则提取和LLM增强两种模式 - **表格需求识别**:支持从表格中提取功能/接口/其他需求 ## 快速开始 ### 安装依赖 ```bash pip install -r requirements.txt # 如果使用LLM功能,还需安装: pip install dashscope ``` ### 配置API密钥(LLM模式) ```bash # 方式1:环境变量(推荐) # Linux/Mac export DASHSCOPE_API_KEY="your-api-key" # Windows PowerShell $env:DASHSCOPE_API_KEY="your-api-key" # 方式2:在config.yaml中配置 # llm: # api_key: "your-api-key" ``` ### 运行 ```bash # LLM增强模式 python main.py -i DC-SRS.pdf -o output.json # 纯规则模式(不使用LLM) python main.py -i DC-SRS.pdf -o output.json --no-llm ``` ## 需求类型说明 工具统计**三类**需求类型: | 类型 | 描述 | |------|------| | **功能需求** | 系统应该提供的功能和行为 | | **接口需求** | 系统的输入/输出接口规范、通信协议等 | | **其他需求** | 性能、安全、可靠性等非功能性需求 | ### 接口需求扩展字段 接口需求除了基本的"需求编号"和"需求描述"外,还包含以下字段: | 字段 | 说明 | |------|------| | **接口名称** | 接口的名称 | **接口类型** | 接口的类型(如:CAN总线接口、以太网接口、串口等) | | **来源** | 数据或信号的来源/发送方 | | **目的地** | 数据或信号的目的地/接收方 | ### 需求描述规则 - **功能需求**:保持原文描述,不改写润色 - **接口需求**:允许改写润色,确保描述清晰完整 - **其他需求**:保持原文描述,不改写润色 ## 目录结构 ``` SRS_reqs_qwen/ ├── main.py # 主程序入口 ├── config.yaml # 配置文件 ├── requirements.txt # 依赖 ├── src/ │ ├── document_parser.py # 文档解析器 │ ├── requirement_extractor.py # 需求提取器 │ ├── json_generator.py # JSON生成器 │ ├── llm_interface.py # LLM接口 │ └── utils.py # 工具函数 ├── docs/ │ ├── README.md # 项目说明 │ ├── ARCHITECTURE.md # 架构文档 │ └── USAGE.md # 使用指南 └── tests/ # 测试文件 ```