使用LangGraph和CrewAI构建可靠的多代理客户支持聊天机器人来处理银行业务。第一部分

今天,具有巨大自然语言处理和生成能力的LLM已经让我们惊叹不已。每个人都在尝试利用它来自动化业务流程,在某种方式上提高工作效率。在开发LLM应用程序方面最重要的贡献者是多代理LLM框架,例如AutoGen、Langchain、LangGraph、MetaGPT、AutoGPT、CrewAI等等,以完成更大的工作。

我们将使用Lang chain, LangGraph和CrewAI。有数百篇文章解释了如何使用框架、代理和定义工作流程。然而,当涉及到使用开源LLM和集成这些代理时,开发者会遇到许多挑战,特别是在处理人员循环或代理之间的交互、内存和聊天历史处理时。我们将使用由ChatGroq托管的llama3开源LLM来保持开发或学习成本最低。通过Lang chain,这个模型或模型提供者可以根据您的喜好进行替换,而不会带来太多额外开销。

本文是在努力解决这些挑战和如何整合LangGraph代理和CrewAI代理以完成更大更复杂的工作。

使用情况

我们将开发一个银行客户支持工作流程,用来处理-

一般用户有关银行服务或与银行或关联机构等信息相关的查询。

2) 用户可以查询他的最近一次贷款申请或申请新贷款。

框架

  1. 我们将使用Groq APIs与开源LLM模型“llama3-8b-8192”
  2. 我们还将使用Meta提供的FAISS向量库进行索引创建和相似性搜索,然后将数据存储在本地。

建筑

我们的聊天机器人系统由4个CrewAI代理、LLM和一个向量存储库(FAISS)组成。

对于一般银行服务和产品咨询,我们使用RAG来访问包含与银行相关信息的PDF/txt文件等。

对于贷款申请,我们使用代理LLM方法。

在最简单的形式下,整体架构如下-

Customer support RAG based multi agent LLM system

代理商角色-

  1. 路由代理:- 这个CrewAI代理是主要的监督代理,负责处理用户发送的所有消息,并将每条消息路由到最适合处理它的子代理。
  2. AI助理代理:— 这是基于RAG的客户支持代理,它可以访问银行服务、地点、分支机构、知识库等等,并且可以处理与银行相关的用户问题。
  3. 认证代理人:— 这是处理用户认证的认证代理人。在用户可以查询他之前的贷款申请或申请新贷款之前,用户需要通过他的手机和OTP进行认证。
  4. 贷款经理代理:该代理处理之前的贷款申请状态查询或新贷款申请处理。此代理只能在用户经过身份验证后接管流程。

在这个帖子系列中,我们将讨论主要组件及其与其他组件的交互。 RAG代理及其实现不在本文的讨论范围内,将在单独的文章中讨论。 顶层Python代码如下-

第27–30行 - 我们创建LangGraph状态,其中包含“MessagesState”持有所有过去消息列表

user_info — 经过身份验证的用户信息对象。

路线 - 当前代理正在处理用户消息。

问题 — 当前用户消息。仅供CrewAI代理人使用。

第32至86行:在这里,我们使用CrewAI代理和节点创建Lang图工作流,并定义边缘案例。当我们编译工作流时,聊天记录将通过使用“检查点”来保存。

第88行 - 结束:使用用户消息流进行图形流测试。

请继续关注本系列的第二部分。我们将在第二部分的文章中介绍路由器兼监管代理设计及相关代码。

2024-09-24 04:17:23 AI中文站翻译自原文