docs: 更新设计文档以匹配Black-white-box-Merge分支最新代码
- 00-overview.md: 重写架构图(移除web/入口)、更新模块清单、更新API签名 - 05-agents-llm.md: 修复章节编号(Section 7/8子节编号错误) - 08-data-flow.md: 修复Mermaid代码块格式(单反引号→三反引号) - 09-run-pipeline.md: 新增run.py全流程入口+black-box-data-create详细设计 - DESIGN.md: 重写为竞赛要求格式(场景价值、范式图、Agent架构、工具清单) - README.md: 添加项目性质声明(新规)、团队分工、技术难度评估
This commit is contained in:
@@ -282,11 +282,11 @@ class Agent3Diagnostic:
|
||||
|
||||
## 7. 式样书驱动测试数据生成器(DesignDataGenerator)
|
||||
|
||||
### 6.1 职责
|
||||
### 7.1 职责
|
||||
|
||||
从日文详细设计书(.md)中提取程序元信息(`ProgramMeta`),结合 COBOL 源码、COPYBOOK 结构和 DB 定义,通过 LLM 生成有业务意义的机能测试数据。
|
||||
|
||||
### 6.2 数据流
|
||||
### 7.2 数据流
|
||||
|
||||
```
|
||||
设计书 .md + COBOL 源码
|
||||
@@ -300,7 +300,7 @@ JSON: {"records": [{field_name: value}]}
|
||||
list[dict]
|
||||
```
|
||||
|
||||
### 6.3 核心类
|
||||
### 7.3 核心类
|
||||
|
||||
```python
|
||||
class DesignDataGenerator:
|
||||
@@ -309,7 +309,7 @@ class DesignDataGenerator:
|
||||
db_md_text=None, replacing_rules=None, v3_field_names=None) -> list[dict]
|
||||
```
|
||||
|
||||
### 6.4 式样书解析器(DesignDataInputParser)
|
||||
### 7.4 式样书解析器(DesignDataInputParser)
|
||||
|
||||
解析日文详细设计书 Markdown 文档,提取以下结构化信息:
|
||||
|
||||
@@ -323,7 +323,7 @@ class DesignDataGenerator:
|
||||
|
||||
解析通过 Markdown 标题匹配(`## 基本情報`、`## 使用ファイル一覧` 等)和表格解析实现,不依赖外部 Markdown 解析库。
|
||||
|
||||
### 6.5 输入类型自动判定
|
||||
### 7.5 输入类型自动判定
|
||||
|
||||
`_determine_input_type` 根据输入文件的媒体类型自动判定:
|
||||
|
||||
@@ -333,7 +333,7 @@ class DesignDataGenerator:
|
||||
| 仅 DB(数据库) | `db` |
|
||||
| 混合或无输入 | `mixed` / `file` |
|
||||
|
||||
### 6.6 字段名映射(_resolve_field_names)
|
||||
### 7.6 字段名映射(_resolve_field_names)
|
||||
|
||||
外部 Agent 生成的字段名可能与 V3 内部字段名不一致,映射规则:
|
||||
|
||||
@@ -344,21 +344,21 @@ class DesignDataGenerator:
|
||||
5. **去下划线匹配**:`R01_EMP_ID` → `R01EMPID`
|
||||
6. **无法映射的字段丢弃**
|
||||
|
||||
### 6.7 规则加载
|
||||
### 7.7 规则加载
|
||||
|
||||
`_load_rules` 从 `rules/pgm_pattern/` 和 `rules/special_feature/` 目录加载所有 `.md` 规则文件,作为 LLM 上下文的一部分。
|
||||
|
||||
### 6.8 记录去重(_dedup)
|
||||
### 7.8 记录去重(_dedup)
|
||||
|
||||
支持按指定键字段去重,`additional_records` 优先保留。
|
||||
|
||||
## 8. LLM 接口封装(LLMClient)
|
||||
|
||||
### 7.1 职责
|
||||
### 8.1 职责
|
||||
|
||||
封装 LLM API 调用,提供文件缓存、自动重试、多模型兼容能力。所有 Agent 通过此客户端与 LLM 交互。
|
||||
|
||||
### 7.2 核心类
|
||||
### 8.2 核心类
|
||||
|
||||
```python
|
||||
class LLMClient:
|
||||
@@ -369,14 +369,14 @@ class LLMClient:
|
||||
def _set(self, k: str, v: str) -> None # 缓存写入
|
||||
```
|
||||
|
||||
### 7.3 缓存机制
|
||||
### 8.3 缓存机制
|
||||
|
||||
- **键生成**:对消息列表进行 JSON 序列化后取 SHA256 哈希
|
||||
- **存储**:以 `{hash}.json` 文件存储在 `.cache/llm/` 目录
|
||||
- **格式**:`{"response": "..."}`
|
||||
- **效果**:相同输入直接返回缓存结果,避免重复调用 LLM
|
||||
|
||||
### 7.4 重试机制
|
||||
### 8.4 重试机制
|
||||
|
||||
- 默认重试 1 次(共 2 次尝试)
|
||||
- 使用 `httpx.post` 发送 HTTP 请求
|
||||
|
||||
Reference in New Issue
Block a user