继上次对 Llama-3-8B 和 Phi-3-mini 模型进行指令跟随测试之后,鉴于本地 AI 工具箱已经比较完备,所以决定对模型进行更加复杂的测试。
这次我打算使用大语言模型加上 AI 工具箱中的工具,来构建一个智能客户支持代理。这个代理首先由大语言模型来驱动,对客户的输入进行语义理解之后,可以智能选择工具箱中的工具来为客户服务并解决问题。
目前智能客户支持代理可能使用的工具包括:
- 本地知识库 - 根据公司产品的内部文档进行构建。
- 搜索引擎 - 可以从互联网或公司内部网站上进行搜索。
- 功能调用 - 提供一组函数供模型调用,使模型可以实际执行一些功能。
这次的 Demo 将从头构建一个 PS5 的智能客服,并配备本地知识库、搜索引擎和功能调用工具。大语言模型将使用 Gemini-1.5-Pro 。之所以没有选择开源模型 Llama-3 等在本地部署,是因为测试效果很不理想,目前只有闭源大模型才能很好的完成这种复杂任务。
下面将演示它是如何工作的:
一、首先为智能体创建一个产品知识库
知识库名字为 PS5, 里面存放两个演示文档"PS5 Start Guide"和"PS5 Safety Guide":

对文档向量化并存储到向量数据库中:


二、创建 PS5 智能客户支持智能体
加载大语言模型 Gemini-1.5-Pro 并且输入产品的描述:

测试中不使用语音输入和输出,所以这里什么都不选:

选择刚刚创建的知识库 PS5 ,搜索引擎使用 Bing (如果要在内网搜索,需要实现内网的搜索引擎),激活 Function Calling 功能。测试中仅仅使用了函数 "submit_warranty_claim(caption: str, description: str)" 用来提交修理单:

最后加载代理配置:

三、进行智能客户支持智能体的测试
好了,现在万事已经齐备,让我们开始测试吧!
首先,别一上来就直奔主题,让我们先和智能体闲聊几句,拉拉近乎。它高兴了才能为我们更好的服务您说是不?:)其实也是想拉长对话历史,看看模型会不会出现问题。
我先提了三个问题:
- Hello, Nice to meet you.
- please introduce yourself first.
- Can you introduce your products? 智能体回答也是中规中矩,这些问题它并没有使用任何的工具,仅仅靠产品描述和客服的定位来回答了我们的问题:

第四个问题是:
- Are there any new products from PlayStation in 2024?
智能体发现问题已经超过了它知识的时间范围,所以选择使用搜索引擎 Bing 的结果来回答了问题:

也可以查看 Bing 的搜索结果,进行检验:

第五个问题是:
- Does the PS5 have text-to-speech feature?
这个问题估计也不在智能体的知识范围内,所以它使用知识库 PS5 的结果来回答了问题:


第六个问题我需要提交一个修理单,因为我的 PS5 手柄坏掉了。
- My PS5 controller is broken. There's no response when I press the shoulder button. Please help me arrange for a repair.
智能体收到请求后,它首先让我完善了一下购买信息:姓名,Email ,PS5 的序列号,以及购买时间等等:

于是我在下一轮的对话中,提交了这些信息:

智能体收到这些信息后,调用函数 "submit_warranty_claim(caption: str, description: str)" 帮我提交了修理单:

令人欣喜的是它还把我最后提供的信息加到了 Email 中,生成了修理单号 317150 ,并最终发给了 [email protected]:

总结:通过这次测试发现,对于这种稍微复杂一点的使用情况,非常考验模型的基础能力。这次测试的难点主要是自动选择合适工具,正确生成工具的调用,以及使用函数调用时可以正确的生成参数。期待下次有可以在本地部署的开源语言模型,也可以完成这个任务。:)
这里也提供一个全部流程的视频演示: https://youtu.be/GU5yvZiPXFs