Llama3 + CrewAI + Groq 实现邮件智能客服
00 分钟
2024-4-26
2024-5-1
type
status
title
summary
slug
Created
Apr 26, 2024 01:37 PM
category
tags
Date
icon
password

一、唠嗑

如果说AI的到来,哪个行业最有危机感,我觉得电商客服应该是榜上有名的。目前像淘宝、京东其实也是先用AI客服进行回复,客户不满意才使用人工客服,从而达到降本增效的目的。
 
而本次,就是使用 Llama3 + CrewAI + Groq  实现一个小的邮件智能客服,即实现邮件的一个智能回复。这里也要说明下,关于用程序代码读取邮件,发送邮件的操作,此次并没有说明,主要是着重讲述AI这块。
 

二、技术栈剖析

此次主要涉及三个核心技术,分别是 Llama3、CrewAIGroq
 
Llama3 是一个Meta最近刚发布的开源大模型,一共有 Llama3-8BLlama3-70B两个型号,关于它的详细介绍,我在之前的《关于Llama 3 AI大模型的几点总结》有过说明,这里不再赘述。
 
CrewAI 则是基于LangChain 开发的一个开源Agent框架,旨在编排和协调多个自主AI Agent进行团队合作。
Groq 是一家初创公司,但同时也是AI芯片领域的一匹黑马。Groq之所以爆火,是因为他们推出了一款全新的 AI 芯片 LPU(Language Processing Unit),宣称做到了“地表最强推理”——在 Groq 上运行大模型的推理速度,较英伟达 GPU 提高 10 倍,而成本只有其十分之一。
 
Groq的成本是否真的能降低那么多我不太清楚,但是它的推理速度是真的快!我自己实测的话大概每秒能达到300Token,相比之下,ChatGPT-3.5每秒生成速度仅为40个token,速度这块直接秒杀!
notion image
 
 
本次的核心流程其实也非常简单,就是通过将邮件回复拆成三个步骤,分别是邮件分类、信息检索和邮件总结回复,每一个步骤由Llama3完成,Groq主要是一个提供API的作用,最后使用CrewAI编排这三个步骤即可。
notion image
 

三、项目实战

3.1 注册Groq账户

实现上面的智能客服,第一步我们需要注册一个Groq的账号,注册完毕后跳到这个页面申请一个 API Key
notion image
需要注意的,这一步需要魔法辅助,并且API Key只会展示一次,所以记得保存!
 
目前 Groq 是有免费版本的,只不过在调用方面有一定限制,但是也足够我们进行简单的测试了
notion image
 

3.2 创建Agent

CrewAI 中,Agent就是一个我们设定的角色,它能够为我们执行任务,做出决策并与其他Agent进行通信。
 
如果你用过Coze或通义千问,这玩意其实就是CozeAI Bot,以及通义千问里面的智能体
 
前面提过,我将邮件回复拆成三个步骤,分别是邮件分类、信息检索和邮件总结回复,这其实就分别对应三个Agent。
 
为什么要拆成三个Agent,而不是一个Agent搞定呢?
 
我个人的看法是,如果你的步骤或者提问越精细,则AI的准确率会越高,一个Agent的话,AI要干的事情太多,不一定能给出一个很好的答案。
 
3.2.1 邮件分类Agent
notion image
将邮件分类的目的是方便AI根据不同分类提供不同的话术,下面会讲到。
 
Agent参数解析如下:
  • role:Agent扮演的角色
  • goal:Agent的目标
  • backstory:为Agent提供背景
  • llm:Agent使用什么大模型
  • verbose:调试开关,如果为True,表示查看CrewAI执行时的详细信息
  • allow_delegation:是否允许将任务委派给其他Agent
  • max_iter : Agent执行任务的最大迭代次数
  • memory:是否允许Agent拥有“记忆”
  • step_callback:回调函数
 
3.2.2 信息检索Agent
notion image
 
这个Agent比上面的多了一个 tool 参数,这个参数的作用是指定Agent可以使用的工具
 
因为在邮件回复中,有一些内容可能涉及网络内容检索,而这里的 search_tool 其实就是一个网络检索工具,使用的是 DuckDuckGo 浏览器的检索功能。
 
3.2.3 邮件回复Agent
notion image
 
这里其实就凸显出拆分成多个Agent的好处,可以根据不同的邮件分类,使用不同的回复方式。
 

3.3 创建Task

CrewAI 中,Task就是把任务分配到对应的Agent,Task里面封装了Agent执行该任务所需的所有信息,可以简单理解为我们平时输入的提示词(会更完整)
 
3.3.1 邮件分类Task
notion image
 
Task参数解析如下:
  • description:本次任务描述
  • expected_output:本次任务期待输出什么内容
  • output_file :输出到文件
  • agent :由哪个Agent完成
 
这里我们强调只输出一个分类,可以避免AI生成太多无关内容
 
3.3.2 信息检索Task
notion image
 
这里比上面多了一个参数:context,这就是我们常说的上下文,因为在这一环节,信息检索任务需要根据前面得到的邮件分类进行特定内容的检索
 
3.3.3 邮件回复Task
notion image
 

3.4 任务编排

notion image
 
完成上面的步骤后,再通过Crew实现一个Task和Agent的编排,整体功能基本就大功告成了!
 

3.5 实际效果

我的邮件内容如下:
 
执行之后的效果如下:
第一个任务,Llama3模型会把邮件归到 customer_feedback 分类,总体还是准确的
notion image
 
执行第二个任务,可以看到这里进行了一个检索,问“how to respond to positive customer feedback”,也就是“如何回应客户的积极反馈”
notion image
 
执行第三个任务,可以看到最终回复如下:
notion image
 
整体翻译过来就是:
 
可以看到整体的效果还是OK的!
 

3.6 一些不足

首先第一点就是这只是一个比较基础的例子,单纯为了方便大家理解如何通过 AI 实现智能回复,它并不是一个可以实际投入使用的成品。
 
第二就是大家可以看到它是使用英文回复的,这是因为Llama3大部分是使用英文语料训练的,如果需要中文回复的,就得更换其他大模型了
 

四、小小总结

本次采用 Llama3 + CrewAI + Groq 实现了一个小型的邮件智能客服,从回复的内容看,整体效果还是OK的,希望对这方面感兴趣的朋友有一些启发。
 
关于这个案例的源码,公众号(AI技术巫)回复“智能客服即可获取完整源代码,最后如果本文对你有所帮助的话,希望多多点赞支持!
 
我是AI技术巫,欢迎关注我,掌握第一手AI资讯与技巧!
notion image