# 需求解析 **Repository Path**: EonNetWork/requirements-analysis ## Basic Information - **Project Name**: 需求解析 - **Description**: 业务需求太逆天?需求解析助手一键解析,引导业务需求,支持钉钉分发处理 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-02 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 需求验证系统 基于Python Flask和千问大模型的需求验证系统,帮助业务人员验证需求的有效性并自动生成分工方案,通过钉钉机器人通知技术人员。 ## 功能特性 1. **需求验证**:业务人员输入需求后,系统使用千问大模型判断需求是否为真实有效需求 2. **需求分析**:对有效需求进行详细分析,拆解功能点和技术要点 3. **人员分工**:根据需求特点自动建议合适的人员分工 4. **钉钉通知**:将分析结果通过钉钉机器人发送给技术人员 5. **精美界面**:基于Bootstrap 5的响应式界面设计 6. **团队成员配置**:独立的团队成员配置文件,便于维护和扩展 ## 系统架构 ``` 需求验证系统 ├── app.py # Flask主应用 ├── config.py # 配置文件 ├── requirements.txt # 依赖包列表 ├── .env.example # 环境变量示例 ├── templates/ # HTML模板 │ ├── base.html # 基础模板 │ └── index.html # 首页模板 ├── static/ # 静态资源 │ └── css/ │ └── style.css # 自定义样式 └── alibaba-bailian-api/ # 千问大模型API客户端 ``` ## 安装步骤 ### 1. 克隆项目 ```bash git clone cd 需求验证系统 ``` ### 2. 安装依赖 ```bash # 创建虚拟环境(推荐) python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows # 安装Flask依赖 pip install -r requirements.txt # 安装千问大模型API依赖 pip install -r alibaba-bailian-api/requirements.txt ``` ### 3. 配置环境变量 ```bash # 复制环境变量示例文件 cp .env.example .env ``` 编辑 `.env` 文件,填入实际配置信息。示例配置如下: ```env # 需求验证系统环境变量配置文件(示例) # Flask配置 SECRET_KEY=your-secret-key-change-in-production DEBUG=True FLASK_ENV=development # 千问大模型API配置 QIANWEN_API_KEY=your-qianwen-api-key # 钉钉机器人配置 DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=your-access-token DINGTALK_SECRET=your-dingtalk-secret # 可选,用于签名验证 # 应用配置 APP_HOST=0.0.0.0 APP_PORT=5000 ``` ### 4. 获取千问API密钥 1. 访问 [阿里云千问控制台](https://dashscope.console.aliyun.com/) 2. 创建API密钥 3. 将密钥填入 `.env` 文件的 `QIANWEN_API_KEY` 字段 ### 5. 配置钉钉机器人 1. 在钉钉群中添加自定义机器人 2. 获取Webhook URL和签名密钥(可选) 3. 将信息填入 `.env` 文件的 `DINGTALK_WEBHOOK_URL` 和 `DINGTALK_SECRET` 字段 ## 运行应用 ```bash python app.py ``` 应用将在 `http://localhost:5000` 启动。 ## 使用说明 1. 打开浏览器访问 `http://localhost:5000` 2. 在输入框中详细描述业务需求 3. 点击"提交需求进行验证"按钮 4. 系统将使用千问大模型验证需求有效性 5. 如果是有效需求,可点击"进一步分析并分工"按钮 6. 分析完成后,可点击"发送到钉钉通知技术人员"按钮 ## API接口 ### 需求验证接口 ``` POST /submit_requirement Content-Type: application/x-www-form-urlencoded requirement=需求内容 ``` ### 需求分析接口 ``` POST /analyze_requirement Content-Type: application/json { "requirement": "需求内容" } ``` ### 发送钉钉通知接口 ``` POST /send_to_dingtalk Content-Type: application/json { "requirement": "需求内容", "其他分析结果字段": "..." } ``` ## 自定义提示词 系统使用预定义的提示词模板进行需求验证和分析,可在 `config.py` 中修改: - `REQUIREMENT_VALIDATION_PROMPT`:需求验证提示词 - `REQUIREMENT_ANALYSIS_PROMPT`:需求分析提示词 ## 团队成员配置 系统使用独立的配置文件来管理团队成员信息,便于维护和扩展。团队成员信息存储在 `team_config.py` 文件中。 ### 配置结构 ```python class TeamMember: def __init__(self, name, skills, experience, role, notes=""): self.name = name # 成员姓名 self.skills = skills # 技能描述 self.experience = experience # 经验描述 self.role = role # 角色 self.notes = notes # 备注信息 ``` ### 添加新成员 要添加新成员,只需在 `TEAM_MEMBERS` 列表中添加新的 `TeamMember` 实例: ```python TEAM_MEMBERS = [ # ... 现有成员 ... # 添加新成员示例 TeamMember( name="新成员姓名", skills="技能描述", experience="经验描述", role="角色", notes="备注信息" ) ] ``` 查看 `examples/add_team_member.py` 文件获取完整的添加成员示例。 ### 修改成员信息 直接修改 `TEAM_MEMBERS` 列表中相应成员的信息即可。 ### 在提示词中使用团队成员信息 系统会自动将团队成员信息注入到提示词中,无需手动修改提示词模板。 ## 部署到生产环境 ### 使用Gunicorn部署 ```bash # 安装Gunicorn pip install gunicorn # 启动应用 gunicorn -w 4 -b 0.0.0.0:5000 app:app ``` ### 使用Docker部署 ```bash # 构建镜像 docker build -t requirement-validation-system . # 运行容器 docker run -d -p 5000:5000 --env-file .env requirement-validation-system ``` ### Docker Compose部署(可选) 如果需要使用MongoDB作为记忆存储,可以使用Docker Compose部署: 1. 创建 `docker-compose.yml` 文件: ```yaml version: '3.8' services: app: build: . ports: - "5000:5000" env_file: - .env depends_on: - mongodb environment: - MONGO_URI=mongodb://mongodb:27017 mongodb: image: mongo:5.0 ports: - "27017:27017" volumes: - mongodb_data:/data/db volumes: mongodb_data: ``` 2. 启动服务: ```bash docker-compose up -d ``` ## 项目结构说明 ``` 需求验证系统/ ├── app.py # Flask主应用,包含路由和业务逻辑 ├── config.py # 配置文件,包含提示词模板和环境配置 ├── team_config.py # 团队成员配置文件 ├── requirements.txt # 项目依赖列表 ├── .env.example # 环境变量示例文件 ├── README.md # 项目说明文档 ├── templates/ # HTML模板文件 │ ├── base.html # 基础模板,包含页面框架 │ └── index.html # 首页模板,包含需求输入和结果显示 ├── static/ # 静态资源文件 │ └── css/ │ └── style.css # 自定义CSS样式 └── alibaba-bailian-api/ # 千问大模型API客户端(已提供) ``` ## 技术栈 - **后端**:Python 3.8+, Flask - **前端**:HTML5, CSS3, Bootstrap 5, jQuery - **AI模型**:阿里云千问大模型 - **通知**:钉钉机器人 - **部署**:Gunicorn, Docker(可选) ## 贡献 欢迎提交Issue和Pull Request来改进这个项目。 ## 许可证 本项目基于MIT许可证开源。