


























前面两篇文章分别介绍了根据消息数量截断历史对话和根据Token长度截断历史对话,可是这两种方式有两个共同的问题:
1、被删去的早期记录可能包含关键信息,直接截断会导致信息丢失。
2、原始的对话记录可能存在重复、冗余、拖沓的文字内容。
要知道,重复、冗余、拖沓的文字内容并不高效,因为它的信息密度很低,很啰嗦,同样的意思使用更少的文字即可表达,完全没必要照搬原始的对话记录。
比如很多小说都有缩写本或者极简本,大幅精简后的文字保持了主要的故事框架,省去了许多次要的细节描写,一样可阅读可理解,整体的故事情节没有发生什么变化。
就历史对话的上下文而言,精简文字内容同样适用,这个精简过程被称作“摘要”,意思是摘取主要信息。对话摘要既保留了原始记录的关键信息,又大幅压缩了原始记录的文字长度,可有效降低下次AI会话的Token消耗。
Python有成熟的第三方库,可以直接对一段中文做自动摘要,无需开发者自己写算法,非常方便。常见的摘要库有snownlp和sumy,分别说明如下。
snownlp专门做中文的文本处理,内置自动摘要功能,体积小且速度快。在编写Python代码前,要先在命令行执行下面的pip安装命令:
然后编写下面的Python摘要测试代码:
运行上面的Python代码,输出日志结果如下:
可见snownlp库把原始的三个长句摘要为两个短句,同时保留了原文的主要意思。
sumy库的功能更强,它支持 TF-IDF、LSA、LexRank、Luhn 等多种摘要算法。在编写Python代码前,要先在命令行执行下面的pip安装命令:
然后编写下面的Python摘要测试代码:
运行上面的Python代码,输出日志结果如下:
可见sumy库直接输出原始文字的两个长句,摘要效果不如snownlp库。
如果开发者预算充足的话,也可调用国产大模型,在线输出对话内容的摘要文字。
比如登录火山引擎的控制台页面 https://console.volcengine.com/ark ,开通文本模型 Doubao-1-5-lite-32k 的推理服务,会赠送50万Token的免费额度,足够初学者的入门使用。
在编写火山引擎的Python调用代码前,要先在命令行执行下面的pip安装命令:
然后编写下面的Python摘要在线生成代码:
运行上面的Python代码,输出日志结果如下:
可见在线大模型火山引擎输出了原始文本经过压缩后的摘要文字,并且支持通过提示词设置精简指标,比如摘要长度等等。
本系列的AI应用开发文章目录为《15天学会AI应用开发全目录(零基础小白,零Token消耗)》。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。