CN117807199A - 一种基于文档检索增强机器语言模型的对话方法及系统 - Google Patents

一种基于文档检索增强机器语言模型的对话方法及系统 Download PDF

Info

Publication number
CN117807199A
CN117807199A CN202311710476.XA CN202311710476A CN117807199A CN 117807199 A CN117807199 A CN 117807199A CN 202311710476 A CN202311710476 A CN 202311710476A CN 117807199 A CN117807199 A CN 117807199A
Authority
CN
China
Prior art keywords
document
paragraph
language model
prompt
json
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202311710476.XA
Other languages
English (en)
Other versions
CN117807199B (zh
Inventor
李小帅
陈鹏
胡浩俊
杨宏阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Sinodata Technology Co ltd
Original Assignee
Beijing Sinodata Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Sinodata Technology Co ltd filed Critical Beijing Sinodata Technology Co ltd
Priority to CN202311710476.XA priority Critical patent/CN117807199B/zh
Publication of CN117807199A publication Critical patent/CN117807199A/zh
Application granted granted Critical
Publication of CN117807199B publication Critical patent/CN117807199B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Machine Translation (AREA)

Abstract

本公开实施例提出了一种基于文档检索增强机器语言模型的对话方法及系统,所述方法包括:获取任意领域的文档,将文档转换成文档JSON结构体,并将JSON结构体进行向量化处理,得到向量化的文档,并将向量化的文档JSON结构体保存到本地知识库;获取用户输入内容,将输入内容进行向量化处理,得到问题向量;将问题向量与向量化的文档进行检索匹配,生成第一检索结果;将第一检索结果填充到提示工程模板,得到相应提示词工程,将提示词工程输入机器语言模型,得到回答结果;判断回答结果是否与事实相符,如果是,则输出回答结果。本公开实施例将文档转换成文档JSON结构体数据,保留文档元信息,使得大模型精确、快速地生成回复内容。

Description

一种基于文档检索增强机器语言模型的对话方法及系统
技术领域
本公开实施例涉及数据库、数据处理技术领域,尤其涉及一种基于文档检索增强机器语言模型的对话方法、系统及存储介质。
背景技术
传统检索系统通常只能处理简单的关键词匹配,而不能理解上下文或语义,使得用户必须使用特定的关键词或短语来表达他们的查询意图,这常常限制了用户的查询能力。
目前,常采用大型语言模型实现人机对话,大语言模型能利用上下文信息,更好地理解用户的查询意图,从而生成更自然、更流畅的回复内容。但是大模型仍存在诸如以下的问题,如幻觉问题。大型语言模型(Large Language Model,LLM)在通用任务和数据上表现出了强大的自然语言指令遵循性能,然而利用大语言模型LLM进行特定领域对话任务存在严重限制。由于训练数据收集时间、复杂的用户提问等因素的影响,大语言模型生成的答案往往会出现幻觉。幻觉就是LLM易生成不正确或者与事实不符的结果。这主要是因为LLM在生成对话或文本时,并非基于实际的知识或数据,而是基于其在训练过程中学习到的模式。因此,如果训练数据中存在错误或者误导性信息,LLM可能会将这些错误或误导性信息当作正确的知识来使用,从而导致生成的结果出现问题。此外,由于缺乏对特定领域和预期输出的认识学习,这种LLM可能会生成未针对目标领域量身定制的不安全的答案。
同时,大型语言模型(LLM)在文档对话上存在问题,即文档比较长时,大模型由于可接收上下文信息长度是固定的,无法一次性读取分析文档。为了解决该问题,现有的做法是对文档提取转成丢失文档的元信息的比较小的纯文本,将问题和纯文本输入给大模型生成回复内容。比如“对这篇文档的第3-6页做下总结”或者“表2中哪个省份新生婴儿增长率最高”等大模型均无法精确地生成回复内容。
为了克服上述大模型在特定领域任务对话出现“幻觉”现象以及因文档提取缺少元信息导致大模型无法精确生成回复内容的问题,本公开实施例设计了基于文档的大语言模型对话系统解决了大语言模型在特定领域问答任务上的“幻觉”问题。
发明内容
本公开实施例的目的在于提供一种基于文档检索增强机器语言模型的对话方法、系统及存储介质,从而解决现有技术中存在的前述问题。
为了实现上述目的,本公开实施例采用的技术方案如下:
本公开实施例一方面提出了一种基于文档检索增强机器语言模型的对话方法,所述方法包括:
获取任意领域的文档,将所述文档转换成文档JSON结构体,并将所述JSON结构体进行向量化处理,得到向量化的文档JSON结构体,并将所述向量化的文档JSON结构体保存到本地知识库;
获取用户输入内容,将所述输入内容进行向量化处理,得到问题向量;
将问题向量与向量化的文档进行检索匹配,生成第一检索结果;
将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果;
判断所述回答结果是否与事实相符,如果是,则输出所述回答结果。
示例性的,所述判断所述回答结果是否与事实相符,还包括:如果否,则返回兜底引导话术。
示例性的,所述获取任意领域的文档,将所述文档转换成文档JSON结构体包括:
获取任意领域的文档,将所述文档转换成相应的文档树对象结构;
读取所述文档树对象的元信息,将元信息转换为元信息JSON数据体;
抽取所述文档树对象中每页章节段落内容,并记录每页章节段落所在页码位置和对应的段落标题,将章节段落、页码及段落标题转换为段落JSON数据体;
抽取所述文档树对象中的表数据,并记录表序号和表的名称,并将文档表数据、表序号及表的名称转换为表JSON数据体;
将所述元信息JSON数据体、所述段落JSON数据体、所述表JSON数据体组合成代表文档结构轮廓和信息的文档JSON结构体。
示例性的,在抽取所述文档树对象中每页章节段落内容时,所述方法还包括,还记录了段落概要与每页章节段落所在页码位置和段落标题映射关系,将段落概要与章节段落、页码及段落标题一并转换为段落JSON数据体。
示例性的,所述获取任意领域的文档之前,所述方法还包括:
注册激活多个智能体函数,其中,所述智能体函数用于查询文档表格或查询文档页码的内容;
在获取用户输入内容之后,根据用户输入内容选择并调用相应的智能体函数,将所述用户输入内容和相应的智能体函数输入到机器语言模型,所述机器语言模型调用相应的智能体函数对文档JSON结构体进行检索分析,得到第二检索结果;
将所述第二检索结果填入提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。
示例性的,所述将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工输入机器语言模型,得到回答结果之后,所述方法还包括:
获取对话记录,将所述第一检索结果与所述对话记录填充到提示工程模板;
所述提示工程模板以预先设定的格式生成相应的指令,将所述指令输入所述机器语言模型,得到最终回答结果。
示例性的,所述获取对话记录之后,所述方法还包括:判断对话轮次是否达到预设阈值,若是,则对多轮对话记录进行总结,生成相应的摘要,以所述摘要代替所述多轮对话记录作为记忆填充到提示工程模板。
示例性的,所述将所述输入内容进行向量化处理,得到问题向量包括,调用机器语言模型获取所述输入内容的向量特征,其中,在提取用户输入内容的向量特征时,在所述输入内容上添加前缀指令:为该句子生成表示用户检索文章表示。
本公开实施例另一方面提出了一种基于文档检索增强机器语言模型的对话系统,所述系统包括:
文档获取模块,用于获取任意领域的文档,将所述文档转换成文档JSON结构体格式,并将所述档JSON结构体进行向量化处理,得到向量化的文档JSON结构体,并将所述向量化的文档JSON结构体保存到本地知识库;
输入内容获取模块,用于获取用户输入内容,将所述输入内容进行向量化处理,得到问题向量;
第一检索模块,用于将问题向量与向量化的文档进行检索匹配,生成第一检索结果;
提示词生成模块,用于将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果;
判断模块,判断所述回答结果是否与事实相符,如果是,则输出所述回答结果。
本公开实施例另一方面提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
本公开实施例的有益效果是:
本公开实施例将文档转换成未丢失元信息的文档JSON结构体数据,可以使得大模型更精确、快速地生成回复内容;解决了大语言模型在特定领域问答任务上的“幻觉”问题。
附图说明
图1是本公开实施例的一种基于文档检索增强机器语言模型的对话方法流程示意图;
图2是本公开实施例的一种基于文档检索增强机器语言模型的对话系统的结构示意图。
具体实施方式
为了使本公开实施例的目的、技术方案及优点更加清楚明白,以下结合附图,对本公开实施例进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本公开实施例,并不用于限定本公开实施例。
如图1所示,本公开实施的一方面提出了一种基于文档检索增强机器语言模型的对话方法,所述方法包括:
步骤S1、获取任意领域的文档,将所述文档转换成文档JSON结构体,并将所述JSON结构体进行向量化处理,得到向量化的文档JSON结构体,并将所述向量化的文档JSON结构体保存到本地知识库。
本公开实施例中针对基于机器语言模型与文档对话的情形;所述文档格式可以是PDF、word和PPT等格式富文档。至于文档内容上可以是手册、论文、法律合同、书籍、文献等等,这里不限定。获取特定领域文档,如金融银行、汽车领域等业务领域,可以以本领域的业务逻辑等内容作为文档,这里不限定具体内容。在步骤S1中除了抽取了文档的纯文本数据外,还提取文档元信息数据,仅提取纯文本数据会丢失文档大量元信息,如章节、段落、图表信息等。
示例性的,所述获取任意领域的文档,将所述文档转换成文档JSON结构体包括:
步骤S11、获取任意领域的文档,将所述文档转换成具有层次结构的相应的文档树对象结构。
具体的,将文档转成具有层次结构的类HTML文档树对象,而非纯文本信息。这里的文档可以是Doc、PDF等富文本格式。
所述文档树对象上携带有章节、章节标题、页面信息、表格和图形等元素信息。每种元素都带有文档元信息,如所在页面、段落等信息。本公开实施例的文档树对象结构从小的结构体中开始搭建,比如页面、段落结构体,然后由这些小的结构体组成文档完整的结构体。本公开实施例中可以通过解析该文档树对象来识别文档中章节、章节级别和标题,收集某个页面上的所有文本,或者获取图形和表格周围的文本,便于将文档树对象结构化信息映射到JSON数据体中,得到相应的JSON数据体。
步骤S12、读取所述文档树对象的元信息,将元信息转换为元信息JSON数据体。
本公开实施例中文档树对象记录了整篇文档的信息,但这些信息不是以JSON结构体存储的,而是存储在对象属性上。通过对象方法提取对象属性值最后转成JSON结构体。本公开实施例中JSON数据体需提前创建,以便将文档树对象结构化信息映射到JSON数据体中。本公开实施例利用文档编辑器读取文档树对象中文档元信息、如文档名称、标题、作者、关键词和主题信息。meta元信息JSON数据体结构如下:
{“Author”:”李明”,”name”:”关于人工智能大模型算法研究综述”,”keywords”:[“人工智能”,”大模型”],”topic”:”人工智能前沿研究”
}。
本公开实施例通过对文档提取元信息保证文档数据不丢失,解决大语言模型LLM无法精确生成内容的问题。
步骤S13、抽取所述文档树对象中每页章节段落内容,并记录每页章节段落所在页码位置和对应的段落标题,并将章节段落、页码及段落标题转换为段落JSON数据体。
本公开实施例中可以现有的常用的处理软件如pypdf,grobid,pymupdf,pyplumber等抽取所述文档树对象中每页章节段落内容。本公开实施例中段落JSON数据体结构如下:
[
{“paragraph”:”人工智能发展段落1”,“page”:[3]},
{“paragraph”:”人工智能发展段落2”,“page”:[3]},
{“paragraph”:”人工智能发展段落3”,“page”:[3,4]},
....
]。
示例性的,在抽取所述文档树对象中每页章节段落内容时,所述方法还包括,还记录了段落概要与每页章节段落所在页码位置和段落标题映射关系,将段落概要与章节段落、页码及段落标题一并转换为段落段落JSON数据体。
具体的,在上述抽取章节段落时,更高阶的实施例中除了上述提到的章节段落、页码及段落标题关键字段信息外,还提供了段落的概要信息。此时段落JSON数据体如下:
[
{“paragraph”:”人工智能发展段落1”,“summary”:”讲解了人工智能发展历史……”,“page”:[3]},
{“paragraph”:”人工智能发展段落2”,“summary”:”讲解了人工智能发展历史……”,“page”:[3]},
{“paragraph”:”人工智能发展段落3”,“summary”:”讲解了人工智能发展历史……”,“page”:[3,4]},
]
本公开实施例中可以调用大语言模型LLM对段落进行总结概括,得到对应的段落概要。
步骤S14、抽取所述文档树对象中的表数据,并记录表序号和表的名称,并将文档表数据、表序号及表的名称转换为表JSON数据体。
本公开实施例中表JSON数据体结构如下:
{“table”:2,”tableName”:”人工智能算法推理性能比较”,“value”:”表的具体内容由Markup Language标记语言表示”}。
步骤S15、将所述元信息JSON数据体、所述段落JSON数据体、所述表JSON数据体组合成代表文档结构轮廓和详细信息的文档JSON结构体。
本公开实施例中将JSON数据体作为大语言模型输入的上下文信息以回答用户提问的背景信息。本公开实施例需要对所述文档JSON结构体进行向量化处理,具体的,将JSON数据体元素值表示成向量,即对完整文档JSON数据体中各字段值转换成向量格式,得到向量表征的文档JSON结构体,本公开实施例可以主要对元信息JSON数据体和所述段落JSON数据体进行向量化,段落JSON结构体包含了段落paragraph和概要summary字段,对文档JSON结构体向量化就是对paragraph和summary这些字段对应的值value由文本转成向量表征。本公开实施例也可以对元信息JSON数据体进行向量化,向量化过程这里不赘述。这里将文档JSON数据体进行向量化的方法可以是嵌入词等与后面将用户输入内容进行向量化相同的方法,这样确保用户输入向量与向量化的文档在同一个语义向量空间中做检索匹配。
本公开实施例中文档在向量化过程中无需使用前缀指令,如“为该句子生成表示用户检索文章表示:”前缀,只需在后面用户输入时添加该前缀指令。
本公开实施例将文档最终转换成JSON体的做法旨在帮助在提取文本信息过程中元信息不被丢弃,这种精细化的数据处理操作为后续智能体任务的执行提供了数据信息基础,同时为大语言模型精确回复做了数据存储。如果采用现有的文档转成纯文本的做法,因在数据提取过程在粗粒度的操作损失了文档元信息,大语言模型无法回复“对这篇文档的第3-6页做下总结”或者“表2中哪个省份新生婴儿增长率最高”这种问题。如果有本公开实施例的文档精细抽取文档保留元信息的做法,则大语言模型很容易地精确生成回复内容。
本公开实施例中对所述文档JSON结构体进行向量化处理之前,先对段落JSON数据体中的段落进行分块处理,首先判断段落的长度,如果段落长度超过文本块大小textchunk,则对该段落进行分割。
段落切分方法涉及有以下重要的切分参数,如文本块大小text chunk为1500、两个切分后的文本块内容重叠率大小chunk overlap为0.03。
在文本切分实施过程中,为了保证每个文本块有完整的语义信息,除了考虑了文本块大小设定还加入了标点符号信息切分文本信息。即便文本块满足了文本块大小的要求,但是该文本块不是以正常标点符号结束的,则会对该文本块做回退处理,重新切分,直到该文本块从左数遇到第一个正常标点结束的位置为止进行切分。下一个文本块的起始位置是以上一个文本块结束位置为基点,向前回溯一定量的文本直到满足两两文本块间重叠率指标要求,同时须满足正常标点作为该文本块的起始点。向前回溯一定量的文本可以根据实际情况设置,这里不限定,可能是向前回溯10个字,也可能是20个字,只要满足文本块重叠率不超过0.03,同时又是以标点起始即可。将切分后的文本块经过数据清洗去除特殊字符等操作后保存为最终文本块。
步骤S2、获取用户输入内容,将所述输入内容进行向量化处理,得到问题向量。
本公开实施例中文本向量化不局限于传统的词嵌入word2vec经过池化或者加权平均等处理得到文本句子向量表征。
在更高阶的向量化实施例中,采用机器学习模型,如大语言模型LLM获取文本的向量表征。在使用大语言模型提取用户输入文本的向量表征时,统一在用户输入的文本上添加前缀“为该句子生成表示用户检索文章表示:”。
具体的,所述将所述输入内容进行向量化处理,得到问题向量包括,调用机器语言模型获取所述输入内容的向量特征,其中,在提取用户输入内容的向量特征时,在所述输入内容上添加前缀指令:为该句子生成表示用户检索文章表示。
本公开实施例中在用户输入的文本上添加前缀“为该句子生成表示用户检索文章表示:”做法的好处是能够将用户输入内容适配到短文与长文段落间的匹配任务上。现有检索匹配做法是将用户输入与段落内容做向量两两匹配,但由于该匹配任务的两侧内容长度分布差异大,用户输入内容偏短而段落偏长无法很高的统一建模提取各自向量。如果对用户输入添加“为该句子生成表示用户检索文章表示:”前缀指令,则能很好地适配短文-长文间的检索匹配。所述机器语言模型可以是大语言模型LLM。
例如,假设用户输入为“什么是安全气囊?”,调用大语言模型LLM首先为用户提问增加指令前缀,生成向量检索指令:“为该句子生成表示用户检索文章表示:什么是安全气囊?”。然后将该检索指令传入大语言模型LLM提取向量表征,向量维度为1024。
步骤S3、将问题向量与向量化的文档进行检索匹配,生成第一检索结果。
本公开实施例在步骤S3中可以采用现有的检索匹配方法。如,当用户进行提问时,可以调用大语言模型LLM将用户提问内容(query)转换为向量,在所有向量文档进行多线程的多元相似度检索(muti-retrieval),并经过重排机制(re-ranking)检索出与提问关联度最高的前K个文本块(top-k context)。
通过相似度算法,如本实施例中为余弦相似度,多线程同步计算该指令向量与本地所有文本块向量之间的相似度。返回相似度大于一定阈值,本实施例中阈值为0.75的结果并按照相似度大小排序。结果格式如下所示:[{‘context’:’安全气囊是一种车辆安全装置,在发生碰撞事故时,帮助保护乘客。’,’similarity’:’0.85’,’source’:’汽车用户手册’},{‘context’:’安全气囊系统发生故障,可能在碰撞事故时不会充气,其至在未发生事故时充气。’,’similarity’:’0.76’,’source’:’汽车用户手册’}]。进一步提取出该结果中的context字段,并将其与用户提问一同传入重排模块,该重排模块借助一个经过训练的交叉编码器再次计算查询语句和文本块实时相关性分数,更新相关性分数大小并对大语言模型LLM检索返回的文档进行重新排序,最终输出top-k context,需要注意的是:如果获得的context数量大于k,只采用前k个;数量少于k,不进行补充。
步骤S4、将所述第一检索结果填充到提示提工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。
本公开实施例中所述提示词工程将以固定格式统一生成准确高效的指令,传入机器语言模型,即大语言模型LLM产生回答,并实现多轮对话。
步骤S5、判断所述回答结果是否与事实相符,如果是,则输出所述回答结果。
具体的,可以调用大语言模型判断所述回答结果进行与事实是否相符。大语言模型事实审核评估主要从以下指标综合衡量生成的回答结果内容事实性。
示例性的,所述判断所述回答结果是否与事实相符包括如下指标:生成内容是否具体、生成内容是否具有连贯性、生成内容是否具有可理解性、生成内容在语义上是否适当、生成内容是否具有流畅性、生成内容前后是否一致、生成内容是否具有信息性、生成内容是否与对话相关。若是,则相应指标得分为1,若否,相应指标得分为0,根据各指标,计算得到所述回答结构进行与事实是否相符的总得分,若所述总得分大于预设阈值,则所述回答结果与事实相符;反之,则所述回答结果与事实相符。
本公开实施例中,所述回答结构进行与事实是否相符的总得分为所有指标得分总和的平均值。
针对以上评估指标,大语言模型为每一个指标生成一个0或1的布尔值,用于待评估文本在该项指标上的得分。最后将所有指标得分计算平均值。如果指标得分平均值高于预设阈值,则认为生成的内容是符合事实性的。预设阈值设定为0.6。以生成内容前后是否一致指标为例,通过构造提示工程指令要求大模型评估输入内容是否前后逻辑一致,并输出0或1值。指标计算完全是大模型内部逻辑。
大语言模型对生成结果进行进一步的事实性核查,过滤掉与事实相矛盾的结果,如果存在事实性矛盾情况,则返回默认的兜底引导话术内容。如果系统经过步骤S3得到与提问关联度最高的K个文本块,则将其与对话记忆一同传入提示词工程(PromptEngineering)模版。
示例性的,所述判断所述回答结果是否与事实相符,还包括:如果否,则返回兜底引导话术。
如果为否,则表示对话系统无法回复该用户问题,采用默认兜底引导话术返回给用户。默认兜底引导话术包括了“很抱歉,您的问题难倒我了,我还在努力学习中”、“不好意思,我还无法理解您的问题,和我换个话题聊聊吧”。
示例性的,所述获取任意领域的文档之前,所述方法还包括:
注册激活多个智能体函数,其中,所述智能体函数用于查询文档表格或查询文档页码的内容;
在获取用户输入内容之后,根据用户输入内容选择并调用相应的智能体函数,将所述用户输入内容和相应的智能体函数输入到机器语言模型,所述机器语言模型调用相应的智能体函数对文档JSON结构体进行检索分析,得到第二检索结果;
将所述第二检索结果填入到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。继续步骤S5。
本公开实施例中,步骤S2和步骤S3向量检索与智能体检索同时进行,因用户输入内容涉及页码或表格查询,采用步骤S2和步骤S3向量检索匹配,因没有上下文,检索不到相应结果,所以,采用智能体检索就可以弥补采用步骤S2和步骤S3向量检索的缺陷。如果有第一检索结果,那么将所述第一检索结果与所述第二检索结果同时填入到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。
本公开实施例中提出了另一种文档检索方式,文档检索查询定义一些执行检索任务的智能体,完成文档检索查询任务。智能体能够收集利用文档相关的精确信息,包括标题、子标题、表格和章节段落等。
其中,定义查找页面的智能体,名称为find_pages()。该智能体接收网页页码列表,智能体输出结果为文档对应页码的数据。
定义查找表格的智能体,名称为find_table()。该智能体输入表序号或者表名称,智能体输出结果是文档对应的表数据。
智能体函数需要提前注册激活,生成能够使用的智能体函数列表。
定义智能体帮助查询文档,提供了按页面查询文档任务的页面智能体和查询表数据的表格智能体。让智能体协助查询获取与用户输入相关的上下文结果。
定义查找页面的智能体,名称为find_pages()。该智能体接收文档页码列表,智能体输出结果为文档对应页码的数据。智能体的定义主要是设定好智能体的入参和出参信息以及任务的描述。如页面查询智能体的定义如下:{
定义查找图表数据的智能体。可以看到每个智能体是任务边界是清楚明确的,便于智能体决策执行。
对用户的提问和智能体一起作为大语言模型LLM的输入信息,根据每个查询选择合适的智能体并期望该智能体任务完成的输出结果传给大语言模型LLM。例如当用户输入“给我总结概括下第三页内容”,首先,选择并调用查询页面智能体,然后页面智能体经过对文档JSON数据体分析得到第三页内容,最后对获取的第三页内容传递给大语言模型作为输入信息。
在检索上下文阶段不局限于的智能体查询方式,还提供了现有的向量检索匹配方案。
示例性的,所述将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果之后,所述方法还包括:
获取对话记录,将所述第一检索结果与所述对话记录填充到提示工程模板;
所述提示工程模板以预先设定的格式生成相应的指令,将所述指令输入所述机器语言模型,得到最终回答结果。
本公开实施例将与用户输入有关的上下文随用户输入一起传递到大模型(LLM)完成内容的生成。利用对话提示模板完成指令控制的答案回复,对话提示模板如下:
Context:{top paragraphs}\n User:{user utterance}\n System:
为了对话生成的内容在整个对话交互过程中更加自然、风格统一以及更多的背景信息,引入对话记忆功能。对话记忆是存储了用户与系统对话记录,以一问一答形式保持数据。
在对话提示模板中引入对话记忆,以捕获到更多对话背景信息。此时模板结构如下:
Context:{top paragraphs,dialogue history}\n User:{user utterance}\nSystem:
示例性的,所述获取对话记录之后,所述方法还包括:判断对话轮次是否达到预设阈值,若是,则对多轮对话记录进行总结,生成相应的摘要,以所述摘要代替所述多轮对话记录作为记忆输入提示工程模板。
同时本公开实施例还提供了基于段落的概要结果作大模型的输入快速生成回复的方案。此时对话模板调整如下:Context:{top paragraphs summary,dialoguehistory}\n User:{user utterance}\n System:。
所述机器语言模型利用对话提示模板完成指令控制的答案回复。
将对话历史记录保存在所述对话提示板,作为上下文依据;
上下文内容经过所述对话提示板进行总结得到相应段落的概要结果作为所述机器语言模型的输入生成回复。
提示词工程将以固定格式统一生成准确高效的指令,以更好地帮助大模型理解用户的需求,生成高质量的回复。
多轮对话模块用于管理用户与系统之间的对话记录,用户每进行一次提问,该模块都会读取对话记录并将其传入提示词工程,实现用户与问答系统之间的多轮对话。同时,为了防止在对话过程中随着轮次的增多,Tokens上升导致大语言模型忽视对话记忆。本公开实施例方法采用摘要式对话记忆导入,具体而言:当用户与系统的对话轮次达到一定数量,系统调用大语言模型对这些对话记录进行总结,生成简短的摘要,在之后的对话中,以对话摘要替代完整的对话记录作为记忆输入提示词工程。
具体上基于大模型生成对话摘要内容做法,首先将对话历史信息按照用户与系统角色交替拼接成长文本,在该长文本上添加指令前缀“现在要求你扮演文章段落摘要生成器,请为下面人机对话记录生成简短的概要描述:”
假设用户此前已经与大模型进行了多轮的对话,同时双方对话内容字数之和已经超过了大模型最大输入限制。那么,该模块将会生成指令“现在要求你扮演文章段落摘要生成器,请为下面人机对话记录生成简短的概要描述:用户:你好\n系统:您好,有什么我可以帮助您的吗?\n用户:安全气囊是什么?\n系统:安全气囊是一种车辆安全装置,在发生碰撞事故时,帮助保护乘客……”并将该指令传入大语言模型得到摘要结果“用户问了关于安全气囊、安全带以及汽车维修有关的问题,本系统进行了简要答复”,在之后的对话轮次中,将以此摘要代替完整的对话记录传入提示词工程。
此外,多轮对话模块支持用户自由地管理与系统之间的对话记忆,包括增删改查操作。
上述生成段落概要的操作相比现有方案直接采用原始段落信息作为大模型的输入,大模型的推理效率更好。主要体现在一是输入的上下文已被概括总结出重要信息,无需重复再做概要;二是由于多个段落的拼接,内容长度可能超过大模型长度限制,无法传递给大模型,则大模型无法整理理解对话的上下文语义信息导致生成的内容不够全面。本专利采用段落的概要作为大模型的输入上下文则能使得生成的内容更加完整全面,效果更好。
表1为不同应用场景下本公开实施例与原大语言模型基于文档对话的效果对比
如图2所示,本公开实施例的另一方面提供了一种基于文档检索增强机器语言模型的对话系统,所述系统包括:
文档获取模块100,用于获取任意领域的文档,将所述文档转换成文档JSON结构体,并将所述档JSON结构体进行向量化处理,得到向量化的文档JSON结构体,并将所述向量化的文档JSON结构体保存到本地知识库;文档JSON结构体格式除了抽取纯文本数据外,还提取文档元信息数据,避免了单纯提取纯文本丢失元信息的问题。
输入内容获取模块200,用于获取用户输入内容,将所述输入内容进行向量化处理,得到问题向量;对输入内容进行向量化处理方法与将所述档JSON结构体进行向量化处理方法一样。
第一检索模块300,用于将问题向量与向量化的文档进行检索匹配,生成第一检索结果;一定确保整个系统中用户输入向量提取与文档向量化在同一个语义向量空间中做检索匹配。
提示词生成模块400,用于将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。
判断模块500,判断所述回答结果是否与事实相符,如果是,则输出所述回答结果。
本公开实施例的对话系统解决现有大模型问答遇到的“幻觉”以及大模型无法精确生成回复的问题。
示例性的,所述判断所述回答结果是否与事实相符,还包括:如果否,则返回兜底引导话术。如果为否,则表示对话系统无法回复该用户问题,采用默认兜底引导话术返回给用户。
所述系统还包括,注册激活模块,用于注册激活多个智能体函数,其中,所述智能体函数用于查询文档表格或查询文档页码的内容;
第二检索模块,用于获取用户输入内容,根据用户输入内容调用相应的智能体函数对文档JSON结构体进行检索分析,得到第二检索结果。
本公开实施例的提示词生成模块400,用于将所述第一检索结果及所述第二检索填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。
用户输入内容涉及页码或表格查询,采用步骤S2和步骤S3向量检索匹配,因没有上下文,检索不到相应结果,缺少第一检索结果,所以仅将第二检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。
本公开实施例的另一方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的方法。
其中,计算机可读存储介质可以是任何包含或存储程序的有形介质,其可以是电、磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的相连、便携式计算机磁盘、硬盘、光纤、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或它们任意合适的组合。其中,计算机可读存储介质也可以包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
以上所述仅是本公开实施例的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本公开实施例的保护范围。

Claims (10)

1.一种基于文档检索增强机器语言模型的对话方法,其特征在于,所述方法包括:
获取任意领域的文档,将所述文档转换成文档JSON结构体,并将所述JSON结构体进行向量化处理,得到向量化的文档JSON结构体,并将所述向量化的文档JSON结构体保存到本地知识库;
获取用户输入内容,将所述输入内容进行向量化处理,得到问题向量;
将问题向量与向量化的文档进行检索匹配,生成第一检索结果;
将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果;
判断所述回答结果是否与事实相符,如果是,则输出所述回答结果。
2.根据权利要求1所述的方法,其特征在于,所述判断所述回答结果是否与事实相符,还包括:如果否,则返回兜底引导话术。
3.根据权利要求1所述的方法,其特征在于,所述获取任意领域的文档,将所述文档转换成文档JSON结构体包括:
获取任意领域的文档,将所述文档转换成相应的文档树对象结构;
读取所述文档树对象的元信息,将元信息转换为元信息JSON数据体;
抽取所述文档树对象中每页章节段落内容,并记录每页章节段落所在页码位置和对应的段落标题,将章节段落、页码及段落标题转换为段落JSON数据体;
抽取所述文档树对象中的表数据,并记录表序号和表的名称,并将文档表数据、表序号及表的名称转换为表JSON数据体;
将所述元信息JSON数据体、所述段落JSON数据体、所述表JSON数据体组合成代表文档结构轮廓和信息的文档JSON结构体。
4.根据权利要求3所述的方法,其特征在于,在抽取所述文档树对象中每页章节段落内容时,所述方法还包括,还记录了段落概要与每页章节段落所在页码位置和段落标题映射关系,将段落概要与章节段落、页码及段落标题一并转换为段落段落JSON数据体。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述获取任意领域的文档之前,所述方法还包括:
注册激活多个智能体函数,其中,所述智能体函数用于查询文档表格或查询文档页码的内容;
在获取用户输入内容之后,根据用户输入内容选择并调用相应的智能体函数,将所述用户输入内容和相应的智能体函数输入到机器语言模型,所述机器语言模型调用相应的智能体函数对文档JSON结构体进行检索分析,得到第二检索结果;
将所述第二检索结果填入提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果。
6.根据权利要求1~4任一项所述的方法,其特征在于,所述将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果之后,所述方法还包括:
获取对话记录,将所述第一检索结果与所述对话记录填充到提示工程模板;
所述提示工程模板以预先设定的格式生成相应的指令,将所述指令输入所述机器语言模型,得到最终回答结果。
7.根据权利要求6所述的方法,其特征在于,所述获取对话记录之后,所述方法还包括:判断对话轮次是否达到预设阈值,若是,则对多轮对话记录进行总结,生成相应的摘要,以所述摘要代替所述多轮对话记录作为记忆填充到预设的提示工程模板。
8.根据权利要求1所述的方法,其特征在于,所述将所述输入内容进行向量化处理,得到问题向量包括,调用机器语言模型获取所述输入内容的向量特征,其中,在提取用户输入内容的向量特征时,在所述输入内容上添加前缀指令:为该句子生成表示用户检索文章表示。
9.一种基于文档检索增强机器语言模型的对话系统,其特征在于,所述系统包括:
文档获取模块,用于获取任意领域的文档,将所述文档转换成文档JSON结构体格式,并将所述档JSON结构体进行向量化处理,得到向量化的文档JSON结构体,并将所述向量化的文档JSON结构体保存到本地知识库;
输入内容获取模块,用于获取用户输入内容,将所述输入内容进行向量化处理,得到问题向量;
第一检索模块,用于将问题向量与向量化的文档进行检索匹配,生成第一检索结果;
提示词生成模块,用于将所述第一检索结果填充到提示工程模板,得到相应提示词工程,将所述提示词工程输入机器语言模型,得到回答结果;
判断模块,判断所述回答结果是否与事实相符,如果是,则输出所述回答结果。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~8中任一项所述的方法。
CN202311710476.XA 2023-12-13 2023-12-13 一种基于文档检索增强机器语言模型的对话方法及系统 Active CN117807199B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311710476.XA CN117807199B (zh) 2023-12-13 2023-12-13 一种基于文档检索增强机器语言模型的对话方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311710476.XA CN117807199B (zh) 2023-12-13 2023-12-13 一种基于文档检索增强机器语言模型的对话方法及系统

Publications (2)

Publication Number Publication Date
CN117807199A true CN117807199A (zh) 2024-04-02
CN117807199B CN117807199B (zh) 2024-07-23

Family

ID=90428933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311710476.XA Active CN117807199B (zh) 2023-12-13 2023-12-13 一种基于文档检索增强机器语言模型的对话方法及系统

Country Status (1)

Country Link
CN (1) CN117807199B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118133970A (zh) * 2024-05-06 2024-06-04 亚信科技(中国)有限公司 一种基于关联图片的知识问答方法、装置、设备及介质
CN118132794A (zh) * 2024-05-07 2024-06-04 江西风向标智能科技有限公司 一种基于企业信息语义检索的多模态数据分块方法及系统
CN118210908A (zh) * 2024-05-21 2024-06-18 上海普华科技发展股份有限公司 一种检索增强方法、装置、电子设备及存储介质
CN118379750A (zh) * 2024-06-25 2024-07-23 山东浪潮科学研究院有限公司 文档向量化并行加速方法及系统
CN118394793A (zh) * 2024-06-28 2024-07-26 浪潮电子信息产业股份有限公司 一种检索增强方法、装置、设备及存储介质
CN118656473A (zh) * 2024-08-16 2024-09-17 济南浪潮数据技术有限公司 大模型数据生成方法、装置、设备、介质及产品

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210240776A1 (en) * 2020-02-04 2021-08-05 Accenture Global Solutions Limited Responding to user queries by context-based intelligent agents
CN114970460A (zh) * 2022-01-12 2022-08-30 成都四方伟业软件股份有限公司 一种提取word文档结构化信息的方法及装置
US20230214593A1 (en) * 2020-06-18 2023-07-06 Koninklijke Philips N.V. A computer- implemented method of structuring content for training an artificial intelligence model
CN116756295A (zh) * 2023-08-16 2023-09-15 北京盛通知行教育科技集团有限公司 知识库的检索方法、装置及存储介质
CN116805001A (zh) * 2023-06-26 2023-09-26 城云科技(中国)有限公司 适用于垂直领域的智能问答系统、方法及其应用
CN117056471A (zh) * 2023-07-11 2023-11-14 数字郑州科技有限公司 知识库构建方法及基于生成式大语言模型的问答对话方法和系统
CN117076392A (zh) * 2023-08-07 2023-11-17 中国邮政储蓄银行股份有限公司 文档内容的检索方法、检索装置和文档检索系统
CN117095419A (zh) * 2023-08-25 2023-11-21 上海数珩信息科技股份有限公司 一种pdf文档数据处理与信息抽取装置及方法
CN117194623A (zh) * 2023-08-16 2023-12-08 之江实验室 一种可信问答方法、系统、电子设备、介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210240776A1 (en) * 2020-02-04 2021-08-05 Accenture Global Solutions Limited Responding to user queries by context-based intelligent agents
US20230214593A1 (en) * 2020-06-18 2023-07-06 Koninklijke Philips N.V. A computer- implemented method of structuring content for training an artificial intelligence model
CN114970460A (zh) * 2022-01-12 2022-08-30 成都四方伟业软件股份有限公司 一种提取word文档结构化信息的方法及装置
CN116805001A (zh) * 2023-06-26 2023-09-26 城云科技(中国)有限公司 适用于垂直领域的智能问答系统、方法及其应用
CN117056471A (zh) * 2023-07-11 2023-11-14 数字郑州科技有限公司 知识库构建方法及基于生成式大语言模型的问答对话方法和系统
CN117076392A (zh) * 2023-08-07 2023-11-17 中国邮政储蓄银行股份有限公司 文档内容的检索方法、检索装置和文档检索系统
CN116756295A (zh) * 2023-08-16 2023-09-15 北京盛通知行教育科技集团有限公司 知识库的检索方法、装置及存储介质
CN117194623A (zh) * 2023-08-16 2023-12-08 之江实验室 一种可信问答方法、系统、电子设备、介质
CN117095419A (zh) * 2023-08-25 2023-11-21 上海数珩信息科技股份有限公司 一种pdf文档数据处理与信息抽取装置及方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118133970A (zh) * 2024-05-06 2024-06-04 亚信科技(中国)有限公司 一种基于关联图片的知识问答方法、装置、设备及介质
CN118132794A (zh) * 2024-05-07 2024-06-04 江西风向标智能科技有限公司 一种基于企业信息语义检索的多模态数据分块方法及系统
CN118210908A (zh) * 2024-05-21 2024-06-18 上海普华科技发展股份有限公司 一种检索增强方法、装置、电子设备及存储介质
CN118210908B (zh) * 2024-05-21 2024-08-13 上海普华科技发展股份有限公司 一种检索增强方法、装置、电子设备及存储介质
CN118379750A (zh) * 2024-06-25 2024-07-23 山东浪潮科学研究院有限公司 文档向量化并行加速方法及系统
CN118394793A (zh) * 2024-06-28 2024-07-26 浪潮电子信息产业股份有限公司 一种检索增强方法、装置、设备及存储介质
CN118656473A (zh) * 2024-08-16 2024-09-17 济南浪潮数据技术有限公司 大模型数据生成方法、装置、设备、介质及产品

Also Published As

Publication number Publication date
CN117807199B (zh) 2024-07-23

Similar Documents

Publication Publication Date Title
CN117807199B (zh) 一种基于文档检索增强机器语言模型的对话方法及系统
CN110321419B (zh) 一种融合深度表示与交互模型的问答匹配方法
CN107329949B (zh) 一种语义匹配方法和系统
CN110427461B (zh) 智能问答信息处理方法、电子设备及计算机可读存储介质
CN111046656B (zh) 文本处理方法、装置、电子设备及可读存储介质
CN107436864A (zh) 一种基于Word2Vec的中文问答语义相似度计算方法
CN116805001A (zh) 适用于垂直领域的智能问答系统、方法及其应用
CN116701431A (zh) 一种基于大语言模型的数据检索方法及系统
CN113505209A (zh) 一种面向汽车领域的智能问答系统
CN115048944B (zh) 一种基于主题增强的开放域对话回复方法及系统
CN113282711B (zh) 一种车联网文本匹配方法、装置、电子设备及存储介质
CN112328800A (zh) 自动生成编程规范问题答案的系统及方法
CN111259130A (zh) 用于在对话中提供答复语句的方法及装置
CN117668180A (zh) 文档问答方法、文档问答设备以及可读存储介质
CN115203388A (zh) 机器阅读理解方法、装置、计算机设备和存储介质
CN116881470A (zh) 一种生成问答对的方法及装置
CN114757184A (zh) 实现航空领域知识问答的方法和系统
CN118132669A (zh) 一种基于大语言模型的智能索引方法
CN110750632B (zh) 一种改进的中文alice智能问答方法及系统
CN117056494A (zh) 开放域问答的方法、装置、电子设备和计算机存储介质
CN114372454A (zh) 文本信息抽取方法、模型训练方法、装置及存储介质
CN117349429A (zh) 基于引导信号和句法结构的生成式文本摘要方法及系统
CN118715523A (zh) 使用语言模型神经网络生成具有内联证据的输出序列
CN107818078B (zh) 汉语自然语言对话的语义关联与匹配方法
CN115238711A (zh) 数据处理方法、装置、设备、程序产品及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant