唐库批量编辑可以增删查改,聚类分析,抽取数据,找出遗漏等各种工作,只要你能描述出来的工作它都能做,可以把所有繁琐的工作都交给AI。

可以在原位置修改,可以生成新文章,或生成内容追加到固定文章。

处理单元:用于控制提交给AI的文本大小,简单任务可以设置大一点,例如写个概括,复杂任务例如算题,那只能设置为一道题;

定义子串:如果处理单元中带有格式,AI保持格式能力弱,需要定义子串,抽取子串提交给AI,再将AI生成内容回填,可保证格式不变;

AB稿纠错:同一问题让多个AI同时回答(每个回答称为A稿B稿C稿),再让一个评估AI选出最优答案,由于AI同时出错的概率低,通过该方案可大幅提高最终回答的正确率。

唐库批量功能.png

下面详细解释该功能:

指定文章:即哪些文章参与本次编辑任务,可以是文章序号或文章标题关键词,文章序号不是文章的章节号(很多不用章节号),只是文章在数据库的编号,插入删除文章后,序号会变;

处理单元:即需要AI批量处理的文本,可以是段落或整篇文章。
每个段落:由空行分隔的自然段叫做段落;
整篇文章:将整篇文章发给AI;
自定义段落:固定汉字字数(英文字符按1/3计算),AI的单次调用“智慧”有限,单次长度很关键。

处理单元中定义子串:在理想情况下,将处理单元整个文本$unit_text发给AI,AI处理后返回修改稿,可替换原稿,但如果处理单元中带有格式,例如各种<tag></tag>,AI保持格式的能力很弱,很大概率会破坏这些tag,这时候就要定义子串,只将子串发给AI,AI的返回稿可替代或添加到这些子串位置,以免破坏格式,具体看下面例子。

Prompt:告诉AI你需要它做什么,这儿可以使用如下预定义变量:
$unit_text:表示处理单元文本,prompt中会引用它;
$bookname:表示当前专辑名字;
$title:表示当前文章标题;
$doc(no):表示序号为no的文章内容;
$doc(“keyword”):表示标题中包含”keyword”的文章内容;
$book(“xxx”).doc(no):表示专辑xxx(url中的id)序号为no的文章内容;
$book(“xxx”).doc(“keyword”):表示专辑xxx(url中的id)标题中包含”keyword”的文章内容;
$prior(len, flag):表示当前处理单元的上文,len是字符数,flag:有效值 0 默认 1 去掉tag 2 去掉tag和<tang*></tang*>包围的内容;
$next(len, flag):表示当前处理单元的下文,len是字符数,flag:有效值 0 默认 1 去掉tag 2 去掉tag和<tang*></tang*>包围的内容;

改写类别:一些常用例子,点击可看下Prompt怎么写;

生成位置及替换串:AI根据Prompt生成了新内容,可以替换或插入原文,有如下3个位置可选:
1,原文章原位置,例如 $unit_text\n$ai_created 表示原位置后面跟随AI生成内容;
$ai_created 表示AI生成的内容,如果没有 $unit_text,原文字就会被删除;
2,生成新文章,生成的新文章会跟随在原文章后;
3,追加到指定文章,指定文章输入文章标题关键词即可;

选择AI:多种AI可选择,注意上下文窗口及价格区别;
发现AI生成效果不理想可更换;

限制次数:指定文章1-10,但如果限定1次,那么任务只会执行1次。

建议在每次执行任务之前检查任务,以免出错。

例子:Prompt可以是这样:
$doc(8) 的内容比 $doc(7) 少了几行其它类单词,找出并返回这些行。
$doc(8):序号8的文章内容;
$doc(7):序号7的文章内容;
文章7和8都有上几百行内容,人眼找不同会头昏眼花,AI十秒钟就找到了。
要注意这个Prompt并未引用处理单元,所以限制次数要设为1次,多次没有意义。

定义子串示例

子串相当于手术刀,用于精确的修改文字,假设处理单元原文如下:

It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife.
<span><tang1>众所周知,一个单身男子如果拥有一定的财产,就必须要找个妻子。</tang1></span>

我们的目标是用AI检查译文是否正确,如不正确就进行修改,但这个里面包含tag,批量调用AI输出稿中这个tag经常出错,于是我们定义两个子串:
(?<en>.*?)<span> 如果英文允许有多行,这样:(?<en>(.|\n)*?)<span>
<tang1>(?<cn>.*?)</tang1>
en分组代表英文行,cn分组代表中文行,Prompt这么写:
英文句子:$en,中文译文:$cn,请返回译文修正稿,只返回译文,不要加多余的指示的话。
得到AI的修正稿如何插入到正确的位置呢?使用下面的替换串:
$unit_text.cn("$ai_created")
含义是$unit_text中有个子串cn,它将会被$ai_created替代,如果我们不覆盖原有译文,只是添加到后面,怎么写呢?
$unit_text.cn("$cn @ $ai_created")
$cn即为原译文,@没有别的意思就是一个标志字符,方便后续替换。

通过定义子串,完美解决了AI不能保持格式的问题。

批量编辑适合格式规律性重复的文档,唐库的查找替换也能做到子串抽取及回填,适合无规律格式文档。