精华内容
下载资源
问答
  • 目录机器人客服解决了哪些问题提升用户体验降低客服运营成本优化企业业务流程Chatopera云服务机器人实现机器人上线机器人客服的集成创建机器人集成机器人知识库建议智能客服机器人客服的富文本消息消息形式多轮对话...

    1. 机器人客服解决了哪些问题

    提升用户体验

    • 回复内容标准化
    • 克服负面情绪
    • 永远在线

    降低客服运营成本

    • 机器人直接接待访客
    • 初级客服快速掌握知识库
    • 减少客户投诉

    优化企业业务流程

    • 快速查看常见问题
    • 优化大客户转化
    • 快速响应棘手问题

    2. 机器人实现

    知识库:通过设置问答对的方式实现聊天机器人,问答对支持标准问,扩展问,可以设置分类,根据模版批量上传和导出。

    多轮对话:基于规则脚本和JavaScript函数实现的高级对话机器人,用于实现固定流程的问答机器人,通过多轮对话设计器实现机器人的思维逻辑导图。

    意图识别:使用机器学习,根据标注的意图、槽位和说法训练语言模型,举一反三,提供系统词典识别人名地名等信息,同时支持自定义词典,方便用户管理专有词汇。

    测试:在正式发布机器前,对知识库、多轮对话、意图识别进行测试,方便调试,使机器人达到智能的水平。

    3. 机器人上线

    集成:Chatopera机器人提供不同语言的SDK,包括JavaScript、Go、Java、Pyhton和PHP等。

    使用统计:上线后对机器人对话调用情况进行统计。

    对话历史:查看访客于机器人的对话历史记录。

    4. 机器人客服的集成

    机器人客服插件

    安装

    安装脚本为Bash Shell脚本,需要在命令行控制台执行,下载春松客服源码后。

    cd public/plugins/chatbot
    ./scripts/install.sh
    

    提示: Windows环境使用Git Bash 命令行终端执行该命令,也可以完成安装。

    卸载

    卸载脚本为Bash Shell脚本,需要在命令行控制台执行。

    ./scripts/uninstall.sh
    

    浏览插件源码

    https://github.com/chatopera/cosin/tree/osc/public/plugins/chatbot

    创建机器人

    Chatopera云服务控制台,点击“创建机器人”,设置语言、名字、头像和描述,在知识库页面设置问答对,在测试页面调试知识库,需要强调,集成机器人时,需要的ClientId和Secret可以在机器人的“集成”页面得到。

    在这里插入图片描述

    集成机器人

    在春松客服中,使用管理员从左侧一级菜单进入“机器人客服”页面,点击“新建”,然后填入ClientId和Secret。

    知识库建议

    知识库建议是应用智能机器人的知识库,提升客服人员的工作效率,在坐席工作台对话窗口以及坐席监控提供知识库快捷和知识库联想。
    在这里插入图片描述
    知识库快捷: 使用访客发送的消息,进行知识库查询,展示在对话窗口的右侧。

    知识库联想:使用坐席人员输入框里的内容,进行知识库查询,展示一个联想输入窗口。

    知识库建议的状态在智能机器人管理页面控制开启或关闭。

    智能客服

    在访客端提供智能客服坐席,实现机器人接待访客,智能客服有机器人客服优先,仅机器人客服等模式。

    智能客服的状态在智能机器人管理页面控制开启或关闭。
    在这里插入图片描述

    5. 机器人客服的富文本消息

    消息形式

    智能客服支持下面的消息形式,在与访客对话过程中,有更友好的交互体验。

    列表消息:展示一个列表,访客可以快速导航到不同项目,支持多次点击。

    常见问题列表:在接入智能客服后,自动发送一个常见问题列表。

    按钮消息:智能客服发送一个带有点击按钮的对话消息,按钮消息只支持点击一次。

    图文消息:带有缩略图,大标题,小标题和超链接的消息形式。
    在这里插入图片描述

    6. 总结

    春松客服里的机器人客服知识库的学习门槛低,见效快,主要解决常见问题;多轮对话侧重于固定流程的对话,更灵活,但是需要掌握编程技能。

    本文篇章有限,为了帮助大家真正的落地机器人客服,我们录制了视频,对于有需要接入机器人客服的朋友,请进一步观看视频,视频中涵盖了本文不曾介绍的一些细节。

    资源链接

    视频:春松客服里的机器人客服
    春松客服机器人配置参数
    机器人客服插件源码

    开源智能客服系统

    春松客服是 Chatopera 自主研发的,Apache2.0开源协议授权的智能客服系统,春松客服会不断增强客服系统的智能化,这包括利用自然语言处理、机器学习和语音识别等技术让客服工作更有效率、客服满意度更高、成本更低。

    开源力量 社区共建

    展开全文
  • 旺旺机器人客服助手主要功能介绍:一.无需登录即可自动回复客户消息!!二.全自动回复所有来消息的客人和只回复单个客人三.当本人在线的时候 可以打开机器人客服自动学习模式!机器人客服便会进入自动学习状态!四....
  • 分享一次自实现IM的经验。...请大家帮忙看看我的“客服+机器人客服+IM”架构思想 即时通讯网 调用环信工具类 /** * 环信常量类 * * @Date 2019/1/8-15:24 * @Author Amarone * @Description...

    注:如果您发现任何不正确的内容,或者您想要分享有关本文主题的更多信息,请撰写评论或联系我 15340938921@163.com。
    如有侵权请联系我删除。环信的API是公开的,应该没啥事吧~~~


    分享一次自实现IM的经验。自己实现了一个简略版本的IM。勉强可以用,就是页面需要自己实现。虽然最终还是使用了环信的产品。因为自己架构的不太成熟。没有考虑到很多因素。果然啊自己造的就是没有别人已经成熟的产品,使用的更坚挺、持久,圆润~!

    调用环信工具类

    /**
     * 环信常量类
     *
     * @Date 2019/1/8-15:24
     * @Author Amarone
     * @Description you should see
     * <pre>
     * 1. http://api-docs.easemob.com/#/%E8%8E%B7%E5%8F%96token
     * 2. http://docs-im.easemob.com/im/100serverintegration/10intro
     * </pre>
     **/
    public class EasemobConst {
        public static String SEGMENTATION = "/";
    
        //***************************************************     基础属性配置    *******************************************
    
        /**
         * IM 登录统一默认密码
         */
        public static String IM_DEFAULT_PASSWORD = "";
    
        /**
         * 企业的唯一标识 开发者在环信开发者管理后台注册账号时填写的企业 ID 此处从配置文件获取
         */
        public static String BASE_ORG_NAME = ****;
    
        /**
         * 同一“企业”下“APP”唯一标识,开发者在环信开发者管理后台创建应用时填写的“应用名称”
         */
        public static String BASE_APP_NAME = *****;
    
        /**
         * 请求环信接口TOKEN
         */
        public static String BASE_TOKEN = "";
    
        /**
         * 基础属性 - 环信后台配置
         */
        public static String BASE_CLIENT_ID = ****;
    
        /**
         * 基础属性 - 环信后台配置
         */
        public static String BASE_CLIENT_SECRET = ****;
    
        //***************************************************  API 接口URL 配置    ******************************************************
    
        /**
         * 环信公共请求URL、请求链接参考 http://api-docs.easemob.com/#!/%E7%94%A8%E6%88%B7%E4%BD%93%E7%B3%BB%E9%9B%86%E6%88%90/post_org_name_app_name_users
         * 格式为: ${COMMON_PATH}/{org_name}/{app_name}/users
         */
        public static String API_BASE_PATH = "http://a1.easemob.com/" + BASE_ORG_NAME + SEGMENTATION + BASE_APP_NAME;
    
        /**
         * 获取token
         * POST /{org_name}/{app_name}/token
         */
        public static String API_URL_GETTOKEN = "/token";
    
        /**
         * /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}
         *
         * 向IM 用户添加好友
         */
        public static String API_URL_ADD_FRIEND = "/users/{owner_username}/contacts/users/{friend_username}";
    
        /**
         * API 接口  用户体系集成
         */
        public static String API_URL_USER_SYSTEM = "/users";
    
        /**
         * API 接口  查看一个用户的在线状态。 GET /{org_name}/{app_name}/users/{username}/status
         */
        public static String API_URL_ONLINE_STATUS = "/users/{username}/status";
    
        /**
         * 离线消息数量 GET /{org_name}/{app_name}/users/{owner_username}/offline_msg_count
         */
        public static String API_URL_OFFLINE_MSG = "/users/{owner_username}/offline_msg_count";
    
    
        /**
         * 解除好友关系 DELETE /{org_name}/{app_name}/users/{owner_username}/contacts/users/{friend_username}
         */
        public static String API_URL_RELIEVE_FRIEND = "/users/{owner_username}/contacts/users/{friend_username}";
    
    }
    
    /**
     * 获取token
     *
     * @Date 2019/1/11-14:45
     * @Author Amarone
     * @Description
     **/
    public class GetToken {
    
        private String grant_type = "client_credentials";
        
        // 从配置文件获取
        private String client_id = ***;
         // 从配置文件获取
        private String client_secret = ****;
    
        // 省略get set
    }
    
    
    /**
     * 注册账户
     *
     * @Date 2019/1/15-10:57
     * @Author Amarone
     * @Description
     **/
    public class RegisterAcc {
    
        /**
         * 用户名
         */
        private String username;
        /**
         * 密码
         */
        private String password;
        /**
         * 昵称
         */
        private String nickname;
    
       // 省略get set 有参 无参 构造
    }
    
    /**
     * @Date 2019/1/12-18:04
     * @Author Amarone
     * @Description
     **/
    public class RspToken {
    
        /**
         * token 值
         */
        private String access_token;
        /**
         * token 有效时间,以秒为单位,在有效期内不需要重复获取
         */
        private String expires_in;
        /**
         * 当前 APP 的 UUID 值
         */
        private String application;
    
       // 省略get set 有参 无参 构造
    }
    
    import org.apache.commons.codec.Charsets;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.HttpMethod;
    import org.springframework.http.MediaType;
    import org.springframework.stereotype.Service;
    import org.springframework.util.StringUtils;
    import org.springframework.web.reactive.function.client.WebClient;
    
    import java.util.LinkedHashMap;
    import reactor.core.publisher.Mono;
    
    /**
     * 环信工具类
     *
     * @Date 2019/1/8-15:23
     * @Author Amarone
     * @Description
     **/
    @Service
    public class EasemobUtil extends BaseLogger {
    
        /**
         * 发送post 请求
         *
         * @param method    请求的方法
         * @param url       请求的路径
         * @param para      发送请求的参数
         * @param parameter 请求路径中的参数
         * @return rsp
         */
        public LinkedHashMap prefixRequest(HttpMethod method, String url, Object para, Object... parameter) throws Exception {
            if (method == null) {
                throw new BizException("请求方法未识别!");
            }
            LinkedHashMap rsp = null;
            try {
                if (HttpMethod.POST.compareTo(method) == 0) {
                    rsp = postRequest(url, para, parameter);
                } else if (HttpMethod.GET.compareTo(method) == 0) {
                    rsp = getRequest(url, parameter);
                } else if (HttpMethod.DELETE.compareTo(method) == 0) {
                    rsp = deleteRequest(url, parameter);
                } else {
                    throw new BizException("请求方法未识别!");
                }
            } catch (Exception e) {
                if (e.getCause() instanceof EasemobException) {
                    EasemobException ex = (EasemobException) e.getCause();
                    if (String.valueOf(EasemobEnum.ANEW_TOKEN.getValue()).equals(ex.messageCode)) {
                        logger.warn("调用环信 401 异常,重新请求TOKEN");
                        // 401 错误为 token过期
                        getEasemobToken();
                        // 重新发送请求
                        prefixRequest(method, url, para, parameter);
                    } else if (String.valueOf(EasemobEnum.BAD_REQ.getValue()).equals(ex.messageCode)) {
                        logger.warn("调用环信 400 异常," + e.getMessage());
                    } else {
                        e.printStackTrace();
                        throw ex;
                    }
                } else {
                    e.printStackTrace();
                    throw e;
                }
            }
            return rsp;
        }
    
    
        /**
         * 删除方法
         *
         * @param url       请求的路径
         * @param parameter 请求路径中的参数
         */
        public LinkedHashMap deleteRequest(String url, Object... parameter) throws Exception {
            if (StringUtils.isEmpty(EasemobConst.BASE_TOKEN)) {
                getEasemobToken();
            }
            WebClient webClient = buildBase();
            Mono<LinkedHashMap> result = webClient
                    .delete()
                    .uri(url, parameter)
                    .header(HttpHeaders.AUTHORIZATION, EasemobConst.BASE_TOKEN)
                    .acceptCharset(Charsets.UTF_8)
                    .retrieve()
                    .onStatus(e -> e.is4xxClientError(), resp -> {
                        return Mono.error(new EasemobException(String.valueOf(resp.statusCode().value()), resp.statusCode().getReasonPhrase()));
                    })
                    .onStatus(e -> e.is5xxServerError(), resp -> {
                        return Mono.error(new RuntimeException(resp.statusCode().value() + " : " + resp.statusCode().getReasonPhrase()));
                    })
                    .bodyToMono(LinkedHashMap.class)
                    .doOnError(onerror -> {
                        logger.error("请求IM服务失败,请稍后重试!");
                        onerror.printStackTrace();
                    });
            return result.block();
        }
    
        /**
         * 发送post请求(本方法未处理异常)
         *
         * @param url       请求的路径
         * @param para      发送请求的参数
         * @param parameter 请求路径中的参数
         * @return rsp
         */
        public LinkedHashMap postRequest(String url, Object para, Object... parameter) throws Exception {
            if (StringUtils.isEmpty(EasemobConst.BASE_TOKEN)) {
                getEasemobToken();
            }
            WebClient webClient = buildBase();
    
            Mono<LinkedHashMap> result = null;
            if (parameter != null) {
                result = webClient
                        .post()
                        .uri(url, parameter)
                        .header(HttpHeaders.AUTHORIZATION, EasemobConst.BASE_TOKEN)
                        .acceptCharset(Charsets.UTF_8)
                        .syncBody(para)
                        .retrieve()
                        .onStatus(e -> e.is4xxClientError(), resp -> {
                            return Mono.error(new EasemobException(String.valueOf(resp.statusCode().value()), resp.statusCode().getReasonPhrase()));
                        })
                        .onStatus(e -> e.is5xxServerError(), resp -> {
                            return Mono.error(new RuntimeException(resp.statusCode().value() + " : " + resp.statusCode().getReasonPhrase()));
                        })
                        .bodyToMono(LinkedHashMap.class)
                        .doOnError(onerror -> {
                            logger.error("请求IM服务失败,请稍后重试!");
                            onerror.printStackTrace();
                        });
            } else {
                result = webClient
                        .post()
                        .uri(url)
                        .header(HttpHeaders.AUTHORIZATION, EasemobConst.BASE_TOKEN)
                        .acceptCharset(Charsets.UTF_8)
                        .syncBody(para)
                        .retrieve()
                        .onStatus(e -> e.is4xxClientError(), resp -> {
                            return Mono.error(new EasemobException(String.valueOf(resp.statusCode().value()), resp.statusCode().getReasonPhrase()));
                        })
                        .onStatus(e -> e.is5xxServerError(), resp -> {
                            return Mono.error(new RuntimeException(resp.statusCode().value() + " : " + resp.statusCode().getReasonPhrase()));
                        })
                        .bodyToMono(LinkedHashMap.class);
            }
    
            if (result != null) {
                return result.block();
            } else {
                return null;
            }
        }
    
        /**
         * get 类型请求,应调用{prefixGetRequest()} 方法 (本方法未处理异常)
         *
         * @param url       请求url
         * @param parameter url中参数 使用 {}
         * @return result
         */
        public LinkedHashMap getRequest(String url, Object... parameter) throws Exception {
            if (StringUtils.isEmpty(EasemobConst.BASE_TOKEN)) {
                getEasemobToken();
            }
            WebClient webClient = buildBase();
            Mono<LinkedHashMap> result = webClient
                    .get()
                    .uri(url, parameter)
                    .header(HttpHeaders.AUTHORIZATION, EasemobConst.BASE_TOKEN)
                    .acceptCharset(Charsets.UTF_8)
                    .retrieve()
                    .onStatus(e -> e.is4xxClientError(), resp -> {
                        return Mono.error(new EasemobException(String.valueOf(resp.statusCode().value()), resp.statusCode().getReasonPhrase()));
                    })
                    .onStatus(e -> e.is5xxServerError(), resp -> {
                        return Mono.error(new RuntimeException(resp.statusCode().value() + " : " + resp.statusCode().getReasonPhrase()));
                    })
                    .bodyToMono(LinkedHashMap.class)
                    .doOnError(onerror -> {
                        logger.error("请求IM服务失败,请稍后重试!");
                        onerror.printStackTrace();
                    });
            return result.block();
        }
    
        /**
         * 获取环信token
         */
        void getEasemobToken() {
            WebClient webClient = buildBase();
            Mono<RspToken> rspMono = webClient
                    .post()
                    .uri(EasemobConst.API_URL_GETTOKEN)
                    .syncBody(new GetToken())
                    .retrieve()
                    .onStatus(e -> e.is4xxClientError(), resp -> {
                        return Mono.error(new RuntimeException(resp.statusCode().value() + " : " + resp.statusCode().getReasonPhrase()));
                    })
                    .bodyToMono(RspToken.class);
    
            rspMono.doOnError(onerror -> {
                logger.error("请求IM服务失败,请稍后重试!");
                onerror.printStackTrace();
            });
    
            RspToken rspToken = rspMono.block();
            // There are fucking Spaces
            EasemobConst.BASE_TOKEN = "Bearer " + rspToken.getAccess_token();
        }
    
        /**
         * 构建基础请求
         */
        WebClient buildBase() {
            return WebClient
                    .builder()
                    .baseUrl(EasemobConst.API_BASE_PATH)
                    .defaultHeaders(header -> {
                        header.setContentType(MediaType.APPLICATION_JSON);
                    })
                    .build();
        }
    }
    

    自实现IM

    使用技术如下

    • - JAVA 1.8
    • - SpringBoot
    • - Websocket
    • - Netty
    • - RabbitMQ
    • - Redis

    实现想法

    总体流程:

    • - 客户端指用户使用的客户端。客户端统一使用Websocket发起连接请求到后台的Netty服务器
    • - 客户端连接成功之后,紧接着想服务器发起一段报文。报文内含 客户端的用户id等信息
    • - Netty接收到请求之后将Channel与客户id绑定,存储到java.util.map 里面
    • - 每次接收到请求判断map里面是否存在消息接受者的id。如果没有存到消息同步库。待接收者上线后拉取信息

    客服机器人:

    • - 客服机器人由后台写netty客户端连接到服务器,机器人与普通客户之间以客户id开头字母匹配。

    以上写的信息有点不详细。想请教一下各位大神指出不足之处。

    • 暂不考虑传输 音频、视频等。目前只传送纯文本
    • 暂不考虑报文安全性
    • 暂不考虑报文大小、浪费的流量以及电量等
    • 暂不考虑大量并发
    • 暂不考虑分布式部署

    目前只是实现业务目标。

    2018年12月20日

    • 现在又多了一个问题。怎么把这玩意弄成高可用的、、

    2018年12月21日

    • 如果管理channel等信息存储在map里面。这样对于高可用的行不通的,一旦单点故障。整个IM就完蛋了。
    展开全文
  • 小程序客服机器人自动回复机器人自动回复机器人自动回复
  • 未来机器人可以广泛应用于各类网站的客服、QQ机器人和微信公众平台。 如果您有任何疑问可以在留言反馈中提出来,或者邮件至:403861431@qq.com 接口申请官网地址:www.weilaitec.com 接口地址(例子): ...

     

     

    • 未来机器人是一个很智能的机器人,智能程度大概6-8岁小孩的智力水平。
    • 未来机器人可以广泛应用于各类网站的客服、QQ机器人和微信公众平台。
    • 如果您有任何疑问可以在留言反馈中提出来,或者邮件至:403861431@qq.com

    接口申请官网地址:www.weilaitec.com 

    接口地址(例子): 

    http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip 

    用户端消息内容。 

    String msg ="你在干嘛呀?";  

    apikey参数。这个apikey就是网站上申请的APIKEY 

    apikey ="";  

    //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)  

    String ip ="";  

    //这里一定要encode转换编码。转成GBK。 

    msg = URLEncoder.encode(msg, "GBK"); 

    三个参数全部小写 

    msg参数就是传输过去的对话内容。 

    msg参数要编码成gbk,不然会乱码。 

    接口具体代码: 

    package ai.nlp.jiekou.test;

    import java.io.ByteArrayOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.UnsupportedEncodingException;

    import java.net.HttpURLConnection;

    import java.net.URL;

    import java.net.URLEncoder;

    import ai.nlp.util.changliang.ChangLiangZi;

    public class ApiTest {

    /**

    * Get请求,获得返回数据

    * @param urlStr

    * @return

    */

    private static String opUrl(String urlStr)

    {

    URL url = null;

    HttpURLConnection conn = null;

    InputStream is = null;

    ByteArrayOutputStream baos = null;

    try

    {

    url = new URL(urlStr);

    conn = (HttpURLConnection) url.openConnection();

    conn.setReadTimeout(5 * 10000);

    conn.setConnectTimeout(5 * 10000);

    conn.setRequestMethod("POST");

    if (conn.getResponseCode() == 200)

    {

    is = conn.getInputStream();

    baos = new ByteArrayOutputStream();

    int len = -1;

    byte[] buf = new byte[128];

    while ((len = is.read(buf)) != -1)

    {

    baos.write(buf, 0, len);

    }

    baos.flush();

    String result = baos.toString();

    return result;

    } else

    {

    throw new Exception("服务器连接错误!");

    }

    } catch (Exception e)

    {

    e.printStackTrace();

    } finally

    {

    try

    {

    if (is != null)

    is.close();

    } catch (IOException e)

    {

    e.printStackTrace();

    }

    try

    {

    if (baos != null)

    baos.close();

    } catch (IOException e)

    {

    e.printStackTrace();

    }

    conn.disconnect();

    }

    return ChangLiangZi.WU;

    }

    public static void main(String args []){

    //三个参数全部小写

    //msg参数就是传输过去的对话内容。

    //msg参数要编码成gbk,不然会乱码。

    String msg ="你在干嘛呀?";

    //apikey参数。

    String apikey ="UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV";

    //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)

    String ip ="127.0.0.1";

    //这里一定要encode转换编码。转成GBK。

    try

    {

    msg = URLEncoder.encode(msg, "GBK");

    } catch (UnsupportedEncodingException e)

    {

    e.printStackTrace();

    }

    System.out.println(opUrl("http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip));

    }

    }

     

     

    展开全文
  • 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口...

    认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能实现落地四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。 认知智能技术体系设计架构以古今中外哲学,众多科学体系思想以及融智学,HNC,三体论等思想为指导,以类脑结构功能机制为目标。在架构设计上融合了现在的感知智能技术体系,同时也发展和创新了很多全新的技术体系。在类脑技术体系的设计上,把人脑核心主要能力对应到相应的技术体系之上,这样逐步,逐层,依次实现人脑的各种能力。从而形成一套类脑设计的技术体系。这也是整套认知智能技术体系设计的核心思想。在类脑的技术体系设计上,从类脑的感知,记忆,学习,理解,认知,逻辑,情感,沟通,意识等方面,进行了全面的梳理。每一个类脑能力,都有了对应的技术体系。目前认知智能整套技术体系,除了类脑的意识之外,其他的类脑能力技术体系都在陆续的落地之中。具体可以详看认知智能技术架构图。

     

    接口申请官网地址:www.weilaitec.com 

    接口地址(例子): 

    http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip 

    用户端消息内容。 

    String msg ="你在干嘛呀?";  

    apikey参数。这个apikey就是网站上申请的APIKEY 

    apikey ="";  

    //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)  

    String ip ="";  

    //这里一定要encode转换编码。转成GBK。 

    msg = URLEncoder.encode(msg, "GBK"); 

    三个参数全部小写 

    msg参数就是传输过去的对话内容。 

    msg参数要编码成gbk,不然会乱码。 

    接口具体代码: 

    package ai.nlp.jiekou.test;

    import java.io.ByteArrayOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.UnsupportedEncodingException;

    import java.net.HttpURLConnection;

    import java.net.URL;

    import java.net.URLEncoder;

    import ai.nlp.util.changliang.ChangLiangZi;

    public class ApiTest {

    /**

    * Get请求,获得返回数据

    * @param urlStr

    * @return

    */

    private static String opUrl(String urlStr)

    {

    URL url = null;

    HttpURLConnection conn = null;

    InputStream is = null;

    ByteArrayOutputStream baos = null;

    try

    {

    url = new URL(urlStr);

    conn = (HttpURLConnection) url.openConnection();

    conn.setReadTimeout(5 * 10000);

    conn.setConnectTimeout(5 * 10000);

    conn.setRequestMethod("POST");

    if (conn.getResponseCode() == 200)

    {

    is = conn.getInputStream();

    baos = new ByteArrayOutputStream();

    int len = -1;

    byte[] buf = new byte[128];

    while ((len = is.read(buf)) != -1)

    {

    baos.write(buf, 0, len);

    }

    baos.flush();

    String result = baos.toString();

    return result;

    } else

    {

    throw new Exception("服务器连接错误!");

    }

    } catch (Exception e)

    {

    e.printStackTrace();

    } finally

    {

    try

    {

    if (is != null)

    is.close();

    } catch (IOException e)

    {

    e.printStackTrace();

    }

    try

    {

    if (baos != null)

    baos.close();

    } catch (IOException e)

    {

    e.printStackTrace();

    }

    conn.disconnect();

    }

    return ChangLiangZi.WU;

    }

    public static void main(String args []){

    //三个参数全部小写

    //msg参数就是传输过去的对话内容。

    //msg参数要编码成gbk,不然会乱码。

    String msg ="你在干嘛呀?";

    //apikey参数。

    String apikey ="UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV";

    //客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)

    String ip ="127.0.0.1";

    //这里一定要encode转换编码。转成GBK。

    try

    {

    msg = URLEncoder.encode(msg, "GBK");

    } catch (UnsupportedEncodingException e)

    {

    e.printStackTrace();

    }

    System.out.println(opUrl("http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip));

    }

    }

     

    展开全文
  • 认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口...
  • 春松客服:多渠道智能客服 快速获得好用的开源智能客服系统。 是高性能,低接触方式的企业客户支持系统,由面向全球开放。 春松客服是Chatopera自主研发以及基于并增强其他开源软件的方式实现的,春松客服会不断...
  • 同学们好,智能客服小讲堂又上线啦~上一期智能客服小讲堂讲解了智能客服的知识处理能力——知识图谱技术(点击蓝字直达)。本期小讲堂将会带来新的技术解读,让大家秒懂客服机器人是如何和用户实现...
  • 1、登录拼多多,找到多多客服,点击消息回复设置。 2、进入机器人响应设置的特殊设置。 3、点击右上角的新问题。 4、增加新问题后,在输入相应的回复模板,点击确定。 5、单击确定,选择问题,然后点击保存并发布。 ...
  • 支持中国机器人事业,敬请关注《机器人世界CRW》!来源:经济日报2019年春晚,第一次亮相全民“抢红包”的百度成功发出9亿元红包,引来全球208亿次互动,并且绑卡提现顺畅,没有宕机事件,刷新了中国互联网史上多项...
  • 小程序怎么接入机器人客服系统

    千次阅读 2018-05-22 10:56:43
    可以自定义机器人客服的接待模式,模式一仅在客服接待上限的时候启用机器人客服,模式二优先机器人进行接待来服务用户。 当遇到机器人无法解答的问题时,可以转接到人工。 支持自定义机器人的欢迎语、转人工提示语...
  • 未来,AI真的会夺走你我手中的工作?不知所措的情绪让许多人很焦虑,但全然不需要这么悲观,...例如客服领域和新闻写稿领域。 杀手级应用:客服、写稿以一抵十,速度快还更准确! 随着AI的发展,客服领域使用人...
  • 马云家的人工智能再露锋芒—昨天下午,阿里巴巴人工实验室旗下首款智能硬件产品“天猫精灵X1”正式在北京发布,关注度瞬时爆棚。...今年3月,阿里小蜜姊妹版——专为阿里商家开发的人工智能客服机器人“店...
  • 请举起您珍贵的小手,点个赞吧 下面是我的示例图: 开通对话平台服务: 官网:https://openai.weixin.qq.com/ 1.创建机器人 注册成功后会要求你创建一个新的机器人: 首次使用点击首页开始按钮, 创建客服机器人, 填写...
  • ) 03 涨价消息引热议后官方回应 ①客服回应:不是平台统一提价 ▼相关品牌客服表示最近是有部分柜机价格轻微提升不同区域的门店根据市场情况调整收费标准不是平台统一提价 ②共享充电宝为什么充电慢 ▼第一个原因...
  • 在输入“电量不足”等关键词时,客服机器人回复显示,美团充电宝容量一般是5000毫安,在弹出仓位时,会确保电量大于80%。常规情形下,可支持3-4小时的充电时长。如发现电量不足,可及时归还。 而在询问充电宝由于...
  • 如今智能客服机器在企业中的应用已经不仅广泛,能够更为高效的解决客服问题,而且降低企业客服人员工作量,让机器人客服也具有个性化的特点。随着新技术应用的发展趋势,在线客服的咨询量猛增,公司急缺客服来应对...
  • 关于客服机器人近年来,随着各个企业新业务需求的不断增加,业务复杂度的逐渐增强,用户量的持续攀升,各个企业的客户服务部门承受着巨大的压力:由于用户数量不断增加,而现有的服务模式应对方式单一,造成人工服务...
  • 千手客服机器人是一款自动回复多个电商平台买家消息的RPA+AI客服机器人,回复更快捷、更智能、更准确。 解决客服行业痛点 买家数量多,咨询量大 80%为低价值重复性的问题 人工无法及时响应 每个电商平台都有自己的...
  • 客服机器人资料在线聊天机器人 集成图灵智能应答接口 解压直接运行即可
  • 一、微信接入聊天机器人客服步骤: 1、当前企业开通在Udesk后台开通了机器人客服功能,详情请见“智能机器人设置” 2、在Udesk系统后台”管理中心-渠道管理-即时通讯-IM机器人”处配置“微信”渠道使用机器人。 微信...
  • Elsa机器人用到的中文分词算法是我自己写的聊天机器人。...(软件每次启动加载一个美女,纯属给自己看,图个乐子),如果你的网站想加入在线机器人客服可以和我联系。 关于Elsa机器人我在http://www.cnblogs.com...
  • 下面给亲,介绍下机器人客服对话页面吧,主要分为七大块:【1】我要咨询:了解近期咨询热点;【2】我要办理:常用的办理热点链接;【3】我有疑问:疑难杂症都能在这里找到解答;【4】猜您喜欢:都是为您展示最新提醒...
  • 图灵机器人智能客服

    2015-11-19 22:43:00
    无需导入sdk,通过在图灵注册的key实现智能聊天客服功能
  • 智能客服机器人

    2019-03-09 16:20:53
    这类资源稀缺,网上找不到,只好花钱买个电子版的,分享给有需要的。
  • 近年随着电商行业的兴起,企业面临雇佣成本的增加,客服人员面临工作内容也大大增加,在每年电商节日时,...全时段客服支持 智能客服机器人一旦完成搭建即可以保持全时段在线,而无需更多的成本;对于电商行业而言...
  • 智能客服机器人在各类电商平台被广泛应用,电商行业是在线客服的典型应用场景之一。那么智能客服机器人能为电商企业带来哪些优势呢?(一)电商客服存在的问题1.电商渠道多样,消息不易整合管理电商平台众多,商机入驻...
  • 【智能语音客服机器人公司电话】想要找北京当地智能语音客服机器人公司电话,或者其他地方的智能语音客服机器人客服电话,但是却没有相应的途径和选择,所以小水智能在这里整理一下智能语音客服机器人是一个辅助性...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,216
精华内容 486
关键字:

机器人客服