手把手教你制作一个简单的聊天机器人(图灵api)

小白前端开发

共 4748字,需浏览 10分钟

 ·

2021-04-18 19:34

前言:在无聊的时候打打游戏、听听歌还不如来找个人来陪你聊天,今天来教大家制作一个聊天机器人,这样就不会无聊了

05781d4820439fade21181b6747f8256.webp

(这个接口就目前的一天100次聊天机会,大家要珍惜哦,源码在文章末尾哦!)效果图:

b472aaf5d9d5023af674aedda6bd4400.webp

一.准备工作

通过分析我们需要以下的具体准备:

                1. 对于界面的分析,我们需要用到的插件:`jQuery`

                2. 我们采用的是`flex`弹性布局,

                3. 既然使用的是图灵机器人那么就需要图灵机器人的`api`

53ff4be68b6bf758cd154aa41585a734.webp

 二.项目开始

        1.页面布局:

         在前面说过我们需要采用`flex`来进行布局,那么我们来看看大概代码:

我们需要引入的文件:

  <!-- 自己书写的css样式 -->    <link rel="stylesheet" href="./css/index.css">    <!-- 引入jQuery插件 -->    <script src="./js/jquery-3.5.1.min.js"></script>    <!-- 书写的js逻辑层 -->    <script src="./js/index.js"></script>    <!-- 滚动条插件 -->    <link rel="stylesheet" href="./css/optiscroll.css">    <!-- js版本 -->    <script src="./js/optiscroll.js"></script>    <!-- 或者作为jQuery插件 -->    <script src="./js/jquery.optiscroll.js"></script>

HTML:

<div class="action">        <h3>借愁哥哥</h3>        <!-- 中间聊天部分 -->        <div class="top optiscroll" id="scroll">            <ul class="menu">                <li class="top_left">                    <img src="./img/you.jpg" class="left">                    <!--开始默认机器人说的话-->                    <span class="message">借愁哥哥下发的小可爱</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="bottom">            <input type="text" id="text1" placeholder="想要说点什么呢?">            <button class="btn">发送</button>        </div>    </div>


         2.样式层:

            当然仅仅有HTML代码并不能看出大概的效果,我们通过`css`来进行渲染一下:

CSS:

/* css初始化 */
* { margin: 0; padding: 0; box-sizing: border-box;}
ul li { list-style: none;}

/* 设置整体布局的样式 */
.action { width: 500px; height: 700px; border: 1px solid #999; margin: 0 auto; display: flex; justify-content: center; flex-direction: column;}
.action h3 { text-align: center;}

/* 设置消息装载容器 */
.action .top { flex: 15; background-color: #ddd;}
.action .top .menu { position: relative;}
.action .top img { width: 50px; height: 50px; border-radius: 50%;}
.action .top .message { border: 5px solid black; border-radius: 6px; max-width: 290px; border-radius: 12px; font-size: 16px; color: black; margin-left: 13px; line-height: 24px;}
.action .top .top_left { left: 0; display: block;}
.action .top .top_right { position: absolute; right: 0;}

/* 设置输入消息容器 */
.action .bottom { flex: 1; background-color: #333; display: flex;}
.bottom input { flex: 4;}
.bottom button { flex: 1;}


        3.逻辑实现:

        前面已经进行了布局和样式的设计,那么我们具体来看看怎么实现,我们需要的是图灵机器人的`api`,那么我们要去图灵机器人官网去申请,当我们注册认证成功后,那么我们会有以下界面:

4e9cc9c826629ae284082ae91fc21779.webp

我们需要的是其中的`apikey`来进行与机器人具体的操作!


1. 由大概界面知道,我们是通过点击发送按钮来进行消息的传输,那么我们就需要发送按钮的点击事件;


// 点击发送按钮    $('.btn').click(function() {        // 获取到文本框的值        var text1 = $("#text1").val();        // 判断是否为空值        if (text1.trim().length > 0) {        //添加节点            $(".menu").append(`<li class="top_right" style="margin-top:20px;">            <span class="message">${text1}</span>            <img src="./img/me.jpg" class="left">        </li>`);            // 文本框值进行清空            $("#text1").val('');            // 调用对话函数(在下面会进行书写)            getTL(text1);        } else {        //输入框内容清空            $("#text1").val('');        };    });

2. 发送了消息后怎么处理呢?这时候我们来书写消息处理对话函数;

 //【2】进行对话操作    function getTL(text) {    //data对象存储apikey和返回的消息        var data = {            key: '758ecd943dd644b59ff2d1f73759500d',            info: text        };        //提交数据        $.post("http://www.tuling123.com/openapi/api", data, (result) => {            console.log(result);            // 可以正常聊天的code            if (result.code === 100000) {                $(".menu").append(`<li class="top_left" style="margin-top: 100px;">                <img src="./img/you.jpg" /> <span class="message">${result.text}</span></li>`);            }             //为40004时候就是我们的激活使用完了,当然每天100次哦            else if (result.code === 40004) {                $(".menu").append(`<li class="top_left">                <img src="./img/you.jpg" style="margin-top: 80px;" /> <span class="message">今天的俺有点瞌睡了,让俺好好休息休息,明天再来看你哦!</span></li>`);            };        });    };

3. 当然我们可以采用按下回车键的方法来进行消息的发送,如下:

$('#text1').on("keyup", function(e) {        // 回车键        if (e.keyCode === 13) {        //调用点击事件            $('.btn').click();        }    });   

54fe9d7b8b33839a266d6c61b9ed01d3.webp

这样简单的聊天机器人就实现了,源码地址:

`https://github.com/JCGG-99977/Roboat`借愁哥哥



浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报