linshenkx

    linshenkx/prompt-optimizer

    一款提示词优化器,助力于编写高质量的提示词

    llm
    prompt
    prompt-engineering
    prompt-optimization
    prompt-toolkit
    prompt-tuning
    TypeScript
    NOASSERTION
    22.2K stars
    2.7K forks
    22.2K watching
    Updated 2/27/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    24.72

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    24

    Generated Insights

    About prompt-optimizer

    Prompt Optimizer (提示词优化器) 🚀

    📖 项目简介

    Prompt Optimizer是一个强大的AI提示词优化工具,帮助你编写更好的AI提示词,提升AI输出质量。支持Web应用、桌面应用、Chrome插件和Docker部署四种使用方式。

    🎥 功能演示

    1. 角色扮演对话:激发小模型潜力

    在追求成本效益的生产或注重隐私的本地化场景中,结构化的提示词能让小模型稳定地进入角色,提供沉浸式、高一致性的角色扮演体验,有效激发其潜力。

    猫女仆角色扮演演示

    2. 知识图谱提取:保障生产环境的稳定性

    在需要程序化处理的生产环境中,高质量的提示词能显著降低对模型智能程度的要求,使得更经济的小模型也能稳定输出可靠的指定格式。本工具旨在辅助开发者快速达到此目的,从而加速开发、保障稳定,实现降本增效。

    知识图谱提取演示

    3. 诗歌写作:辅助创意探索与需求定制

    当面对一个强大的AI,我们的目标不只是得到一个“好”答案,而是得到一个“我们想要的”独特答案。本工具能帮助用户将一个模糊的灵感(如“写首诗”)细化为具体的需求(关于什么主题、何种意象、何种情感),辅助您探索、发掘并精确表达自己的创意,与AI共创独一无二的作品。

    诗歌创作演示

    ✨ 核心特性

    • 🎯 智能优化:一键优化提示词,支持多轮迭代改进,提升AI回复准确度
    • 📝 双模式优化:支持系统提示词优化和用户提示词优化,满足不同使用场景
    • 🔄 对比测试:支持原始提示词和优化后提示词的实时对比,直观展示优化效果
    • 🤖 多模型集成:支持OpenAI、Gemini、DeepSeek、智谱AI、SiliconFlow等主流AI模型
    • 🔒 安全架构:纯客户端处理,数据直接与AI服务商交互,不经过中间服务器
    • 📱 多端支持:同时提供Web应用、桌面应用、Chrome插件和Docker部署四种使用方式
    • 🔐 访问控制:支持密码保护功能,保障部署安全
    • 🧩 MCP协议支持:支持Model Context Protocol (MCP) 协议,可与Claude Desktop等MCP兼容应用集成

    快速开始

    1. 使用在线版本(推荐)

    直接访问:https://prompt.always200.com

    项目是纯前端项目,所有数据只存储在浏览器本地,不会上传至任何服务器,因此直接使用在线版本也是安全可靠的

    2. Vercel部署

    方式1:一键部署到自己的Vercel(方便,但后续无法自动更新): 部署到 Vercel

    方式2: Fork项目后在Vercel中导入(推荐,但需参考部署文档进行手动设置):

    • 先Fork项目到自己的GitHub
    • 然后在Vercel中导入该项目
    • 可跟踪源项目更新,便于同步最新功能和修复
    • 配置环境变量:
      • ACCESS_PASSWORD:设置访问密码,启用访问限制
      • VITE_OPENAI_API_KEY等:配置各AI服务商的API密钥

    更多详细的部署步骤和注意事项,请查看:

    3. 下载桌面应用

    GitHub Releases 下载最新版本。我们为各平台提供安装程序压缩包两种格式。

    • 安装程序 (推荐): 如 *.exe, *.dmg, *.AppImage 等。强烈推荐使用此方式,因为它支持自动更新
    • 压缩包: 如 *.zip。解压即用,但无法自动更新。

    桌面应用核心优势:

    • 无跨域限制:作为原生桌面应用,它能彻底摆脱浏览器跨域(CORS)问题的困扰。这意味着您可以直接连接任何AI服务提供商的API,包括本地部署的Ollama或有严格安全策略的商业API,获得最完整、最稳定的功能体验。
    • 自动更新:通过安装程序(如 .exe, .dmg)安装的版本,能够自动检查并更新到最新版。
    • 独立运行:无需依赖浏览器,提供更快的响应和更佳的性能。

    4. 安装Chrome插件

    1. 从Chrome商店安装(由于审批较慢,可能不是最新的):Chrome商店地址
    2. 点击图标即可打开提示词优化器

    5. Docker部署

    点击查看 Docker 部署命令
    # 运行容器(默认配置)
    docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer
    
    # 运行容器(配置API密钥和访问密码)
    docker run -d -p 8081:80 \
      -e VITE_OPENAI_API_KEY=your_key \
      -e ACCESS_USERNAME=your_username \  # 可选,默认为"admin"
      -e ACCESS_PASSWORD=your_password \  # 设置访问密码
      --restart unless-stopped \
      --name prompt-optimizer \
      linshen/prompt-optimizer
    

    国内镜像: 如果Docker Hub访问较慢,可以将上述命令中的 linshen/prompt-optimizer 替换为 registry.cn-guangzhou.aliyuncs.com/prompt-optimizer/prompt-optimizer

    6. Docker Compose部署

    点击查看 Docker Compose 部署步骤
    # 1. 克隆仓库
    git clone https://github.com/linshenkx/prompt-optimizer.git
    cd prompt-optimizer
    
    # 2. 可选:创建.env文件配置API密钥和访问认证
    cp env.local.example .env
    # 编辑 .env 文件,填入实际的 API 密钥和配置
    
    # 3. 启动服务
    docker compose up -d
    
    # 4. 查看日志
    docker compose logs -f
    
    # 5. 访问服务
    Web 界面:http://localhost:8081
    MCP 服务器:http://localhost:8081/mcp
    

    你还可以直接编辑docker-compose.yml文件,自定义配置:

    点击查看 docker-compose.yml 示例
    services:
      prompt-optimizer:
        # 使用Docker Hub镜像
        image: linshen/prompt-optimizer:latest
        # 或使用阿里云镜像(国内用户推荐)
        # image: registry.cn-guangzhou.aliyuncs.com/prompt-optimizer/prompt-optimizer:latest
        container_name: prompt-optimizer
        restart: unless-stopped
        ports:
          - "8081:80"  # Web应用端口(包含MCP服务器,通过/mcp路径访问)
        environment:
          # API密钥配置
          - VITE_OPENAI_API_KEY=your_openai_key
          - VITE_GEMINI_API_KEY=your_gemini_key
          # 访问控制(可选)
          - ACCESS_USERNAME=admin
          - ACCESS_PASSWORD=your_password
    

    7. MCP Server 使用说明

    点击查看 MCP Server 使用说明

    Prompt Optimizer 现在支持 Model Context Protocol (MCP) 协议,可以与 Claude Desktop 等支持 MCP 的 AI 应用集成。

    当通过 Docker 运行时,MCP Server 会自动启动,并可通过 http://ip:port/mcp 访问。

    环境变量配置

    MCP Server 需要配置 API 密钥才能正常工作。主要的 MCP 专属配置:

    # MCP 服务器配置
    MCP_DEFAULT_MODEL_PROVIDER=openai  # 可选值:openai, gemini, deepseek, siliconflow, zhipu, custom
    MCP_LOG_LEVEL=info                 # 日志级别
    

    Docker 环境下使用 MCP

    在 Docker 环境中,MCP Server 会与 Web 应用一起运行,您可以通过 Web 应用的相同端口访问 MCP 服务,路径为 /mcp

    例如,如果您将容器的 80 端口映射到主机的 8081 端口:

    docker run -d -p 8081:80 \
      -e VITE_OPENAI_API_KEY=your-openai-key \
      -e MCP_DEFAULT_MODEL_PROVIDER=openai \
      --name prompt-optimizer \
      linshen/prompt-optimizer
    

    那么 MCP Server 将可以通过 http://localhost:8081/mcp 访问。

    Claude Desktop 集成示例

    要在 Claude Desktop 中使用 Prompt Optimizer,您需要在 Claude Desktop 的配置文件中添加服务配置。

    1. 找到 Claude Desktop 的配置目录:

      • Windows: %APPDATA%\Claude\services
      • macOS: ~/Library/Application Support/Claude/services
      • Linux: ~/.config/Claude/services
    2. 编辑或创建 services.json 文件,添加以下内容:

    {
      "services": [
        {
          "name": "Prompt Optimizer",
          "url": "http://localhost:8081/mcp"
        }
      ]
    }
    

    请确保将 localhost:8081 替换为您实际部署 Prompt Optimizer 的地址和端口。

    可用工具

    • optimize-user-prompt: 优化用户提示词以提高 LLM 性能
    • optimize-system-prompt: 优化系统提示词以提高 LLM 性能
    • iterate-prompt: 对已经成熟/完善的提示词进行定向迭代优化

    更多详细信息,请查看 MCP 服务器用户指南

    ⚙️ API密钥配置

    点击查看API密钥配置方法

    方式一:通过界面配置(推荐)

    1. 点击界面右上角的"⚙️设置"按钮
    2. 选择"模型管理"选项卡
    3. 点击需要配置的模型(如OpenAI、Gemini、DeepSeek等)
    4. 在弹出的配置框中输入对应的API密钥
    5. 点击"保存"即可

    支持的模型:OpenAI、Gemini、DeepSeek、Zhipu智谱、SiliconFlow、自定义API(OpenAI兼容接口)

    除了API密钥,您还可以在模型配置界面为每个模型单独设置高级LLM参数。这些参数通过一个名为 llmParams 的字段进行配置,它允许您以键值对的形式指定LLM SDK支持的任何参数,从而更精细地控制模型行为。

    高级LLM参数配置示例:

    • OpenAI/兼容API: {"temperature": 0.7, "max_tokens": 4096, "timeout": 60000}
    • Gemini: {"temperature": 0.8, "maxOutputTokens": 2048, "topP": 0.95}
    • DeepSeek: {"temperature": 0.5, "top_p": 0.9, "frequency_penalty": 0.1}

    有关 llmParams 的更详细说明和配置指南,请参阅 LLM参数配置指南

    方式二:通过环境变量配置

    Docker部署时通过 -e 参数配置环境变量:

    -e VITE_OPENAI_API_KEY=your_key
    -e VITE_GEMINI_API_KEY=your_key
    -e VITE_DEEPSEEK_API_KEY=your_key
    -e VITE_ZHIPU_API_KEY=your_key
    -e VITE_SILICONFLOW_API_KEY=your_key
    
    # 多自定义模型配置(支持无限数量)
    -e VITE_CUSTOM_API_KEY_ollama=dummy_key
    -e VITE_CUSTOM_API_BASE_URL_ollama=http://localhost:11434/v1
    -e VITE_CUSTOM_API_MODEL_ollama=qwen2.5:7b
    

    📖 详细配置指南: 查看 多自定义模型配置文档 了解完整的配置方法和高级用法

    本地开发

    详细文档可查看 开发文档

    点击查看本地开发命令
    # 1. 克隆项目
    git clone https://github.com/linshenkx/prompt-optimizer.git
    cd prompt-optimizer
    
    # 2. 安装依赖
    pnpm install
    
    # 3. 启动开发服务
    pnpm dev               # 主开发命令:构建core/ui并运行web应用
    pnpm dev:web          # 仅运行web应用
    pnpm dev:fresh        # 完整重置并重新启动开发环境
    

    🗺️ 开发路线

    • 基础功能开发
    • Web应用发布
    • Chrome插件发布
    • 国际化支持
    • 支持系统提示词优化和用户提示词优化
    • 桌面应用发布
    • mcp服务发布

    详细的项目状态可查看 项目状态文档

    📖 相关文档

    Star History

    Star History Chart

    常见问题

    点击查看常见问题解答

    API连接问题

    Q1: 为什么配置好API密钥后仍然无法连接到模型服务?

    A: 大多数连接失败是由跨域问题(CORS)导致的。由于本项目是纯前端应用,浏览器出于安全考虑会阻止直接访问不同源的API服务。模型服务如未正确配置CORS策略,会拒绝来自浏览器的直接请求。

    Q2: 如何解决本地Ollama的连接问题?

    A: Ollama完全支持OpenAI标准接口,只需配置正确的跨域策略:

    1. 设置环境变量 OLLAMA_ORIGINS=* 允许任意来源的请求
    2. 如仍有问题,设置 OLLAMA_HOST=0.0.0.0:11434 监听任意IP地址

    Q3: 如何解决商业API(如Nvidia的DS API、字节跳动的火山API)的跨域问题?

    A: 这些平台通常有严格的跨域限制,推荐以下解决方案:

    1. 使用Vercel代理(便捷方案)

      • 使用在线版本:prompt.always200.com
      • 或自行部署到Vercel平台
      • 在模型设置中勾选"使用Vercel代理"选项
      • 请求流向:浏览器→Vercel→模型服务提供商
      • 详细步骤请参考 Vercel部署指南
    2. 使用自部署的API中转服务(可靠方案)

      • 部署如OneAPI等开源API聚合/代理工具
      • 在设置中配置为自定义API端点
      • 请求流向:浏览器→中转服务→模型服务提供商

    Q4: Vercel代理有什么缺点或风险?

    A: 使用Vercel代理可能会触发某些模型服务提供商的风控机制。部分厂商可能会将来自Vercel的请求判定为代理行为,从而限制或拒绝服务。如遇此问题,建议使用自部署的中转服务。

    Q5: 我已正确配置本地模型(如Ollama)的跨域策略,为什么使用在线版依然无法连接?

    A: 这是由浏览器的混合内容(Mixed Content)安全策略导致的。出于安全考虑,浏览器会阻止安全的HTTPS页面(如在线版)向不安全的HTTP地址(如您的本地Ollama服务)发送请求。

    解决方案: 为了绕过此限制,您需要让应用和API处于同一种协议下(例如,都是HTTP)。推荐以下几种方式:

    1. 使用桌面版:桌面应用没有浏览器限制,是连接本地模型最稳定可靠的方式。
    2. docker部署:docker部署也是http
    3. 使用Chrome插件:插件在某些情况下也可以绕过部分安全限制。

    🤝 参与贡献

    点击查看贡献指南
    1. Fork 本仓库
    2. 创建特性分支 (git checkout -b feature/AmazingFeature)
    3. 提交更改 (git commit -m '添加某个特性')
    4. 推送到分支 (git push origin feature/AmazingFeature)
    5. 提交 Pull Request

    提示:使用cursor工具开发时,建议在提交前:

    1. 使用"code_review"规则进行代码审查
    2. 按照审查报告格式检查:
      • 变更的整体一致性
      • 代码质量和实现方式
      • 测试覆盖情况
      • 文档完善程度
    3. 根据审查结果进行优化后再提交

    👏 贡献者名单

    感谢所有为项目做出贡献的开发者!

    贡献者

    📄 开源协议

    本项目采用 MIT 协议开源。


    如果这个项目对你有帮助,请考虑给它一个 Star ⭐️

    👥 联系我们

    • 提交 Issue
    • 发起 Pull Request
    • 加入讨论组

    Discover Repositories

    Search across tracked repositories by name or description