Files
2026-09-19 12:54:45 +08:00

3.9 KiB
Raw Permalink Blame History

Proposal: init-promptcr-platform

Why

毕业设计研究需要开展"多模型 × 多提示词策略"的代码审查对照实验,目前缺少一个能覆盖数据集构建 → 模型调用 → 结果采集 → 指标计算 → 图表产出全流程自动化的实验支撑平台。手工执行 324+ 个实验单元不可行,且无法保证可复现性。本平台面向单研究者、Docker 一键部署、单机可运行。

What Changes

从零搭建整个平台(仓库当前为空),包含以下新能力:

  • 数据集管理(F1):从开源 Git 仓库筛选 commit、提取 Unidiff、按可插拔缺陷规则预埋缺陷(Python 基于 ast,其他语言轻量变换)、生成 Ground Truth 标注;交付 12 个样本、覆盖 ≥3 种语言且分布均衡;缺陷规则可插拔(新增规则文件即可扩展,无需改框架代码)。
  • 模型接入(F2):适配器模式抽象基类 ModelAdapter,DeepSeek / Kimi / 通义千问三个适配器统一走 OpenAI 兼容格式;工厂模式创建;内置信号量并发控制与指数退避重试。
  • 提示词策略(F3):内置 L1(检测错误)→ L2(定位类型与行号)→ L3(修复建议)三级难度递增策略;Jinja2 模板配置化、带版本号;Web 在线编辑保存即新版本,历史版本只读;对外仅暴露 render(strategy_id, version, context)。
  • 实验调度与采集(F4):全因子矩阵 3 模型 × N 级 × 12 commit × 3 重复(N=3 时 324 单元),唯一 run_id;asyncio 异步队列五步流水线;失败重试 + 隔离 + 断点续跑;原始输出、token、耗时、状态全量落库。
  • 数据分析与可视化(F5):五维指标(缺陷检出率、误报率、审查覆盖率、建议可操作性李克特五级量表、输出稳定性);描述性统计 + ANOVA + 配对 t 检验;matplotlib 论文静态图(热力图/箱线图/分组柱状图,支持中文)+ 前端 JSON 数据接口。
  • 后端接入层(F6):FastAPI RESTful API 与 Typer CLI 两种等价调用方式;API 兼作前端数据源。
  • Web 前端(F7):React 18 + Tailwind CSS 3 + shadcn/ui + Vite,ECharts 唯一图表库;四个页面:数据集管理、实验配置(含模板在线编辑)、实验监控(进度/原始输出/断点续跑)、结果分析(交互图表 + 李克特打分录入)。
  • 部署:后端/前端/PostgreSQL 各自容器化,docker compose up 一键拉起,PostgreSQL volume 持久化。

Capabilities

New Capabilities

  • dataset-management: Git 仓库解析、diff 提取、可插拔缺陷预埋、Ground Truth 标注与数据集交付
  • model-adapters: OpenAI 兼容格式的三厂商模型适配器、工厂创建、并发控制与重试
  • prompt-strategies: 分级提示词模板、版本管理、在线编辑、统一渲染接口
  • experiment-orchestration: 全因子实验矩阵生成、异步调度执行、结果落库、断点续跑
  • analysis-metrics: 五维评价指标计算、统计分析、论文图表与前端数据接口
  • backend-access: FastAPI RESTful API 与 Typer CLI 等价接入
  • web-frontend: React SPA 四页面、ECharts 图表、与后端仅经 API 交互

Modified Capabilities

(无——仓库为空,全部为新增能力。)

Impact

  • 新增代码:backend/(Python 3.11,FastAPI + SQLAlchemy + asyncio)、frontend/(React 18 + Vite)、docker-compose.yml、各服务 Dockerfile、README(含 ER 说明)。
  • 外部依赖:PostgreSQL(唯一中间件)、三个大模型厂商 API(DeepSeek / Kimi / 通义千问,密钥走环境变量)。
  • 明确排除:无用户系统、无移动端/SSR、无 MQ/Redis/K8s、不训练模型、不做真实缺陷挖掘与自动修复、不硬编码密钥、不覆盖历史模板版本、前端不直连数据库。
  • 验收基线:功能 A1–A7、健壮性 B1–B4、可复现性 C1–C2、工程 D1–D4(含后端 pytest 覆盖率 ≥90%)。