要让大模型输出结构化的数据,可以采取以下几种方法:
但需要注意的是,过去大模型还不太成熟,应用过程可能会有一些困难。
在使用大语言模型(LLM,如GPT)对预处理后的文本进行关键数据提取时,Prompt工程是方案的核心。Prompt工程的目标是设计合理的提示词,以最大化LLM的性能,从复杂的文本中准确、有效地提取出关键信息。[heading4]Prompt策略[content]策略01:明确的待处理内容指引在构建Prompt时,明确告诉模型它需要处理的内容是关键步骤之一。应清晰地定义需要处理的文本,并使用标记将其框起来。例如:通过这种方式,模型能够准确识别待处理的内容范围,并从中提取需要的信息。策略02:提供明确字段定义这是Prompt的关键部分,字段定义明确了需要提取的信息类型,以及每个字段应当填入的内容。每个字段的名称、用途及要求都要具体化,让模型有明确的提取方向。字段定义为LLM提供了标准,使它在解析文本时能够准确地提取所需信息并填充到对应字段。例如:这种方式,Prompt可以为LLM提供清晰的提取标准和目标。策略03:异常处理为确保LLM不输出多余信息,并在面对缺失或不明确的数据时进行合理处理,必须设置一些异常处理原则。例如,**如果某些字段信息在文本中缺失或未识别,Prompt应规定使用默认值(如“无”)填充。同时,针对日期、金额等特殊数据类型,应明确要求LLM符合标准格式(如YYYYMMDDHHMMSS或保留金额单位)。这一规则可以确保模型输出的完整性和一致性,不会因为部分数据缺失而导致结果异常。策略04:要求结构化输出为了便于后续处理和系统集成,Prompt应指示LLM以结构化的格式输出数据。结构化输出便于自动化处理,常见的格式如JSON,能够确保每个字段的内容都清晰定义,数据可被轻松解析和使用。例如,要求模型输出的JSON格式:
使用大模型节点,批量总结文章内容模型选择:默认的豆包32k应该就够用,怕上下文长度不够的话,可以选择更大的模型,比如kimi128k配置参数:选择批处理批处理输入参数有两个:第9步中读取的文章内容正文、第8步代码处理后的url链接和标题下方的输入参数,有四个,如图所示,都选择该大模型节点输出的内容:content正文、title标题、url文章链接、author作者提示词输入如下内容,将这四部分内容一起送给大模型进行总结,最终拼接成markdown格式输出:[heading3]11、汇总格式化最终输出内容[content]使用代码节点,将大模型输出的内容进行最终输出的格式化。参数配置:输入:选择上一步输出的outputList点击「在IDE中编辑」,选择『Python』,输入如下代码:配置一下输出项,输出为result[heading3]12、公众号总结推送到微信[content]这块的节点是根据Server酱的API文档,自己写的插件,关于自建插件这个环节,请参看「相关资料」,输出配置可以参考下发截图。主要实现功能就是把上一步格式化好的内容,推送到用户的微信上。title:汇总公众号总结页面的标题,参数值选择「输入」,起个名字desp:页面主体内容,选择上一步最终输出内容key:引用开始节点的key
去年同期有个段子,说GPT-4能自己越狱。这事情当时被那些自媒体们越传越邪乎,但事实上,这事光靠大模型自己,是不现实的。因为它,真的没有办法直接触碰到真实世界,毕竟大模型连现在是何年何月何日都不知道。接着上面的例子讲其实只要能够让大模型按照我们想要的定义输出结构化的信息,我们就可以去做很多有趣的事情。JSON就是一个非常不错的选择我们基于这个思路也做了很多的探索,比如:1、无模板的Excel导入改变传统的数据导入方式,再也不用写复杂的业务逻辑了。只需要一个Prompt去读取想要的数据列就可以2、AI审核员在原先人审的环节前加一个AI审,给一些knowhow和fewshot,输出yes和no还是很简单的。3、分类器分类器的场景很多。以前搞个分类,大小得训练个模型吧,那个年代可真是算法的黄金年代啊。嗯,现在一个prompt就搞定了。4、其它一些业务场景落地好用,真的太好用了!但那个时候的大模型,还太不成熟了,上面的路子能通,但走起来磕磕碰碰。