Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >AI 客服定制:LangChain集成订单能力

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

作者头像
朝雾轻寒
发布于 2023-09-18 00:48:02
发布于 2023-09-18 00:48:02
44300
代码可运行
举报
运行总次数:0
代码可运行

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

简易AI客服实现

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

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
AI提示词(Prompt)设计优化方案 _ 高效使用AI工具
嘿,各位技术探索家们!在这个 AI 横行的时代,你是不是常常感觉自己和 AI 之间隔着一层 “神秘面纱”?明明输入了指令,AI 给出的结果却总是差强人意。其实啊,这里面的关键就在于 AI 提示词(Prompt)的设计。今天,小编就带着大家一起揭开这层面纱,深入探索 AI 提示词的奇妙世界,让你轻松驾驭 AI 工具,成为 AI 使用高手!
小白的大数据之旅
2025/03/29
3260
AI提示词(Prompt)设计优化方案 _ 高效使用AI工具
AI Agent 介绍(1/30)
AI Agent,即人工智能代理,是指能够在一定环境中自主执行任务或者作出决策的智能系统。这些代理可以是软件形式,如聊天机器人、推荐系统、个人助理等,也可以是集成到物理设备中的,如自动驾驶汽车、智能家居设备等。AI Agent的核心在于其自主性,它们能够感知环境变化、处理信息并作出响应,以完成既定目标或任务。
正在走向自律
2024/12/18
6080
AI Agent 介绍(1/30)
【LangChain系列7】【LangChain实战—客服机器人项目】
总结: LangChain是一个用于开发由LLM支持的应用程序的框架,通过提供标准化且丰富的模块抽象,构建LLM的输入输出规范,主要是利用其核心概念chains,可以灵活地链接整个应用开发流程。(即,其中的每个模块抽象,都是源于对大模型的深入理解和实践经验,由许多开发者提供出来的标准化流程和解决方案的抽象,再通过灵活的模块化组合,才得到了langchain)
知冷煖
2025/01/14
3100
使用检索增强生成 (RAG) 增强 SQL 代理
与其他数据库不同,Teradata 通过提供大量高级分析功能而脱颖而出,从数据清理和数据探索到模型训练、文本分析以及路径和模式分析功能。
大数据杂货铺
2024/04/02
5770
使用检索增强生成 (RAG) 增强 SQL 代理
LangChain+Ollama+DeepSeek AI 应用开发:LangChain 模型 IO 模块认知
Lang Chain 是在 LLM 爆发之后,最早有一定知名度的开源工具,其他生态大部分工具也都基于 Lang Chain 的架构方式,所以通过学习 Lang Chain 可以了解 大部分的 AI 应用工具,今天和小伙伴分享 Lang Chain 模块中的 模型 IO
山河已无恙
2025/03/13
2970
LangChain+Ollama+DeepSeek AI 应用开发:LangChain 模型 IO 模块认知
📘 教程:理解 LangChain + Vue/React 搭建 LLM 对话系统的理论基础
在构建 LLM 对话系统时,很多初学者会选择 Gradio 或 Streamlit 快速搭建。但随着需求的复杂化,例如支持多轮记忆、调用外部插件、检索知识库、界面交互精美、支持多模型等,这些轻量级方案便力不从心。
IT蜗壳-Tango
2025/04/06
2870
LangChain基础入门[2] 模块拆解
本章节所涉及的内容是LangChain模块拆解之旅,相比较来说该模块也是重要的一节,在之前的章节中我们已经通过简单的demo初步感受到了大型语言模型模块的魅力,也就是LLM模块。本次章节主要的内容是把大型语言模型进行一个抽象,从而使得与模型的交互变得更加方便。
@派大星
2023/11/24
3790
LangChain基础入门[2] 模块拆解
LangChain基础入门[2] 模块拆解
本章节所涉及的内容是LangChain模块拆解之旅,相比较来说该模块也是重要的一节,在之前的章节中我们已经通过简单的demo初步感受到了大型语言模型模块的魅力,也就是LLM模块。本次章节主要的内容是把大型语言模型进行一个抽象,从而使得与模型的交互变得更加方便。
@派大星
2023/11/24
6540
微信公众号搭建chatgpt客服
<img src="https://p.ipic.vip/szfix6.png" alt="image-20230221195341050" style="zoom:50%;" />
Zephery
2023/02/26
4.1K0
从API到Agent:万字长文洞悉LangChain工程化设计
我想做一个尝试,看看能不能用尽量清晰的逻辑,给“AI外行人士”(当然,我也是……)引入一下LangChain,试着从工程角度去理解LangChain的设计和使用。同时大家也可以将此文档作为LangChain的“10分钟快速上手”手册,本意是希望帮助需要的同学实现AI工程的Bootstrap。
GeaFlow
2024/03/18
1.2K1
从API到Agent:万字长文洞悉LangChain工程化设计
LangChain初探:为你的AI应用之旅导航
丹尼尔:哦,开发这种应用,不就是写写 Prompt 提示语,调调语言模型 API 的事么?
蛋先生DX
2024/03/01
6500
LangChain初探:为你的AI应用之旅导航
畅享无缝支持:LangChain与ChatGPT重塑AI客服服务
LangChain 是一个用于开发由语言模型驱动的应用程序的框架,LangChain 灵活的抽象和广泛的工具包使开发人员能够利用 LLM 的力量。由于其版本迭代的太快,作者也是在不断的探索。
朝雾轻寒
2023/09/06
1K0
畅享无缝支持:LangChain与ChatGPT重塑AI客服服务
手把手教你在 JavaScript 中使用 LangChain,解锁 AI 应用能力
JS 版的 LangChain,是一个功能丰富的 JavaScript 框架。不管你是开发者还是研究人员都可以利用该框架通过创建语言分析模型和 Agents 来开展各项实验。该框架还提供了十分丰富的功能设置,基于这些功能设置,NLP 爱好者可以通过构建自定义模型来提高文本数据的处理效率。与此同时,作为一个 JS 框架,开发人员可以轻松的将他们的 AI 应用集成到自己的 Web 应用中。
深度学习与Python
2023/12/04
1.5K0
手把手教你在 JavaScript 中使用 LangChain,解锁 AI 应用能力
洞悉LangChain:LangChain工程化设计,从API到智能Agent的全面探索
LangChain 是 2022 年 10 月底,由哈佛大学的 Harrison Chase 发起的基于开源大语言模型的 AI 工程开发框架。当然也可以问一下 AI:
汀丶人工智能
2024/07/25
1.2K0
洞悉LangChain:LangChain工程化设计,从API到智能Agent的全面探索
AI大模型全栈工程师课程笔记 - LangChain
LangChain 也是面向LLM的开发框架SDK,有 python 和 js 版的 https://python.langchain.com/docs/get_started
Michael阿明
2023/12/21
1.5K0
AI大模型全栈工程师课程笔记 - LangChain
轻松上手的LangChain学习说明书
如今各类AI模型层出不穷,百花齐放,大佬们开发的速度永远遥遥领先于学习者的学习速度。。为了解放生产力,不让应用层开发人员受限于各语言模型的生产部署中..LangChain横空出世界。
腾讯技术工程官方号
2024/03/22
3.2K0
轻松上手的LangChain学习说明书
LangChain:打造自己的LLM应用
导读 随着LLM的技术发展,其在业务上的应用越来越关键,通过LangChain大大降低了LLM应用开发的门槛。本文通过介绍LangChain是什么,LangChain的核心组件以及LangChain在实际场景下的使用方式,希望帮助大家能快速上手LLM应用的开发。
京东技术
2023/11/05
2.1K0
LangChain:打造自己的LLM应用
python编程 30秒高级私人定制 Response对象
/ python 编程 30 秒高级私人定制 Response 对象,十倍扩展效率 /
python编程从入门到实践
2021/03/16
9140
python编程 30秒高级私人定制 Response对象
RAG应用在得物开放平台的智能答疑的探索
得物开放平台是一个把得物能力进行开放,同时提供给开发者提供 公告、应用控制台、权限包申请、业务文档等功能的平台。
得物技术
2025/01/07
1380
RAG应用在得物开放平台的智能答疑的探索
LangChain学习笔记——Model IO
LanChain基于为LangChain Model Application提供一下能力而设计:
windealli
2023/11/09
1.2K0
LangChain学习笔记——Model IO
推荐阅读
相关推荐
AI提示词(Prompt)设计优化方案 _ 高效使用AI工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验