Files
2026Technology-Competition/README.md
T
lhl a1fefd43eb docs(deliverables): 参赛成果物补齐(README 五项 + 范式图/架构图 + coverage 报告)
按《参赛成果物提交规范·赛道一》§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%
2026-08-26 14:24:02 +08:00

133 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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=16new=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`)。