昇腾社区首页
中文
注册

merge_text_summarize

功能描述

由于大模型输入token限制,长文本总结需要进行拆分成多个短文本,然后对短文本总结得到子总结,再对子总结进行合并再次通过大模型总结,多次迭代(最大10次)得到最终总结。

函数原型

def merge_text_summarize(texts, merge_threshold, not_summarize_threshold, prompt)

参数说明

参数名

数据类型

可选/必选

说明

texts

List[str]

必选

文本子总结列表,列表中所有文本长度总和的取值范围(0, 1024*1024],列表长度取值范围:(0,1024]。

merge_threshold

int

可选

合并总结时由于大模型token限制,需对子总结列表进行拆分发送给大模型合并总结,此值用于设置拆分门限值,保证每个拆分后的总长度不大于门限值,默认值为“4 * 1024”,取值范围:[1024, 1024*1024],merge_threshold参数值大于not_summarize_threshold值。

not_summarize_threshold

int

可选

单次总结时由于给定的文本太短大模型无法进行总结或总结错误,此值设定需要大模型进行总结的文本长度阈值,如果给定的文本内容小于等于not_summarize_threshold,不调用大模型进行总结操作,总结内容为文本原始内容,默认值为“30”,取值范围:(0, 1024*1024]。

prompt

langchain_core.prompts.PromptTemplate

可选

默认值如下,prompt中input_variables必须等于["text"],template长度取值范围:(0,1024 * 1024],实际请求大模型的query为prompt拼接text,其有效取值依赖MindIE的配置,请参见《MindIE Motor开发指南》中的“MindIE Motor组件 > MindIE Server > 配置参数说明”章节中关于“maxSeqLen”的说明。注意:prompt和text的语言类型最好保持一致,或者指明大模型回答语言类型,否则会影响大模型回答效果。

PromptTemplate(

input_variables=["text"],

template="""使用简洁的语言把下面的多个摘要提炼合并成一个摘要,包含尽可能多的关键信息,输出只包含内容信息,请用中文回答\n\n{text}""")

返回值说明

数据类型

说明

str

返回合并总结后的最终总结内容。