欢迎来到《小5讲堂》
这是《千帆》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!
目录
- 背景
- 组件方式
- prompt
- 新参数
- 运动员信息组件
- 奖牌排行榜组件
- 知识库方式
- prompt
- 切片断层
- 模型输出
- 正则表达式
- 整个文件作为切片
- 排行榜
- 体验地址
- 推荐文章
背景
2024年奥运会已经落下帷幕,中国金牌并列第一。
尽管比赛已经结束,网上也有很多奖牌排行榜,但是很少有运动员维度获奖信息或者排行榜。
因此,博主这里通过记录2024年奥运会的每个获奖运动员信息,并且通过知识库方式进行存储查询。
可以查询指定运动员获奖信息,或者各个国家奖牌排行情况等等。
组件方式
prompt
下面是通过调用组件方式编写的prompt,目的是按大模型能够识别到并调用组件
新参数
在开始节点,新增多了两个参数chatHistory和fileUrls。
**chatHistory:**用户与应用的对话历史(有了这个参数也许可以做到和用户一对一识别后端交互,这个可以验证下)
**fileUrls:**用户在对话中上传的文件地址
历史对话参数查看情况
第一次对话,chatHistory历史对话参数没有值
第二次对话,会把前一次的问答记录传回来
运动员信息组件
组件里使用了一个API节点,api调用的是自己服务器后端接口,通过接口写逻辑查询数据库。
关键还是设置好api接口接收的参数name运动员参数,这个参数的是被由大模型进行识别和赋值。
奖牌排行榜组件
组件里使用了一个API节点,api调用的是自己服务器后端接口,通过接口写逻辑查询数据库。
关键还是设置好api接口接收的参数country国家和type奖牌类型参数,这个参数的是被由大模型进行识别和赋值。
知识库方式
知识库这里,控制切换的内容长度也是一个非常关键的地方。
prompt
切片断层
这里使用【张雨霏】运动员作为例子,因为获奖奖牌数量多,所以,她的内容也是会比较多,
这样在默认切片情况下,在命中测试时是会出现断层,从而无法准确查询到所有信息。
- 下面是默认切片效果
- 下面是根据#井号进行整个运动员信息切片效果
模型输出
刚开始选择Speed速度上有优势的问答模型,发现会把部分信息混淆输出,导致数据不准确。
这个【美国昆西·霍尔】关键词,出来两个参考切片,查看内容发现【昆西】这个关键词一样。
为了确保准确性,选择了模型【ERNIE-4.0-8K】,之后测试可以准确输出。
正则表达式
由于按运动员名称进行存储文件,上传到知识库时太多了。
因此,把所有运动员信息保存到同一个txt文档,然后通过#井号符号进行切分。
确保每个切片都是唯一一个运动员的所有信息,所以增加到5000个字符切分,基本能满足了。
整个文件作为切片
由于这个文件是各国奖牌排行榜数据,所以不能有断层,所以这里就用了整个文件作为切片。
给文件增加一些关键词,增加命中率,比如:排行榜、中国排行榜、各国排行榜等等
排行榜
目前只上传了前20名,获得奖牌数量的排行榜。
感谢阅读,本篇文章分享就到这里啦!
希望这篇文章分享的知识库和组件的经验能够给你一点小灵感。
体验地址
我在百度智能云千帆AppBuilder开发了一款AI原生应用,快来使用吧!
「2024巴黎奥运会运动员获奖信息」: https://appbuilder.baidu.com/s/lObZZwY5 手机端体验地址: https://wx.baeapps.com/api/ai_apaas/v1/wx_program/share?share_code=app7kD9trRXfbCLI2Q3WPpU