prompt-ops
prompt-ops 是一款专为 Llama 大模型设计的开源 Python 工具,旨在自动化优化提示词(Prompt),让模型表现更出色。它主要解决了开发者在适配不同大模型时,需要反复手动调整提示词、依赖试错效率低下的痛点。通过该工具,用户可以将原本适用于其他模型的提示词,快速转化为针对 Llama 系列模型高度优化的版本,从而显著提升任务执行的准确率与可靠性。
这款工具非常适合 AI 应用开发者、研究人员以及希望提升模型落地效果的技术团队使用。其核心亮点在于“数据驱动”与“自动化”:用户只需提供现有的系统提示词、一份包含少量问答对(最少 50 条)的数据集以及简单的配置文件,prompt-ops 即可在几分钟内完成优化。此外,项目最新发布的 PDO(Prompt Duel Optimizer)技术尤为引人注目,这是一种无需人工标注标签的高效优化方法,利用对抗性多臂老虎机算法,已在多个权威基准测试中达到业界领先水平。无论是处理逻辑推理还是通用任务,prompt-ops 都能提供可量化的性能提升,让提示词工程变得更加科学、高效且轻松。
使用场景
某电商公司的算法团队正致力于将现有的客服问答系统从通用大模型迁移至 Llama 模型,以提升数据隐私合规性并降低推理成本。
没有 prompt-ops 时
- 盲目试错成本高:工程师只能凭经验手动反复修改提示词(Prompt),试图让 Llama 理解原有的业务逻辑,耗时数周却难以稳定复现原有效果。
- 迁移性能大幅下滑:原本在其他模型上表现良好的系统提示词,直接用于 Llama 后,在处理复杂退货政策查询时的准确率骤降 30%。
- 缺乏量化评估依据:团队无法快速判断哪种提示词变体更优,只能依赖少量人工抽检,导致优化方向模糊且主观。
- 冷启动数据门槛高:传统优化方法往往需要大量标注好的测试集,而团队初期仅能整理出 60 条典型的客户问答记录,难以启动训练。
使用 prompt-ops 后
- 自动化定向优化:prompt-ops 利用仅有的 60 条历史问答数据,自动将通用提示词转化为专为 Llama 定制的版本,无需人工逐字调整。
- 性能显著回升并超越:经过基于“提示词决斗优化器(PDO)”的迭代,系统在逻辑推理类客诉处理上的准确率不仅恢复至原水平,还提升了 15%。
- 数据驱动的可信决策:工具内置的可定制指标实时反馈每次优化的效果,团队能清晰看到不同版本提示词在特定场景下的得分变化。
- 极速完成模型适配:原本需要数周的迁移调优工作,现在仅需几分钟配置 YAML 文件并运行脚本,即可得到最优提示词模板。
prompt-ops 通过数据驱动的自动化机制,消除了跨模型迁移提示词时的试错黑盒,让团队能以极低成本实现 Llama 模型的业务落地效能最大化。
运行环境要求
- 未说明
- 非必需(支持通过 OpenRouter、Groq 等云 API 运行
- 若本地部署 vLLM 或 NVIDIA NIMs 则需相应 GPU,具体型号未说明)
未说明

快速开始
Prompt Ops
🎉 新增:提示对决优化器(PDO)已发布!
我们发表了一篇关于 PDO(提示对决优化器) 的新论文——这是一种利用对决多臂老虎机和汤普森采样实现的高效无标签提示优化方法。PDO 在 BIG-bench Hard 和 MS MARCO 基准测试中取得了当前最佳性能。
📄 阅读论文: LLM 提示对决优化器:高效的无标签提示优化 (arXiv:2510.13907)
🧪 亲自尝试: 请查看 谎言之网用例,其中展示了 PDO 在逻辑推理任务上的应用。
⭐ 给本仓库点个星 并关注我们——我们很快会发布一份详细的教程笔记本!
什么是 prompt-ops?
prompt-ops 是一个 Python 包,能够 自动优化提示词 以适配 Llama 模型。它将那些在其他大语言模型上表现良好的提示转换为针对 Llama 模型优化过的提示,从而提升性能与可靠性。
主要优势:
- 告别试错法:无需再手动调整提示以获得更好的效果
- 快速优化:通过基于模板的优化方式,几分钟内即可得到模型优化后的提示
- 数据驱动改进:使用您自己的示例创建适用于特定场景的提示
- 可量化结果:借助自定义指标评估提示性能
需求
要开始使用 prompt-ops,您需要:
- 现有的系统提示:您希望优化的现有系统提示
- 现有的查询-响应数据集:包含查询-响应对的 JSON 文件(至少 50 个示例),用于评估和优化(详见下方的 准备您的数据集)
- 配置文件:一个 YAML 配置文件 (config.yaml),用于指定模型超参数及优化细节(参见 示例配置)
工作原理
┌──────────────────────────┐ ┌──────────────────────────┐ ┌────────────────────┐
│ 现有的系统提示 │ │ 设置(查询, 响应) │ │ YAML 配置 │
└────────────┬─────────────┘ └─────────────┬────────────┘ └───────────┬────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────────────────┐
│ prompt-ops 迁移 │
└────────────────────────────────────────────────────────────────────┘
│
│
▼
┌──────────────────────┐
│ 优化后的提示 │
└──────────────────────┘
简单工作流程
- 从现有系统提示开始:使用您现有的、能在其他大语言模型上工作的系统提示(参见 示例提示)
- 准备您的数据集:创建一个包含查询-响应对的 JSON 文件,用于评估和优化
- 配置优化参数:设置一个简单的 YAML 文件,填写您的数据集和偏好(参见 示例配置)
- 运行优化:执行一条命令即可完成提示的转换
- 获取结果:您将收到经过模型优化的提示,并附带性能指标
实际应用效果
HotpotQA
![]() |
这些结果是在 HotpotQA 多跳推理基准测试 上测得的,该测试旨在检验模型回答需要整合多源信息的复杂问题的能力。我们的优化提示在不同规模的模型上均显著优于基线提示。
快速入门(5 分钟)
第一步:安装
注意: 我们建议从源码安装,因为我们目前正对 PyPI 上的包名进行过渡。这样可以确保您获得最新的稳定版本,而不会出现命名冲突的问题。
# 创建虚拟环境
conda create -n prompt-ops python=3.10
conda activate prompt-ops
# 推荐:从源码安装
git clone https://github.com/meta-llama/prompt-ops.git
cd prompt-ops
pip install -e .
# 或者:从 PyPI 安装(可能存在命名过渡问题,目前仍为 0.0.7 版本)
# pip install llama-prompt-ops
第二步:创建示例项目
这将在当前目录下创建一个名为 my-project 的文件夹,并包含示例配置和数据集。
prompt-ops create my-project
cd my-project
第3步:设置您的API密钥
将您的API密钥添加到.env文件中:
OPENROUTER_API_KEY=your_key_here
prompt-ops使用LiteLLM作为统一的API客户端。LiteLLM会根据您的模型名称(例如openrouter/model、groq/model)自动检测提供商,并查找相应的提供商特定环境变量(OPENROUTER_API_KEY、GROQ_API_KEY等)。有关更多推理提供商选项,请参阅推理提供商。
第4步:运行优化
优化过程大约需要5分钟。
prompt-ops migrate # 如果未指定--config,则默认使用config.yaml
完成!优化后的提示将保存到results目录中,并附带比较原始版本和优化版本的性能指标。
如需了解更多关于此用例的信息,您可以在基础教程中找到更详细的说明。
提示转换示例
以下是将专有语言模型系统提示转换为Llama模型系统的示例:
| 原始专有语言模型提示 | 优化后的Llama模型提示 |
|---|---|
| 您是一位有用的助手。请提取并返回一个包含以下键值的JSON: 1. “urgency”:取值为 high、medium或low2. “sentiment”:取值为 negative、neutral或positive3. “categories”:创建一个字典,以类别为键,以布尔值(True/False)为值,表示该类别是否匹配诸如 emergency_repair_services、routine_maintenance_requests等标签。您的完整消息应为一个可直接读取的有效JSON字符串。 |
您是客户服务消息分析专家。您的任务是根据紧急程度、情感倾向和相关类别对以下消息进行分类。 请分析消息并返回一个包含以下字段的JSON对象: 1. “urgency”:根据需要处理的紧迫性,将其归类为“high”、“medium”或“low” 2. “sentiment”:根据客户语气,将其归类为“negative”、“neutral”或“positive” 3. “categories”:创建一个以设施管理类别为键、以布尔值为值的字典。 请仅在您的回复中包含这些确切的键。返回一个有效的JSON对象,不要使用代码块、前缀或解释。 |
准备您的数据
要使用prompt-ops进行提示优化,您需要准备一个包含提示和预期响应的数据集。标准格式是一个如下结构的JSON文件:
[
{
"question": "您的输入查询在此",
"answer": "预期响应在此"
},
{
"question": "另一个输入查询",
"answer": "另一个预期响应"
}
]
如果您的数据符合此格式,您可以使用内置的StandardJSONAdapter,它会自动处理数据。
自定义数据格式
如果您的数据格式不同,并且没有内置的数据集适配器,您可以通过扩展DatasetAdapter类来创建自定义数据集适配器。有关详细信息,请参阅数据集适配器选择指南。
多个推理提供商支持
prompt-ops支持多种推理提供商和端点,以满足您的基础设施需求。请参阅我们关于推理提供商的详细指南,其中包含以下配置示例:
- OpenRouter(基于云的API)
- vLLM(本地部署)
- NVIDIA NIMs(优化容器)
文档和示例
如需更多信息,请查看以下资源:
- 快速入门指南:在5分钟内启动并运行prompt-ops
- 中级配置指南:了解如何配置数据集、指标和优化策略
- 数据集适配器选择指南:为您的数据集格式选择合适的适配器
- 指标选择指南:为您的用例选择适当的评估指标
- 推理提供商指南:配置不同的模型提供商和端点
致谢
该项目利用了一些优秀的开源项目,包括DSPy,感谢团队的启发性工作!
贡献
欢迎贡献!请随时提交拉取请求。
许可证
本项目采用MIT许可证授权——详情请参阅LICENSE文件。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
