CN117112064A - 大模型插件调用方法、装置、设备及介质 - Google Patents

大模型插件调用方法、装置、设备及介质 Download PDF

Info

Publication number
CN117112064A
CN117112064A CN202311109373.8A CN202311109373A CN117112064A CN 117112064 A CN117112064 A CN 117112064A CN 202311109373 A CN202311109373 A CN 202311109373A CN 117112064 A CN117112064 A CN 117112064A
Authority
CN
China
Prior art keywords
session
plug
task
understanding
content
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
CN202311109373.8A
Other languages
English (en)
Other versions
CN117112064B (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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202311109373.8A priority Critical patent/CN117112064B/zh
Priority claimed from CN202311109373.8A external-priority patent/CN117112064B/zh
Publication of CN117112064A publication Critical patent/CN117112064A/zh
Application granted granted Critical
Publication of CN117112064B publication Critical patent/CN117112064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Machine Translation (AREA)

Abstract

本公开提供了一种大模型插件调用方法、装置、设备及介质,涉及大模型领域,具体涉及人工智能、大语言模型和人机交互领域。具体实现方案为:获取自然语言内容;对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件;将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,以及所述待执行的会话理解任务对应的第三插件;获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数;根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。本公开实施例可以提高语言理解任务的执行效率。

Description

大模型插件调用方法、装置、设备及介质
技术领域
本公开涉及大模型领域,具体涉及人工智能、大语言模型和人机交互领域,尤其涉及一种大模型插件调用方法、装置、设备及介质。
背景技术
近年来,大语言模型的理解和生成能力大幅提升,其应用领域也得到了广泛的扩展。
大型语言模型(LLM,Large Language Model,其本质是生成式模型),是指使用大量文本数据训练的深度学习模型,可以理解语言文本的含义,并生成符合用户意图的内容,例如,执行任务、进行人机对话、问题解答和图像生成等。
发明内容
本公开提供了一种大模型插件调用方法、装置、设备及介质。
根据本公开的一方面,提供了一种大模型插件调用方法,包括:
获取自然语言内容;
对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件;
将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,以及所述待执行的会话理解任务对应的第三插件;
获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数;
根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。
根据本公开的一方面,提供了一种大模型插件调用装置,包括:
自然语言内容获取模块,用于获取自然语言内容;
插件匹配模块,用于对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件;
会话理解任务确定模块,用于将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,以及所述待执行的会话理解任务对应的第三插件;
输入参数检测模块,用于获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数;
插件调用模块,用于根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任一实施例所述的大模型插件调用方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开任一实施例所述的大模型插件调用方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本公开任一实施例所述的大模型插件调用方法。
本公开实施例可以提高语言理解任务的执行效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例公开的一种大模型插件调用方法的流程图;
图2是根据本公开实施例公开的另一种大模型插件调用方法的流程图;
图3是根据本公开实施例公开的另一种大模型插件调用方法的流程图;
图4是根据本公开实施例公开的一种大模型插件调用方法的场景图;
图5是根据本公开实施例公开的一种大模型插件调用方法的场景图;
图6是根据本公开实施例公开的大模型插件调用装置的结构示意图;
图7是根据本公开实施例公开的大模型插件调用方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本公开实施例公开的一种大模型插件调用方法的流程图,本实施例可以适用于为大语言模型扩展插件的情况。本实施例方法可以由大模型插件调用装置来执行,该装置可采用软件和/或硬件的方式实现,并具体配置于具有一定数据运算能力的电子设备中,该电子设备可以是客户端设备或服务器设备,客户端设备例如手机、平板电脑、车载终端和台式电脑等。
执行本公开实施例提供的大模型插件调用方法的装置或者系统,位于大语言模型和插件之间,用于建立插件与大语言模型之间的桥梁,能够将任意的插件对接到任意功能的大语言模型上。执行本公开实施例提供的大模型插件调用方法的装置或者系统可以通过应用程序接口(Application Programming Interface,API)与插件进行交互,以及通过API与客户端进行交互,获取客户端发送的用户所提供的自然语言内容。
S101、获取自然语言内容。
自然语言内容可以是指用户在人机交互过程中输入的自然语言内容。自然语言内容可以理解为为了调用大语言模型实现需求的功能,用户所提供的包含用户意图的内容。其中,用户可以以文本、图像、语音或视频等至少一个类型的方式输入数据,对直接输入的数据进行识别,得到自然语言内容。客户端可以接收用户输入数据,并发送至本公开实施例的电子设备,该电子设备根据输入数据获取自然语言内容。
S102、对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件。
语义理解用于识别出自然语言内容中用户意图。自然语言内容命中的第一插件可以是指实现用户意图的功能的插件。其中,第一插件的数量可以为非负整数。插件命中结果可以是指自然语言内容是否命中插件的检测结果,以及命中的第一插件的相关信息。插件命中结果包括命中结果或未命中结果。在插件命中结果为命中时,将命中的插件,确定为第一插件,若存在当前的会话理解任务时,将该当前的会话理解任务对应的插件确定为第二插件。插件命中结果还可以包括命中结果对应的第一插件,第一插件的数量,第一插件是否与第二插件一致等。在插件命中结果为未命中时,第一插件为空。插件命中结果用于确定待执行的会话理解任务是哪个任务,例如是否是当前的会话理解任务,是否新的会话理解任务。可以对自然语言内容进行语义理解,得到用户意图,将用户意图与各可用的插件的功能进行匹配,将用户意图对应的插件确定第一插件。语义理解可以采用深度学习模型实现,用户意图和插件进行匹配可以采用深度学习模型实现。
S103、将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,以及所述待执行的会话理解任务对应的第三插件。
会话理解任务可以是指将自然语言内容提供给大语言模型,获取大语言模型反馈的自然语言内容所命中的第一插件的输入参数,并调用该第一插件,得到调用结果反馈给用户的任务。当前的会话理解任务为处于当前执行状态的会话理解任务。待执行的会话理解任务可以是指作为当前优先级最高,需要立即执行的会话理解任务。待执行的会话理解任务可以与当前的会话理解任务相同,也可以不同。待执行的会话理解任务用于调用自然语言内容命中的第一插件。实际上,自然语言内容可以是多轮会话过程中用户输入的自然语言内容,例如,在第i轮的会话过程中,第i轮会话中初始的会话理解任务为当前的会话理解任务,也即是第i-1轮对话确定的待执行的会话理解任务。基于第i轮用户输入的自然语言内容,确定待执行的会话理解任务,即第i轮对话确定的待执行的会话理解任务,也作为第i+1轮对话的初始的会话理解任务。其中,第i轮待执行的会话理解任务可以与第i轮当前的会话理解任务相同或者不同,若相同,则当前的会话理解任务继续保持当前执行的状态;若不同,则当前的会话理解任务替换为第i轮待执行的会话理解任务,即将待执行的会话理解任务设置为当前执行状态。实际上,会话理解任务放置于任务栈中,在任务执行时,取栈顶的任务执行,也即栈顶的任务为处于当前执行状态的会话理解任务。在对应存储上下文之后,将当前的会话理解任务置于次栈顶,并将待执行的会话理解任务置于栈顶,即实现调整任务的当前执行状态。
将第一插件与当前的会话理解任务对应的第二插件进行比较,判断会话状态是否中断,根据是否中断确定待执行的会话理解任务。具体的,将第一插件与第二插件进行比较,检测前后会话的意图是否相同,从而检测会话状态是否中断。例如,会话中断,将中断后新选择的会话理解任务作为待执行的会话理解任务,即前后会话的任务改变;会话保持,将当前的会话理解任务确定为待执行的会话理解任务,即前后会话的任务保持不变。根据待执行的会话理解任务的内容,确定对应的插件。例如,中断后新选择的会话理解任务作为待执行的会话理解任务,第三插件为第一插件;又如,例如,当前的会话理解任务确定为待执行的会话理解任务,第三插件为第二插件、第一插件或者第一插件和第二插件的并集等,此外还有其他情况具体不限定。
S104、获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数。
语言理解内容是大语言模型的输入。语言理解内容包括会话理解任务对应的第三插件的相关信息和会话理解任务的自然语言内容,还可以包括其他内容,例如,上下文,具体不限定。可以查询第三插件的相关信息,并将第三插件的相关信息和自然语言内容进行组合,得到语言理解内容。
输入参数的参数值是第三插件的输入信息。第三插件对输入参数的参数值进行处理,得到调用结果。
将第三插件的相关信息和自然语言内容提供给大语言模型,由大语言模型负责语义理解,并生成调用第三插件的必要信息,其中,必要信息可以包括第三插件的输入参数以及该输入参数的参数值。第三插件的相关信息可以包括第三插件的功能和输入输出等信息。将语言理解内容发送至大语言模型,得到第三插件的输入参数以及输入参数对应的参数值。
需要说明的是,本公开实施例中第三插件的输入参数,具体可以包括下述至少一项:输入参数本身、输入参数的参数值和参数类型等。
S105、根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。
会话理解任务的执行过程:针对该会话理解任务,基于输入参数的参数值生成符合插件调用协议的数据,并发送至第三插件,实现调用第三插件,第三插件基于输入参数以及参数值,得到调用结果,并反馈。其中,第三插件的数量可以为至少一个。可以逐一针对第三插件进行输入参数检测和调用。本公开实施例的电子设备接收到第三插件反馈的调用结果。可以将调用结果反馈给客户端,由客户端提供给用户。
示例性的,待执行的会话理解任务为:查询今天本地的天气。第三插件为天气查询插件,输入参数为包括时间参数和地点参数,时间参数的参数值为今天,地点参数的参数值为本地。第三插件的调用结果为,今天本地的天气是晴天。
示例性的,待执行的会话理解任务为:预定A酒店的2人间。第三插件为酒店预订插件,输入参数为包括酒店名称参数和入住人数参数,酒店名称参数的参数值为A,入住人数参数的参数值为2。第三插件的调用结果为,A酒店的2人间的房间预订完成的信息。
本公开实施例的大语言模型,不需要针对不同用户意图,或者不同应用场景进行特定性训练,只需要具备语言理解和插件输入信息的生成能力,即可实现用户意图的插件的调用功能,从而增加大语言模型的通用性。
现有的大语言模型存在一些缺陷,例如,受预训练数据集时效性的制约,大语言模型对于发生在预训练时间之后的客观事实性问题,往往无法正确回答;大语言模型无法直接完成订票和订餐等依赖于外部资源的功能。而目前可以对大语言模型进行有监督学习,实现对大语言模型进行插件扩展。大语言模型每次通过训练调优增加插件的成本较高,通常需要对所有插件的指令数据集进行训练,导致大语言模型很难灵活和及时地扩展插件;同时由于对插件触发的调优,影响的是大语言模型本身。因此,对于插件的范围和触发也很难做到针对不同用户的定制。并且通过训练调优的方式使得某个特定的大语言模型具有相应功能,因此,对于其他大语言模型,即使相同的插件也需要重新进行针对性的调优训练。针对性训练和调优,无法适用于其他大语言模型,不具备通用性。
另外,可以通过改写输入,加入提示使得大语言模型实现触发插件,实现功能扩展。但由于单纯通过提示模板描述插件的功能和所需参数,对于理解和生成能力不同的大语言模型,执行效果的差异会很大,导致大语言模型的预测效果不稳定。这会造成在一些理解生成能力强的大语言模型上可以正常触发和调用的插件,在另一些理解生成能力较弱的大语言模型上无法正常触发。同时往往对任务计划没有特定的优化,包括任务计划本身是否存在重复执行,是否可合并,以避免不必要的执行等,导致执行效率低。
根据本公开的技术方案,通过对自然语言内容进行语义理解,检测用户意图是否命中插件,并根据插件命中结果,确定待执行的会话理解任务,通过获取会话理解任务的语言理解内容,发送至大语言模型,由大语言模型理解自然语言内容,并提取出第三插件运行所需的输入参数的参数值,得到大语言模型反馈的输入参数的参数值,调用第三插件,得到会话理解任务的调用结果,实现在大语言模型的基础上获取外部资源,利用大语言模型的理解能力和外部资源,可以突破大语言模型的时效性缺陷和本身的资源局限,增加大语言模型系统的语言理解和生成的应用场景,提高语言理解生成任务的预测准确性,并且可以实时扩展多样性的插件,增加扩展功能的多样性和灵活性,并且可以增加插件的普适性,同时无需针对某个场景训练大语言模型,提高大语言模型的通用性;同时通过将插件命中结果指向的插件与当前的会话理解任务对应的插件进行比较,确定待执行的会话理解任务,可以对会话理解任务进行规划判断,避免不必要执行,提高执行效率。
图2是根据本公开实施例公开的另一种大模型插件调用方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。所述将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,具体化为:在所述插件命中结果为命中的情况下,将所述插件命中结果指向的第一插件与所述第二插件进行比较,检测会话是否中断,得到会话中断检测结果;获取所述会话中断检测结果对应的会话理解任务,并确定为待执行的会话理解任务;在所述插件命中结果为未命中的情况下,将所述自然语言内容发送至所述大语言模型,得到所述大语言模型的反馈内容。
S201、获取自然语言内容。
S202、对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件。
S203、在所述插件命中结果为命中的情况下,将所述插件命中结果指向的第一插件与所述第二插件进行比较,检测会话是否中断,得到会话中断检测结果。
插件命中结果指向的第一插件为自然语言内容命中的插件,第一插件的数量可以是至少一个。可以将至少一个第一插件,与当前的会话理解任务对应的至少一个第二插件进行比较,根据异同的比较结果,判断会话是否中断。会话中断检测结果表示自然语言内容对应的对话和相邻的前一轮对话的意图是否相同,意图不同即会话中断,意图相同即会话保持。需要说明的是,自然语言内容和相邻的前一轮对话的对话用户相同。若对话用户不同,可以确定会话中断;若对话用户相同,将所述第一插件与第二插件进行比较,检测会话是否中断。会话中断检测结果可以包括会话中断和会话保持。
S204、获取所述会话中断检测结果对应的会话理解任务,并确定为待执行的会话理解任务,以及获取所述待执行的会话理解任务对应的第三插件。
不同会话中断检测结果,对应不同的会话理解任务,对应不同的第三插件。示例性的,在待执行的会话理解任务为新的会话理解任务时,将第一插件确定为第三插件,在待执行的会话理解任务为已有的会话理解任务时,可以将已有的会话理解任务对应的插件,确定为第三插件,或者将已有的会话理解任务对应的插件与第一插件的并集,确定为第三插件。
S205、在所述插件命中结果为未命中的情况下,将所述自然语言内容发送至所述大语言模型,得到所述大语言模型的反馈内容。
插件命中结果为未命中,表明该自然语言内容的意图不能通过当前已注册的备选插件提供的功能实现。可以直接将自然语言内容发送至大语言模型进行语义理解并接收反馈内容。示例性的,用户上一轮的自然语言内容为天气查询,当前轮的自然语言内容为:以用户需求为主题写一篇论文。大语言模型的反馈内容为用户需求的论文内容。
同时,由于未命中插件,不生成新的会话理解任务,可以理解为会话保持,并将当前的会话理解任务确定为待执行的会话理解,即当前的会话理解任务仍保持在当前执行状态。
S206、获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数。
S207、根据所述第三插件的输入参数的参数值,调用所述第三插件,得到调用结果。
可选的,所述将所述第一插件与当前的会话理解任务对应的第二插件进行比较,检测会话是否中断,得到会话中断检测结果,包括:在所述第一插件与所述第二插件相同的情况下,确定所述会话中断检测结果为会话保持;在所述第一插件与所述第二插件不同的情况下,确定所述会话中断检测结果为会话中断;所述获取所述会话中断检测结果对应的会话理解任务,包括:在所述会话中断检测结果为会话保持的情况下,将所述当前的会话理解任务,确定为所述会话中断检测结果对应的会话理解任务;在所述会话中断检测结果为会话中断的情况下,检测历史会话是否恢复,得到会话恢复检测结果;获取所述会话恢复检测结果对应的会话理解任务,作为所述会话中断检测结果对应的会话理解任务。
第一插件与第二插件相同,表明自然语言的意图与当前的会话理解任务的意图相同,也即,当前轮次的会话与前一轮次会话的意图相同,即前后会话意图相同,确定会话保持。将当前的会话理解任务确定为待执行的会话理解任务,将当前的会话理解任务对应的第二插件,确定为待执行的会话理解任务对应的第三插件,此时第一插件和第二插件相同,将第二插件确定为第三插件,相当于将第一插件确定为第三插件,相应的,待执行的会话理解任务用于调用第一插件。第一插件与第二插件不同,表明自然语言的意图与当前的会话理解任务的意图不同,也即,当前轮次的会话与前一轮次会话的意图不同,即前后会话意图不同,确定会话中断。其中,在存在多个第一插件和多个第二插件时,只要存在任一个第一插件与某个第二插件相同,则确定第一插件与第二插件相同。
示例性的,第二插件为预定酒店。例如,自然语言内容为我想订今天的机票,相应的,第一插件为预定机票,第一插件与第二插件不同,确定会话中断。又如,自然语言内容为我想订XX酒店的房间,相应的,第一插件为预定酒店,第一插件与第二插件相同,确定会话保持。
可以理解的是,同一用户的会话理解任务可以有多个,不同用户的会话理解任务可以并行执行。通常同一用户的会话理解任务在同一时间执行的数量为一个。也即针对同一用户来说,当前的会话理解任务为处于当前执行状态的会话理解任务,其他的会话理解任务处于等待执行状态,等待该当前的会话理解任务执行之后执行。
会话中断可以是产生一个新会话,或者是恢复到以前的会话。会话恢复检测结果可以包括会话恢复或者会话未恢复。不同会话恢复检测结果,对应不同的会话理解任务。在确定会话中断时,可以检测第一插件与历史会话理解任务对应的第四插件是否相同,以判断会话是否恢复。
通过在会话中断时,进一步检测会话是否恢复,将会话恢复检测结果对应的会话理解任务确定为待执行的会话理解任务,可以对会话理解任务进行重复性检测,减少冗余任务,同时针对恢复和未恢复均有相应的处理方式,提高插件调用系统的稳定性。
可选的,所述检测历史会话是否恢复,得到会话恢复检测结果,包括:在所述第一插件与历史会话理解任务对应的第四插件相同的情况下,确定所述会话恢复检测结果为会话恢复;在所述第一插件与所述第四插件不同的情况下,确定所述会话恢复检测结果为会话未恢复;所述获取所述会话恢复检测结果对应的会话理解任务,包括:在所述会话恢复检测结果为会话恢复的情况下,获取所述历史会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务;在所述会话恢复检测结果为会话未恢复的情况下,建立新的会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务。
历史会话理解任务可以是命中第四插件但不处于当前执行状态,通过历史会话产生的会话理解任务。通常历史会话与当前会话的意图不同,对应的插件不同。历史会话理解任务通常是置于任务栈中非栈顶的位置。第一插件与历史会话理解任务对应的第四插件相同,表明自然语言的意图与历史会话理解任务的意图相同,也即,当前轮次的会话与历史某一轮次会话的意图相同,确定会话恢复到历史会话继续交互。恢复到以前的会话,表明立即执行的会话理解任务可以是除当前的会话理解任务之外的其他的会话理解任务,可以将某个等待执行状态的会话理解任务变更为正在执行状态,具体是将存在与任一第一插件相同的第四插件的历史会话理解任务,作为待执行的会话理解任务。若存在多个有相同插件的历史会话理解任务,可以随机选择一个,或者选择相同的第一插件的数量最多的历史会话理解任务。将历史会话理解任务确定为待执行的会话理解任务,将历史会话理解任务对应的第四插件,确定为待执行的会话理解任务对应的第三插件,此时第一插件和第四插件相同,将第四插件确定为第三插件,相当于将第一插件确定为第三插件,相应的,待执行的会话理解任务用于调用第一插件。
第一插件与第四插件不同,表明自然语言的意图与历史会话理解任务的意图不同,也即,当前轮次的会话与历史任一轮次会话的意图均不同,即不存在重复的会话,确定会话未恢复。此时直接创建新的会话理解任务,作为待执行的会话理解任务。其中,历史会话理解任务可以为空,此时,直接创建新的会话理解任务,作为待执行的会话理解任务。将新的会话理解任务确定为待执行的会话理解任务,将自然语言命中的第一插件,确定为待执行的会话理解任务对应的第三插件,此时第一插件与第二插件不同,且第一插件与第四插件不同。
如前例,第二插件为预定酒店。例如,自然语言内容为我想订今天的机票,相应的,第一插件为预定机票,第一插件与第二插件不同,确定会话中断。例如,第四插件为预定机票,第一插件与第四插件相同,确定会话恢复。将预定机票对应的历史会话理解任务确定为待执行的会话理解任务,且对应的第三插件为第四插件,即预定机票。又如,第四插件为预定外卖,第一插件与第四插件不同,确定会话未恢复。生成新的会话理解任务确定为待执行的会话理解任务,且对应的第三插件为预定机票。
通过若存在某个第四插件与第一插件相同,确定会话恢复,并选择历史会话理解任务确定为待执行的会话理解任务,以及若存在任何的第四插件均与第一插件不同,确定会话未恢复,并创建新的会话理解任务,从而实现可以恢复到历史会话所对应的会话理解任务执行,或者是创建新的会话理解任务,同时针对恢复和未恢复均有相应的处理方式,提高插件调用系统的稳定性,实现重复任务的合并,降低任务冗余,提高执行效率。
可选的,所述建立新的会话理解任务,包括:获取所述插件命中结果指向的至少一个第一插件;生成所述第一插件对应的插件任务;将各所述第一插件对应的插件任务,确定为新的会话理解任务。
第一插件的数量为至少一个,可以根据每个第一插件,对应生成相应的插件任务。插件任务与第一插件一一对应。实际上,自然语言内容对应的用户意图可以涉及到多个功能的实现。例如,自然语言内容为:我想去旅行。该意图可以涉及到天气查询、机票预定、景点订票和酒店预定等。每个具体的功能的实现都需要一个插件完成。而插件彼此之间可以是独立执行或依赖执行。针对每个插件生成对应的插件任务,同时还可以根据插件执行时的依赖关系和优先级等确定插件任务之间的关系和执行顺序。
将自然语言内容涉及的意图,确定为一个会话理解任务,并按照第一插件的功能,生成对应的插件任务,并作为该会话理解任务对应的插件任务。实际上,基于同一意图,创建同一会话理解任务,基于同一意图命中的多个不同的第一插件,分别建立对应的插件任务,并建立该会话理解任务与该多个插件任务之间的对应关系。
通过按照第一插件,将会话理解任务进行分析、拆解和规划,提高插件执行的灵活性和效率,可以对插件任务进行管理,便于对插件任务的执行进行追踪,及时定位异常和进行针对性任务的系统干预,提高插件调用系统的运行稳定性。
此外,在待执行的会话理解任务为当前的会话理解任务时,第三插件为第二插件,此时第一插件和第二插件相同,相当于第三插件包括第一插件。在待执行的会话理解任务为历史会话理解任务,第三插件为第四插件时,此时第一插件和第四插件相同,相当于第三插件包括第一插件。在待执行的会话理解任务为新的会话理解任务时,第三插件为第一插件,从而,不论哪种命中情况,待执行的会话理解任务实质上用于调用自然语言内容命中的第一插件。
可选的,所述大模型插件调用方法,还包括:对各所述插件任务进行排序;其中,所述新的会话理解任务中各所述插件任务按照排序结果执行;所述获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数,包括:获取所述待执行的会话理解任务中当前执行的插件任务的语言理解内容;将当前执行的插件任务的语言理解内容发送至大语言模型中,得到所述当前执行的插件任务对应的第三插件的输入参数;所述根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果,包括:根据所述当前执行的插件任务对应的第三插件的输入参数调用所述第三插件,得到所述当前执行的插件任务的调用结果。
同一用户的同一会话理解任务中的插件任务通常是逐一执行。可以根据第一插件在调用的依赖关系、第一插件的优先级以及第一插件对应的具体意图的重要程度,确定各插件任务的排序结果。将新的会话理解任务确定为待执行的会话理解任务,将新的会话理解任务包括的插件任务,确定为待执行的会话理解任务包括的插件任务,将新的会话理解任务对应的第一插件,确定为待执行的会话理解任务对应的第三插件。在执行待执行的会话理解任务时,按照排序结果依次或并行执行待执行的会话理解任务对应的插件任务。其中,并行执行的插件任务之间相互独立。
插件任务的语言理解内容可以通过该插件任务对应的第三插件的输入参数的描述信息和自然语言内容进行组合得到。此外,还可以在输入参数的描述信息和自然语言内容的基础上,与该会话理解任务的上下文或该插件任务的上下文进行组合,得到插件任务的语言理解内容。
大语言模型反馈的当前执行的插件任务对应的第三插件的输入参数,具体包括输入参数的标识、参数值和参数类型等。获取当前执行的插件任务对应的输入参数,调用该当前执行的插件任务对应的第三插件,得到调用结果;将调用结果进行反馈之后,选择下一插件任务,作为当前执行的插件任务,重复上述步骤,直至同一会话理解任务中的插件任务全部执行完成,得到该会话理解任务的调用结果,此时选择执行下一会话理解任务。可以在插件任务完成时,对该插件任务的调用结果进行反馈,或者,不对该插件任务的调用结果进行反馈,在对会话理解任务包括的全部插件任务执行完成之后,对全部的插件任务的调用结果进行反馈。
此外,若在同一会话理解任务中的插件任务中执行过程中,确定会话中断,切换到其他会话理解任务执行,在该其他会话理解任务执行完成之后,返回执行该同一会话理解任务中的插件任务。若在插件任务的执行过程中,此时当前的会话理解任务对应第二插件,相应的当前的会话理解任务包括的各插件任务对应第二插件,自然语言内容命中的第三插件与该当前执行的插件任务对应的第二插件不同,且自然语言内容命中的第三插件与同一会话理解任务的其他插件任务对应的第二插件相同,可以不切换到同一会话理解任务的其他插件任务执行,仍保持执行该插件任务。或者通过干预命令进行干预,或者还可以在切换次数大于等于预设次数阈值时,确定切换到同一会话理解任务的其他插件任务执行。此外还有其他处理方式,对此不具体限定。
通过按照顺序执行同一会话理解任务中的多个插件任务,针对当前执行的插件任务,进行输入参数检测和调用对应的插件,得到调用结果,可以针对插件调用任务拆分得到的插件任务进行执行规划,提高插件调用准确性,以及提高插件调用效率。
可选的,所述大模型插件调用方法,还包括:在所述会话中断检测结果为会话中断的情况下,将所述当前的会话理解任务的自然语言内容,添加到所述当前的会话理解任务的上下文中;将所述当前的会话理解任务对应的第二插件、上下文与所述当前的会话理解任务进行对应存储。
其中,会话理解任务作为第一层级,插件任务作为第二层级,第二插件的标识作为第三层级,插件任务与第二插件对应,上下文作为第四层级与会话理解任务对应,将会话理解任务、插件任务、第二插件和上下文进行对应存储,可以实现多层记忆结构的存储数据。
通过集成针对插件多轮对话的多层次的记忆结构,可以为大语言模型提供充分的上下文输入,大幅提升模型理解准确性。
根据本公开的技术方案,通过检测会话是否中断,将会话中断检测结果对应的会话理解任务确定为待执行的会话理解任务,并且在未命中任何预先注册的备选插件时,直接调用大语言模型对未命中插件的自然语言内容进行处理,得到反馈内容,针对不同插件命中场景,适应性采用不同的处理方式,可以灵活应对不同插件命中场景,同时针对命中和未命中均有相应的处理方式,提高插件调用系统的稳定性。
图3是根据本公开实施例公开的另一种大模型插件调用方法的流程图,基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。所述获取所述待执行的会话理解任务的语言理解内容,具体化为:在所述待执行的会话理解任务为新的会话理解任务的情况下,根据所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容;在所述待执行的会话理解任务与新的会话理解任务不同的情况下,获取所述待执行的会话理解任务的上下文;根据所述待执行的会话理解任务的上下文和所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容。
S301、获取自然语言内容。
S302、对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件。
S303、将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,以及所述待执行的会话理解任务对应的第三插件。
S304、在所述待执行的会话理解任务为新的会话理解任务的情况下,根据所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容。
新的会话理解任务,表明对应的自然语言内容不存在历史的会话内容,即不存在上下文。将自然语言内容和新的会话理解任务对应的插件的信息组合,生成待执行的会话理解任务的语言理解内容。
将预先记录的全部上下文提供和自然语言内容全部提供给大语言模型,大语言模型可以更准确理解用户意图,生成符合用户需求的内容。例如,在用户预订机票成功之后,用户再次输入预订机票,大语言模型可以通过回复:请问是重新订票还是修改历史订票?以明确用户是调用第三插件修改订单还是生成新订单,以提供更为准确的输入参数。
S305、在所述待执行的会话理解任务与新的会话理解任务不同的情况下,获取所述待执行的会话理解任务的上下文。
待执行的会话理解任务与新的会话理解任务不同,表明待执行的会话理解任务为当前的会话理解任务或者历史的会话理解任务,通常待执行的会话理解任务对应的自然语言内容存在历史的会话内容,即存在上下文。
S306、根据所述待执行的会话理解任务的上下文和所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容。
获取上下文,将自然语言内容、上下文和命中的第三插件的信息组合,生成待执行的会话理解任务的语言理解内容。
S307、将所述待执行的会话理解任务的语言理解内容,发送至大语言模型中,得到所述第三插件的输入参数。
S308、根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。
可选的,所述大模型插件调用方法,还包括:在所述自然语言内容为干预命令时,根据所述干预命令,对所述当前的会话理解任务进行调整。
干预命令是一种特殊的命令,本公开实施例的大模型插件调用装置不会对干预命令进行语义理解,以及插件命中检测,也不会生成相应的会话理解任务,不会输入至大语言模型进行语义理解和生成。干预命令用于直接执行,对会话理解任务进行调整。干预命令具体用于对处于当前执行状态的当前的会话理解任务进行调整。干预命令可以在系统故障时,重置或者删除记忆和状态(如执行状态)以实现删除和调整会话理解任务的目的。可以预设干预命令,并检测接收到的自然语言内容是否与干预命令相同,如果相同,则确定自然语言内容为干预命令,否则确定自然语言内容不是干预命令,检测该自然语言内容是否命中插件。
实际上,自然语言内容语义理解可能存在错误,例如命中的第一插件错误,生成的会话理解任务错误,从而导致大语言任务提取到错误的输入参数,进而调用第三插件,得到错误的调用结果。此时,用户可以选择重新进行会话,但也可以通过干预命令,对当前的会话理解任务进行调整,例如,增加修改或删除会话理解任务中的插件任务。在全部插件任务删除时,该当前的会话理解任务删除。具体可以修改命中的第二插件,以相应修改对应的插件任务,从而修改当前的会话理解任务,实现对语义理解的任务拆分和规划的干预,实现对错误预判的任务执行路径和输出的及时干预,减少资源消耗。
此外,干预命令还可以中断执行当前的会话理解任务,或者直接删除执行当前的会话理解任务,以应对当前的会话理解任务引起的系统的异常和崩溃。
现有技术中,由于整体依赖大语言模型对用户输入进行理解和任务拆分形成任务计划,因此,缺少事件触发或人为干预的机制。对于很多需要确定性触发插件的场景,往往无法准确预判其实际执行路径和最终输出。
通过干预命令,可以对插件调用过程进行干预,提高插件调用过程的可控性。
根据本公开的技术方案,通过在待执行的会话理解任务不是新的会话理解任务时,根据上下文生成语言理解内容,为大语言模型提供充分的上下文输入,大幅提升模型理解准确性。
在一个具体的场景中,针对待执行的会话理解任务中每个插件任务,获取语言理解内容,以及发送至大语言模型如何得到参数值,基于得到的参数值调用第三插件,得到调用结果并反馈,其过程可以包括:
在执行待执行的会话理解任务时,针对待执行的会话理解任务中当前执行的插件任务,根据所述第三插件和所述自然语言内容,确定语言理解内容,包括:获取所述第三插件对应的提示模板;所述第三插件对应的提示模板包括所述第三插件对应的输入参数;将所述自然语言内容与所述第三插件对应的提示模板进行组合,得到语言理解内容。
第三插件可以是指实现用户意图的功能的插件,该用户意图通过自然语言内容识别得到。提示模板(prompt)是向模型输入的一段文本提示,其中包含用户要查询的信息或问题的关键词和上下文,以便模型更好地理解用户的意图并给出更准确的回复。其中,第三插件对应的提示模板可以是指提示自然语言内容中第三插件的输入参数的内容和类型等的文本。第三插件对应的提示模板用于结合自然语言内容,通过大语言模型识别出第三插件的输入参数。第三插件对应的提示模板包括第三插件的输入参数,具体可以是包括输入参数的描述信息,例如,输入参数的描述信息可以包括下述至少一项:输入参数的名称、输入参数的功能描述信息和输入参数的类型。
可以对插件进行注册,在插件注册时,获取注册请求中有关插件的相关信息,根据插件的相关信息,生成插件对应的提示模板。在存储的插件对应的提示模板中,查询到第三插件对应的提示模板。
其中,大模型插件调用方法所述的方法,还包括:获取备选插件的描述信息;从所述备选插件的描述信息中提取所述备选插件的输入参数;将所述备选插件的输入参数与插件通用模板进行组合,得到所述备选插件对应的提示模板。
备选插件的描述信息可以包括下述至少一项:备选插件的标识(identification,id)、类型、功能和输入参数的信息等。其中,输入参数的信息可以包括下述至少一下项:参数名称、参数描述和参数类型等。
插件通用模板用于结合输入参数,形成提示生成该输入参数的提示模板。插件通用模板可以是包括预设槽位的模板,不同槽位放置不同输入参数。不同备选插件可以结合插件通用模板,生成不同备选插件对应的提示模板。一个备选插件可以配置有至少一个输入参数,将配置的全部输入参数与插件通用模板进行组合,生成该备选插件对应的提示模板。具体的,备选插件的描述信息中提取备选插件的输入参数的信息,例如,输入参数的参数名称、参数描述和参数类型。将输入参数的信息添加到插件通用模板中对应位置处,例如,参数名称置于插件通用模板中参数名称字段之后的位置,作为参数名称字段的参数值。将输入参数的参数名称、参数描述和参数类型分别置于插件通用模板中对应位置处,得到该备选插件对应的提示模板。并将该备选插件对应的提示模板和该备选插件的标识、类型和功能进行映射存储。
其中,所述得到所述第三插件的输入参数的参数值,包括:在确定所述第三插件的当前的输入参数收集缺失的情况下,获取所述大语言模型反馈的对话内容,并反馈给用户,以提示所述用户提供所述第三插件的输入参数的参数值;获取所述用户提供的新的自然语言内容;基于所述新的自然语言内容,确定新的语言理解内容,并发送至所述大语言模型;在确定所述第三插件的当前的输入参数收集完成的情况下,获取所述大语言模型反馈的所述第三插件的输入参数的参数值。
输入参数收集缺失可以是指同一个第三插件执行任务所需的输入参数中存在至少一个输入参数的参数值为空。对话内容为缺失的输入参数的请求内容,用于提供给用户,提示用户提供该缺失的输入参数的参数值。其中,通过大语言模型检测第三插件的当前的输入参数收集是否缺失,并在确定第三插件的当前的输入参数收集缺失时,生成参数值为空的输入参数对应的对话内容,提示用户反馈该输入参数的参数值。对话内容提供给用户,用户在针对对话内容进行回复,形成多轮对话。示例性的,第三插件为天气查询的插件,时间的输入参数缺失,可以生成对话内容为:请问您要查询哪天的天气呢?
大语言模型对新的语言理解内容进行处理,检测同一第三插件的输入参数是否收集缺失。此时,将新的自然语言内容更新为当前的自然语言内容,将新的语言理解内容更新为当前的语言理解内容,大语言模型基于当前的语言理解内容,检测当前的输入参数检测是否收集缺失。若确定第三插件的当前的输入参数收集缺失,大语言模型生成缺失的输入参数对应的回复内容,以提示用户继续提供缺失的输入参数的参数值。从而获取用户针对新的回复内容提供的新的自然语言内容,持续进行多轮对话,直至第三插件的当前的输入参数收集完成。
将第三插件的描述信息中的输入参数的描述信息和新的自然语言内容组合,生成新的语言理解内容。或者,在当前的语言理解内容的基础上,添加新的自然语言内容,得到新的语言理解内容。
输入参数收集完成可以是指同一个第三插件执行任务所需的全部输入参数的参数值均有赋值非空,且数据类型正确。此时,大语言模型反馈该第三插件的参数数据,该参数数据包括该第三插件执行任务所需的全部输入参数的参数值。
其中,所述获取所述大语言模型反馈的所述第三插件的输入参数的参数值,包括:根据所述第三插件的描述信息,对所述大语言模型反馈的输入参数以及参数值进行校验;响应于校验失败的事件,将所述语言理解内容发送至所述大语言模型,得到新的输入参数以及新的参数值,对所述大语言模型反馈的输入参数以及参数值进行校验;响应于校验成功的事件,得到所述第三插件的输入参数的参数值。
预先注册的备选插件的描述信息中,查询第三插件的描述信息。对输入参数以及参数值进行校验,用于校验该第三插件的输入参数是否收集完成,以及参数值的数据类型是否正确等。备选插件的描述信息包括输入参数以及参数类型,将描述信息中包括的输入参数与大语言模型反馈的输入参数进行比较,以及将描述信息中包括的输入参数的参数类型,与大语言模型反馈的同一输入参数的数据类型进行比较。在描述信息中包括的输入参数与大语言模型反馈的输入参数一致,以及将描述信息中包括的输入参数的参数类型,与大语言模型反馈的同一输入参数的数据类型一致时,确定校验成功,在存在任一缺失输入参数或者任意数据类型不一致时,确定校验失败。
响应于校验失败的事件,可以重复将语言内容发送至大语言模型,以使大语言模型重新进行参数值生成,得到大语言模型反馈的新的输入参数或者新的参数值,重复对大语言模型反馈的输入参数以及参数值进行校验。直至校验成功。
响应于校验成功的事件,将大语言模型反馈的输入参数以及参数值,确定为第三插件的输入参数的参数值,并发送至第三插件,调用第三插件,得到调用结果。
需要说明的是,同一第三插件的校验失败的次数大于预设次数阈值,可以对运维用户进行预警,提示异常,或者调用预设的异常处理插件,生成异常回复内容,反馈给用户。
其中,所述基于所述新的自然语言内容,确定新的语言理解内容,包括:将所述新的自然语言内容添加到所述语言理解内容中,得到新的语言理解内容。
语言理解内容包括当前的自然语言内容和第三插件的输入参数的描述信息,在语言理解内容中添加新的自然语言内容,得到新的语言理解内容,相应的,新的语言理解内容包括当前的自然语言内容、新的自然语言内容和第三插件的输入参数的描述信息。
其中,所述对所述自然语言内容进行语义理解,确定所述自然语言内容命中的第三插件,包括:获取预先注册的备选插件的描述信息;根据各所述备选插件的描述信息和所述自然语言内容,确定所述自然语言内容命中的第三插件。
其中,所述根据各所述备选插件的描述信息和所述自然语言内容,确定所述自然语言内容命中的第三插件,包括:将所述自然语言内容输入到预先训练的意图识别模型中,得到所述意图识别模型输出的第三插件的标识信息;其中,所述意图识别模型用于通过所述自然语言内容、预先注册的各所述备选插件的描述信息和各所述备选插件注册的标识信息,确定与所述自然语言内容对应的标识信息。
其中,大模型插件调用方法所述的方法,还包括:将所述调用结果发送至所述大语言模型中,得到调用回复内容;将所述调用结果和所述调用回复内容进行反馈。
调用回复内容可以是将调用结果进行语言描述的内容,以对话形式反馈用户调用结果。例如,调用结果为调用成功,调用回复内容为:您已成功执行了XX操作。将调用回复内容和调用结果共同作为反馈内容进行反馈,可以增加回复内容的丰富性,并且还可以提示用户调用结果是否为意图实现的功能,以便用户及时修正。大语言模型可以理解调用结果的语义,并生成与调用结果对应的语言描述内容,作为调用回复内容。
其中,所述将所述调用结果发送至所述大语言模型中,得到调用回复内容,包括:获取所述第三插件对应的回复模板;将所述调用结果与所述第三插件对应的回复模板进行组合,得到回复理解内容;将所述回复理解内容发送至所述大语言模型中,得到调用回复内容。将调用回复内容反馈给用户,该插件任务执行完成,执行下一个插件任务。
回复模板可以是指提示模板,用于结合调用结果,生成调用回复内容。将调用结果与回复模板进行组合,可以是将调用结果置于回复模板末尾拼接得到回复理解内容。回复理解内容为大语言模型的输入。此外,回复模板还可以和上下文进行拼接,例如,此时的上下文可以包括命中参数的输入参数的参数值、自然语言内容和和历史多轮对话内容等。不同第三插件的回复模板可以相同也可以不同。
或者可以注册用于回复的备选插件,回复模板可以理解为该备选插件对应的提示模板,将回复模板、调用结果和上下文进行拼接,得到回复理解内容。将回复理解内容发送至大语言模型,大语言模型反馈该备选插件的输入参数的参数值。基于参数值,调用该备选插件,得到调用回复内容。
需要说明的是,若在收集该插件任务对应的输入参数中,确定会话中断,开始检测待执行的会话理解任务中未执行完成的插件任务继续执行,直至待执行的会话理解任务执行完成。若触发会话中断,则重新确定待执行的会话理解任务,以此类推,直至全部会话理解任务执行完成。
图4是根据本公开实施例公开的一种大模型插件调用方法的场景图。图5是意图识别模型的训练的场景图。本公开实施例提出实现大模型插件调用方法的大语言模型通用插件系统结构如图4所示,其意图识别模型的训练调优流程如图5所示。
如图4所示,插件系统包括API模块、调度模块、意图识别模块、任务计划模块、多层记忆模块、参数收集模块和大语言模型调用模块。这七个模块的作用描述和具体实现如下:
API模块。用户通过API模块对插件系统进行调用,以自然语言消息、插件定义消息、插件执行结果参数结构消息或系统命令消息作为输入,API模块输出与输入消息对应的生成结果或某个特定插件的回调事件及该插件所需要的入参结构。可以用如下json进行具体示例描述:
插件系统API调用请求json示例
{消息:[{功能:用户标识,自然语言内容:我要预订一张机票}],插件:[
{插件标识:p_001,
插件描述:机票预订插件,
参数:[
{输入参数名称:XX,参数描述:出发地点,参数类型:字符型},
{输入参数名称:XX,参数描述:目的地点,参数类型:字符型},
{输入参数名称:XX,参数描述:出发时间,参数类型:时间类型},
{输入参数名称:XX,参数描述:机票数量,参数类型:整型},
{输入参数名称:XX,参数描述:价格要求,参数类型:字符型},
{输入参数名称:XX,参数描述:座位要求,参数类型:字符型},
{输入参数名称:XX,参数描述:身份信息,参数类型:字符型},},
{插件标识:p_002,
插件描述:外卖预订插件,
参数:[
{输入参数名称:XX,参数描述:外卖接收地点,参数类型:字符型},
{输入参数名称:XX,参数描述:外卖店铺地址,参数类型:字符型},
{输入参数名称:XX,参数描述:下单时间,参数类型:时间类型},
{输入参数名称:XX,参数描述:订餐内容,参数类型:字符型},
{输入参数名称:XX,参数描述:价格要求,参数类型:字符型},
{输入参数名称:XX,参数描述:备注要求,参数类型:字符型},}]}
上述示例中,一条消息可以包括用户发送的自然语言内容,以及机票预定插件和外卖预定插件的注册信息,注册信息也即备选插件的描述信息。
大语言模型返回的对话内容json示例1
消息:[{功能:多轮对话,自然语言内容:请问您打算什么时候出发?}]
上述示例的消息为大语言模型反馈的需要提供给用户的对话内容,以使用户提供缺失的输入参数的参数值。
大语言模型返回的参数json示例
{消息:[{功能:插件,消息:回调}],
回调信息:
{插件标识:p_001,
参数:[
{输入参数名称:XX,参数值:A,参数类型:字符型},
{输入参数名称:XX,参数值:B,参数类型:字符型},
{输入参数名称:XX,参数值:3点,参数类型:时间类型},
{输入参数名称:XX,参数值:1,参数类型:整型},
{输入参数名称:XX,参数值:<1000,参数类型:字符型},
{输入参数名称:XX,参数值:经济舱,靠近走道,参数类型:字符型},
{输入参数名称:XX,参数值:100000000,参数类型:字符型},
上述示例展示了大语言模型反馈的机票预定插件的输入参数的参数值。其中,回调用于基于参数值调用命中插件p_001,也即机票预定插件。
大语言模型返回的调用回复内容json示例
消息:[{功能:插件,消息:返回}],
返回信息:
{插件标识:p_001,
参数:[
{输入参数名称:XX,参数描述:返回码,参数值:成功,参数类型:字符型},
{输入参数名称:XX,参数描述:返回消息,参数值:您已成功预订1张A至B的机票,出发时间3:00,航班号XX,座位号XX,请从XX号登机口登机。,参数类型:字符型},]}
上述示例展示了大语言模型反馈的机票预定插件的预定成功的调用结果以及调用回复内容。
插件系统API调用请求json示例3
消息:[{功能:插件,消息:系统干预}],
干预命令信息:
{参数:[
命令名称:调用插件
{输入参数名称:XX,参数值:插件id,参数类型:字符型}]}
调度模块。对接插件系统中的其他各模块,起到总控的作用。
意图识别模块。意图识别模块调用意图识别模型,意图识别模型是一个1亿参数级别的小语言模型,其作用是判断输入消息是否包含对一个或几个插件的调用意图。如图5所示,其SFT调优数据格式如下:采用{instruction,plugin_list}数据集对意图识别模型v1进行训练,得到意图识别模型v2,其中instruction为输入消息,plugin_list为与该消息相关的插件列表,该列表可能为空。v1和v2是指意图识别模型的版本号。
任务计划模块。对于需要多个插件通过编排满足的意图,任务计划模块会根据输入消息和相关插件列表,生成有序的插件执行计划。
多层记忆模块。用于保存全局会话记忆,每一个插件的会话记忆以及插件执行结果记忆。其中全局会话记忆最长保存一周,插件会话记忆最长保存72小时,插件执行结果记忆最长保存一周。记忆模块对会话和调用状态的保存以及提升大语言模型生成效果能起到显著提升作用。
参数收集模块。访问任务栈,获得某个插件任务,通过调用大语言模型模块,收集插件任务回调所需要的各项参数。
大语言模型调用模块。负责请求外部的大语言模型,并接收和解析大语言模型的生成结果。
本公开实施例的插件系统可以广泛应用在需要对大语言模型通过插件进行能力扩展的个人和企业应用场景中。例如,通过插件系统与大语言模型结合,可以让个人用户以类似智能助手的体验,使用自然语言实现订餐、订票、行程安排、文档问答和事实性搜索等各种需求。在企业应用场景中,包括对企业知识库的问答、会议纪要进行摘要、数学题目扩展、作图、代码生成与执行、通过自然语言进行图表生成、通过自然语言进行视频编辑以及结合知识库的文案创作和问题分析等等。
一个典型机票预订场景的插件系统应用方案可以包含以下几个步骤:首先,用户通过API模块输入“帮我订几张机票”的消息,并通过API模块的插件参数提供了订票和订餐两种插件。调度模块收到该消息后,使用意图识别模块判断出应该使用订票插件满足该消息的意图,因此,在任务栈中添加了一个插件标识为订票插件id的任务,并更新了该全局会话和该插件对应的两个层级的记忆,加入了“帮我订几张机票”这条消息。然后,调度模块调用参数收集模块执行任务栈中的首个任务。参数收集模块根据栈中首个任务的入参要求,多次调用大语言模型模块获得所需入参的具体参数值。期间大语言模型和用户通过API模块进行多轮会话,更新对应层级的记忆模块,直至获得所有该插件所需的输入参数后,返回调度模块。如果任务参数收集成功,调度模块返回回调消息,并填入具体参数值。用户侧通过API模块获得回调事件,调用对应的插件服务,并将插件执行结果通过API模块返回。调度模块获得插件调用返回结果消息后,更新插件执行结果记忆,将任务出栈。
根据本公开的技术方案,可以广泛接入第三方开源或闭源的大语言模型与插件结合;大幅降低开发者在插件集成、插件调度和记忆维护等方面的开发成本;提供规范的插件注册协议和标准的接入机制;提供SDK(Software Development Kit,软件开发工具包)和API便于与用户的自有应用集成;基于标准化的插件注册协议,平台侧可以进一步运营插件生态;该插件系统仅依赖大语言模型的理解和生成能力,可广泛适配闭源和开源的大语言模型,提高模型通用性;该插件系统采用了通用的输入输出参数接口设计,可以广泛接入各种类型的插件服务,提高插件普适性;该插件系统集成了基于提示的上下文学习模板、专用意图识别模型和专用任务规划模型,从而使得对插件调用意图识别的准确性可通过多种方式灵活调优;任务的分析、拆解和执行计划制定效果大幅提升,实现预测效果灵活可调。该插件系统集成了针对插件多轮对话的记忆结构、全局对话记忆结构和参数收集记忆结构。这些记忆结构能有为大语言模型提供充分的上下文输入,大幅提升模型理解准确性;该插件系统集成了插件任务的管理,便于对插件任务的执行进行追踪和管理。该插件系统内置了系统级干预指令,包括进入和/或退出特定插件,清空特定记忆结构,重置插件系统状态等。这些系统级干预指令能在事件性触发插件调用的场景下高效率地执行插件服务并将返回结果作为大语言模型的输入。
根据本公开的实施例,图6是本公开实施例中的大模型插件调用装置的结构图,本公开实施例适用于为大语言模型扩展插件的情况。该装置采用软件和/或硬件实现,并具体配置于具备一定数据运算能力的电子设备中。其中,图6所示的大模型插件调用装置包括的模块和图4所示的模块可以不同,但整体实现的功能相同,图4和图6中模块仅仅是一种示例,可以对图4或图6所示的模块的功能进行拆分重组,得到新的模块,均应包含在本公开范围内。
如图6所示的一种大模型插件调用装置600,包括:自然语言内容获取模块601、插件匹配模块602、会话理解任务确定模块603、输入参数检测模块604和插件调用模块605。其中,
自然语言内容获取模块601,用于获取自然语言内容;
插件匹配模块602,用于对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件;
会话理解任务确定模块603,用于将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务;
输入参数检测模块604,用于获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数;
插件调用模块605,用于根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。
根据本公开的技术方案,通过对自然语言内容进行语义理解,检测用户意图是否命中插件,并根据插件命中结果,确定待执行的会话理解任务,通过获取会话理解任务的语言理解内容,发送至大语言模型,由大语言模型理解自然语言内容,并提取出第三插件运行所需的输入参数的参数值,得到大语言模型反馈的输入参数的参数值,调用第三插件,得到会话理解任务的调用结果,实现在大语言模型的基础上获取外部资源,利用大语言模型的理解能力和外部资源,可以突破大语言模型的时效性缺陷和本身的资源局限,增加大语言模型系统的语言理解和生成的应用场景,提高语言理解生成任务的预测准确性,并且可以实时扩展多样性的插件,增加扩展功能的多样性和灵活性,并且可以增加插件的普适性,同时无需针对某个场景训练大语言模型,提高大语言模型的通用性;同时通过将插件命中结果指向的插件与当前的会话理解任务对应的插件进行比较,确定待执行的会话理解任务,可以对会话理解任务进行规划判断,避免不必要执行,提高执行效率。
进一步的,所述会话理解任务确定模块,包括:会话中断检测单元,用于在所述插件命中结果为命中的情况下,检测会话是否中断,得到会话中断检测结果;中断任务获取单元,用于获取所述会话中断检测结果对应的会话理解任务,并确定为待执行的会话理解任务;未命中对话反馈单元,用于在所述插件命中结果为未命中的情况下,将所述自然语言内容发送至所述大语言模型,得到所述大语言模型的反馈内容。
进一步的,所述会话中断检测单元,包括:会话保持确定子单元,用于在所述第一插件与所述第二插件相同的情况下,确定所述会话中断检测结果为会话保持;会话中断确定子单元,用于在所述第一插件与所述第二插件不同的情况下,确定所述会话中断检测结果为会话中断;所述中断任务获取单元,包括:保持任务获取子单元,用于在所述会话中断检测结果为会话保持的情况下,将所述当前的会话理解任务,确定为所述会话中断检测结果对应的会话理解任务;会话恢复检测子单元,用于在所述会话中断检测结果为会话中断的情况下,检测历史会话是否恢复,得到会话恢复检测结果;恢复任务获取子单元,用于获取所述会话恢复检测结果对应的会话理解任务,作为所述会话中断检测结果对应的会话理解任务。
进一步的,所述会话恢复检测子单元,包括:会话恢复确定子单元,用于在所述第一插件与历史会话理解任务对应的第四插件相同的情况下,确定所述会话恢复检测结果为会话恢复;会话未恢复确定子单元,用于在所述第一插件与所述第四插件不同的情况下,确定所述会话恢复检测结果为会话未恢复;所述恢复任务获取子单元,包括:历史任务获取子单元,用于在所述会话恢复检测结果为会话恢复的情况下,获取所述历史会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务;新任务建立子单元,用于在所述会话恢复检测结果为会话未恢复的情况下,建立新的会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务。
进一步的,所述新任务建立子单元,包括:命中插件获取子单元,用于获取所述插件命中结果指向的至少一个第一插件;插件任务生成子单元,用于生成所述第一插件对应的插件任务;会话理解任务生成子单元,用于将各所述第一插件对应的插件任务,确定为新的会话理解任务。
进一步的,所述新任务建立子单元,还包括:插件任务排序子单元,用于对各所述插件任务进行排序;其中,所述新的会话理解任务中各所述插件任务按照排序结果执行;所述输入参数检测模块,包括:插件任务理解内容获取单元,用于获取所述待执行的会话理解任务中当前执行的插件任务的语言理解内容;插件任务参数检测单元,用于将当前执行的插件任务的语言理解内容发送至大语言模型中,得到所述当前执行的插件任务对应的第三插件的输入参数;所述插件调用模块,包括:插件任务执行单元,用于根据所述当前执行的插件任务对应的第三插件的输入参数调用所述第三插件,得到所述当前执行的插件任务的调用结果。
进一步的,会话中断确定子单元,还包括:上下文确定子单元,用于在所述会话中断检测结果为会话中断的情况下,将所述当前的会话理解任务的自然语言内容,添加到所述当前的会话理解任务的上下文中;记忆存储子单元,用于将所述当前的会话理解任务对应的第二插件、上下文与所述当前的会话理解任务进行对应存储。
进一步的,所述输入参数检测模块,包括:新任务理解内容确定单元,用于在所述待执行的会话理解任务为新的会话理解任务的情况下,根据所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容;上下文获取单元,用于在所述待执行的会话理解任务与新的会话理解任务不同的情况下,获取所述待执行的会话理解任务的上下文;历史理解内容确定单元,用于根据所述待执行的会话理解任务的上下文和所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容。
进一步的,所述大模型插件调用装置,还包括:干预命令执行模块,用于在所述自然语言内容为干预命令时,根据所述干预命令,对所述当前的会话理解任务进行调整。
上述大模型插件调用装置可执行本公开任意实施例所提供的大模型插件调用方法,具备执行大模型插件调用方法相应的功能模块和有益效果。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性区域图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如大模型插件调用方法。例如,在一些实施例中,大模型插件调用方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的大模型插件调用方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行大模型插件调用方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准对象(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或区域图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)区块链网络和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (21)

1.一种大模型插件调用方法,包括:
获取自然语言内容;
对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件;
将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,以及所述待执行的会话理解任务对应的第三插件;
获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数;
根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。
2.根据权利要求1所述的方法,其中,所述将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,包括:
在所述插件命中结果为命中的情况下,将所述第一插件与所述第二插件进行比较,检测会话是否中断,得到会话中断检测结果;
获取所述会话中断检测结果对应的会话理解任务,并确定为待执行的会话理解任务;
在所述插件命中结果为未命中的情况下,将所述自然语言内容发送至所述大语言模型,得到所述大语言模型的反馈内容。
3.根据权利要求2所述的方法,其中,所述将所述第一插件与所述第二插件进行比较,检测会话是否中断,得到会话中断检测结果,包括:
在所述第一插件与所述第二插件相同的情况下,确定所述会话中断检测结果为会话保持;
在所述第一插件与所述第二插件不同的情况下,确定所述会话中断检测结果为会话中断;
所述获取所述会话中断检测结果对应的会话理解任务,包括:
在所述会话中断检测结果为会话保持的情况下,将所述当前的会话理解任务,确定为所述会话中断检测结果对应的会话理解任务;
在所述会话中断检测结果为会话中断的情况下,检测历史会话是否恢复,得到会话恢复检测结果;
获取所述会话恢复检测结果对应的会话理解任务,作为所述会话中断检测结果对应的会话理解任务。
4.根据权利要求3所述的方法,其中,所述检测历史会话是否恢复,得到会话恢复检测结果,包括:
在所述第一插件与历史会话理解任务对应的第四插件相同的情况下,确定所述会话恢复检测结果为会话恢复;
在所述第一插件与所述第四插件不同的情况下,确定所述会话恢复检测结果为会话未恢复;
所述获取所述会话恢复检测结果对应的会话理解任务,包括:
在所述会话恢复检测结果为会话恢复的情况下,获取所述历史会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务;
在所述会话恢复检测结果为会话未恢复的情况下,建立新的会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务。
5.根据权利要求4所述的方法,其中,所述建立新的会话理解任务,包括:
获取所述插件命中结果指向的至少一个第一插件;
生成所述第一插件对应的插件任务;
将各所述第一插件对应的插件任务,确定为新的会话理解任务。
6.根据权利要求5所述的方法,还包括:
对各所述插件任务进行排序;其中,所述新的会话理解任务中各所述插件任务按照排序结果执行;
所述获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数,包括:
获取所述待执行的会话理解任务中当前执行的插件任务的语言理解内容;
将当前执行的插件任务的语言理解内容发送至大语言模型中,得到所述当前执行的插件任务对应的第三插件的输入参数;
所述根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果,包括:
根据所述当前执行的插件任务对应的第三插件的输入参数调用所述第三插件,得到所述当前执行的插件任务的调用结果。
7.根据权利要求3所述的方法,还包括:
在所述会话中断检测结果为会话中断的情况下,将所述当前的会话理解任务的自然语言内容,添加到所述当前的会话理解任务的上下文中;
将所述当前的会话理解任务对应的第二插件、上下文与所述当前的会话理解任务进行对应存储。
8.根据权利要求1所述的方法,其中,所述获取所述待执行的会话理解任务的语言理解内容,包括:
在所述待执行的会话理解任务为新的会话理解任务的情况下,根据所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容;
在所述待执行的会话理解任务与新的会话理解任务不同的情况下,获取所述待执行的会话理解任务的上下文;
根据所述待执行的会话理解任务的上下文和所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容。
9.根据权利要求1所述的方法,还包括:
在所述自然语言内容为干预命令时,根据所述干预命令,对所述当前的会话理解任务进行调整。
10.一种大模型插件调用装置,包括:
自然语言内容获取模块,用于获取自然语言内容;
插件匹配模块,用于对所述自然语言内容进行语义理解,检测所述自然语言内容是否命中插件,得到插件命中结果指向的第一插件;
会话理解任务确定模块,用于将所述第一插件与当前的会话理解任务对应的第二插件进行比较,确定待执行的会话理解任务,以及所述待执行的会话理解任务对应的第三插件;
输入参数检测模块,用于获取所述待执行的会话理解任务的语言理解内容,并发送至大语言模型中,得到所述第三插件的输入参数;
插件调用模块,用于根据所述第三插件的输入参数调用所述第三插件,得到所述待执行的会话理解任务的调用结果。
11.根据权利要求10所述的装置,其中,所述会话理解任务确定模块,包括:
会话中断检测单元,用于在所述插件命中结果为命中的情况下,将所述第一插件与所述第二插件进行比较,检测会话是否中断,得到会话中断检测结果;
中断任务获取单元,用于获取所述会话中断检测结果对应的会话理解任务,并确定为待执行的会话理解任务;
未命中对话反馈单元,用于在所述插件命中结果为未命中的情况下,将所述自然语言内容发送至所述大语言模型,得到所述大语言模型的反馈内容。
12.根据权利要求11所述的装置,其中,所述会话中断检测单元,包括:
会话保持确定子单元,用于在所述第一插件与所述第二插件相同的情况下,确定所述会话中断检测结果为会话保持;
会话中断确定子单元,用于在所述第一插件与所述第二插件不同的情况下,确定所述会话中断检测结果为会话中断;
所述中断任务获取单元,包括:
保持任务获取子单元,用于在所述会话中断检测结果为会话保持的情况下,将所述当前的会话理解任务,确定为所述会话中断检测结果对应的会话理解任务;
会话恢复检测子单元,用于在所述会话中断检测结果为会话中断的情况下,检测历史会话是否恢复,得到会话恢复检测结果;
恢复任务获取子单元,用于获取所述会话恢复检测结果对应的会话理解任务,作为所述会话中断检测结果对应的会话理解任务。
13.根据权利要求12所述的装置,其中,所述会话恢复检测子单元,包括:
会话恢复确定子单元,用于在所述第一插件与历史会话理解任务对应的第四插件相同的情况下,确定所述会话恢复检测结果为会话恢复;
会话未恢复确定子单元,用于在所述第一插件与所述第四插件不同的情况下,确定所述会话恢复检测结果为会话未恢复;
所述恢复任务获取子单元,包括:
历史任务获取子单元,用于在所述会话恢复检测结果为会话恢复的情况下,获取所述历史会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务;
新任务建立子单元,用于在所述会话恢复检测结果为会话未恢复的情况下,建立新的会话理解任务,并确定为所述会话恢复检测结果对应的会话理解任务。
14.根据权利要求13所述的装置,其中,所述新任务建立子单元,包括:
命中插件获取子单元,用于获取所述插件命中结果指向的至少一个第一插件;
插件任务生成子单元,用于生成所述第一插件对应的插件任务;
会话理解任务生成子单元,用于将各所述第一插件对应的插件任务,确定为新的会话理解任务。
15.根据权利要求14所述的装置,所述新任务建立子单元,还包括:
插件任务排序子单元,用于对各所述插件任务进行排序;其中,所述新的会话理解任务中各所述插件任务按照排序结果执行;
所述输入参数检测模块,包括:
插件任务理解内容获取单元,用于获取所述待执行的会话理解任务中当前执行的插件任务的语言理解内容;
插件任务参数检测单元,用于将当前执行的插件任务的语言理解内容发送至大语言模型中,得到所述当前执行的插件任务对应的第三插件的输入参数;
所述插件调用模块,包括:
插件任务执行单元,用于根据所述当前执行的插件任务对应的第三插件的输入参数调用所述第三插件,得到所述当前执行的插件任务的调用结果。
16.根据权利要求12所述的装置,会话中断确定子单元,还包括:
上下文确定子单元,用于在所述会话中断检测结果为会话中断的情况下,将所述当前的会话理解任务的自然语言内容,添加到所述当前的会话理解任务的上下文中;
记忆存储子单元,用于将所述当前的会话理解任务对应的第二插件、上下文与所述当前的会话理解任务进行对应存储。
17.根据权利要求10所述的装置,其中,所述输入参数检测模块,包括:
新任务理解内容确定单元,用于在所述待执行的会话理解任务为新的会话理解任务的情况下,根据所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容;
上下文获取单元,用于在所述待执行的会话理解任务与新的会话理解任务不同的情况下,获取所述待执行的会话理解任务的上下文;
历史理解内容确定单元,用于根据所述待执行的会话理解任务的上下文和所述自然语言内容,确定所述待执行的会话理解任务的语言理解内容。
18.根据权利要求10所述的装置,还包括:
干预命令执行模块,用于在所述自然语言内容为干预命令时,根据所述干预命令,对所述当前的会话理解任务进行调整。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的大模型插件调用方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的大模型插件调用方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-9中任一项所述的大模型插件调用方法。
CN202311109373.8A 2023-08-30 大模型插件调用方法、装置、设备及介质 Active CN117112064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311109373.8A CN117112064B (zh) 2023-08-30 大模型插件调用方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311109373.8A CN117112064B (zh) 2023-08-30 大模型插件调用方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN117112064A true CN117112064A (zh) 2023-11-24
CN117112064B CN117112064B (zh) 2024-07-12

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390087B1 (en) * 2015-02-09 2016-07-12 Xerox Corporation System and method for response generation using linguistic information
US20190012198A1 (en) * 2017-07-07 2019-01-10 Google Inc. Invoking an automated assistant to perform multiple tasks through an individual command
US20190025800A1 (en) * 2017-07-20 2019-01-24 Accenture Global Solutions Limited Determination of task automation using natural language processing
US20190103101A1 (en) * 2017-10-03 2019-04-04 Google Llc User-programmable automated assistant
US20190304445A1 (en) * 2018-03-30 2019-10-03 International Business Machines Corporation Conversational framework
US20220350970A1 (en) * 2021-04-29 2022-11-03 International Business Machines Corporation Intent determination in a messaging dialog manager system
CN116595154A (zh) * 2023-07-14 2023-08-15 阿里巴巴(中国)有限公司 任务处理方法以及自动问答方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390087B1 (en) * 2015-02-09 2016-07-12 Xerox Corporation System and method for response generation using linguistic information
US20190012198A1 (en) * 2017-07-07 2019-01-10 Google Inc. Invoking an automated assistant to perform multiple tasks through an individual command
US20190025800A1 (en) * 2017-07-20 2019-01-24 Accenture Global Solutions Limited Determination of task automation using natural language processing
US20190103101A1 (en) * 2017-10-03 2019-04-04 Google Llc User-programmable automated assistant
US20190304445A1 (en) * 2018-03-30 2019-10-03 International Business Machines Corporation Conversational framework
US20220350970A1 (en) * 2021-04-29 2022-11-03 International Business Machines Corporation Intent determination in a messaging dialog manager system
CN116595154A (zh) * 2023-07-14 2023-08-15 阿里巴巴(中国)有限公司 任务处理方法以及自动问答方法

Similar Documents

Publication Publication Date Title
KR102297394B1 (ko) 적절한 에이전트의 자동화된 어시스턴트 호출
US10601740B1 (en) Chatbot artificial intelligence
US10643601B2 (en) Detection mechanism for automated dialog systems
CN117112065B (zh) 大模型插件调用方法、装置、设备及介质
US20240203400A1 (en) Speaker awareness using speaker dependent speech model(s)
CN112767916B (zh) 智能语音设备的语音交互方法、装置、设备、介质及产品
US11531821B2 (en) Intent resolution for chatbot conversations with negation and coreferences
CN115424624B (zh) 一种人机互动的服务处理方法、装置及相关设备
CN112286485A (zh) 通过语音控制应用的方法、装置、电子设备与存储介质
US11669697B2 (en) Hybrid policy dialogue manager for intelligent personal assistants
KR20190074508A (ko) 챗봇을 위한 대화 모델의 데이터 크라우드소싱 방법
CN113111658B (zh) 校验信息的方法、装置、设备和存储介质
EP3843090B1 (en) Method and apparatus for outputting analysis abnormality information in spoken language understanding
CN113591463A (zh) 意图识别方法、装置、电子设备及存储介质
CN117112064B (zh) 大模型插件调用方法、装置、设备及介质
CN108597499A (zh) 语音处理方法以及语音处理装置
CN112489639A (zh) 音频信号处理方法及装置、系统、电子设备、可读介质
CN117112064A (zh) 大模型插件调用方法、装置、设备及介质
KR20220155957A (ko) 슬롯 필링 기반의 챗봇 서비스 제공 방법 및 장치
CN115062629A (zh) 会话信息的识别方法及装置、存储介质、计算机设备
US20230067274A1 (en) Incomplete problem description determination for virtual assistant user input handling
CN112669839B (zh) 语音交互方法、装置、设备及存储介质
CN115497458A (zh) 智能语音助手的持续学习方法、装置、电子设备及介质
CN115312028A (zh) 语音识别方法、装置、计算机可读存储介质及计算机设备
CN113868396A (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