别再手动试 prompt 了:gpt-prompt-engineer 让 10 个候选提示自己打擂选出最优
2026/9/18 12:41:12 网站建设 项目流程

别再手动试 prompt 了:gpt-prompt-engineer 让 10 个候选提示自己打擂选出最优

【免费下载链接】gpt-prompt-engineergpt-prompt-engineer - 一个工具,用于自动化生成、测试和排名多种提示,以找到最适合特定任务的提示。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-prompt-engineer

改了十几版 prompt,输出还是不对,越删改越乱。gpt-prompt-engineer 把调提示这件事流水线化了:你给任务描述和测试用例,它自动生成 10 个候选提示,两两对比打分,最后输出一张按 ELO 分排序的表,哪条 prompt 好用一目了然。

它凭什么靠谱:把每条 prompt 放上 ELO 擂台

候选提示从哪来

想象一个文案团队开会,每人抛一个思路,再集体投票。generate_candidate_prompts干的就是这件事:让 GPT-4(或 GPT-3.5-Turbo)在 0.9 的高温下一次生成 n 条风格各异的 system prompt,天然覆盖不同写法。生成规则里还有一条防作弊条款——候选提示不许夹带测试用例的细节,带具体示例的直接作废,比的是通用性而不是记忆。

ELO 评分机制怎么运作

ELO 就是国际象棋那套棋手积分:分高的赢分低的,加分少;分低的爆冷,加得多。每个候选提示初始 1200 分,然后在所有测试用例上两两对决:两个提示各自跑同一个输入,由一个专门的评判模型判断哪份输出更好。同一场比赛会正反各判一次再取平均,抵消"排在前面的更容易赢"的位置偏好,核心计算在gpt_prompt_engineer.ipynbupdate_elo()函数里:先按实力差距算出期望胜率,再用系数 K(默认 32)乘以实际偏差调整双方积分。所有对局打完,最终分数就是每条提示的真实水平。

实际操作:从打开 notebook 到拿到评分表

打开 notebook 并配置 API key

克隆仓库后打开gpt_prompt_engineer.ipynb,或者直接在 Google Colab 里打开。前几个单元填 key、调参数即可:

openai.api_key = "ADD YOUR KEY HERE" CANDIDATE_MODEL = 'gpt-4' # 没有 GPT-4 权限就改成 'gpt-3.5-turbo' NUMBER_OF_PROMPTS = 10 # 建议从 10 起步,越多效果越好、账单越厚

generate_optimal_prompt一次跑下来会经历"生成候选 → 逐对测试 → 更新积分"三个阶段,测试用例最多填 15 条。

如何配置任务描述与测试用例

最后一个单元只填两样东西:一句任务描述和一组测试输入。README 里建议的描述风格是这样的:

description = "Given a prompt, generate a landing page headline." test_cases = [ {'prompt': 'Promoting an innovative new fitness app, Smartly'}, {'prompt': 'Why a vegan diet is beneficial for your health'} ]

这里只放"输入",不放期望答案——自由生成类任务没有标准答案,好不好由后面的评判模型说了算。

跑起来,看结果长什么样

一行调用进入全自动流程:

generate_optimal_prompt(description, test_cases, NUMBER_OF_PROMPTS, use_wandb)

运行时会滚动打印每局的胜者,最后用 PrettyTable 输出按 Rating 降序的评分表,格式大致如下(数字为示意):

PromptRating
Write a short, benefit-driven headline under 8 words...1312
Act as a seasoned copywriter, make the user feel something...1188
......

拿第一名直接进生产,比盯着屏幕手动试强太多。

场景与进阶

营销文案:产品或运营同学写 landing page 标题、社媒文案,手工改 prompt 一天试不出风格。跑一轮,十条不同写法的候选自动排好序,把第一名贴进生产流程就行。

文本分类:情感分析、垃圾邮件检测这类有标准答案的场景,换用gpt_prompt_engineer_Classification_Version.ipynb。测试用例带上output字段('true' 或 'false'),评分改为精确匹配,输出的是每条提示的得分表。

多变量输入:按发件人、收件人个性化回邮件时,用claude_prompt_engineer.ipynb。声明input_variables后,测试用例由模型根据描述自动生成,不用自己凑数据。

仓库里四个 notebook 各管一摊:

  • gpt_prompt_engineer.ipynb:通用版,GPT-4 / GPT-3.5-Turbo
  • gpt_prompt_engineer_Classification_Version.ipynb:二分类任务,按 true/false 精确匹配计分
  • claude_prompt_engineer.ipynb:Claude 3 Opus,自动生成测试用例、支持多输入变量
  • opus_to_haiku_conversion.ipynb:先让 Opus 产出一批高质量示例,再交给 Haiku 照着答,质量基本不降,成本和延迟大幅降低

进阶玩法一句话:把use_wandb设为 True,配置、测试用例和最终评分表都会记到 Weights & Biases,方便复现和对比多次实验。

  • 仓库:git clone https://gitcode.com/GitHub_Trending/gp/gpt-prompt-engineer
  • 入口:gpt_prompt_engineer.ipynb(分类、Claude 3、Opus→Haiku 各有独立 notebook)
  • 许可证:MIT

配好 key 跑通第一个单元,你的第一张 ELO 评分表就出来了。

【免费下载链接】gpt-prompt-engineergpt-prompt-engineer - 一个工具,用于自动化生成、测试和排名多种提示,以找到最适合特定任务的提示。项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-prompt-engineer

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询