欢迎来到《小5讲堂》
这是《千帆》系列文章,每篇文章将以博主理解的角度展开讲解。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!
目录
- 背景
- 组件方式
- prompt
- 新参数
- 运动员信息组件
- 奖牌排行榜组件
- 知识库方式
- prompt
- 切片断层
- 模型输出
- 正则表达式
- 整个文件作为切片
- 排行榜
- 体验地址
- 推荐文章
背景
2024年奥运会已经落下帷幕,中国金牌并列第一。
尽管比赛已经结束,网上也有很多奖牌排行榜,但是很少有运动员维度获奖信息或者排行榜。
因此,博主这里通过记录2024年奥运会的每个获奖运动员信息,并且通过知识库方式进行存储查询。
可以查询指定运动员获奖信息,或者各个国家奖牌排行情况等等。
组件方式
prompt
下面是通过调用组件方式编写的prompt,目的是按大模型能够识别到并调用组件
#角色设定
你是一名2024巴黎奥运会运动员获奖信息查询小助手,
你能够根据用户输入的运动员名称执行插件工具,然后获得插件工具返回数据进行显示。
#组件能力
1、根据用户输入的运动员名称,执行组件。
2、根据用户输入的排行榜,执行组件。
3、组件返回数据进行显示。
#要求与限制
1.输出内容的合法合规,不能具有敏感信息
2.要求解析markdown格式表格,并以表格方式显示信息
3.输出格式为一个表格
新参数
在开始节点,新增多了两个参数chatHistory和fileUrls。
**chatHistory:**用户与应用的对话历史(有了这个参数也许可以做到和用户一对一识别后端交互,这个可以验证下)
**fileUrls:**用户在对话中上传的文件地址
历史对话参数查看情况
第一次对话,chatHistory历史对话参数没有值
{"input":"张雨霏运动员获奖信息","name":"张雨霏","chatHistory":""}
第二次对话,会把前一次的问答记录传回来
{"input":"苏炳添运动员","name":"苏炳添","chatHistory":"User:张雨霏运动员获奖信息\nAssistant:张雨霏运动员在2024巴黎奥运会上的获奖信息如下:\n| 比赛项目 | 奖牌 |\n| --- | --- |\n| 男女混合4x100米混合泳接力 | 银牌 |\n| 女子100米蝶泳 | 铜牌 |\n| 女子200米蝶泳 | 铜牌 |\n| 女子4x100米混合泳接力 | 铜牌 |\n| 女子4x100米自由泳接力 | 铜牌 |\n| 女子50米自由泳 | 铜牌 |\n以上就是张雨霏运动员在巴黎奥运会上的获奖情况。\n\n"}
运动员信息组件
组件里使用了一个API节点,api调用的是自己服务器后端接口,通过接口写逻辑查询数据库。
关键还是设置好api接口接收的参数name运动员参数,这个参数的是被由大模型进行识别和赋值。
奖牌排行榜组件
组件里使用了一个API节点,api调用的是自己服务器后端接口,通过接口写逻辑查询数据库。
关键还是设置好api接口接收的参数country国家和type奖牌类型参数,这个参数的是被由大模型进行识别和赋值。
知识库方式
知识库这里,控制切换的内容长度也是一个非常关键的地方。
prompt
#角色设定
你是一名2024巴黎奥运会运动员获奖信息查询小助手,
你能够根据用户输入的运动员名称执行知识库查询信息,以及各维度奖牌排行榜信息。
#知识库能力
1、根据用户输入的运动员名称,执行知识库查询。
2、根据用户输入的排行榜,执行知识库查询。
3、知识库返回数据进行显示。
4、用户输入查询排行榜、奖牌榜等信息时,调用知识库【2024年巴黎奥运会各国运动员奖牌数量排行榜】文件查询
#要求与限制
1.输出内容的合法合规,不能具有敏感信息
2.要求解析markdown格式表格,并以表格方式显示信息
3.输出格式为一个表格
#运动员输出格式
XXX是一名XX国家XX运动员
|比赛项目|奖项类型|查看详情|
[头像]()
#排行榜输出格式
|运动员|国家|奖牌数量|
切片断层
这里使用【张雨霏】运动员作为例子,因为获奖奖牌数量多,所以,她的内容也是会比较多,
这样在默认切片情况下,在命中测试时是会出现断层,从而无法准确查询到所有信息。
- 下面是默认切片效果
- 下面是根据#井号进行整个运动员信息切片效果
模型输出
刚开始选择Speed速度上有优势的问答模型,发现会把部分信息混淆输出,导致数据不准确。
这个【美国昆西·霍尔】关键词,出来两个参考切片,查看内容发现【昆西】这个关键词一样。
为了确保准确性,选择了模型【ERNIE-4.0-8K】,之后测试可以准确输出。
正则表达式
由于按运动员名称进行存储文件,上传到知识库时太多了。
因此,把所有运动员信息保存到同一个txt文档,然后通过#井号符号进行切分。
确保每个切片都是唯一一个运动员的所有信息,所以增加到5000个字符切分,基本能满足了。
整个文件作为切片
由于这个文件是各国奖牌排行榜数据,所以不能有断层,所以这里就用了整个文件作为切片。
给文件增加一些关键词,增加命中率,比如:排行榜、中国排行榜、各国排行榜等等
排行榜
目前只上传了前20名,获得奖牌数量的排行榜。
|运动员|国家|奖牌数量|
|张雨霏|中国|6|
|凯莉·麦基翁|澳大利亚|5|
|莫莉·奥卡拉汉|澳大利亚|5|
|莱昂·马尔尚|法国|5|
|丽根·史密斯|美国|5|
|托丽·赫斯克|美国|5|
|阿里亚妮·蒂特马斯|澳大利亚|4|
|丽贝卡·安德拉德|巴西|4|
|萨默·麦金托什|加拿大|4|
|格蕾琴·沃尔什|美国|4|
|凯蒂·莱德基|美国|4|
|凯特·道格拉斯|美国|4|
|西蒙娜·拜尔斯|美国|4|
|冈慎之助|日本|4|
|杨浚瑄|中国|4|
|埃玛·麦基翁|澳大利亚|3|
|凯尔·查默斯|澳大利亚|3|
|马修·理查德森|澳大利亚|3|
|梅格·哈里斯|澳大利亚|3|
|金优镇|韩国|3|
感谢阅读,本篇文章分享就到这里啦!
希望这篇文章分享的知识库和组件的经验能够给你一点小灵感。
体验地址
我在百度智能云千帆AppBuilder开发了一款AI原生应用,快来使用吧!
「2024巴黎奥运会运动员获奖信息」:https://appbuilder.baidu.com/s/lObZZwY5
手机端体验地址:https://wx.baeapps.com/api/ai_apaas/v1/wx_program/share?share_code=app7kD9trRXfbCLI2Q3WPpU
推荐文章
【千帆AppBuilder】你有一封邮件待查收|未来的我,你好吗?欢迎体验AI应用《未来信使》
【千帆平台】零代码构建AI人工智能应用,全网都在喊话歌手谁能应战,一键AI制作歌手信息查询应用
【千帆平台】使用AppBuilder零代码创建应用,然后通过OpenAPI方式调用应用
【千帆平台】使用AppBuilder零代码创建应用,Excel表格数据转为Markdown格式文本
【千帆平台】AppBuilder工作流编排新功能体验之创建自定义组件
【千帆平台】AppBuildert工作流编排新功能体验之创建自定义组件
【千帆平台】使用AppBuilder三步手搓应用创建精准多轮对话agent之K12互动式练习题
【千帆平台】百度智能云千帆AppBuilder应用探索益智游戏之猜物小游戏
【人工智能】百度智能云千帆AppBuilder,快速构建您的专属AI原生应用
【人工智能】千帆平台创建和使用我的数据集,为什么需要数据集,有什么作用
【千帆平台】使用千帆大模型平台创建自定义模型调用API,贺岁灵感模型,文本对话