Pezzo 是一个开源提示词管理平台,把提示词从业务代码中抽离出来,放入统一控制台进行管理。它覆盖提示词编辑、版本管理、多环境发布、在线测试、执行记录与成本观测的完整流程,并配套 TypeScript/Node.js 客户端 SDK,让应用在运行时按环境读取并执行提示词。选型上,Pezzo 强调「提示词优先」:业务代码与提示词解耦,修改提示词不需要重新构建、重新发布应用。对 AI 从业者而言,这是一条低门槛进入 LLMOps 的路径——自托管即可完全掌控数据,官方云提供免运维选项。本文按「速览 → 安装 → 上手 → 能力 → 生产」的顺序组织,给出可直接复制的命令与操作步骤。
掌握 Pezzo,意味着你用「版本 + 环境」的工程化方式管理提示词,把提示词迭代从按周发版缩短到分钟级,这是从「写代码调模型」走向「LLMOps 工程化」的关键一步。
目录
速览卡是工具类内容的固定首屏模块:30 秒判断「这工具是什么、能不能商用、适不适合我」。
为什么需要 Pezzo:提示词散落在代码里 → 提示词全生命周期管理
多数 LLM 应用把提示词硬编码在业务代码中。改一句系统指令要改代码、走评审、构建镜像、重新发布;同一个提示词在开发、预发、生产环境之间没有隔离机制;线上效果变差只能靠翻日志猜测原因,难以定位是「哪一版提示词」导致的问题。团队中多个成员各自维护 prompt 字符串,合并冲突不断,提示词的迭代速度被应用发版节奏牢牢卡住。
Pezzo 把提示词作为独立的受管对象。控制台内创建项目与开发、预发、生产环境;每次编辑生成新版本;测试通过后把版本「提升」到目标环境。应用通过 @pezzo/client SDK 在运行时按环境拉取并执行提示词——服务端拿到模板与变量后调用模型并回传结果。提示词变更即刻生效,代码零改动。每次执行记录都携带版本号、token、成本与延迟,质量回溯有据可查。
与同类工具的气质差异在于切入点:LangSmith 从「可观测与评估」切入,Pezzo 从「提示词文件管理」切入,先解决提示词的版本与发布,再附带执行观测。Pezzo 不绑定 LangChain,可以与任意 Node.js 应用直接集成,架构决策更轻。
安装与环境配置:5 步就绪
前置条件:Node.js 16+、Docker。以下步骤覆盖自托管(Self-hosted)完整流程,使用 Pezzo Cloud 时跳过第 2、3 步。
1. 初始化:执行 npx pezzo@latest init,按提示选择 Self-hosted(自托管)或 Cloud(托管云)。
2. 生成配置:初始化脚本自动生成 docker-compose.yml 与 .env 文件。
3. 启动服务:执行 docker compose up -d,服务端 API 与控制台随之启动。
4. 验证:浏览器访问控制台默认地址 http://localhost:4200(以 .env 中实际配置为准),注册组织账号后进入工作台,能看到项目与环境管理界面。
5. 安装 SDK:在应用项目里安装客户端包,并在 .env 中配置 PEZZO_API_KEY 与 PEZZO_SERVER_URL。
使用 Pezzo Cloud 时只需在官网创建组织、获取 API Key,并把 SDK 的 serverUrl 指向云地址,无需本地容器。
# 1. 初始化(生成 docker-compose.yml 与 .env)npx pezzo@latest init # 2. 后台启动服务端与控制台docker compose up -d # 3. 应用侧安装客户端 SDKnpm install @pezzo/client
快速上手:15 分钟跑通第一个受管提示词
核心流程是「建项目 → 写提示词 → 测试 → 用 SDK 调用」,全程与业务代码解耦。按以下步骤操作:
1. 打开控制台,创建项目(如 my-app),系统预置 Development、Staging、Production 三个环境;
2. 在 Projects → my-app → Prompts 中点击 Create New Prompt,命名为 hello-prompt;
3. 选择模型服务商(OpenAI、Azure OpenAI、Anthropic 等)与模型,并在服务端配置对应的 Provider API Key;
4. 在编辑器中编写模板:你是一个客服助手,请回答:{{input}};
5. 点击测试按钮,填写 input 变量的值并发送,查看模型回复、token 用量与成本估算;
6. 在应用侧安装 SDK,填入控制台 Settings → API Keys 生成的 Key 与服务端地址,调用 hello-prompt。
运行后,在控制台的执行记录(Executions)中能看到本次调用的完整元数据。进阶用法:多步骤场景可用 Trigger 把多个提示词串联成流水线,前一步的输出作为后一步的输入,适合需要「先总结、再生成」的复合任务。
import { Pezzo } from "@pezzo/client"; const pezzo = new Pezzo({ apiKey: process.env.PEZZO_API_KEY, // 控制台 Settings → API Keys 生成 serverUrl: process.env.PEZZO_SERVER_URL, // 自托管默认为 http://localhost:3000}); const result = await pezzo.prompts.run("hello-prompt", { environment: "Production", variables: { input: "你好,介绍一下你们" },}); console.log(result.data); // 模型最终回复
核心能力详解:4 大支柱
支柱一:版本与环境管理。每个提示词保存即产生新版本,可对任意历史版本回看、对比与恢复。「提升(Promote)」操作把指定版本发布到目标环境,应用侧无需发版即切换到新版本。多环境隔离避免生产提示词被误改,也保证开发调试不消费生产版本。
支柱二:在线测试工作台。控制台内置测试面板,直接填写变量并发送,实时返回模型输出、耗时、token 与成本。发布前即可评估提示词质量,也让非开发角色(运营、标注人员)能参与提示词迭代,无需接触代码仓库。
支柱三:执行可观测与成本追踪。每次 SDK 调用的执行记录进入控制台,包含提示词名称、版本、环境、模型、延迟、token 与成本。按时间与环境筛选后,可快速定位「哪一次提示词变更导致效果下降」,成本异常也能追溯到具体提示词,这是纯代码管理方式做不到的。
支柱四:团队协作与密钥隔离。采用组织-项目两级结构,API Key 分环境使用,生产 Key 不暴露给开发环境;模型服务商凭据只保存在服务端,客户端无需也不应持有 OpenAI 等第三方密钥,降低泄露风险。
生产部署与监控:从上线到运维
部署方式一:自托管(Self-hosted)。生产环境建议把 init 生成的默认数据库配置替换为独立托管的 PostgreSQL(带持久化卷),并妥善保管 .env 中的密钥。对外提供服务时加反向代理与 HTTPS,防止明文流量。升级通过 git pull 拉取新版本后执行 docker compose up -d --build 完成。
部署方式二:Pezzo Cloud。官方托管,免运维。将 SDK 的 serverUrl 指向云地址,API Key 在云端控制台统一管理,适合没有专职运维的团队,先跑通业务再评估是否迁回自托管。
可观测性:以控制台执行记录为运维入口,建立三类检查:调用成功率(出现异常时作为版本回滚依据)、单次成本与 token 趋势(用于预算告警)、延迟异常(定位模型或网络问题)。任何生产提示词变更前后,对比同环境的执行指标即可判断「变好还是变坏」,形成发布-观测-回滚的闭环。
<p class="para-label">避坑清单:</p>
<ul class="dash-list"><li>坑 1:包名混淆——pezzo 是 CLI(初始化/本地开发),@pezzo/client 是应用内 SDK,装错包轻则命令无效、重则运行时报错。</li><li>坑 2:端口与地址以 init 生成的 .env 为准——默认控制台 4200、服务端 3000,但被占用或自定义后会变化,拼接 serverUrl 时以实际配置为准。</li><li>坑 3:生产环境必须换独立数据库——init 自带的默认 Postgres 适合试用,容器重建即丢数据;生产请使用托管数据库并开启持久化与备份。</li><li>坑 4:变量未替换会静默发给模型——模板 {{input}} 与调用时 variables 字段必须同名,漏传时占位符原样进入模型,输出质量莫名下降,排查时先检查这里。</li></ul>
| 维度 | Pezzo | LangSmith | PromptLayer | Promptfoo |
|---|---|---|---|---|
| 定位 | 提示词全生命周期管理平台 | LLM 应用可观测与评估平台 | 提示词管理与可观测平台 | 提示词评测与回归测试工具 |
| 编排范式 | 控制台管理 + TS/JS SDK 运行时调用 | LangChain 深度集成 + 全链路追踪 | Python/TS SDK + API 调用 | CLI + 配置文件批量评测 |
| 类型约束 | 提示词版本、环境发布、执行记录 | 追踪、数据集、评估指标体系 | 版本记录、标签、成本统计 | YAML/JS 测试用例定义 |
| 学习曲线 | 中(控制台 + SDK 双入口) | 中高(与框架绑定较深) | 低(安装即用) | 低(专注 CLI) |
| 生态集成 | OpenAI/Azure/Anthropic,不绑框架 | LangChain/OpenAI 全生态 | 多模型 Provider | 多种模型与自建评测 |
| 生产部署 | 自托管 docker compose / 官方云 | SaaS 为主(企业版自托管) | SaaS(企业版) | 开源 CLI / 可入 CI |
| License | MIT | 商业(部分开源) | 商业(部分开源) | MIT |
| 适合谁 | 中小团队快速管好提示词的迭代与发布 | LangChain 深度用户与评估团队 | 已有 Python/TS 服务、要轻量托管的团队 | 需要提示词回归门禁的工程团队 |
选型建议:提示词需要频繁迭代、想脱离应用发版节奏的团队首选 Pezzo,自托管即可全部掌控数据;深度绑定 LangChain 或有完整评估体系诉求选 LangSmith;只要在 CI 中做提示词回归与质量门禁,Promptfoo 最轻量。
AI 应用场景
场景 1:提示词迭代分钟级上线
阶段:提示词版本管理与发布
解决的问题:客服机器人话术每周迭代,传统方式修改 prompt 需重新发版,且无法区分预发与生产环境。Pezzo 把提示词迁入控制台,在 Staging 测试、通过后提升到 Production,业务服务无需重新部署;执行记录保证每一版都可回溯。
具体案例:某 AI 客服团队将 12 个客服提示词全部迁入 Pezzo。话术迭代从「每周集中发版」变为「随时调整、分钟级生效」;一次提示词误改可在 10 分钟内回滚到上一版本,线上事故恢复时间从小时级降到分钟级。
场景 2:按提示词维度的成本与质量监控
阶段:LLM 应用可观测
解决的问题:多个提示词共用同一模型账号,成本与异常难以归因。Pezzo 的执行记录按提示词、环境聚合 token 与成本,可快速定位「哪个提示词在烧钱、哪次变更拖慢了响应」。
具体案例:团队接入 Pezzo 后,发现「日志总结」提示词占整体成本的 43%,且 95 分位延迟明显偏高;据此将该提示词切换到低规格模型并下调输出 token 上限,月度 LLM 成本下降约 25%。(案例为基于工具能力的示意测算,实际收益因业务而异。)
常见误区
误区我以为 Pezzo 就是把提示词存起来、需要时复制粘贴到代码里的管理后台,跟团队 Wiki 差不多。
正解Pezzo 是运行时托管:应用通过 @pezzo/client 在服务端执行提示词并拿到模型响应,提示词版本发布后应用无需发版即生效。它提供的是「版本 + 环境 + 执行」的完整闭环,不是静态文档库。
为何常见:不少提示词管理产品只做存储和分享,容易先入为主;只有真实接入 SDK 后才能体会「运行时托管」与「静态存储」的差别。
误区我在 npm 上安装了 pezzo,然后在代码里 import 就完事了,结果报错找不到类。
正解pezzo 是 CLI,负责初始化项目、生成 docker-compose 配置;应用内要装的是 @pezzo/client。两者职责不同:CLI 管工程初始化,SDK 管运行时调用,不要混用。
为何常见:项目名与包名高度相似,初次接触时很容易把「官方同名包」当作万能入口。
误区我把 serverUrl 指到生产服务器,本地调试就算通了;报错就再换一个地址,总能试出来。
正解serverUrl 必须与 API Key 所在环境严格匹配:自托管就指向自己的服务端,托管云就指向云地址;开发与生产使用不同 Key,避免本地测试误消费生产版本。地址与 Key 错配时常见 401 或资源找不到错误。
为何常见:LLM 时代大家习惯「填 Key 就能用」,忽略了 Pezzo 自建服务端需要「地址 + Key + 环境」三者对齐。
误区代码已经在用 Git,提示词也提交进代码库,再上 Pezzo 是重复造轮子。
正解Git 管的是代码变更,每次提示词修改都要走提交流程并伴随应用发版;Pezzo 提供环境级发布与运行时读取,提示词变更是运维动作而非代码动作,还能用执行记录验证效果。二者可并行:代码进 Git,提示词版本进 Pezzo。
为何常见:习惯了「一切皆代码」的工程思维,容易忽视运行时配置管理与代码版本管理的本质差异。
误区应用调用 OpenAI 的 Key 直接写在前端,不公开就没人知道,能跑就行。
正解Pezzo 架构下模型服务商(OpenAI 等)密钥保存在服务端;客户端只持有 Pezzo 颁发的 API Key。把模型密钥放进前端不仅绕过了 Pezzo 的服务端代理,还意味着任何用户都能从浏览器里提取密钥。
为何常见:小型项目里前端直连 OpenAI 很常见,迁移到集中管理平台时把旧习惯带了进来。
面试题
Q1. Pezzo 的核心定位是什么?
- A.集中管理提示词的开源平台← 正确答案
- B.大模型微调训练框架
- C.开源向量数据库产品
- D.前端低代码搭建工具
答案:A。Pezzo 是开源提示词管理平台,覆盖提示词编辑、版本管理、多环境发布、测试与执行观测。它不做模型训练,不是向量数据库,也不是通用低代码平台,其余选项均超出其能力边界。
Q2. 自托管 Pezzo 时,官方推荐的一键起服务方式是?
- A.用 LLVM 编译全部源码安装
- B.npx pezzo@latest init + docker compose 启动← 正确答案
- C.修改操作系统内核启动参数
- D.直接在浏览器里运行整个服务端
答案:B。官方快速开始路径是 npx pezzo@latest init 生成 docker-compose.yml 与 .env,再用 docker compose up -d 启动服务端与控制台。A、C、D 均不是 Pezzo 的部署方式。
Q3. 在 Node.js 应用里调用 Pezzo 管理的提示词,应安装哪个包?
- A.@pezzo/client← 正确答案
- B.pezzo-server
- C.@langchain/core
- D.prompt-toolkit
答案:A。@pezzo/client 是官方客户端 SDK,用于在应用代码中执行提示词。pezzo 是命令行工具,@langchain/core 是 LangChain 核心包,prompt-toolkit 是 Python 终端的提示输入库,与 Pezzo 无关。
Q4. 在不重新部署应用代码的前提下,把改进后的提示词发布到线上生产环境的正确操作是?
- A.修改代码 prompt 字符串并重新构建镜像
- B.控制台新建版本并发布到 Production 环境← 正确答案
- C.重启 docker compose 全部容器
- D.把新提示词提交到 Git tag 等待上线
答案:B。Pezzo 的核心价值在于提示词与应用解耦:在控制台编辑提示词生成新版本,再将该版本提升(Promote)到 Production 环境,应用通过 SDK 在下次调用时自动读取新版本。A、D 仍走代码发版流程,C 与提示词版本无关。
Q5. Pezzo 提示词模板中使用变量的正确语法是?
- A.{{variable}}← 正确答案
- B.${variable}
- C.<variable>
- D.%variable%
答案:A。Pezzo 使用 {{变量名}} 双花括号占位符,调用时通过 variables 字段传入同名变量进行替换。${} 是模板字符串语法,<> 与 % 均非 Pezzo 的模板约定。
Q6. 在 Pezzo 控制台的执行记录(Executions)中,不能直接查看哪类数据?
- A.每次模型调用的 token 用量
- B.每次模型调用的成本估算
- C.每次模型调用的延迟时长
- D.前端登录页的明文密码← 正确答案
答案:D。执行记录聚焦 LLM 调用元数据——token、成本、延迟、提示词版本与环境。它只采集与模型调用相关的信息,不采集应用侧业务数据,像前端登录密码这类信息既不该记录也不应出现在执行记录中。
Q7. 自托管 Pezzo 从试用转向生产部署时,最关键的基础设施改动是?
- A.切换为独立托管的 PostgreSQL 并配置持久化← 正确答案
- B.关闭全部环境变量与日志输出
- C.把 API Key 写进前端静态代码
- D.删除所有 serverUrl 配置项
答案:A。init 默认生成的数据库适合试用,容器重建即丢数据,生产环境必须替换为独立的托管 PostgreSQL 并启用持久化与备份。B、C、D 均属于错误操作,会直接导致数据丢失或密钥泄露。
Q8. 以下哪些是 Pezzo 的官方使用或部署方式?
- A.本地 docker compose 启动服务端与控制台← 正确答案
- B.使用 npx pezzo@latest init 完成初始化← 正确答案
- C.使用 Pezzo 官方云(Pezzo Cloud)托管← 正确答案
- D.只装 @pezzo/client 完全离线运行全部功能
答案:ABC。Pezzo 支持自托管(docker compose)与官方云两种服务端形态,初始化通过 npx pezzo@latest init 完成。D 错误:SDK 只是客户端,必须有 Pezzo 服务端(自托管或云)才能执行提示词。
Q9. Pezzo 控制台直接支持的能力包括哪些?
- A.创建项目与开发/预发/生产等预置环境← 正确答案
- B.编辑提示词内容并生成可回溯的版本← 正确答案
- C.查看执行记录及 token、成本、延迟指标← 正确答案
- D.代替 Git 管理应用的全部代码分支
答案:ABC。控制台是 Pezzo 的操作入口:项目管理、环境隔离、提示词版本编辑、在线测试与执行观测都在其中完成。D 错误:Git 管理代码与分支,Pezzo 管理的是提示词及其版本,二者是互补关系而非替代关系。
Q10. 关于 Pezzo 的密钥与凭据,正确的做法包括哪些?
- A.OpenAI 等模型商密钥配置在 Pezzo 服务端← 正确答案
- B.客户端应用只持有 Pezzo 颁发的 API Key← 正确答案
- C.开发与生产环境使用相互隔离的密钥配置← 正确答案
- D.把 OpenAI 密钥写进前端由 SDK 直连模型
答案:ABC。Pezzo 采用服务端代理调用模型,模型商密钥保存在服务端,客户端只持 Pezzo API Key,且各环境独立配置以隔离权限。D 错误:前端持有模型商密钥会绕过服务端代理,直接造成密钥可被提取的泄露风险。
参考来源
- webpagePezzo 官网产品介绍与托管云入口