本项目是一个基于 Web 的交互式平台,旨在帮助开发和测试人员审查需求文档与源代码之间的一致性。它结合了大型语言模型(LLM)的智能分析能力和用户的手动操作,提供自动化的对齐、审查、需求反生成等功能。
- 项目管理: 创建、导入、管理多文件项目,支持
code_repo和doc_repo的标准结构。 - 自动化审查:
- 需求分解: 在需求文档中手动或自动划分需求点。
- 智能对齐: 自动将需求点与相关的代码块进行对齐。
- 手动调整: 支持手动新增、删除、修改代码对齐关系。
- 一致性审查: 基于对齐的需求和代码,调用大模型进行一致性分析,并生成问题报告。
- 数据标注: 提供一个独立的标注界面,用于创建需求与代码之间细粒度的关联数据集。
下面按“从零到可运行”给出一套可直接执行的启动步骤,包含虚拟环境、MySQL、Redis、Celery 和 Web 服务。
git clone https://github.com/code-philia/doc-code-consistency-review.git
cd doc-code-consistency-review建议 Python 3.10(3.8+ 也可)。
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txtconda create -n doc-code-env python=3.10 -y
conda activate doc-code-env
pip install -r requirements.txtcp .env.example .env在 .env 中填写:
API_BASE_URLAPI_KEYMODEL_NAME
项目默认 MySQL 配置在 app/db.py:
- host:
localhost - port:
3306 - user:
root - password:
123456 - database:
doc_code
请按你的环境修改 app/db.py 的 DB_CONFIG。
mysqladmin -h 127.0.0.1 -P 3306 -u root -p ping若返回 mysqld is alive 表示正常。
sudo systemctl status mysql
sudo systemctl start mysql
sudo systemctl enable mysql部分发行版服务名是 mysqld,可改为:
sudo systemctl status mysqld
sudo systemctl start mysqld
sudo systemctl enable mysqldmysql -h 127.0.0.1 -P 3306 -u root -p -e "CREATE DATABASE IF NOT EXISTS doc_code DEFAULT CHARACTER SET utf8mb4;"
mysql -h 127.0.0.1 -P 3306 -u root -p doc_code < schema.sql如果只是增量执行某个迁移脚本,可以直接运行:
mysql -h 127.0.0.1 -P 3306 -u root -p123456 doc_code < add_doc_code_blocks_tables.sql如果后续有新的迁移脚本,只需要把命令最后的脚本文件名替换掉即可。
Celery 使用的 Redis 地址在 tasks.py:
- broker:
redis://localhost:6379/0 - backend:
redis://localhost:6379/0
redis-cli -h 127.0.0.1 -p 6379 ping若返回 PONG 表示正常。
sudo systemctl status redis
sudo systemctl start redis
sudo systemctl enable redis部分发行版服务名是 redis-server,可改为:
sudo systemctl status redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server先进入项目目录并激活同一个虚拟环境,然后启动:
celery -A tasks.celery worker --loglevel=info如果你希望更高并发,可按需设置:
celery -A tasks.celery worker --loglevel=info --concurrency=4同样先激活虚拟环境,然后执行:
python run.py默认监听:http://127.0.0.1:5000(run.py 配置为 0.0.0.0:5000)。
ss -lntp | grep -E "5000|6379|3306"celery -A tasks.celery inspect ping若返回 pong,说明 worker 正常。
- 激活虚拟环境
- 启动 MySQL
- 启动 Redis
- 启动 Celery worker
- 启动 Flask (
python run.py) - 浏览器访问
http://127.0.0.1:5000
