阿里ChatSDK使用,开箱即用聊天框

介绍:

效果:智能助理

ChatSDK,是在ChatUI的基础上,结合阿里云智能客服的最佳实践,沉淀和总结出来的一个开箱即用的,可快速搭建智能对话机器人的框架。它简单易上手,通过简单的配置就能搭建出对话机器人;同时它强大易扩展,通过丰富的接口和自定义卡片满足各种定制化需求。

注意:

 npm包仅限阿里集团内部使用

外部客户可以使用cdn方式引入ChatSDK,然后配置externals @ali/chatui-sdk为ChatSDK,

详细怎么引入可以看:viteExternalsPlugin 插件管理外部依赖-CSDN博客

 具体参数请参考官方文档:

        智能客服

demo:

import React, { useEffect, useRef } from "react";
import { nodeApi } from "@/api/runbayunapi/index.jsx";
import ChatSDK from "@ali/chatui-sdk";
import "./home.css";

let time = 0;
export default function App() {
  const wrapper = useRef();
  let botInstance = useRef();

  const options = {
    config: {
      navbar: {
        // logo: "http://www.runbayun.com/storge/enterprise/Public/beforehome2/images/logo.png",
        title: "智能客服",
      },
      wideBreakpoint: "600",
      avatarWhiteList: ["all"],
      loadMoreText: "点击加载更多",
      toolbar: [
        {
          type: "emoji",
          title: "表情",
          icon: "smile",
        },
        {
          type: "image",
          title: "图片",
          icon: "image",
        },
      ],
      quickReplies: [
        {
          icon: "message",
          name: "召唤在线客服",
          type: "cmd",
          content: { code: "agent_join" },
          // isHighlight: true,
        },
        {
          name: "发送文本",
          isHighlight: true,
        },
        {
          name: "可见文本",
          type: "text",
          text: "实际发送的文本",
          isNew: true,
        },
        {
          name: "点击跳转",
          type: "url",
          url: "https://www.taobao.com/",
        },
        {
          name: "唤起卡片",
          type: "card",
          card: {
            code: "knowledge",
            data: {
              text: "这是一个富文本卡片",
            },
          },
        },
        {
          name: "执行指令",
          type: "cmd",
          cmd: { code: "agent_join" },
        },
      ],
      showTyping: true,
      elderMode: false,
      robot: {
        avatar:
          "/public/5a7716d445264e2d9adc54219ebc1be0.png~tplv-a9rns2rl98-downsize.png",
        name: "小润",
      },
      messages: [
        {
          code: "system",
          data: {
            text: "智能助理进入对话,为您服务",
          },
        },
        {
          code: "text",
          data: {
            text: "智能助理为您服务,请问有什么可以帮您?",
          },
        },
        {
          code: "list-v2",
          data: {
            title: "猜你想问",
            list: [
              {
                action: "sendText",
                text: "购买后如何查看信息?",
                content: "购买后如何查看信息?",
                params: {
                  key1: "test",
                },
                context: {
                  a: "test",
                },
              },
              {
                action: "sendText",
                text: "【夜间】自动发货",
                content: "【夜间】自动发货",
              },
              {
                action: "openWindow",
                text: "【安装包】问题汇总",
                url: "https://docs.qq.com/doc/DRVZCeWNGRGVhclhJ",
              },
              {
                action: "sendText",
                text: "谷歌辅助邮箱怎么用?",
                content: "谷歌辅助邮箱怎么用?",
              },
              {
                action: "openWindow",
                text: "【脸书】双重验证教程",
                url: "https://docs.qq.com/doc/DRVhySEtIT3hXQUVm",
              },
              {
                action: "openWindow",
                text: "【推特】确认码教程",
                url: "https://docs.qq.com/doc/DRVhkSU9nZXR6Z1pz",
              },
              {
                action: "openWindow",
                text: "【推特】双重验证教程",
                url: "https://docs.qq.com/doc/DRWR2b0NMZnhTZG9H",
              },
              {
                action: "openWindow",
                text: "【Ins】双重验证教程",
                url: "https://docs.qq.com/doc/DRU5ocXFGb0pzRFR1",
              },
            ],
          },
        },
      ],
      client: "",
      beebotconfig: {
        showAIGC: true,
      },
    },
    requests: {
      send(msg) {
        console.log("msg:", msg);
        // Simulate bot typing indicator
        setTimeout(() => {
          botInstance.current.appendMessage({
            code: "text",
            data: { text: "这是模拟的回复消息" },
          });
        }, 1000);
      },
      makeSocket() {
        console.log("进入人工");
        botInstance.current.appendMessage({
          code: "system",
          data: { text: "进入人工服务" },
        });
        return {};
      },
      history: function () {
        time += 1;
        return Promise.resolve({
          list: [{ code: "text", data: { text: `历史消息${time}` } }],
          noMore: time > 3,
        });
      },
    },
    handlers: {
      onToolbarClick(item, ctx) {
        if (item.type === "image") {
          ctx.util.chooseImage({
            success(e) {
              if (e.files) {
                const file = e.files[0];
                ctx.appendMessage({
                  code: "image",
                  data: {
                    picUrl: URL.createObjectURL(file),
                  },
                  position: "right",
                });

                requestOcr({ file }).then((res) => {
                  ctx.postMessage({
                    code: "text",
                    data: {
                      text: res.text,
                    },
                    quiet: true,
                  });
                });
              } else if (e.images) {
                // Handle app uploaded images
              }
            },
          });
        }
      },
    },
  };

  const getdata = async () => {
    let data = await nodeApi().getnodes({});
    console.log(data, "hahahahhahah");
  };

  useEffect(() => {
    getdata();
    botInstance.current = new ChatSDK({
      root: wrapper.current,
      ...options,
    });
    botInstance.current.run();
  }, []);

  return <div style={{ height: "100%" }} ref={wrapper} />;
}

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

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

相关文章

C++ 入门基础:开启编程之旅

引言 C 是一种高效、灵活且功能强大的编程语言&#xff0c;广泛应用于系统软件、游戏开发、嵌入式系统、科学计算等多个领域。作为 C 语言的扩展&#xff0c;C 不仅继承了 C 语言的过程化编程特性&#xff0c;还增加了面向对象编程&#xff08;OOP&#xff09;的支持&#xff…

frp内网穿透ssh,tcp经过服务器慢速和p2p模式实现高速吃满上传带宽

ssh_server aliyun_server ssh_client 办公室 云服务器 家 在家里经过云服务器中转&#xff0c;很慢&#xff0c;但是很稳定 使用p2p穿透&#xff0c;速度可以直接拉满 ssh_server cc.ini # 连接服务器配置 [common] server_addr 1…

实用机器学习(快速入门)

前言 因为需要机器学习的助力&#xff0c;所以&#xff08;浅浅&#xff09;进修了一下。现在什么东西和AI结合一下感觉就好发文章了&#xff1b;我看了好多学习视频&#xff0c;发现机器学习实际上是数学&#xff0c;并不是常规的去学习代码什么的&#xff08;虽然代码也很简…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(五)-同时支持无人机和eMBB用户数据传输的用例

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

昇思25天学习打卡营第13天 | ResNet50迁移学习

昇思25天学习打卡营第13天 | ResNet50迁移学习 文章目录 昇思25天学习打卡营第13天 | ResNet50迁移学习数据集加载数据集数据集可视化 模型训练固定特征 总结打卡 在实际应用场景中&#xff0c;由于训练数据集不足&#xff0c;很少从头开始训练整个网络。普遍做法是在一个非常大…

Qt下使用OpenCV的鼠标回调函数进行圆形/矩形/多边形的绘制

文章目录 前言一、设置imshow显示窗口二、绘制圆形三、绘制矩形四、绘制多边形五、示例完整代码总结 前言 本文主要讲述了在Qt下使用OpenCV的鼠标回调在OpenCV的namedWindow和imshow函数显示出来的界面上进行一些图形的绘制&#xff0c;并最终将绘制好的图形显示在QLabel上。示…

算法笔记——LCR

一.LCR 152. 验证二叉搜索树的后序遍历序列 题目描述&#xff1a; 给你一个二叉搜索树的后续遍历序列&#xff0c;让你判断该序列是否合法。 解题思路&#xff1a; 根据二叉搜索树的特性&#xff0c;二叉树搜索的每一个结点&#xff0c;大于左子树&#xff0c;小于右子树。…

到底哪些牌子的鼠标好?选择鼠标需要注意哪些问题?

鼠标的选择从外观材质、手感、配置到价格定位都不尽相同&#xff0c;消费者的选择也越来越多。一般在选择鼠标时&#xff0c;我们也会发现鼠标能够选择的品牌虽然众多&#xff0c;但是不同品牌下的鼠标在品质和款式上都是大不相同的&#xff0c;那么到底哪些牌子的鼠标好呢?我…

【Python】数据分析-Matplotlib绘图

数据分析 Jupyter Notebook Jupyter Notebook: 一款用于编程、文档、笔记和展示的软件。 启动命令&#xff1a; jupyter notebookMatplotlib 设置中文格式&#xff1a;plt.rcParams[font.sans-serif] [KaiTi] # 查看本地所有字体 import matplotlib.font_manager a sorted…

uniapp使用多列布局显示图片,一行两列

完整代码&#xff1a; <script setup>const src "https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg" </script><template><view class"content"><view class"img-list"><image :src"src…

zabbix web页面添加对nginx监控

1.nginx安装zabbix-agent2,并修改配置文件中server地址为zabbix-server的地址 ]# egrep ^Server|^Hostname /etc/zabbix/zabbix_agent2.conf Server172.16.1.162 ServerActive172.16.1.162 Hostnameweb01 2.zabbix web页面上进行添加客户端 3.默认的nginx监控模板中的状态模块…

基于Opencv的裂缝检测及测量

最终效果如下: 不仅标出了裂纹位置,还标出了裂纹的尺寸 原图如下: 核心原理就是基于opencv的图片处理及轮廓查找,具体逻辑看代码,话不多说上代码: # 在一张图片上检测圆 import cv2 import numpy as npdef detect_circle(img):"""在一张图片上检测圆img…

Prometheus 云原生 - 微服务监控报警系统 (Promethus、Grafana、Node_Exporter)部署、简单使用

目录 开始 Prometheus 介绍 基本原理 组件介绍 下文部署组件的工作方式 Prometheus 生态安装&#xff08;Mac&#xff09; 安装 prometheus 安装 grafana 安装 node_exporter Prometheus 生态安装&#xff08;Docker&#xff09; 安装 prometheus 安装 Grafana 安装…

mysql-联合查询

一.联合查询的概念 .对于unio查询,就是把多次查询的结果合并起来,形成一个新的查询果集。 SELECT 字段列表 FROM 表A... UNION[ALL] SELECT 字段列表 FROM 表B...&#xff0c; 二.将薪资低于5000的员工,和年龄大于50岁的员工全部查询出来 select * from emp where salary&…

【数智化CIO展】沃太能源CIO陈丽:AI 浪潮下的中国企业数智化转型机遇与挑战...

陈丽 本文由沃太能源CIO陈丽投递并参与由数据猿联合上海大数据联盟共同推出的《2024中国数智化转型升级优秀CIO》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 在当今飞速发展的数字时代&#xff0c;中国企业正面临着前所未有的变革机遇和挑战。“中国企业数…

02:项目二:感应开关盖垃圾桶

感应开关盖垃圾桶 1、PWM开发SG901.1、怎样通过C51单片机输出PWM波&#xff1f;1.2、通过定时器输出PWM波来控制SG90 2、超声波测距模块的使用3、感应开关盖垃圾桶 需要材料&#xff1a; 1、SG90舵机模块 2、HC-SR04超声波模块 3、震动传感器 4、蜂鸣器 5、若干杜邦线 1、PWM开…

win10 docker-compose搭建ELK日志收集

elk的威名大家都知道&#xff0c;以前前司有专门的人维护&#xff0c;现在换了环境&#xff0c;实在不想上服务器看&#xff0c;所以就摸索下自己搭建&#xff0c;由于现场服务器是需要类似向日葵那样连接&#xff0c;我还是把日志弄回来&#xff0c;自己本地filebeat上传到es中…

WPF学习(2) -- 样式基础

一、代码 <Window x:Class"学习.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/2008&…

jenkins系列-02.配置jenkins

首先&#xff1a;我们要给jenkins配备jdkmaven: 从上一节我们知道 ~/dockerV/jenkins/jenkins/data目录 就是 容器中jenkins的home目录 所以把jdkmaven 放在当前宿主机上的 ~/dockerV/jenkins/jenkins/data目录下即可 容器内&#xff1a; 开始配置jenkins: 注意是在jenkins…

护网HW面试常问——组件中间件框架漏洞(包含流量特征)

apache&iis&nginx中间件解析漏洞 参考我之前的文章&#xff1a;护网HW面试—apache&iis&nginx中间件解析漏洞篇-CSDN博客 log4j2 漏洞原理&#xff1a; 该漏洞主要是由于日志在打印时当遇到${后&#xff0c;以:号作为分割&#xff0c;将表达式内容分割成两部…