logo

大模型应用开发03-结构化输出与智能导入

我们在开发很多业务系统时,经常需要使用到通过上传文件,将文件内容导入到系统数据库的需求。一般情况下,为了可以正常导入数据,需要用户首先下载模板,然后按照模板填写数据再进行导入。这个时候用户的工作量就大了,他可能有很多数据存在了一张excel表中,但是跟提供的模板不一致,需要将原来表中的数据再腾挪到新的模板文件中,这是这个功能非常耗时的点。
那么通过接入大模型,让大模型来处理文件内容,并将结果按照指定的格式进行格式化输出就可以消除到导入数据需要按照模板填写的巨大工作量。

实现案例

这里是一个Spring AI的代码示例:
  
  
  
  
  
  
public record User(String name, String username, Integer sex, Long phone) {
}
public List<User> getUsersByModel(String content) {
log.info(content);
String template = """
请将文档中的用户信息抽取出姓名,用户账号,性别和电话。
性别和电话可以为null。
如果是电话号码,请确认解析的电话号码格式是否正确。
如果用户没有账号,则优先将电话设置为账号。
性别1代表男性,2代表女性。
文档内容如下:
{content}
""";
PromptTemplate promptTemplate = new PromptTemplate(template);
Prompt prompt = promptTemplate.create(Map.of("content", content));
return ChatClient.create(chatModel).prompt()
.user(prompt.getContents())
.call()
.entity(new ParameterizedTypeReference<>() {
});
}
Spring AI是一个大模型开发框架,支持Java17及以上版本。
其中content为读取的文件内容,一般为excel表格。然后让Spring AI框架来处理大模型解析后的数据,将文本数据进行结构化处理,最后生成User对象,并返回给前端,前端可以设计一个可编辑表格,对返回的内容进行一些修正,再确认保存到数据库。当然,如果大模型一次处理的结果不够好,可以不断的调用该功能,直到达到满意的效果为止。
下面是用户智能导入功能的模拟数据:
可以看到这个表格中的内容不是很规整,有些缺数据,还有些数据不对的情况。
这个让大模型去做,还是可以很好的进行处理的。
我这里使用的是智普ai的免费模型。
这是智能上传模拟上传用户表创建用户账号的一个功能。
点击上传文件,选择上面的表格进行上传,之后大模型接口会返回解构后的用户队列。 这是大模型识别的结果展示:

其他

有时候效果不好,很大原因是提示词没有写好。还有就是表格中有多余的列影响了大模型的判断。或者多试几次,大模型的识别效果会更好。希望这个案例对大家在开发过程中有所启发,Enjoy!
————————————————
版权声明:本文为稀土掘金博主「皮皮的江山」的原创文章
如有侵权,请联系千帆社区进行删除
评论
用户头像