我用 Gemini Nano 构建了一个完全本地化的 Prompt 增强器 Chrome 扩展

发布: (2025年12月8日 GMT+8 05:00)
6 min read
原文: Dev.to

Source: Dev.to

问题:我们对提示的描述不够具体

大多数人使用 ChatGPT(或任何 LLM)时,就像使用搜索框一样:随意输入一个半成品的想法,按 Enter,期待出现奇迹。结果通常还能接受,但并不理想。

常见问题

  • 模糊的提示,例如 “为我的考试解释这个主题”,却没有说明层次、背景或约束条件。
  • 编码请求缺少输入/输出格式、边界情况或性能约束。
  • 写作任务缺少目标受众、语气或篇幅要求。

一个设计良好的提示可以:

  • 节省多轮来回的迭代。
  • 产生更可靠、可测试的输出(尤其是代码和分析)。
  • 让 AI 工具在真实工作流中真正可用。

思路

如果你可以像平常一样输入文字,然后只点一个按钮,就把你的粗糙文本改写成高质量的提示呢?

Prompt Enhancer 正是在 ChatGPT 之上实现了这一点,加入一点超能力而不改变常规工作流。

从用户角度看它是如何工作的

  1. 安装并启用 扩展。
  2. 在 Chrome 中打开 ChatGPT。
  3. 在输入框中随意输入一个粗糙的想法。
  4. 在文本框旁出现一个小的 “Enhance” 按钮。
  5. 点击 Enhance(或使用键盘快捷键)→ 稍等片刻 → 粗糙的文本会被一个精炼、结构化的提示取代。

增强后的提示通常会:

  • 添加缺失的上下文(受众、约束、格式)。
  • 澄清任务(是总结、批评、生成还是解释)。
  • 指定输出形式(项目符号列表、表格、带注释的代码等)。

你可以查看改写后的提示,必要时进行微调,然后像往常一样按 Enter

键盘快捷键

可配置的快捷键让高级用户全程使用键盘保持流畅:

Type → Enhance → Enter

技术架构

Prompt Enhancer 是一个 Manifest V3 Chrome 扩展,由三大部分组成:

  1. manifest.json – 声明权限、content‑script 匹配规则及其他元数据。
  2. Content script – 与 ChatGPT 的 DOM 交互,注入 Enhance 按钮并处理事件。
  3. Prompt API 集成 – 调用本地的 Gemini Nano 模型。

Manifest V3 基础

{
  "manifest_version": 3,
  "name": "Prompt Enhancer",
  "version": "1.0",
  "description": "Rewrite rough prompts into high‑quality prompts for ChatGPT using Gemini Nano.",
  "permissions": ["activeTab", "scripting"],
  "host_permissions": ["https://chat.openai.com/*"],
  "content_scripts": [
    {
      "matches": ["https://chat.openai.com/*"],
      "js": ["contentScript.js"]
    }
  ]
}
  • 最小化权限 保证扩展安全并简化 Chrome Web Store 审核。
  • content script 检测 ChatGPT 页面,定位主文本框,注入悬浮的 Enhance 按钮,并监听点击/键盘事件。
  • 由于 ChatGPT UI 是经常变化的 React 应用,脚本使用 稳定选择器、回退启发式(例如 “最大的 textarea”)以及 MutationObserver 在重新渲染后重新附加按钮。

通过 Prompt API 集成 Gemini Nano

// Example of creating a Gemini Nano model instance
if (chrome.ai && chrome.ai.languageModel) {
  const model = await chrome.ai.languageModel.create({
    temperature: 0.2,
    topK: 40,
    // other model options...
  });

  const metaPrompt = `
    You are a prompt‑engineering assistant. Rewrite the user's text as a clear,
    detailed prompt that specifies context, output format, and constraints,
    without changing the core intent.
  `;

  const response = await model.prompt(`${metaPrompt}\nUser: ${roughText}`);
  // `response` now contains the enhanced prompt
}
  • 本地执行 意味着低且可预测的延迟,无需网络往返。
  • 只要 Chrome 提供 Gemini Nano,即使关闭 Wi‑Fi 也能工作。
  • 需要防御性错误处理,因为 Gemini Nano 仍在早期阶段;如果模型不可用,则显示友好的回退信息。

今日发布的内容(v1)

  • 在 ChatGPT 提示文本框上方的悬浮 “Enhance” 按钮。
  • 使用 Gemini Nano 通过 Chrome Prompt API 在设备本地完成提示增强。
  • 完全本地处理,不依赖外部 API 或 API 密钥。
  • 为高级用户提供键盘快捷键支持。
  • 简约、原生外观的用户体验,感觉与 ChatGPT 完全集成。

该扩展已在 Chrome Web Store 上线,可像其他扩展一样安装。

经验教训

  • 权限与隐私:要清晰说明访问哪些数据以及原因。
  • 用户流程比模型更重要:保持输入流畅不中断,提供快速视觉反馈,并尊重原始意图。
  • 早期采用的权衡:部分用户需要开启标志或使用 Dev/Canary 版本;健壮的回退信息至关重要。

Prompt Enhancer 展示了围绕本地 LLM 构建的简洁、良好集成的用户体验,如何显著提升日常 AI 使用效果。

Back to Blog

相关文章

阅读更多 »