load方法
直接返回text中的数据(需要使用jinja2进行变量替换)
DialogueEngine
结束当前的任务流程(继续循环)
先将对象设置到state聚焦对象focused_object数据上
判断是由有填槽数据
/api/chat接口获取前端数据
set_slots命令:直接获取当前命令的slots更新到用户任务的slot属性中不需要创建任务
是否需要轨道澄清?
知识问答/knowledge轨道
返回闲聊最终答案list[BotMessage]
判断是order订单/products商品对象
cancel_flow命令: 删除当前的用户任务 创建system_task_canceled系统任务
type = start
没有
返回一个ActionCall(结束循环)
对象object类型
RAGProvider/RAG检索相关问题
将数据进行修改 发送给DialogueService
6.返回一个类型为ProcessResult的数据结果给服务引擎模块进行处理
看下是否可以尝试填槽
不能
user_mesage
闲聊/chitchat轨道
在lifespan中进行 httpx实例初始化/ db数据库的连接
5.将本轮的pending_turn存储到最新会话session的的turns属性中
返回list[BotMessage]
通过
MySQL数据库
前端
外层循环:执行内存循环获取 ActionCall
不是
4.将返回的messages结果存储到state状态的pending_turn的assistant_messages属性中
返回KnowledgeChunk
更新当前任务上下文的step_id为next的值(继续循环)
FlowExecutor:采用双层循环嵌套的设计来执行的内层循环:负责推进流程外层循环:调用内层循环推荐流程执行
判断数据的槽位校验是否通过
order对象:创建一个font color=\"#4669ea\
resume_flow命令:如果有未完成任务 - 创建system_task_interrupted系统任务没有未完成任务 - 创建一个system_task_resumed的系统任务
ActionRunner:获取从循环中得到的 action 调用ActionRegistry内部的Acion对象进行执行
返回知识轨道最终答案list[BotMessage]
KnowledgeHandler
传入sender_id
ProcessResult
有
1.text中的数据(需要使用jinja2进行变量替换)2.还需要prompt获取提示词模板3.调用大模型生成提示词
FAQProvider/FQA检索相关问题
使用Depends()依赖注入获取DialogueService对象实例
KnowledgeResponder:1.获取prompt提示词模板2.将提示词模板中的变量进行替换3.执行大模型 返回最终的BotMessage
save方法
保存DialogueState数据
ChitchatResponder:1.获取prompt提示词模板2.将提示词模板中的变量进行替换3.执行大模型 返回最终的BotMessage
判断ActionCall的action_name是否是_listen
判断是否存在设定好的校验失败提示词
1.只需要prompt获取提示词模板2.调用大模型生成提示词
执行privider实例 方法 retrieve返回从对应的知识库中检索的数据KnowledgeChunk
TaskHandler
OrderAPIProvider/获取订单信息
直接将当前上下文的step_id设置为next的属性值(继续循环)
type = action
ChitchatHandler
user_mesage / state
type= collect
判断是走哪一条轨道
文本text类型
业务Action
product对象:创建一个SetSlotsCommand命令slots={ \"product_id\": state.focused_object.id}
start_flow命令: 根据flow创建对应的用户任务如果有未完成任务 - 创建system_task_interrupted系统任务没有未完成任务 - 创建一个system_task_started的系统任务
ClarifyResponder 进行任务澄清
是
ActionResponse根据传入的类型mode进行判断需要执行什么样的逻辑返回
任务流程task 轨道
mode =rephrase
KnowledgeApiProvider/获取商品信息
能
type=end
ActionRegistry
判断用户输入的类型
mode=generate
启动一个system_collect_infomation的系统任务(继续循环)
mode=
mode= static