71 lines
5.6 KiB
Markdown
71 lines
5.6 KiB
Markdown
# Tasks: init-promptcr-platform
|
||
|
||
## 1. M1 项目骨架与基础设施
|
||
|
||
- [x] 1.1 初始化 Git 仓库与 `.gitignore`(排除 `.env`、密钥、node_modules、构建产物)
|
||
- [x] 1.2 创建后端目录结构(`backend/`,按 dataset / models / prompts / experiments / analysis / api / cli 分包)与单一 `requirements.txt`
|
||
- [x] 1.3 创建前端骨架(Vite + React 18 + Tailwind CSS 3 + shadcn/ui,ECharts 依赖)
|
||
- [x] 1.4 用 SQLAlchemy 定义核心表(samples、defects、prompt_templates、prompt_template_versions、experiments、experiment_runs、results)并建库迁移
|
||
- [x] 1.5 编写配置管理(环境变量 / `.env` 读取密钥与连接串,零硬编码)
|
||
- [x] 1.6 编写 docker-compose 骨架(db + backend + frontend/nginx)与各 Dockerfile,PostgreSQL 挂 volume
|
||
- [x] 1.7 M1 自验后创建 git commit(里程碑存档点)
|
||
|
||
## 2. M2 F1 数据集管理模块
|
||
|
||
- [x] 2.1 实现 Git 解析(GitPython):遍历提交历史并按"变更规模适中、语言分布均衡、提交信息完整"筛选候选 commit
|
||
- [x] 2.2 实现 Unidiff 提取(保留变更前后文件上下文)并落库 samples
|
||
- [x] 2.3 实现缺陷规则框架:统一规则接口 + 目录扫描注册表(按语言组织,新增文件即插拔)
|
||
- [x] 2.4 实现 Python 内置规则(基于标准库 `ast` AST 级变换):空指针引用、资源未关闭、边界条件错误(含边界条件错乱)、逻辑运算符误用、并发安全问题
|
||
- [x] 2.5 实现 Java 内置规则(基于 `javalang` 解析做 AST 级变换,同类五型,位置精确可知,注释/文档说明引入理由,禁止正则/纯文本替换)
|
||
- [x] 2.6 实现 JavaScript 内置规则(基于 `esprima` 解析做 AST 级变换,同类五型,位置精确可知,注释/文档说明引入理由,禁止正则/纯文本替换)
|
||
- [x] 2.7 实现 Ground Truth 标注生成(缺陷位置/类型/参考修复/语言)落库 defects
|
||
- [x] 2.8 构建并交付 12 个 commit 样本数据集(≥3 语言、分布均衡),自验 A1;新增一条自定义规则验证 A1b
|
||
- [x] 2.9 M2 自验后创建 git commit(里程碑存档点)
|
||
|
||
## 3. M3 F2 模型适配 + F3 提示词策略
|
||
|
||
- [x] 3.1 实现 `ModelAdapter` 抽象基类(统一 `chat(prompt, params)` 返回审查文本 + token + 耗时,内置信号量并发控制与指数退避重试)
|
||
- [x] 3.2 实现 DeepSeek / Kimi / 通义千问三适配器(统一 OpenAI 兼容格式,仅配置差异)与工厂模式,自验 A2
|
||
- [x] 3.3 实现提示词模板存储与版本管理(模板表 + 版本表,旧版本只读)
|
||
- [x] 3.4 内置 L1/L2/L3 三级 Jinja2 模板(含策略/级别标识、版本号、变量 schema)并实现 `render(strategy_id, version, context)`,自验 A3
|
||
- [x] 3.5 M3 自验后创建 git commit(里程碑存档点)
|
||
|
||
## 4. M4 F4 实验调度与结果采集
|
||
|
||
- [x] 4.1 实现全因子矩阵生成(3 模型 × N 级 × 12 commit × 3 重复,唯一 run_id,采样参数快照落库),自验 A4
|
||
- [x] 4.2 实现 asyncio 异步调度器(按并发额度分批,五步流水线:加载 diff → 渲染 → 调用 → 采集 → 落库更新进度)
|
||
- [x] 4.3 实现失败重试、阈值隔离、单单元失败不中断批次,自验 B1
|
||
- [x] 4.4 实现断点续跑(重启扫描 pending/中断单元继续,已完成不重复调用),自验 B2
|
||
- [x] 4.5 实现异常输出处理(空/不合约定 → 标记失败留原文不崩溃、不猜测解析),自验 B3、C1、C2
|
||
- [x] 4.6 全因子矩阵小规模真实跑通,自验 A5
|
||
- [x] 4.7 M4 自验后创建 git commit(里程碑存档点)
|
||
|
||
## 5. M5 F5 数据分析与可视化(后端)
|
||
|
||
- [x] 5.1 实现输出解析与 Ground Truth 自动比对,计算检出率 / 误报率 / 覆盖率
|
||
- [x] 5.2 实现李克特五级量表评分存储与"模型 × 级别"聚合(均值 + 频数分布)
|
||
- [x] 5.3 实现输出稳定性度量(三次重复输出指出项集合两两 Jaccard 相似度取平均值)
|
||
- [x] 5.4 实现统计分析(pandas + scipy:描述性统计、ANOVA、配对 t 检验)
|
||
- [x] 5.5 实现 matplotlib 论文图(热力图 / 箱线图 / 分组柱状图,中文显示、样式统一)与前端同口径 JSON 接口,自验 A6
|
||
- [x] 5.6 M5 自验后创建 git commit(里程碑存档点)
|
||
|
||
## 6. M6 F6 接入层 + F7 Web 前端
|
||
|
||
- [x] 6.1 实现 FastAPI RESTful API(数据集 / 模板 / 实验下发 / 进度 / 结果 / 统计 / 李克特打分),仅返回 JSON
|
||
- [x] 6.2 实现 Typer CLI 与 API 等价(含 1×1×1×1 冒烟命令),自验 D4 等价性
|
||
- [x] 6.3 实现数据集管理页(样本列表、Ground Truth 详情、构建入口)
|
||
- [x] 6.4 实现实验配置页(模型/级别/样本/重复勾选、单元数量实时预览、模板在线编辑与新增),自验 A3b
|
||
- [x] 6.5 实现实验监控页(批次进度、单条 run 状态与原始输出、断点续跑触发)
|
||
- [x] 6.6 实现结果分析页(ECharts 热力图/箱线图/分组柱状图、维度筛选、李克特打分录入),自验 A7
|
||
- [x] 6.7 实现前端三异常态(后端离线 / API 报错 / 数据为空)明确提示,自验 B4
|
||
- [x] 6.8 M6 自验后创建 git commit(里程碑存档点)
|
||
|
||
## 7. M7 测试、Docker 与文档收尾
|
||
|
||
- [x] 7.1 后端 pytest + pytest-cov 覆盖率提升至 ≥90%,自验 D2
|
||
- [x] 7.2 前端核心交互逻辑 Vitest 测试全部通过
|
||
- [x] 7.3 Docker 全栈联调:`docker compose up` 一键可用、容器重建数据不丢,自验 D1b
|
||
- [x] 7.4 密钥审计(仓库无硬编码密钥)
|
||
- [x] 7.5 编写 README(安装、配置、本地与 Docker 两种启动、断点续跑方法、数据库 ER 说明),自验 D1、D3
|
||
- [x] 7.6 M7 自验后创建 git commit(里程碑存档点)
|