基于Agent的大语言模型应用的开发

Agent

是大语言模型应用的单个功能实现的基础节点

如:

  • Select Agent:选择对话应该朝哪个阶段发展
  • Retrieve Agent:进行知识库检索

状态管理

不同对话阶段注入不同的提示词,通过大语言模型判断来进行阶段转移(点菜对话系统从帮用户推荐菜品到询问用户要求)

Memory

类比于人脑的记忆,是一种缓存机制,储存到了查询结果、历史记录、对话状态等,可以持久化,并有一定的淘汰机制

知识图谱搜索

KG知识图谱推理可以使得LLM生成的内容更具有逻辑性,LLM在理解用户意图以后转化为图数据库的查询语句

基于LLM的意图识别、关键字提取

依赖强大的提示词工程,并限定输出的格式

例子:设计一款AI点餐系统的工作流算法

  • Welcome-agent通过调用用户偏好分析、用户菜品推荐接口,获得用户历史偏好,在前端界面展示菜品的同时生成欢迎语
  • Chat Agent通过Dialogue Switch Agent意图识别,确定用户要进行点菜以后,将对话状态设置为用户加菜中,并将记忆中的「用户要求列表」初始化
  • Chat Agent听取用户的要求,Query Generating Agent通过LLM提示词工程的方式,得出可能的菜系,并夹带用户的query,由Retrieve Agent送到向量数据库进行过滤或者搜索
  • 如果匹配的菜品的相关度低于阈值,则继续询问,并将用户的要求继续加入记忆中的「用户要求列表」
  • 重复3、4步骤,直到匹配的一个或者多个菜品相关度高于阈值,则前端卡片展示,用户确认后,则将记忆中的「菜品」设置为用户选中的菜品的详细信息,对话状态转为「口味要求询问」,初始化「口味要求列表」
  • Chat Agent继续询问用户要求,并结合菜品的口味,如果无法实现则驳回用户,并让Query Generating Agent根据菜品、要求重新生成query查找新的菜品推荐给用户,用户通过点击菜品确认后则重复当前步骤;若用户提的要求可以实现,则添加到记忆的「口味做法要求列表」中
  • Dialogue Switch Agent判断用户是否确认加菜或者放弃点菜,如果用户确认加菜,则将requirement和菜品介绍一起放入Order Agent生成订单并反馈给后厨,并将选择的菜品口味加入用户历史数据库或者进行在线学习,重复步骤2