在上一节中,您看到了LLM如何与外部数据集进行交互。现在让我们看看它们如何与外部应用程序进行交互。为了激发需要这种LLM增强的问题和用例的类型,您将重新审视之前在课程中看到的客户服务机器人示例。在这次浏览中,您将查看需要的集成,以允许应用程序从头到尾处理客户的退货请求。在这次与ShopBot的客户互动中,您将查看让应用程序能够处理退货请求所需的集成。在这个对话中,客户表示他们想要退回一些购买的牛仔裤。ShopBot回应并要求提供订单号,客户随后提供了订单号。
然后,ShopBot在交易数据库中查找订单号。它可以通过使用您在先前视频中看到的一种rag实现来执行此操作。在这种情况下,您可能会通过向后端订单数据库发送SQL查询而不是从文档语料库中检索数据来检索数据。一旦ShopBot检索到客户的订单,
下一步是确认将要退还的物品。机器人询问客户是否要退还除牛仔裤以外的任何物品。在用户陈述了他们的答案后,机器人向公司的运输合作伙伴请求退货标签。
机器人使用运输公司的Python API发出请求标签。ShopBot将通过电子邮件向客户发送运输标签。它还要求他们确认其电子邮件地址。
客户回复他们的电子邮件地址,机器人将此信息包含在对运输公司的API调用中。完成API请求后,Bartlett通知客户标签已通过电子邮件发送,对话结束。
这个简短的示例仅说明了可能需要LLM具备的一组可能的交互,以驱动应用程序。
一般来说,将LLM连接到外部应用程序允许模型与更广泛的世界互动,扩展了它们在语言任务之外的效用。正如ShopBot示例所示,LLM可以用于触发操作,当给予它们与API互动的能力时。
LLM还可以连接到其他编程资源。例如,可以启用模型将精确的计算纳入其输出的Python解释器。
重要的是要注意,提示和完成是这些工作流程的核心。应用程序将响应用户请求而采取的操作将由LLM确定,LLM充当应用程序的推理引擎。
为了触发操作,LLM生成的完成必须包含某些重要信息。
首先,模型需要能够生成一组说明,以便应用程序知道要执行哪些操作。这些说明需要易于理解并与允许的操作相对应。例如,在ShopBot示例中,重要的步骤包括:检查订单ID、请求运输标签、验证用户电子邮件以及向用户发送标签。
其次,完成必须以更广泛的应用程序能够理解的方式进行格式化。这可以是特定的句子结构,也可以是在Python中编写脚本或生成SQL命令。例如,以下是一个SQL查询,用于确定数据库中是否存在订单。
最后,模型可能需要收集允许其验证操作的信息。例如,在ShopBot的对话中,应用程序需要验证客户用于下订单的电子邮件地址。需要用于验证的任何信息都必须从用户处获取并包含在完成中,以便传递给应用程序。
结构化提示对于所有这些任务都很重要,可以在生成的计划质量或所需输出格式规范的遵守方面产生重大差异。
Reference
https://www.coursera.org/learn/generative-ai-with-llms/lecture/Jd1yD/interacting-with-external-applications