5 分钟拿到第一个优化结果:prompt-optimizer 快速上手,自定义模型配置与 Docker 部署讲清
提示词写好了,模型输出却平庸,改两版还是差口气。prompt-optimizer 是一个纯客户端的提示词优化工具:把原始提示词重写增强,再在测试区跑出优化前后的对比。API 密钥与数据全程留在浏览器,直连模型服务商。
🖼️ 先看效果
一句"夜空中的悬浮图书馆",就能产出可继续定制的主视觉。
左栏是你输入的原始短句,右栏是提示词被扩写成带主体、空间关系与情绪锚点的视觉提示词后,进入图像模型生成的结果。差距不在字数,在可控性:画面不再靠模型自由发挥。测试区跑出的前后对比,才是真凭据。
🚀 从零到可用
这条链路分三步:装依赖、起服务、出结果。
装好运行环境
前置只有三样:Node.js 24+、pnpm、Git。先执行 node -v 确认版本,低于 24.x 先升级 Node,再装 pnpm。
克隆仓库并启动开发服务
克隆仓库、装依赖:
git clone https://gitcode.com/GitHub_Trending/pro/prompt-optimizer
cd prompt-optimizer
pnpm install
构建 core 与 ui 包后启动开发服务:
pnpm dev
验收信号:浏览器打开 http://localhost:18181 的工作区,左中右三栏:原始提示词输入、优化工作区、测试区。
配好密钥就能出第一个结果
打开右上角「设置 → 模型管理」,点你要用的服务商(OpenAI、DeepSeek 等),填入 API key,保存。
左侧输入区写好提示词,选系统提示词或用户提示词模式,挑一个优化模板,点「开始优化」,首轮几十秒出结果。右侧推理过程解释优化理由,不满意就点「继续优化」迭代。
验收信号:优化工作区出现 V1 优化后的提示词与推理过程,满意后点「收藏」存成可复用资产。
🎯 按场景用
两个用法最值得记住:把提示词放进真实对话里测,给它一个立场。
连续对话里测稳定性
高级测试模式引入上下文变量,用同一条提示词跑完整多轮对话。砍价回复场景里,只换商品、报价、底线几个变量就能复用到不同交易,优化后的提示词去掉"助手腔",小模型围绕价格分歧与成交底线直接组织回复。
单次问答是运气,多轮稳定才是能力。
让模型有立场,而不是顺着说
系统提示词优化模式能把小模型从泛泛附和的回复,推向有结构的批判式审查,直接指出论点漏洞、风险与隐含假设。同样输入,换一套系统提示词,输出质量完全不同。
场景价值在于:把"模型太迎合"变成一个可调的参数。
🔌 按你的环境定制
接自己的模型服务,靠的是一组自定义环境变量。预置服务商用 VITE_OPENAI_API_KEY 这类变量,完整清单见 env.local.example。自定义模型每组一个后缀,数量不限:
| 变量 | 作用 |
|---|---|
VITE_CUSTOM_API_KEY_<suffix> | API key,必填 |
VITE_CUSTOM_API_BASE_URL_<suffix> | 服务地址,如 http://localhost:11434/v1 |
VITE_CUSTOM_API_MODEL_<suffix> | 模型名,如 qwen2.5:7b |
VITE_CUSTOM_API_PARAMS_<suffix> | 额外请求参数,JSON 字符串,可选 |
后缀限字母、数字、下划线、连字符,不超 50 字符。以本地 Ollama 为例,后缀写 ollama,新模型立刻出现在模型列表。参数注入最小示例:
VITE_CUSTOM_API_PARAMS_ollama={"temperature":0.7,"top_p":0.9}
注意不能覆盖 model、messages、stream 三个保留字段。逐模型细调 temperature、max_tokens、timeout 这类 key-value,在模型配置界面的 llmParams 字段填,规则见 docs/user/multi-custom-models.md。
📦 上生产
一条命令起私有化部署:
docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer \
-e VITE_OPENAI_API_KEY=your_key \
-e ACCESS_PASSWORD=your_password \
linshen/prompt-optimizer
Web 界面在 http://localhost:8081,MCP 服务同端口 /mcp 路径,暴露 optimize-user-prompt、optimize-system-prompt、iterate-prompt 三个工具,可接 Claude Desktop 等 MCP 应用。多模型、密码、重启策略直接改 docker/docker-compose.yml。
| 变量 | 作用 |
|---|---|
VITE_<提供商>_API_KEY | 预置模型密钥,GEMINI / DEEPSEEK / GROK / ZHIPU / SILICONFLOW 同理 |
ACCESS_USERNAME / ACCESS_PASSWORD | Web 访问账号密码,默认用户名 admin,不设置则无密码 |
MCP_DEFAULT_MODEL_PROVIDER | MCP 首选模型,支持 custom_<suffix> 指向自定义模型 |
MCP_LOG_LEVEL | MCP 日志级别:debug / info / warn / error |
⚠️ 公开的前端部署不要把密钥预置进 VITE_* 变量,这些值会打进浏览器产物、任何人可见;不预置时让每个用户在自己设置面板里填。
⚠️ 真正的成本在模型调用:优化加对比评估链路会多次调用模型,低预算场景选小模型跑测试区,大模型留给最终评估。
资源基本没压力:纯前端加一个 MCP 进程,1 核 1G 的容器足够。
🚧 它不做什么
- Web 版受浏览器 CORS 限制,连不上跨域策略严格的商业 API,这类场景换桌面版,无 CORS 限制且能直连本地 Ollama
- 数据持久化在浏览器本地存储(桌面版用本地文件库),靠导出备份,没有多用户协作与团队权限
- macOS 桌面版未签名,首次打开需要
xattr去掉隔离属性
后续方向:把提示词集合变成可管理的项目,与 Prompt Garden 的资产互通做得更深,持续扩充模型与图像生成服务商。
输入提示词、优化、在测试区跑出前后对比、把好的版本存成收藏——这条回路已经跑通。多数团队一天之内,就能搭出可用的私有提示词工作流。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考









