Files
aitsc/docs/prompt_quality_module_plan.md
2026-04-06 19:02:21 +08:00

4.6 KiB
Raw Permalink Blame History

提示词质量对比与评价模块 — 开发计划

说明
目标 多份优化后提示词 → 模型结构化评价;评价历史检索与简单可视化对比
存储 与现有 Flask-SQLAlchemy 一致;开发默认 SQLiteDATABASE_URL 未设时);生产可用 MySQL表结构通用

1. 接口定义

POST /api/prompt-quality/analyze

输入 application/json

{
  "prompts": ["提示词文本1", "提示词文本2"],
  "task_context": "可选:任务背景/领域,便于模型对齐预期输出"
}

输出 application/json

{
  "success": true,
  "data": {
    "batch_id": "uuid",
    "results": [
      {
        "optimized_prompt": "与输入对应的完整文本",
        "evaluation": {
          "score": 82,
          "strengths": ["..."],
          "weaknesses": ["..."],
          "suggestions": ["..."],
          "applicability": ["..."],
          "mandatory_fixes": ["必须修正项"],
          "optimization_suggestions": ["可优化建议"]
        },
        "history_id": "记录主键字符串",
        "timestamp": "2026-04-03T12:00:00+00:00"
      }
    ],
    "batch_comparison": "批量横向对比摘要(可选)",
    "incremental_learning_hints": ["从本批提炼的可迁移经验"]
  }
}

GET /api/prompt-quality/history

Querypage, per_page, date_from, date_toISO 日期), q(关键词,匹配提示词片段或评价 JSON 文本), batch_id(可选)

输出:分页列表,每条含 batch_idcreated_atpreviewitem_countresults 摘要或详情开关。

GET /api/prompt-quality/history/<int:record_id>

单条记录详情(权限:同 user_id)。

2. 评价逻辑(算法描述)

  1. 预处理:去空、单条最大长度截断(如 8000 字符)、条数上限(如 ≤8
  2. 模型调用:系统角色 = 提示词评估专家;用户内容 = 编号列表 + 可选 task_context;要求 仅输出合法 JSON(与约定 schema 一致)。
  3. 维度约束(写入 system 说明):清晰度、指令完整性、可操作性、预期输出匹配度;区分 mandatory_fixes(必须修正)与 optimization_suggestions(建议优化)。
  4. 校验json.loads;缺字段时用安全默认值补全;score 钳制 0100。
  5. 持久化:每条输入写一行 prompt_quality_record;同批次共用 batch_id;批次级 batch_comparison / incremental_learning_hints 挂在 prompt_index=0 行或独立字段。

3. 表结构要点

prompt_quality_record

字段 类型 说明
id PK history_id 来源
user_id int, index 与 Session 对齐
batch_id string(36), index 同次分析 UUID
prompt_index int 批次内序号
optimized_prompt text 被评文本
evaluation_json JSON 结构化评价(含两类优先级字段)
batch_summary text, nullable 批次对比摘要(仅首条或冗余存储)
incremental_hints_json JSON, nullable 增量学习建议列表
created_at datetime ISO 时间来源

SQLiteJSON 由 SQLAlchemy 映射为 TEXTMySQL 可用原生 JSON。

4. 查询 API 示例

GET /api/prompt-quality/history?page=1&per_page=10&date_from=2026-04-01&date_to=2026-04-03&q=openlaw

5. 前端Vue

  • 路由:/prompt-quality
  • 多行文本输入,约定 空行分隔 多条提示词;按钮「模型分析评价」
  • 展示卡片列表score、优劣、两类建议、适用场景批次对比与增量建议
  • 历史区:表格 + 筛选 + 查看详情抽屉

实施顺序:模型与建表 SQL → service + 蓝图 → 注册应用 → Vue API + 页面 + 路由 + 导航。


实施记录(已完成)

组件 路径
计划文档 docs/prompt_quality_module_plan.md
ORM src/flask_prompt_master/models/prompt_quality_models.py
LLM 服务 src/flask_prompt_master/services/prompt_quality_service.py
API 蓝图 src/flask_prompt_master/routes/prompt_quality_routes.py,前缀 /api/prompt-quality
应用注册 src/flask_prompt_master/__init__.py 注册蓝图并加载模型
手工建表 SQLSQLite 友好) scripts/prompt_quality_schema.sql
建表 首次可执行 db.create_all()(已在当前环境对 MySQL 验证)
Vue 页面 vue-app/src/views/PromptQualityView.vue,路由 /prompt-quality,顶栏「质量评价」
Vue API vue-app/src/api/modules/promptQuality.tsapi/types/promptQuality.ts