V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
smalltong02
V2EX  ›  程序员

使用大语言模型构建智能客户支持代理的测试。

  •  
  •   smalltong02 ·
    smalltong02 · 180 天前 · 1272 次点击
    这是一个创建于 180 天前的主题,其中的信息可能已经有所发展或是发生改变。

    继上次对 Llama-3-8B 和 Phi-3-mini 模型进行指令跟随测试之后,鉴于本地 AI 工具箱已经比较完备,所以决定对模型进行更加复杂的测试。

    这次我打算使用大语言模型加上 AI 工具箱中的工具,来构建一个智能客户支持代理。这个代理首先由大语言模型来驱动,对客户的输入进行语义理解之后,可以智能选择工具箱中的工具来为客户服务并解决问题。

    目前智能客户支持代理可能使用的工具包括:

    1. 本地知识库 - 根据公司产品的内部文档进行构建。
    2. 搜索引擎 - 可以从互联网或公司内部网站上进行搜索。
    3. 功能调用 - 提供一组函数供模型调用,使模型可以实际执行一些功能。

    这次的 Demo 将从头构建一个 PS5 的智能客服,并配备本地知识库、搜索引擎和功能调用工具。大语言模型将使用 Gemini-1.5-Pro 。之所以没有选择开源模型 Llama-3 等在本地部署,是因为测试效果很不理想,目前只有闭源大模型才能很好的完成这种复杂任务。

    下面将演示它是如何工作的:

    一、首先为智能体创建一个产品知识库

    知识库名字为 PS5, 里面存放两个演示文档"PS5 Start Guide"和"PS5 Safety Guide": image

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

    image

    二、创建 PS5 智能客户支持智能体

    加载大语言模型 Gemini-1.5-Pro 并且输入产品的描述: image

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

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

    最后加载代理配置: image

    三、进行智能客户支持智能体的测试

    好了,现在万事已经齐备,让我们开始测试吧!

    首先,别一上来就直奔主题,让我们先和智能体闲聊几句,拉拉近乎。它高兴了才能为我们更好的服务您说是不?:)其实也是想拉长对话历史,看看模型会不会出现问题。

    我先提了三个问题:

    1. Hello, Nice to meet you.
    2. please introduce yourself first.
    3. Can you introduce your products? 智能体回答也是中规中矩,这些问题它并没有使用任何的工具,仅仅靠产品描述和客服的定位来回答了我们的问题:

    image

    第四个问题是:

    1. Are there any new products from PlayStation in 2024?

    智能体发现问题已经超过了它知识的时间范围,所以选择使用搜索引擎 Bing 的结果来回答了问题:

    image

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

    第五个问题是:

    1. Does the PS5 have text-to-speech feature?

    这个问题估计也不在智能体的知识范围内,所以它使用知识库 PS5 的结果来回答了问题:

    image

    image

    第六个问题我需要提交一个修理单,因为我的 PS5 手柄坏掉了。

    1. My PS5 controller is broken. There's no response when I press the shoulder button. Please help me arrange for a repair.

    智能体收到请求后,它首先让我完善了一下购买信息:姓名,Email ,PS5 的序列号,以及购买时间等等:

    image

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

    image

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

    image

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

    image

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

    这里也提供一个全部流程的视频演示: https://youtu.be/GU5yvZiPXFs

    也欢迎关注我的项目: https://github.com/smalltong02/keras-llm-robot

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2395 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:45 · PVG 23:45 · LAX 07:45 · JFK 10:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.