3.3 KiB
3.3 KiB
SRS需求文档解析工具
一个智能的SRS(软件需求规格说明书)文档解析工具,支持PDF和Docx格式,能够自动提取需求并生成结构化JSON输出。
特性
- LLM增强:集成阿里云千问大模型,智能识别和提取需求
- 多格式支持:支持PDF和Docx格式的SRS文档
- 非严格文档结构:支持不规范的文档结构
- 智能过滤:自动过滤系统描述、重复需求等非需求内容
- 结构化输出:按章节层次组织的JSON格式输出
- 表格需求识别:支持从表格中提取功能/接口/其他需求
- PDF表格提取:支持从PDF中提取表格并自动挂接到章节
- 长句原子拆分:自动将包含多个需求点的长句拆分为多个可验证需求项
快速开始
安装依赖
pip install -r requirements.txt
# 如果使用LLM功能,还需安装:
pip install dashscope
# 若需增强PDF表格提取能力(requirements.txt已包含)
pip install pdfplumber
配置API密钥(LLM模式)
# 方式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"
运行
# LLM增强模式
python main.py -i ".\input\DC-SRS.pdf" -o ".\output\output.json"
# 纯规则模式(不使用LLM)
python main.py -i DC-SRS.pdf -o output.json --no-llm
需求类型说明
工具统计三类需求类型:
| 类型 | 描述 |
|---|---|
| 功能需求 | 系统应该提供的功能和行为 |
| 接口需求 | 系统的输入/输出接口规范、通信协议等 |
| 其他需求 | 性能、安全、可靠性等非功能性需求 |
接口需求扩展字段
接口需求除了基本的"需求编号"和"需求描述"外,还包含以下字段:
| 字段 | 说明 |
|---|---|
| 接口名称 | 接口的名称 |
| 接口类型 | 接口的类型 |
| 来源 | 数据或信号的来源/发送方 |
| 目的地 | 数据或信号的目的地/接收方 |
需求描述规则
- 功能需求:保持原文描述,不改写润色
- 接口需求:允许改写润色,确保描述清晰完整
- 其他需求:保持原文描述,不改写润色
目录结构
SRS_reqs_qwen/
├── main.py # 主程序入口
├── config.yaml # 配置文件
├── requirements.txt # 依赖
├── json_to_excel.py # JSON转Excel工具
├── README.md # 项目说明
├── input/ # 输入文档目录
├── output/ # 输出结果目录
└── src/ # 源代码目录
├── __init__.py
├── document_parser.py # 文档解析器
├── requirement_extractor.py # 需求提取器
├── json_generator.py # JSON生成器
├── llm_interface.py # LLM接口
└── utils.py # 工具函数