Prompt 优化工作流
系统化地提升 AI 增强质量。
本指南面向希望系统性提升 AI 增强质量的进阶用户,介绍如何利用 Preview 面板的内置工具进行 prompt 优化。
前提条件
- 已启用 Preview 模式(Settings → General → Preview)
- 已配置至少一个 LLM 提供商(Settings → LLM)
- 已选择一种增强模式(Settings → AI)
Preview 面板概览
Preview 面板使用 WKWebView 渲染,采用现代 HTML/CSS/JS 界面,自动适配浅色和深色模式。
┌─────────────────────────────────────────────────────┐
│ ASR [STT 模型 ▾] 10.6s ☐ Punc Play ▶ Save │ ← 原始语音识别结果
│ ┌─────────────────────────────────────────────┐ │
│ │ 根据目前程序的preview界面你能想到用户... │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ [ Off ] [纠错润色] [翻译为英文] [润色+翻译EN] [...] │ ← 模式切换器(⌘1–⌘9)
│ │
│ AI [provider/model ▾] Tokens: 897 (↑878 ↓19) │
│ ☐ thinking 🧠 Prompt│ ← 增强控制区
│ ┌─────────────────────────────────────────────┐ │
│ │ AI 增强结果(只读) │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ Final Result(可编辑) Translate ↗│
│ ┌─────────────────────────────────────────────┐ │
│ │ 最终文本 — 确认前可在此编辑 │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ [History ▾] [Cancel] [Confirm ⏎] │
└─────────────────────────────────────────────────────┘
核心优化工具
1. Play ▶ — 确认你实际说了什么
在归咎于 ASR 或 AI 之前,先回放录音。这能帮你判断问题出在哪一层:
| 你听到的内容 | 诊断结论 | 应对措施 |
|---|---|---|
| 你说错了或表达不清 | 源头问题 | 用更清晰的语音重新录制 |
| 语音正常,ASR 文本有误 | ASR 问题 | 切换 ASR 引擎、启用 Punc 或尝试其他模型 |
| ASR 文本正确,AI 输出有误 | Prompt 问题 | 检查并迭代 prompt(见下文) |
2. Prompt 按钮 — 查看实际的系统 prompt
增强完成后点击 Prompt ⓘ,即可看到发送给 LLM 的完整系统 prompt。这是优化的核心工具——你无法改进看不到的东西。
需要关注的要点:
- 指令是否足够清晰和具体?
- 是否提到输入来自 ASR(可能包含识别错误)?
- 是否有"仅输出结果"的规则以防止 AI 添加额外说明?
- 是否有 prompt 未覆盖的边界情况?
3. 模式切换器(⌘1–⌘9)— 即时对比不同模式
按 ⌘1 到 ⌘9 可在不重新录音的情况下切换模式。结果会被缓存——切回之前的模式会立即显示缓存结果(标记为 [cached])。
快速连续切换模式时会进行防抖处理(300 毫秒)。如果你按了 ⌘3 后立即按 ⌘5,只有 ⌘5 对应的增强请求会被发送给 LLM。上一个模式正在进行的流式增强会被立即取消,不会浪费 token。
用途:
- 对比不同 prompt 处理相同输入的效果
- 对新模式和现有模式进行 A/B 测试
- 找出哪种模式最适合处理特定类型的内容
4. LLM 模型下拉框 — 对比不同模型
通过 AI 下拉框切换模型,查看同一 prompt 在不同 LLM 上的表现。每个(模式、模型、thinking)组合的结果都独立缓存。
5. Thinking 模式 — 观察 AI 推理过程
启用 thinking 复选框,然后在增强完成后点击 🧠(大脑)按钮,即可阅读 AI 的推理过程。这能揭示:
- AI 为什么做出特定的措辞选择
- AI 在哪些地方感到困惑或不确定
- AI 是否正确理解了你的意图
这对诊断 prompt 问题非常有价值——如果 AI 的推理方向错了,说明 prompt 需要修改。
6. Preview History — 浏览历史结果
点击面板底部的 History 按钮,会弹出一个下拉列表,显示最近 10 条预览记录(存储在内存中,仅限当前会话)。每条记录显示操作图标、时间戳、增强模式和文本预览。
点击任意记录可将其加载回面板——ASR 文本、增强结果、最终文本和音频播放按钮都会恢复。这让你无需重新录音即可回顾之前的结果,便于对比 prompt 修改前后对相同输入的影响。
7. Final Result — 修正与训练
在确认前编辑 Final Result 以修复剩余问题。每次编辑都会被记录并标记 user_corrected,随着时间推移会反馈到词汇表系统中。
点击 Confirm 或 Cancel 时,正在进行的流式增强会被立即取消以节省 token。你不需要等待 AI 生成完毕就可以确认文本。
逐步优化工作流
阶段 1:识别问题
- 录制一句有代表性的语音。
- Play ▶ 回放录音,确认你说的内容与预期一致。
- 阅读 ASR 文本 —— 转录是否准确?
- 阅读 AI 结果 —— 增强是改善了还是损害了文本?
- 点击 Prompt —— 阅读产生该结果的系统 prompt。
阶段 2:诊断
使用各项控件缩小问题范围:
| 症状 | 诊断步骤 | 可能原因 |
|---|---|---|
| AI 添加了多余的解释 | 检查 Prompt —— 是否缺少"仅输出结果"规则 | Prompt 需要添加"仅输出结果,不要解释" |
| AI 过度修正正确的文本 | 检查 Prompt —— 指令是否过于激进 | Prompt 需要添加"正确的文本保持原样" |
| AI 误解专业术语 | 启用 thinking,阅读 🧠 | Prompt 需要添加领域上下文或示例 |
| 某个模型效果好,换一个就不行 | 通过下拉框切换模型对比 | Prompt 过于依赖特定模型,需要更明确的规则 |
| 短输入正常,长输入失败 | 分别录制短句和长句测试 | Prompt 需要对不同长度的输入做处理 |
阶段 3:编辑模式
- 用文本编辑器打开
~/.config/WenZi/enhance_modes/<mode_id>.md。 或者使用 Settings → AI → 选择模式 → 编辑。 - 根据诊断结果进行有针对性的修改。
- 重启应用(或重新加载配置)以加载更新后的 prompt。
- 重新录制相同的语句并对比结果。
阶段 4:验证
- ⌘1–⌘9 在更新后的模式和其他模式之间切换 —— 更新后的是否更好?
- 切换 LLM 模型 —— 改进在不同模型间是否一致?
- 测试边界情况 —— 尝试短输入、长输入、中英混合、嘈杂语音。
- 启用 thinking —— AI 的推理过程是否与你的意图一致?
阶段 5:持续优化
- 坚持修正 Final Result —— 词汇表系统会从你的编辑中学习。
- 查看 History(点击 History 下拉菜单)—— 浏览历史结果,寻找 AI 犯错的规律。
- 构建词汇表(Settings → AI → Build Vocabulary)—— 领域术语会自动积累。
实际示例
示例 1:AI 在翻译后添加了说明文字
问题:"翻译为英文"模式输出时带有 "Translation: ..." 前缀。
诊断: 点击 Prompt → prompt 中写了"translate to English",但没有明确禁止添加额外说明。
修复: 在 prompt 中添加:
Output only the translated text.
Do not add any prefix, label, or explanation.
示例 2:AI 错误地修改了人名
问题: 你说"找萍萍确认一下",但 AI 将其改为"找平平确认一下"。
诊断: 启用 thinking → AI 因缺乏上下文而将"萍萍"视为 ASR 对"平平"的识别错误。
修复方案: - 在 Final Result 中改回"萍萍" → 修正记录会被保存,随时间推移逐步建立词汇表 - 启用对话历史(Settings → AI),让 AI 看到之前已确认使用的"萍萍" - 积累足够的修正后手动构建词汇表
示例 3:模式在不同模型上表现不一致
问题:"命令行大神"在 GPT-4 上输出干净的 shell 命令,但在本地模型上会添加 markdown 代码块。
诊断: 通过下拉框切换模型,对比输出。点击 Prompt 检查。
修复: 让 prompt 更加明确:
Output only the raw command.
Do not wrap in markdown code blocks or backticks.
Do not add any explanation.
快速参考
| 快捷键 / 按钮 | 优化用途 |
|---|---|
| Play ▶ | 验证源音频 —— 问题是否出在语音上? |
| Punc | 切换标点 —— 是否能提升 ASR 准确率? |
| ⌘1–⌘9 | 在相同音频上 A/B 测试不同模式 |
| AI dropdown | 用相同 prompt A/B 测试不同模型 |
| Prompt ⓘ | 查看实际发送给 LLM 的 prompt |
| ☐ Thinking | 启用 AI 推理追踪 |
| 🧠 | 阅读 AI 的推理过程 —— 诊断理解偏差 |
| Final Result | 修正错误 —— 长期训练词汇表 |
| Translate ↗ | 使用 Google Translate 交叉验证 |
| History ▾ | 浏览最近 10 条预览记录 —— 对比 prompt 修改前后的效果 |
技巧
- 一次只改一处。 编辑 prompt 时,每次只修改一个地方然后测试。同时做多处改动会让你难以判断哪个修改起了作用。
- 保存好的测试用例。 使用 Save 导出能暴露 prompt 问题的录音。编辑 prompt 后重新播放验证修复效果。
- 使用编号规则。 相比段落式指令,LLM 更能稳定地遵循带编号规则的结构化 prompt。
- 始终提及 ASR 上下文。 在 prompt 中加入"The user's input comes from ASR and may contain recognition errors"—— 这能显著提升对识别错误的容错能力。
- 关注 token 数量。 Tokens 显示(↑prompt ↓completion)有助于判断 prompt 效率。如果 ↑ 值很高而 ↓ 值很低,说明 prompt 可能过于冗长。
- 满意就尽早确认。 点击 Confirm 或 Cancel 会立即取消正在进行的增强流式传输,节省 token。你不需要等待 AI 生成完毕。