DataAgent解析

DataAgent解析
mengnankkzhou工作流解析
整体工作流的流程图:
1 | flowchart TD |
意图识别
首先先会进入意图识别,识别我们这次对话是不是跟询问数据有关,以此来过滤一些不需要我们走工作流的查询。
主要是调用了一次大模型进行意图识别,识别成功就路由到我们的工作流,失败就是一次闲聊,给一个兜底的默认回复
证据召回
这个主要是好几个节点的完成
主要是我们先进行一次简单的重写
主要是写入用户的历史会话+最新的一轮用户输入。然后发送给大模型。
然后会在这里进行部分证据的召回
先会获取到对应的获取业务知识和智能体知识文档,这个主要是知识库+业务知识,然后会对他们进行一次合并。
//TODO 如何召回各个证据
查询重写
这里主要是根据我们召回的证据,去翻译+重写优化我们的查询的!
然后我们的LLM的输入就是历史消息+用户输入+证据
然后转换回来
召回
主要是先进行表的召回,找到我们查询需要的数据源!
步骤是构建过滤表达式->然后执行召回,然后我们是先把数据库转为文档,然后批量导入数据库,这就是我们在数据源初始化所做的操作。
- 按 datasource 召回 table 文档
- 提取表名后批量取对应 column 文档
然后选择了我们召回的表,我们还需要进行通过外键关系来确定我们的表的关系,这里就是我们最重要的召回,就是我们表的召回!
然后我们的外键关系主要分为两种,一种是物理外键,一种是逻辑外键
物理外键来自:table 文档 metadata 的 foreignKey
逻辑外键是我们自己维护的,格式化后合并进table 文档 metadata 的 foreignKey
然后我们就要进行语义模型的匹配!
在完成了外键表的关系筛选后
- 按
agentId + tableNames查询语义模型 PromptHelper.buildSemanticModelPrompt(...)生成语义提示- 写入状态
GENEGRATED_SEMANTIC_MODEL_PROMPT,供 Planner 与 SQL 生成使用
评论
匿名评论隐私政策
TwikooValine
✅ 你无需删除空行,直接评论以获取最佳展示效果







