扣子智能体实战-汽车客服对话机器人(核心知识:知识库和卡片)

这一节的主要内容是通过创建一个汽车客户对话机器人学习扣子平台知识库和卡片的使用。

机器人参考:

企业汽车客服

资深汽车销售

一,汽车销售机器人需求简介

汽车销售是一个需要 7*24h在线的客服咨询岗位,专业性强,但流动性非常大。

一家4S 店的销售有如下特点:

  • 7*24h 随时问答
  • 专业的知识问答

基于以上两个特点,汽车销售是一个非常适合用机器人的场景,特别是在大模型能力越来越强的情况下,针对客户提出的问题,机器人可以提供精准的答案。

此外,机器人的可以24小时工作,能做到及时响应客户问题。

通过一套智能且专业的解决方案,就能替代大部分人工。

二,创建一个Bot

在个人空间创建一个智能体,名字自取。

在这里插入图片描述

三,通过提示词设定人设和技能

# 角色
你是汽车销售市场的热情专业的汽车经销商客服小李,熟悉各品牌汽车最新行情及价格信息,能为用户提供准确详细的购车建议。

## 技能
### 技能 1: 查询汽车行情信息
1. 当用户询问汽车行情时,迅速了解各品牌汽车的最新动态,包括但不限于新款发布、优惠活动等。
2. 准确为用户提供详细的汽车价格信息,包括指导价、优惠幅度、落地价等。

回复示例:
=====
   -  🚗 汽车品牌及型号: <品牌及型号>
   -  💰 指导价: <价格>
   -  💲 优惠幅度: <具体优惠金额或百分比>
   -  🛬 落地价: <预估落地价格>
   -  🎉 最新行情: <简要描述当前行情动态>
=====

### 技能 2: 解答疑问
1. 当用户提出关于购车流程、售前咨询等问题时,详细解答,包括贷款政策、保险选择、上牌流程等。
2. 根据用户需求和情况,提供专业的购车建议和指导。

回复示例:
=====
   -  🤔 问题: <用户提出的问题>
   -  💡 答案: <详细的解答内容>
=====

## 限制:
- 只处理与汽车相关的问题,拒绝回答与汽车无关的话题。
- 以专业、热情、耐心的态度服务用户,回复内容要准确、清晰、易懂。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。

到这一步,一个有对话能力的机器人就创建成功了,不过这时他还比较弱智。

三,引入插件

1,添加懂车帝新车和二手车插件

在这里插入图片描述

懂车帝4CarSeries: 当你需要查询新车信息或者查询某个特定车系(如宝马3系,奔驰e级)信息的时候可以使用此0工具,可以获得新车价格,车辆结构,车辆生产年份,售卖链接等信息。

**SecondHandCar:**当你査询二手车的售卖信息时候可以使用此工具,可以获得二手车的价格、二手车车况图片等信息。

2,为插件设置卡片

在这里插入图片描述

卡片的作用是为了是输出信息格式化,通过插件查询到的信息是一种不直观的格式,我们可以通过卡片的形式选择显示哪些信息以及以什么格式显示。

有两种卡片。

2.1 官方卡片

在这里插入图片描述

  • 卡片样式:选择竖向列表
  • 为卡片绑定一个数组:点开下拉框直接选择,因为是绑定给插件,插件的信息是已知的
  • 为卡片的列表项绑定数据:从上面数组中选择要显示的信息
  • 点击卡片跳转:这个就类似超链接,点击后会跳转到一个新的页面。

卡片效果:

在这里插入图片描述

2.2 自定义卡片

2.2.1 点击新增进入卡片编辑界面

在这里插入图片描述

2.2.2 新增变量

这里所谓的变量是指数据来源,卡片要展示信息,信息的来源就是变量,变量实际指的是懂车帝插件查询的汽车信息。

在这里插入图片描述

点击上面新建变量后,弹窗如下:

在这里插入图片描述

  • 变量名称:car_serials,这个值不能随便填,它必须和懂车帝插件查询的数据中的名称保持一致
  • 变量类型:Array,数组的意思
  • 变量默认值:相当于提供一组demo数据,便于后面的步骤使用和卡片预览
[
    {
        "car_name": "宝马",
        "detail_url":"http://dongchedi.com",
        "price":"18.8~25.8",
        "product_year":"2023"
    },
    {
        "car_name": "宝马",
        "detail_url":"http://dongchedi.com",
        "price":"18.8~25.8",
        "product_year":"2023"
    }
]
2.2.3 卡片格式设计

进入卡片设计界面,如下。
在这里插入图片描述

  • 模板:表示已有的模板,可以直接使用,安装自己的需求做一些变动,更加方便快捷
  • 组件:有布局组件和基本组件,如果要从0开始设计,就可以直接到这里
  • 结构:查看组件结构

我们从0到1设计一个非常简单的卡片。

在这里插入图片描述

这个卡片用来展示懂车帝查询到的汽车信息。

如下,这个卡片使用了单列布局,每一列包含三个文本框。

先把单列布局拖过来,在拖三个文本框到这个单列布局中作为它的内容。

如果有一定前端知识,就比较容易理解。

在这里插入图片描述
如果实在搞不懂,可以查看教程,在编辑区的中间的下部,有一个工具类,最后一个工具就是查看教程。

在这里插入图片描述

2.2.4 绑定卡片数据源

!!!需要注意的是,因为我们要展示很多个汽车的信息,数据源是一个数组,所以,需要开启循环渲染。

在这里插入图片描述

为每一个文本框绑定要显示的数据。

点击文本框,在右侧的基础配置中,点击[x],就会弹出可以选择数据源,比如第一个文本框要显示汽车名称即汽车品牌,我们就选择car_name

注意,这一步能选择的前提是上一步的循环渲染及数组绑定已经设置好。

在这里插入图片描述

3,为机器人设置开场白

在这里插入图片描述

你好!我是汽车销售,很高兴能为你提供服务。
作为一名专业的汽车服务人员,我熟悉各品牌汽车最新行情及价格信息,能为你提供准确详细的购车建议。

三,增加本地知识库增强机器人能力

目前这个机器人客服已经具备了基本的能力,但是还不够个性化。

它现在只能查询公网上的信息,如果要给客户提供优惠,就涉及到它所属的公司的知识,比如库存信息、优惠活动信息等等。

这些信息可以通过提供设置知识库的方式提供。

我们这里就模拟本地库存信息,因为我们没有实际库存数据,所以可以通过kimi或者Gpt4o来生成Pytyon脚本,让后执行脚本生成一些数据。

脚本如下:

import csv
import random

# 定义可能的属性值
brands = ["本田", "丰田", "大众", "宝马", "奥迪"]
models = ["雅阁", "卡罗拉", "迈腾", "3系", "A4"]
locations = ["上海仓库", "北京仓库", "广州仓库", "深圳仓库", "成都仓库"]

# 生成随机VIN
def generate_id():
    return ''.join(random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', k=17))

# 生成单条汽车数据
def generate_car_data():
    return {
        "车辆序列号": generate_id(),
        "品牌": random.choice(brands),
        "车型": random.choice(models),
        "库存位置": random.choice(locations),
        "库存数量": random.randint(1, 20),
        "成本价": random.randint(100000, 300000),
        "建议零售价": random.randint(150000, 400000),
        "促销价格": random.randint(120000, 350000),
    }

# 生成500条汽车库存信息
car_inventory = [generate_car_data() for _ in range(500)]

# 导出为CSV文件
with open('car_inventory.csv', mode='w', newline='', encoding='utf-8') as file:
    writer = csv.DictWriter(file, fieldnames=car_inventory[0].keys())
    writer.writeheader()
    writer.writerows(car_inventory)

print("CSV文件已成功生成:car_inventory.csv")

1,新建并使用一个知识库

在这里插入图片描述

点击创建知识库,填写必要信息,选择表格格式,点击下一步。

在这里插入图片描述

过程中生成我们用python生成的csv文档,一直点击下一步,最后添加到bot,就为这个bot添加了知识库。

在这里插入图片描述

我们测试一下,询问丰田卡罗拉的库存。

在这里插入图片描述

当然,这样很傻,一般消费并不会关心库存,销售也不会告知具体的库存信息。

这只是为了演示知识库的用法。

四,使用工作流进一步优化机器人的能力

我们的机器人现在即具备插件能力,又具备知识库能力,但为了更准确的回答客户问题,我们需要根据客户意图选择使用何种能力。

业务流程图如下:

在这里插入图片描述

  • ① 用户输入
  • ② 识别用户意图,如果不能识别到用户的具体用途就转人工
  • ③ 如果用户是想查询购买的汽车的库存信息,就根据汽车品牌和类型,搜索知识库,返回购买信息和优惠价格
  • ④ 如果用户是想让销售推荐汽车,则通过懂车帝插件搜索再返回给客户

1,新建一个工作流

在这里插入图片描述

2,增加一个意图结点

添加两个意图:

  • 汽车推荐相关问题
  • 咨询在售汽车的信息

在这里插入图片描述

3,咨询在售汽车信息分支

如果用户的意图是咨询在售汽车信息,则需要提供一个大模型,分析文本,搜索知识库,然后将结果交给一个文本处理节点,这个节点的作用是将文本格式化。

大模型节点配置如下:

在这里插入图片描述

提示词如下:

请理解用户以下问题:
{{input}}

结合对话历史聊天记录,理解用户的具体问题,解答用户想要咨询的是哪个汽车系统的在售信息,返回具体的汽车车型即可,不做其他不相干的信息描述

大模型节点后增加一个知识库结点。

在这里插入图片描述

知识库结点后增加一个文本处理结点:

在这里插入图片描述

4,汽车推荐分支

如果用户的意图是汽车推荐,则需要提供一个大模型,分析文本,使用懂车帝搜索,然后将结果下一个大模型进行处理,整理成推荐信息,最后交给一个文本结点,这个节点的作用是将文本格式化。

大模型节点配置如下:

在这里插入图片描述
提示词如下:

请理解用户提的以下问题:
{{input)}
  
请基于用户的蹦天信息,总结一下用户对于汽车造型的偏好和需求,并理解用户的具体问题,解答用户想要咨询的是哪个汽车系列的信息,近回具体的汽车车型助可,不做其他不相关的信息描述

懂车帝插件节点配置如下:

在这里插入图片描述

请理解用户提的以下问题:
{{input)}
  
请基于用户的蹦天信息,总结一下用户对于汽车造型的偏好和需求,并理解用户的具体问题,解答用户想要咨询的是哪个汽车系列的信息,近回具体的汽车车型助可,不做其他不相关的信息描述

处理懂车帝结果的大模型配置如下:

在这里插入图片描述

根据懂车帝搜索结果,整理汽车推荐信息:

"""
{{input[0]}}
"""

知识库结点后增加一个文本处理结点:

在这里插入图片描述

5,其他意图分支

其他意图分支比较简单,一般是转人工,这里随便写个网址代替。

在这里插入图片描述

6,结束结点配置

三个分支的文本节点都要指向结束结点。

在这里插入图片描述

到此这个机器人就完成了,我们使用知识库、意图节点、插件节点、文本节点、大模型节点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/877475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】排序算法---直接插入排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaCGo 7. 折半插入排序代码实现——C 结语 1. 定义 直接插入排序是一种简单直观的排序算法。它的工作原理为将待排列元素划分为「已排序」和「未排序」两部分&#xff0c;每次从「未排序的」…

自定义EPICS在LabVIEW中的测试

继续上一篇&#xff1a;LabVIEW中EPICS客户端/服务端的测试 变量定义 You can use CaLabSoftIOC.vi to create new EPICS variables and start them. CA Lab - LabVIEW (Realtime) EPICS INPUT: PV set Cluster-array of names, data types and field definitions to crea…

【Go】Go语言介绍与开发环境搭建

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

【Elasticsearch系列六】系统命令API

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

二叉树OJ题——二叉树的前序遍历

文章目录 一、题目链接二、解题思路三、解题代码 一、题目链接 二叉树的前序遍历 二叉树前序遍历后需要返回一个 list 。 二、解题思路 三、解题代码

Pytorch详解-Pytorch核心模块

Pytorch核心模块 一、Pytorch模块结构_pycache__Cincludelibautogradnnoptimutils 二、Lib\site-packages\torchvisiondatasetsmodelsopstransforms 三、核心数据结构——Tensor&#xff08;张量&#xff09;在深度学习中&#xff0c;时间序列数据为什么是三维张量&#xff1f;…

Node.js运行环境搭建

【图书介绍】《Node.jsMongoDBVue.js全栈开发实战》-CSDN博客 《Node.jsMongoDBVue.js全栈开发实战&#xff08;Web前端技术丛书&#xff09;》(邹琼俊)【摘要 书评 试读】- 京东图书 (jd.com) 本节介绍如何搭建Node.js运行环境。 1.2.1 Node.js运行环境安装 进入Node.js官…

苍穹外卖Day01

文章目录 目录 文章目录 前端环境搭建 后端环境搭建 后端-数据库环境搭建 前后端联调 前端环境搭建 打开文件夹&#xff08;确保nginx在英文目录下&#xff09;双击ngnix.exe启动nginx服务&#xff0c;访问端口号80在地址栏输入localhost打开界面 后端环境搭建 熟悉项目…

行业分析---自动驾驶行业的发展

1 背景 进入21世纪以来&#xff0c;自动驾驶行业有着飞速的发展&#xff0c;L2级别的自动驾驶技术也逐渐落地量产到寻常百姓家。不管是起步比较早的特斯拉&#xff0c;还是2015年以后国内的公司&#xff0c;都在逐渐发展自动驾驶技术&#xff0c;并量产给用户使用。 自动驾驶最…

最新安装vmware地址(官网找半天没找到)

CDS Repository - /var/www/public/stage/session-120/cds/vmw-desktop 直接走这个点进去&#xff0c;windows点ws&#xff0c;linux和mac点fusion进去下对应版本 win为例子&#xff1a;CDS Repository - /var/www/public/stage/session-50/cds/vmw-desktop/ws/17.6.0/242380…

TDengine 签约前晨汽车,解锁智能出行的无限潜力

在全球汽车产业转型升级的背景下&#xff0c;智能网联和新能源技术正迅速成为商用车行业的重要发展方向。随着市场对环保和智能化需求的日益增强&#xff0c;企业必须在技术创新和数据管理上不断突破&#xff0c;以满足客户对高效、安全和智能出行的期待。在这一背景下&#xf…

【详细原理】蒙特卡洛树搜索

单一状态蒙特卡洛规划&#xff1a;多臂赌博机 多臂赌博机问题&#xff08;Multi-Armed Bandit&#xff09;是强化学习中的经典问题&#xff0c;涉及在有限的时间内&#xff0c;从多台赌博机&#xff08;即“臂”&#xff09;中选择&#xff0c;以最大化累积奖励。单一状态蒙特…

209.长度最小的子数组(滑动窗口类)

文章目录 209.长度最小的子数组滑动窗口904. 水果成篮76. 最小覆盖子串 209.长度最小的子数组 209.长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合…

存储课程学习笔记5_iouring的练习(io_uring,rust_echo_bench,fio)

我们知道&#xff0c;在处理大量高并发网络时&#xff0c;一般考虑并发&#xff0c;以及设计对应的方案&#xff08;比如select,poll,epoll&#xff09;等。 那么如果频繁进行文件或者磁盘的操作&#xff0c;如何考虑性能和并发&#xff0c;这里就可以考虑用到io_uring。 0&a…

MySQL 按照条件(分组)只取一个形成列表 group max

方法一、通过Max形成where条件 SELECTt1.* FROMbiz_customer_hold AS t1 WHEREt1.ch_create_time ( SELECT MAX( ch_create_time ) FROM biz_customer_hold AS t2 WHERE t2.ch_cust_no t1.ch_cust_no ) ORDER BYt1.ch_create_time DESC,t1.ch_hold_time DESC 方法二、通…

搭建Eureka高可用集群 - day03

全部代码发出来了 搭建服务提供者 步骤&#xff1a; 1.创建项目&#xff0c;引入依赖 2.添加Eureka相关配置 3.添加EnableEurekaClient注解 4.测试运行 步骤1&#xff1a;创建项目&#xff0c;引入依赖 使用Spring Initializr方式创建一个名称为eureka-provider的Sprin…

labview串口大数据量报错的一种解决思路(通过tcp进行写入和读取串口数据)

因为项目要求&#xff0c;用labview给客户开发了一个上位机&#xff0c;在现场给客户调试上位机时&#xff0c;发现了几种奇怪的现象 1&#xff1a;客户样件有两路串口&#xff0c;一路串口可以多字节进行发送数据&#xff0c;一路只能单字节发送数据&#xff0c;每次单字节数据…

第L6周:机器学习-随机森林(RF)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目标&#xff1a; 1.什么是随机森林&#xff08;RF&#xff09; 随机森林&#xff08;Random Forest, RF&#xff09;是一种由 决策树 构成的 集成算法 &#…

Spring注解@Value的基本知识(附Demo)

目录 前言1. 基本知识2. 高级用法3. 彩蛋 前言 对于Java的基本知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 Value 是 Spr…

前端开发macbook——NVM环境配置以及git配置流程

本文主要针对前端使用mac电脑时需要安装nvm对应环境&#xff0c;一文解决环境安装问题 主要步骤如下&#xff1a; 安装homebrew 安装nvm 安装git 第一步&#xff1a;安装homebrew /bin/bash -c "$(curl -fsSL https:/raw.githubusercontent.com/Homebrew/install/HE…