Skip to content

whitejoce/prompt_test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

系统提示词 A/B 对比

Coded with GPT-5.5

一个本地运行的 Prompt A/B 测试工具,用于在同一用户输入下对比两套系统提示词的输出质量,并记录 AI 评价、人工选择和多轮迭代结果。

界面截图

功能特性

  • 对比两套系统提示词在同一输入 Prompt 下的模型输出
  • 支持流式生成,左右两侧同步展示 Prompt A / Prompt B 的回复
  • 支持配置最大 Token、采样温度、Top-p、存在惩罚、频率惩罚等生成参数
  • 支持同一实验下创建多个迭代轮,并保留轮内对话记录
  • 内置 AI 裁判评价,输出胜出方、维度评分、总结和优化建议
  • 支持人工标注选择结果和备注,便于后续复盘
  • 实验数据自动保存到本地 data/ 目录
  • 支持导出实验结果为 JSON 和 Markdown
  • 兼容 OpenAI API

TODO

  • 支持多模型对比
  • 重写 Web UI 界面

技术栈

  • Python 3.10+
  • FastAPI
  • Uvicorn
  • OpenAI Python SDK
  • python-dotenv
  • 原生 HTML / CSS / JavaScript

项目结构

.
├── main.py                  # FastAPI 后端入口
├── static/
│   └── index.html           # 前端页面
├── imgs/
│   └── demo.png             # README 截图
├── pyproject.toml           # 项目依赖配置
├── uv.lock                  # uv 锁定文件
└── data/                    # 本地实验数据,默认不提交到 Git

快速开始

1. 克隆项目

git clone https://github.com/whitejoce/prompt_test.git
cd prompt_test

2. 安装依赖

推荐使用 uv

uv sync

如果没有使用 uv,也可以手动安装依赖:

pip install fastapi "uvicorn[standard]" openai python-dotenv

3. 配置环境变量

在项目根目录创建 .env 文件:

OPENAI_API_KEY=your_api_key_here
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-5.5

说明:

  • OPENAI_API_KEY:必填,模型服务 API Key
  • OPENAI_BASE_URL:可选,默认使用 OpenAI 官方接口,也可以填写兼容 OpenAI 协议的服务地址
  • OPENAI_MODEL:可选,默认模型名称,可在页面中按实验覆盖

4. 启动服务

uv run uvicorn main:app --reload

或使用已安装的 Python 环境:

uvicorn main:app --reload

启动后访问:

http://127.0.0.1:8000

使用流程

  1. 在「实验配置」中填写实验名称、实验目标、模型和生成参数。
  2. 在「A/B 系统提示词」中分别填写 Prompt A 和 Prompt B。
  3. 在「当前输入 Prompt」中填写用户输入,点击「同时生成」。
  4. 查看左右两侧输出,并点击「AI评价」生成裁判结果。
  5. 根据实际判断选择「A 更好」「B 更好」「持平」或「都不好」,并保存人工备注。
  6. 需要继续迭代时点击「新建迭代轮」,或继续在当前轮内生成更多记录。
  7. 使用「导出 JSON」或「导出 Markdown」保存实验报告。

生成参数

参数 说明
最大 Token 控制单次生成结果的最大长度,留空时使用模型服务默认值
采样温度 控制输出随机性,值越低越稳定,值越高越发散
Top-p 核采样参数,用于控制候选词范围,通常与采样温度二选一重点调整
存在惩罚 正值会鼓励模型引入新话题,降低围绕已出现内容反复展开的倾向
频率惩罚 正值会减少重复词句,提高输出的多样性

数据存储

实验数据会按实验名称和时间戳保存到本地目录:

data/<实验名称>-<时间戳>/experiments.json

API 概览

方法 路径 说明
GET / 前端页面
GET /api/config 获取默认模型配置
GET /api/experiments 获取实验列表
GET /api/experiments/{experiment_id} 获取实验详情
POST /api/experiments 新建或更新实验
POST /api/rounds 新建迭代轮
POST /api/generate/stream 流式生成 A/B 输出
POST /api/runs/{run_id}/evaluate 对单次生成结果进行 AI 评价
PATCH /api/runs/{run_id} 保存人工选择和备注
GET /api/export/{experiment_id}.json 导出 JSON
GET /api/export/{experiment_id}.md 导出 Markdown

About

Prompt A/B测试与评估框架。支持对比、批量测试、效果量化评分,帮助开发者快速迭代和优化 LLM 提示词。

Topics

Resources

Stars

Watchers

Forks

Contributors