我用 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 之上实现了这一点,加入一点超能力而不改变常规工作流。
从用户角度看它是如何工作的
- 安装并启用 扩展。
- 在 Chrome 中打开 ChatGPT。
- 在输入框中随意输入一个粗糙的想法。
- 在文本框旁出现一个小的 “Enhance” 按钮。
- 点击 Enhance(或使用键盘快捷键)→ 稍等片刻 → 粗糙的文本会被一个精炼、结构化的提示取代。
增强后的提示通常会:
- 添加缺失的上下文(受众、约束、格式)。
- 澄清任务(是总结、批评、生成还是解释)。
- 指定输出形式(项目符号列表、表格、带注释的代码等)。
你可以查看改写后的提示,必要时进行微调,然后像往常一样按 Enter。
键盘快捷键
可配置的快捷键让高级用户全程使用键盘保持流畅:
Type → Enhance → Enter
技术架构
Prompt Enhancer 是一个 Manifest V3 Chrome 扩展,由三大部分组成:
manifest.json– 声明权限、content‑script 匹配规则及其他元数据。- Content script – 与 ChatGPT 的 DOM 交互,注入 Enhance 按钮并处理事件。
- 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 使用效果。