用途:在用户的 VivaDicta 历史记录中查找已有转录,并套用 AI 预设进行改写。
前提条件:需安装并运行 /Applications/VivaDicta.app(改写依赖 UI);已配置带 API key 的 AI 提供方或加载本地 MLX 模型;历史记录中需有内容,可用 vivadicta recent 1 检查。
标识符形式:rewrite 与 get 接受三种形式,优先顺序为关键词(latest、last、most recent、newest、current)、自然语言查询(如 "yesterday's call with sam")、原始 UUID。MCP 的会话句柄 t1、t2 不跨一次性 CLI 调用,需改用 UUID。
解析行为:自然语言匹配会分词(≥3 字符)、转小写,搜索 text、enhancedText、powerModeName,并提取时间范围提示过滤;若最高分达到第二名的 3 倍则选中,否则返回 transcription_ambiguous(退出码 4)并在 stderr 列出前 5 个候选。预设别名同样模糊匹配,不明确时返回 preset_ambiguous(退出码 3)。可用 vivadicta presets --output json 查看别名,内置别名包括 regular、summary、action_points、email、coding、translate_zh 等,以及 custom_ 前缀的用户预设。
典型流程:先用 vivadicta search "sprint planning" --since "last week" --limit 5 查找;唯一匹配时直接 vivadicta rewrite "sprint planning last week" --preset action_points;多条时从 JSON 取 ref 作为 UUID 再改写。改写结果会打印原文与改写文本,并作为 TranscriptionVariation 保存,可用 vivadicta get <uuid> --all-variations 查看。加 --dry-run 可预览解析出的转录与预设而不调用 UI。
错误处理:transcription_not_found 需放宽查询或去掉时间过滤;transcription_ambiguous 需更具体表述或使用候选 UUID;preset_not_found/preset_ambiguous 需从 presets 列表选别名;vivadicta_not_running 需先启动应用;daily_limit_reached 表示免费额度用尽。
限制与注意:每次 rewrite 都是付费 AI 请求,勿在重试循环中反复调用;用户未指定预设时应先询问,不同预设输出差异大;对同一预设再次改写会重新运行 AI 而非使用缓存;展示结果时应同时给出所用预设与 UUID。退出码与输出格式详见 vivadicta-cli-usage,导出到 Obsidian 详见 vivadicta-vault-export。