experiment_simple_prompt.py 是一个独立的实验脚本,用于对比原版Prompt方案和简单Prompt方案的效果。
简单Prompt方案是对原版Prompt的简化版本:
- 原版:详细的粒度控制说明、示例、格式要求
- 简单版:仅包含基本指令和JSON格式要求
- 原版:详细的粒度控制原则、区分前置依赖与子概念、避免课程名称等详细说明
- 简单版:仅包含基本分析指令和JSON格式要求
- 原版:详细的排序要求说明
- 简单版:简化的排序指令和JSON格式要求
同时运行两种方案并自动对比结果:
python experiment_simple_prompt.py data/profiles/example_profile.yaml --comparepython experiment_simple_prompt.py data/profiles/example_profile.yaml --simple-onlypython experiment_simple_prompt.py data/profiles/example_profile.yaml --original-onlypython experiment_simple_prompt.py data/profiles/example_profile.yaml --compare --output-dir my_experiments实验会在 experiments/ 目录(或指定的输出目录)下生成:
-
单独实验结果:
original_用户名_学习目标_时间戳.json- 原版方案结果simple_用户名_学习目标_时间戳.json- 简单方案结果
-
对比结果(使用
--compare时):comparison_时间戳.json- 包含两种方案的完整对比数据
实验会自动对比以下指标:
-
统计信息对比:
- 初始知识点数
- 前置知识点数
- 总知识点数
- 依赖关系数
-
知识点对比:
- 原版方案独有知识点
- 简单方案独有知识点
- 共同知识点
-
排序对比:
- 共同知识点的排序差异
- 平均排序差异
- 不修改原代码:实验脚本完全独立,不会修改原有的
prompts.py或其他模块 - 独立运行:实验脚本复制了必要的类并重写了prompt方法
- 结果保存:所有实验结果都会保存为JSON文件,方便后续分析
- API调用:实验会调用LLM API,请注意API使用成本
运行对比实验后,会看到类似以下输出:
============================================================
实验结果对比
============================================================
【统计信息对比】
指标 原版方案 简单方案 差异
---------------------------------------------------------------------------
初始知识点数 12 11 -1
前置知识点数 8 6 -2
总知识点数 20 17 -3
依赖关系数 15 13 -2
【知识点对比】
原版方案独有知识点: 3 个
- 知识点A
- 知识点B
- 知识点C
简单方案独有知识点: 0 个
共同知识点: 17 个
【排序对比(共同知识点)】
知识点 原版排序 简单排序 差异
-------------------------------------------------------------------------------------
知识点1 1 1 0
知识点2 2 2 0
...
平均排序差异: 0.35 位
可以使用保存的JSON文件进行更深入的分析,例如:
- 使用Python脚本分析两种方案的差异
- 可视化对比结果
- 统计显著性检验
- 专家评审对比