functioncall与数据库之间的问题 #770
Labels
No Label
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: HswOAuth/llm_course#770
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
老师好,我想为面试准备个项目,现在想实现4个功能,1,2,3,代码我写了,我主要是用function call,streamlit 写的 ,目前报错了,但我写的也有点简单,有的不知道怎么写,能远程帮忙看看,指导一下吗?
后台 实现:
先做意图识别,做完后召回三种不同意图识别的表,一种召回是根据表名,你需要去维护知识库,然后告诉大模型表的关键词,比如我说工单表,缩写是SR,然后他用SR去匹配表名,召回回来几个表,比如说3个;第二种 根据注释召回3个;第三种 根据常用的说法,比如说用户画像的那堆表,然后召回3个表。这三个召回,召回回来9张表,选择top3作为推荐的前3,top3可以根据这9张表的使用情况,下游使用比较多的,重要性就比较高,使用频率就比较高,然后把它放在前边去top。
大部分场景是根据注释去匹配,但是有个问题,好多表的注释不规范,召回的准确度就大打折扣,为了提高召回准确度,要做召回的增强,就是RAG ,需要给表做预处理,把注释给加上标签,如果注释写错了,把它改对,如果注释写的不够完善,在注释里做个完善,标签丢进去。
这样的话,相当于三个意图的召回,尽可能的准,做排序,排序之后取top3或者top5,取完之后,再去取元数据里面取一些这个表对应的一些信息,如:表几点产出,是不是分区表,最新分区是多少,等等,这些信息给他上赏,然后返回这些信息。
2. 找口径:
用户输入sql需求,后台分析用到的表并编写出sql
3.智能取数:
在2的基础上,查出数据
4.诊断分析:
诊断分析是最难的,因为即使能够提供知识库加数据特征,再加prompt的方式,可能就是让大模型学习到基础的知识,但是一般到深水期之后,业务需要一些更深入的一些诊断分析,所以这个比较难,我们现在也没有做的特别好,里面用了很多的规则,它的意图可能触发到某一个链路上,这个链路就会尽量把它的这个问题确定下来,确定成什么样的分析,我们把以前的经验那些知识库等让大模型再学习,让它生成一个可视化的结果,有图表有文字,分析一下,比如昨天淘宝首页某某渠道的订单量涨了或者跌了,为啥涨为啥跌呀,但这只是比较基础的分析,比如我是一个刚上岗的客服,返回的结果可能有用一些,如果是资深人员,可能就解决不了问题,所以还在探索。