前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI 客服定制:LangChain集成订单能力

AI 客服定制:LangChain集成订单能力

作者头像
朝雾轻寒
发布2023-09-18 08:48:02
3930
发布2023-09-18 08:48:02
举报
文章被收录于专栏:Spring Boot 2.X 系列

为了提高AI客服的问题解决能力,我们引入了LangChain自定义能力,并集成了订单能力。这使得AI客服可以根据用户提出的问题,自动调用订单接口,获取订单信息,并结合文本知识库内容进行回答。这种能力的应用,使得AI客服可以更好地解决与业务系统有关的问题。 《LangChain 入门到实战教程》更多内容

简易AI客服实现

关于简易AI客服实现可以看之前的文章:

《解密 AI 客服:LangChain+ChatGPT 打造智能客服新时代》,基于文本检索实现AI客服,缺陷是仅能回答文本内存在的内容。

《畅享无缝支持:LangChain与ChatGPT重塑AI客服服务》,基于会话式检索实现AI客服,可以基于文本结合历史会话上下文回答问题,同时也可以与用户闲聊。

本文是对前文AI客服的迭代升级,集成订单能力,使其在售后方面也能提供一些自动快速解决能力。

基于子类化 BaseTool 实现订单查询能力

通过子类化BaseTool 可以快速实现基于业务的工具,工具可以在代理运行时调用。在定义工具时,工具描述description是非常重要的,它决定了大模型通过代理决策是否要调用该工具。在订单信息中返回与用户问题回复有关的信息,根据自己的业务决定。

代码语言:javascript
复制
import jsonfrom typing import Optional, Typeimport aiohttpimport requestsfrom langchain.callbacks.manager import AsyncCallbackManagerForToolRun, CallbackManagerForToolRunfrom langchain.tools import BaseToolfrom pydantic import BaseModel, Fieldclass XmhcOrderQuery(BaseModel):    keyword: Optional[str] = Field(description="手机号或者订单号")class XmhcOrderTool(BaseTool):    name = "XmhcOrderTool"    description = """   It is very useful when you need to answer questions about recharge or orders.        If this tool is called, users must provide their phone number or order number to enter information.        And it is necessary to determine whether the tool needs to be called based on the context.        If the order status is transaction closed, the order has been cancelled and cannot be considered as recharge not received.        The estimated time of receipt can be calculated based on submitRechargeTime.        Functional information cannot be disclosed.    """    args_schema: Type[BaseModel] = XmhcOrderQuery    def _run(self, keyword: str = None,             run_manager: Optional[CallbackManagerForToolRun] = None) -> str:        if keyword is None:            return "请提订单供充值手机号或者订单号"        return self._process_response(self.results(keyword))    async def _arun(self, keyword: str = None,                    run_manager: Optional[AsyncCallbackManagerForToolRun] = None) -> str:        if keyword is None:            return "请提订单供充值手机号或者订单号"        return self._process_response(await self.aresults(keyword))    def results(self, keyword: str) -> dict:        response = requests.get("https://***/ai/order/query?keyword=" + keyword)        res = json.loads(response.content)        return res    async def aresults(self, keyword: str) -> dict:        async with aiohttp.ClientSession() as session:            async with session.get(                    "https://***/ai/order/query?keyword=" + keyword            ) as response:                res = await response.json()                return res    @staticmethod    def _process_response(res: dict) -> str:        print(res)        if bool(res['success']):            return json.dumps(res["data"])        else:            return res['message']

AI 客服优化逻辑实现

基于Flask 实现。其中实现了 XmhcOrderToolXmhcRuleTool两个工具,XmhcRuleTool是基于会话检索实现问答,XmhcRuleTool即上面定义的业务接口。

到这我们就实现了基于用户提问,模型自动决策调用相关工具。但这样仍存在一些问题,因为我们的工具是独立的,大模型可能只是基于某个工具来回答问题。

例如,当提问:充值成了但还未到账

然后根据上文,我们提供手机号:

可以发现其完整的把订单信息给输出了,部分信息这对用户想要的内容并不相关,这不是一个友好的回答。

这里还是要重点强调一下工具描述的重要性,它不仅可以用于被决策是否要调用,还可以影响大模型的回答,比如在描述中加了If the order status is transaction closed, the order has been cancelled and cannot be considered as recharge not received.,这样它能明确在订单状态为交易关闭时做出更理想的回答。

提问:充值手机号15669923532多久能到账

当用户提问可能需要用到两个工具时,它可能只调用了一个工具,而这一个工具无法提供正确的回答。

优化提示词

通过优化提示词(Prompt),可以让 AI 客服有思考能力,并且让不同的工具之间也能有交互。如下可以把工具写入提示词中,并且告诉AI你需要思考后再回答用户的问题,这里只展示本次优化的提示词,提示词是用户指导AI的,提示词也需要根据实际情况不断调试优化。

提问:充值手机号15669923532多久能到账

提问:订单202308041558160774多久会到账

此示例,AI 调用了两个工具进行回答。

小结

本文只是实现了简单的功能,如果要让AI回答得更加完美且贴合业务,需要不断优化提示词、工具描述、知识库、工具参数等等。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-12 08:18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码森林 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简易AI客服实现
  • 基于子类化 BaseTool 实现订单查询能力
  • AI 客服优化逻辑实现
  • 优化提示词
  • 小结
相关产品与服务
对话机器人
对话机器人(Conversation Robot,ICR),是基于人工智能技术,面向企业场景的 AI 服务,可应用于智能客服、服务咨询、业务办理等场景。本产品旨在帮助企业快速构建,满足自身业务诉求的对话机器人,从而减少企业人力成本或解决服务不及时问题。用户可通过对话机器人用户端引擎,实现高准确率的对话服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档