按《参赛成果物提交规范·赛道一》§8: - README:新增项目性质:新规声明、项目概述、整体功能说明、效果总结 (431 测试/99.15% 覆盖/双语试运行/影响调查基线)、团队分工、规模与难度自评 - design.md:开发范式流程图(mermaid,6 步与 AI 日志步骤列一致)+ §2.1 Agent 架构图(感知-规划-行动-记忆映射) - _AI_USAGE_LOG.md:回填「待补充」→架构设计、「整体迭代」→反馈迭代 - tests/coverage/ 覆盖率 HTML 报告(99.15%)+ tests/test-execution-log.txt 执行日志 - docs/参赛成果物提交规范-赛道一.md → docs/submission-spec-track1.md(ASCII 化) - pyproject: pytest norecursedirs 排除 test-execution-log.txt 全量 pytest 431 passed / 99.15%
133 lines
6.1 KiB
Markdown
133 lines
6.1 KiB
Markdown
# Genesis — 概要设计书自动生成 Agent
|
||
|
||
**项目性质:新规**(从零开发的新作品,非存量系统改造)
|
||
|
||
读取 Excel 版要件定义、概要设计做成说明书、概要设计模板、概要设计书记入规则和图表规则等输入资料,自动生成符合规范的 Word 版概要设计书(追加/改修场景会结合既有系统源码做影响调查)。
|
||
|
||
## 项目概述
|
||
|
||
Genesis 是一款 **Agent 开发实战赛赛道一作品**:以多 Agent 协作方式,将「要件定义 → 概要设计书」这一文档密集型工程流程自动化。用户只需上传要件定义 Excel、概要设计模板、记入/图表规则与既有系统源码,系统即自动完成解析、影响调查、分章撰写、QA 校验,最终产出符合规范的 Word 概要设计书与影响调查书 JSON。
|
||
|
||
## 整体功能说明
|
||
|
||
| 功能 | 说明 |
|
||
|---|---|
|
||
| 多 Agent 架构 | Parser(解析)→ Impact(影响调查)→ Writer(撰写)→ QA(校验),四 Agent 协作闭环 |
|
||
| 输入解析 | Excel 要件定义(表格/自由记述/混合型)、Word 模板(7 章锚点)、记入规则/图表规则、Java 既有系统源码 |
|
||
| 影响调查 | 对追加/改修场景分析既有系统,输出「新增/变更/删除/未变化」变更清单与影响关系(total=16 基线样本) |
|
||
| 分章撰写 | 按模板章节(前言/功能一览/画面一览/报表一览/DB设计/接口定义/批处理一览)逐章生成,章节级数据定向注入 |
|
||
| 语言一致性 | `--output-language auto/zh/ja` 可选输出语言;程序化检测正文语言违规,重试/硬失败兜底(2026-08 新增) |
|
||
| QA 校验 | 11 项校验清单(格式/内容准确/幻觉/关联/规则/矛盾/可追溯/术语/章节完整/语言一致性) |
|
||
| 输出 | Word 概要设计书(docx)+ 影响调查书(JSON) |
|
||
|
||
## 效果总结(核心指标摘要)
|
||
|
||
- **测试**:431 个单元/集成测试全绿,代码覆盖率 **99.15%**(红线 ≥99%)
|
||
- **端到端**:真实 LLM 双语试运行通过(中文模板 + `--output-language zh` → 7 章;日文模板 → 7 章),程序化扫描确认正文无中日混杂
|
||
- **真实样本**:7 个脱敏样本(新规/追加改修/混合/自由记述等)驱动解析与生成验证
|
||
- **影响调查基线**:追加改修样本 total=16(new=5 / modified=8 / deleted=3 / unchanged=50 / warnings=0)
|
||
|
||
## 团队分工
|
||
|
||
- **AI 辅助开发**:本项目的需求分析、架构设计、编码实现、测试验证均由 AI(DeepSeek 系列模型 + OpenCode 工具链)与开发者协作完成,全部过程记录于根目录 `_AI_USAGE_LOG.md`(含范式步骤、修改摘要、涉及文件、使用模型)
|
||
- **人工门禁**:设计评审(CEO/架构/QA 视角)、需求确认、提交决策由团队成员人工把关
|
||
|
||
## 规模与技术难度自我评估
|
||
|
||
- **代码规模**:约 2300 行可执行语句(src + tests),覆盖 Parser / Impact / Writer / QA / RAG / 推理引擎六大子系统
|
||
- **技术栈**:Python 3.11+、python-docx / openpyxl / docxtpl、pydantic-settings、DeepSeek/Qwen LLM API
|
||
- **技术难点**:
|
||
1. Excel 表格/自由记述/混合段落的稳健解析(两阶段策略 + 混合判定)
|
||
2. 模板章节 ↔ 数据定向映射(7 章锚点 id 与 Sheet 类型精确对应)
|
||
3. 影响调查(Java 源码解析 + 变更点定位 + 关联推理)
|
||
4. 输出语言一致性(脚本检测 + 重试/硬失败 + QA 第 11 维度)
|
||
5. 覆盖率红线 99% 下的全链路 TDD
|
||
|
||
---
|
||
|
||
## 安装
|
||
|
||
```powershell
|
||
# 1. 创建虚拟环境并安装依赖(Python >= 3.11)
|
||
python -m venv .venv
|
||
.\.venv\Scripts\Activate.ps1
|
||
pip install -e ".[dev]"
|
||
|
||
# 2. 配置 LLM API Key(真实模式必需;离线 --fake 模式可跳过)
|
||
# 编辑 .env(已被 .gitignore 忽略,密钥不入库):
|
||
# GENESIS_INFERENCE__API_KEY=sk-xxx
|
||
# 可选:
|
||
# GENESIS_INFERENCE__BASE_URL=https://api.deepseek.com
|
||
# GENESIS_INFERENCE__MODEL=deepseek-chat
|
||
```
|
||
|
||
## 试运行
|
||
|
||
默认输入为 `sample/` 下既有样本(追加改修·股票场景 + sunOnly 既有系统 + 真实概要设计书模板)。
|
||
|
||
### 离线 Fake 模式(无需 API key,验证整条管线)
|
||
|
||
```powershell
|
||
python scripts/run_trial.py --fake
|
||
```
|
||
|
||
### 真实 LLM 模式(需先在 .env 配置 API Key)
|
||
|
||
```powershell
|
||
python scripts/run_trial.py
|
||
```
|
||
|
||
### 输出
|
||
|
||
- `output/output.docx` — 概要设计书
|
||
- `output/impact-report.json` — 影响调查书(JSON,独立可下载)
|
||
|
||
`output/` 已加入 `.gitignore`,试运行产物不入库。
|
||
|
||
### 自定义输入
|
||
|
||
```powershell
|
||
python scripts/run_trial.py `
|
||
--requirement sample\requirements_enhancement_stock.xlsx `
|
||
--template sample\template_design_ja.docx `
|
||
--rules sample\rules_design_ja.docx sample\rules_entry_ja.docx `
|
||
--existing-system sample\existing-system `
|
||
--language java `
|
||
--output output\output.docx
|
||
```
|
||
|
||
### 输出语言(--output-language)
|
||
|
||
生成概要设计书正文的自然语言由 `--output-language` 控制,取值:
|
||
|
||
| 取值 | 行为 |
|
||
|---|---|
|
||
| `auto`(默认) | 跟随章节标题:标题含日文假名 → 日文;否则看规则文档主导脚本(作成说明书/记入规则为日文 → 日文) |
|
||
| `zh` | 强制简体中文(正文程序化校验:混入日文假名会被重试/硬失败) |
|
||
| `ja` | 强制日文(正文程序化校验:纯汉字段落疑似中文会被重试/硬失败) |
|
||
|
||
表格数据始终照抄源 Excel 原文(不翻译),见 design.md §7.2。
|
||
|
||
**生成中文概要设计书**需配合中文模板:
|
||
|
||
```powershell
|
||
python scripts/run_trial.py `
|
||
--template sample\template_design_zh.docx `
|
||
--output-language zh `
|
||
--output output\output.docx
|
||
```
|
||
|
||
`sample\template_design_zh.docx` 为日文模板的完整镜像(7 章锚点 `section:*` 原样保留),由
|
||
`scripts/make_zh_template.py` 生成,可随时用该脚本重新生成。
|
||
|
||
**中文场景注意**:若规则文档(作成说明书/记入规则)仍为日文,`auto` 推导会倾向日文——请显式
|
||
`--output-language zh`,不要依赖 auto。
|
||
|
||
## 测试
|
||
|
||
```powershell
|
||
python -m pytest
|
||
```
|
||
|
||
全量单测 + 覆盖率检查(红线 `fail_under = 99`)。
|