虚心肖白
(xqw)
1
遇到的问题
1、Text Generator如何换行输入改写内容,而非在同一行后面紧跟生成改写文字。
2、目前改写生成的内容生成效果一般,如何写提示词更好(选用的是azure 的gpt-4o-mini的2024-08-01-preview模型)
问题背景
最近想尝试语音打字,但语音打字可能会有错别字,句子标点、结构等可能不太理想。或者过于口语化。想通过插件进行改写,最终期望是插件生成几个改写内容,从里面选择一个改写内容直接覆盖掉语音输入的文字。
目前根据我的小白水平想到的是改写的内容换行,然后通过按键精灵或者(obsidian内部插件?)设置一个快捷键,模拟键盘操作模拟将光标移动上一行,定位到语音输入所在行,然后删除此行。
如果插件本身如果能直接覆盖原先内容所在行更好。
预期的效果
改写内容直接覆盖原先内容所在行或者改写内容另起一行进行输入。
想实现效果1或效果2,改写的内容比较完整准确
下面是目前的效果
已尝试的解决方案
最初想直接覆盖改写掉语音输入内容,折腾好久没法实现,进而想到换行输入,方便后续通过快捷键删除原先语音输入的所在行。
插件官网文档如下
Introduction - Text Generator Plugin (text-gen.com)
目前配置如下
其他通用方案
通过电脑的copilot桌面应用,这个场景更加通用,不局限obsidian软件,而且免费。就是生成内容后需要选中,复制,粘贴,在切回到obsidian,并粘贴到对应的位置,日常会多一些操作,目前在想办法整合尽量少几步操作。
Probe
(Probe)
2
这插件提供的功能很多, 想要控制文字生成位置, 目前知道有俩办法:
1 利用 Auto Suggest 功能的思路
就是改进楼主的例子, 补全口令 (默认是双空格) 被触发后, TextGen 是把新文字直接生成在当前段落内
那么改成: 新起一行, 触发口令, 但是仍然让 TextGen 操作上一段的文字就行了
具体是:
- Auto Suggest 那一段设置里, 开启
Allow Suggest in new Line

- Auto Suggest 那一段设置里,
Custom auto-suggest Prompt
写成
简化下列段落, 纠正错字和误拼, 将口语表达改为书面表达, 输出简化后的段落即可, 不要写别的, 但在段落最开始增加(ai)字样:
{{#script}}
let paragraphs = this.tg_selection.trim().split(/\s*\n+\s*/);
if (paragraphs[paragraphs.length - 1].length<=2) {
// 口令可能不是双空格, 而是 :: .. 之类, 这也会被收集到 tg_selection 里
// 如果 paragraphs 最后一段字符太少, 那么认为倒数第二段是应该操作的文本
paragraphs.pop();
}
let current_paragraph = paragraphs[paragraphs.length - 1];
notice("当前关注的段落为:" + current_paragraph); // 测试无误可以去掉这行
return current_paragraph;
{{/script}}
意思是, 当光标在新行起始时, tg_selection
选中范围本该是该笔记 “在光标前的所有字”, 但是我们只想把 “光标前的最后一段” 传给 LLM
现在可以在新行去触发口令了 (默认是双空格)
2 写成模板, 并替换掉当前选中文本的思路
不使用 Auto Suggest 的功能,
而是写个典型模板来做, TextGen 模板设 mode: replace
后, 生成文字会替换掉选中文字
---
promptId: SimplifyReplaceParagraph
name: 简化并替换当前选中文字
description: 简化并替换当前选中文字 需要事先选中文字 注意备份
mode: replace
---
简化下列段落, 纠正错字和误拼, 将口语表达改为书面表达, 输出简化后的段落即可, 不要写别的, 但在段落最开始增加(ai)字样:
{{selection}}
PS. 别的办法应该也有许多, 比如后处理给生成的文字增加前后空行等等
1 个赞
虚心肖白
(xqw)
3
非常感谢大佬的回答,有效的帮助我解决了问题,让我部分场景语音输入替换键盘输入能变得更好了 