2026-02-03 22:54:12 +08:00
2026-02-03 22:48:22 +08:00
2026-02-03 22:48:22 +08:00
2026-02-03 22:48:22 +08:00
2026-02-03 22:48:22 +08:00
2026-02-03 22:48:22 +08:00
2026-02-03 22:48:22 +08:00
2026-02-03 22:48:22 +08:00
2026-02-03 22:54:12 +08:00
2026-02-03 22:48:22 +08:00

SRS需求文档解析工具

一个智能的SRS软件需求规格说明书文档解析工具支持PDF和Docx格式能够自动提取需求并生成结构化JSON输出。

特性

  • LLM增强:集成阿里云千问大模型,智能识别和提取需求
  • 多格式支持支持PDF和Docx格式的SRS文档
  • 非严格文档结构:支持不规范的文档结构
  • 智能过滤:自动过滤系统描述、重复需求等非需求内容
  • 结构化输出按章节层次组织的JSON格式输出
  • 表格需求识别:支持从表格中提取功能/接口/其他需求

快速开始

安装依赖

pip install -r requirements.txt

# 如果使用LLM功能还需安装
pip install dashscope

配置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 DC-SRS.pdf -o 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               # 工具函数
Description
从Word/PDF文件中提取需求项
Readme 154 KiB
Languages
Python 100%