唐库批量编辑可以增删查改,聚类分析,抽取数据,找出遗漏等各种工作,只要你能描述出来的工作它都能做,可以把所有繁琐的工作都交给AI。
可以在原位置修改,可以生成新文章,或生成内容追加到固定文章。
处理单元:用于控制提交给AI的文本大小,简单任务可以设置大一点,例如写个概括,复杂任务例如算题,那只能设置为一道题;
定义子串:如果处理单元中带有格式,AI保持格式能力弱,需要定义子串,抽取子串提交给AI,再将AI生成内容回填,可保证格式不变;
下面详细解释该功能:
原文专辑:原始文本所在专辑,可以是本专辑,也可以是其它专辑,或者是在唐库拆书工具中上传的文件。自有专辑及自己上传的文件无需分享码,他人的需要有分享码。
指定文章:即哪些文章参与本次编辑任务,可以是文章序号或文章标题关键词,文章序号不是文章的章节号(很多不用章节号),只是文章在数据库的编号,插入删除文章后,序号会变;
处理单元:即需要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_created:AI生成的内容;
$unit_text:表示处理单元文本;
$no(1):生成序号,1表示从1开始,可以是其它数字;
子串用法:参考下面案例。
选择AI:多种AI可选择,注意上下文窗口及价格区别;发现AI生成效果不理想可更换;
“Google gemini 2.5-flash 上下文1M/66k 价格1.7/6.7含义”:
Google gemini 2.5-flash: AI大模型名字及版本号;
上下文1M/66k:问题部分最多1M tokens,回答部分最多66k tokens,1个tokens接近1个汉字;经验之谈:虽然很多AI号称上下文很大,但实际使用发现,生成字数一多,幻觉(即胡说)会增加,一定要控制好单次调用AI返回的字数,对于低价AI,建议不超过3000汉字。注意这儿说的是单次调用AI生成字数要控制,唐库的批量任务是多次调用AI,生成字数是无限的;
价格1.7/6.7:问题部分100万tokens 1.7元,回答部分100万tokens 6.7元;
价格0.05/次:按调用次数计算费用,每次成功返回费用0.05元;
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不能保持格式的问题。
批量编辑适合格式规律性重复的文档,唐库的查找替换也能做到子串抽取及回填,适合无规律格式文档。
文章及段落的筛选拆分合并
当生成内容不包含$ai_created时,批量编辑功能可用于文章或段落的合并及筛选拆分:
1,当前专辑文章筛选拆分:
处理单元选每个段落,附加条件输入筛选关键词,例如“梅凝”,生成位置选生成新文章,生成内容为 $unit_text,点开始任务,即可将包含梅凝段落的内容生成多篇新文章;
2,当前专辑多篇文章的筛选合并:
处理单元选整篇,附加条件输入筛选关键词,例如“梅凝”,生成位置选追加到指定文章,生成内容为 $unit_text,点开始任务,即可将包含梅凝的整篇文章合并到指定文章;
3,其它专辑文章筛选拆分到版本专辑;
4,其它专辑多篇文章的筛选合并到本专辑;
3及4原理相同,选择其它专辑即可。