文章目录
前言
一、UI布局
二、用户内容渲染到聊天窗口
三、获取聊天机器人消息
1.jquery中的ajax
2.调用机器人接口
四、将机器人的聊天内容转化为语音播放
五、使用回车发送消息
总结
————————————————————————————————————————————————
前言
本文介绍如何用ajax调用聊天机器人接口,将信息显示到聊天框中,语音播放机器人消息。

一、UI布局

聊天框分为头部Header、中间聊天区域、底部Footer消息编辑三大部分。在聊天区域,每条信息都放到每个li中,机器人消息左浮动,用户消息右浮动。
在这里插入图片描述
html代码

 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><link rel="stylesheet" href="css/reset.css" /><link rel="stylesheet" href="css/main.css" /><script type="text/javascript" src="js/jquery-1.12.4.min.js"></script><script type="text/javascript" src="js/jquery-ui.min.js"></script><script type="text/javascript" src="js/jquery.mousewheel.js"></script><title>聊天机器人</title></head><body><div class="wrap"><!-- 头部 Header 区域 --><div class="header"><h3>憨憨宝贝</h3><img src="img/person01.png" alt="icon" /></div><!-- 中间 聊天内容区域 --><div class="main"><ul class="talk_list" style="top: 0px;" id="talk_list"><li class="left_word"><img src="img/person01.png" /> <span>嗨,最近想我了没?</span></li><!-- <li class="right_word"><img src="img/person02.png" /> <span>你好哦</span></li> --></ul><div class="drag_bar" style="display: none;"><div class="drager ui-draggable ui-draggable-handle" style="display: none; height: 412.628px;"></div></div></div><!-- 底部 消息编辑区域 --><div class="footer"><img src="img/person02.png" alt="icon" /><input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" /><input type="button" value="发 送" class="input_sub" id="btnSend" /></div></div><!-- 注意:只要为audio指定了新的src属性,而且指定了autoplay,那么语音会自动播放 --><audio src="" id="voice" autoplay style="display: none;"></audio><script type="text/javascript" src="js/scroll.js"></script><script src="./js/chat.js"></script></body></html>

二、用户内容渲染到聊天窗口

为发送按钮绑定点击事件,当点击后,用户消息渲染到聊天框中,也就是在ul中添加一个li标签。

$(function () {// 初始化右侧滚动条// 这个方法定义在scroll.js中resetui()// 为发送按钮绑定鼠标点击事件$('#btnSend').on('click', function () {//  获取输入内容var text = $('#ipt').val().trim()if (text.length <= 0) {return $('#ipt').val('')}//  如果用户输入聊天内容,则追加到页面显示$('#talk_list').append('<li class="right_word"><img src="img/person02.png" /> <span>' + text + '</span></li>')$('#ipt').val('')//  重置滚动条的位置resetui()//  发起请求获取聊天内容getMsg(text)})

三、获取聊天机器人消息

1.jquery中的ajax
在调用聊天机器人接口前,先介绍一下$.ajax()。
$.ajax()是jquery对XMLHttpRequest对象的封装函数,它可以实现请求服务器上的数据资源。语法如下:

$.ajax({
method:’ ‘,//请求方式
url:’ ',//接口url地址
data:{…},//要传输给服务器的数据
success:function(res){…}// 请求成功时的回调函数
})

2.调用机器人接口

// 获取聊天机器人发送回来的信息function getMsg(text) {$.ajax({method: 'GET',url: 'http://www.liulongbin.top:3006/api/robot',data: {spoken:text},success: function (res) {console.log(res);if (res.message === 'success') {// 接受聊天信息var msg = res.data.info.text$('#talk_list').append('<li class="left_word"><img src="img/person01.png" /> <span>' + msg + '</span></li>')// 重置滚动条的位置resetui()// 调用getVoice函数,把文本转化为语音getVoice(msg)}}})}

四、将机器人的聊天内容转化为语音播放

将机器人回复的消息传参到getVoice()函数,调用语音播放接口,获得一个voiceUrl音频链接。将链接赋值给audio标签的src属性,即可实现语音的播放。

// 把文字转化为语言进行播放function getVoice(text) {$.ajax({method: 'GET',url: 'http://www.liulongbin.top:3006/api/synthesize',data: {text:text},success: function (res) {// console.log(res);if (res.status === 200) {// 播放语音$('#voice').attr('src', res.voicUrl);//voicUrl是服务器返回音频的URL地址}}})
}

五、使用回车发送消息

添加回车键发送消息,提高便捷性。通过对输入框绑定keyup事件,当按键的编码为13,调用发送按钮的click函数。

// 为文本框响应回车事件后,提交消息$('#ipt').on('keyup', function (e) {// e.keyCode可以获取当前按钮的编码// console.log(e.keyCode);if (e.keyCode === 13) {// 调用按钮元素的click函数,可以通过编程的形式触发按钮的点击事件$('#btnSend').click()}
})

总结

本文介绍了如何使用ajax调用聊天机器人接口,实现聊天交互效果,并将聊天机器人的消息语音播放出来。
聊天机器人url: ‘http://www.liulongbin.top:3006/api/robot’
聊天机器人语音url: ‘http://www.liulongbin.top:3006/api/synthesize’,服务器接口有时候不起作用注意

聊天机器人(Ajax实现聊天机器人接口的调用)相关推荐

  1. XRPC接口双向调用

    一般远程接口调用的服务都是基于客户端主动调用服务端,由服务端来提供相关的接口服务:在新版本的XRPC中引入了一个新的功能,即接口双向通讯,组件提供服务创建客户会话的接口代理并调用客户提供的接口服务.接 ...

  2. AJAX实现图灵机器人聊天

    首先,搜索图灵机器人,在图灵机器人注册一个账号,然后新建一个机器人,获得一个key就可以了,这样就可以聊天了. 关键是你在图灵机器人新建生成的key: key=9257afd24a374c69b91e ...

  3. 专属个人的聊天机器人的实现——图灵机器人

    先体验一下:图灵机器人智能聊天体验:http://www.tuling123.com/openapi/cloud/proexp.jsp 1.简单介绍 本篇为大家介绍使用图灵机器人api实现聊天机器人的 ...

  4. 用python写聊天机器人_用Python 写一个机器人陪你聊天(文尾有彩蛋)

    工作一忙,原来秉烛夜谈的好友现在都很少聊天,微信都成了微信群的天下,鲜有微信好友给你发消息,想要主动发却也找不到开题话题,怎么办?用Python写一个机器人陪自己聊聊天吧.以下是源码及解析,小白都看得 ...

  5. 什么是聊天机器人——《设计聊天机器人》翻译 1

    我们是和平的,带着善意的. - 地球停转之日 聊天机器人是软件的未来 机器人将以与网络和移动革命相同的方式升级软件行业.历史告诉我们,在这些革命中出现了巨大的机遇:我们已经看到Uber,Airbnb和 ...

  6. 用Python 写一个机器人陪你聊天(文尾有彩蛋)

    工作一忙,原来秉烛夜谈的好友现在都很少聊天,微信都成了微信群的天下,鲜有微信好友给你发消息,想要主动发却也找不到开题话题,怎么办?用Python写一个机器人陪自己聊聊天吧.以下是源码及解析,小白都看得 ...

  7. python自动聊天机器人设置回复延迟_用Python 写一个聊天机器人陪你聊天(文尾有彩蛋)...

    一.工具简介 1--Python.写代码的工具: 2--itchat库.第三方库,用来登录微信,接收并回复微信好友信息: 3--图灵机器人.第三方接口,我们本次使用的机器人: 二.代码解析 1.准备 ...

  8. c#机器人聊天软件_C#winForm 聊天只能机器人(完整版)

    [实例简介] 很优秀的C#机器人,可以根据自己喜好改下程序! 和支付宝机器人 宝宝一样的功能!很智能. [实例截图] [核心代码] 聊天机器人 └── 聊天机器人 ├── UpgradeLog.XML ...

  9. 如何在微信公众号调用图灵机器人(智能聊天)

    最近在研究微信公众号,有人问我可以找你的公众号聊天吗?我的第一反应是我很忙我要上班没有时间,后面就度娘了一下,发现了这个神奇的图灵机器人,可以替你跟用户聊天!是否期待你的公众号有一个萌萌哒机器人陪客人 ...

  10. 简单的聊天机器人(软件机器人) 拥有QA机器人,闲聊机器人,任务机器人,场景机器人等等一些。

    一.智能聊天机器人 1.智能聊天机器人 用自然语言模拟人类的一种对话形式.人机对话的程序. 主要分为三个方面: --问题咨询:基于业务知识库进行业务问题回答. --数据检索:通过程序找到相对应的数据. ...

最新文章

  1. Spring Boot + Vue.js 实现前后端分离(附源码)
  2. Asp.net core 学习笔记 ( Web Api )
  3. AI转型业绩哪家强?联想一季度营收853亿,净利11亿
  4. 高通平台 MIC BIAS 的问题
  5. Python构造栈结构
  6. codewars??? Is my friend cheating?
  7. 学Linux从编译命令开始——arm-linux-gcc常用参数讲解
  8. lia人是什么意思_狗狗喜欢舔人到底什么意思?毛孩的心思主人你要懂
  9. dz论坛php.ini设置,Discuz!X1.5至3.2论坛Win主机与Linux主机伪静态设置方法
  10. Box2D v2.0.1 用户手册
  11. dockerHub国内镜像设置
  12. C#中在窗体间使用消息来处理相关联的事件
  13. android最新文献,android开发参考文献
  14. mysql 5.7.26卸载_MySQL 5.7.26安装与卸载
  15. Web前端——CSS基础样式
  16. 01表盘控件-08时钟仪表盘-gaugeclock
  17. ultravnc中文版,5步教你如何进行ultravnc中文版配置
  18. 三十五 我在软件园的那些日子里
  19. 美颜SDK的动态贴纸有哪些妙用?
  20. Linux下deb安装包的安装教程

热门文章

  1. 分享--linux 学习之路(学linux必看)
  2. 史上最牛黑客:我是如何入侵摩托罗拉的
  3. Tomcat8 安装drools7.11
  4. ADO_Net学习笔记---总结
  5. 监听input type=file 文件上传取消事件
  6. 键鼠 get事件(获取键盘鼠标按下的值)
  7. 关于Java 中 与 || 逻辑运算符 运算顺序的说明
  8. AIoT,构建更佳边缘AI能力
  9. bootstrap框架过时了吗_为何前端都不愿意用bootstrap框架
  10. 还有这种操作?亚马逊成为洗钱平台?