手把手教你制作一个简单的聊天机器人(图灵api)「建议收藏」

手把手教你制作一个简单的聊天机器人(图灵api)「建议收藏」前言:在无聊的时候打打游戏、听听歌还不如来找个人来陪你聊天,今天来教大家制作一个聊天机器人,这样就不会无聊了,在线聊天机器人地址借愁哥哥机器人(可能有点丑,大家将就一下(????))这个接口就目前的一天100次聊天机会,大家要珍惜哦,源码在文章末尾哦!效果图:目录:一.准备工作二.项目开始1.页面布局:2.样式层:3.逻辑实现:一.准备工作通过分析我们需要以下的具体准备:对于界面的分析,我们需要用到的插件:jQuery,我们采用的是flex弹性布局,既然使用的是图灵机器人

大家好,又见面了,我是你们的朋友全栈君。

前言:在无聊的时候打打游戏、听听歌还不如来找个人来陪你聊天,今天来教大家制作一个聊天机器人,这样就不会无聊了,在线聊天机器人地址借愁哥哥机器人(可能有点丑,大家将就一下 (?) )


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


效果图:


机器人演示图


一.准备工作


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

  1. 对于界面的分析,我们需要用到的插件:jQuery,
  2. 我们采用的是flex弹性布局,
  3. 既然使用的是图灵机器人那么就需要图灵机器人的api

在这里插入图片描述

二.项目开始


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,那么我们要去图灵机器人官网去申请,当我们注册认证成功后,那么我们会有以下界面:
在这里插入图片描述
我们需要的是其中的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('');
        };
    });
  1. 发送了消息后怎么处理呢?这时候我们来书写消息处理对话函数;
   //【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>`);
            };
        });
    };
  1. 当然我们可以采用按下回车建的方法来进行消息的发送,如下:
$('#text1').on("keyup", function(e) { 
   
        // 回车键
        if (e.keyCode === 13) { 
   
        //调用点击事件
            $('.btn').click();
        }
    });

这样简单的聊天机器人就实现了,源码地址:https://github.com/JCGG-99977/Roboat(当然你们觉得照片丑的话可以自行更换哦!)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161215.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm2021.11.2激活码(注册激活)

    (pycharm2021.11.2激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0E14HXZ4QL-eyJsaWN…

    2022年3月29日
  • Repeater控件的ItemDataBound事件

    Repeater控件的ItemDataBound事件Repeater控件的ItemDataBound事件:在项被绑定数据后触发。下面的例子来自msdn,不过我把前台和后台分开了。前台是:ViewCode&lt;%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="WebForm1.aspx.cs"Inherits="WebApplication2.WebForm1…

    2022年10月13日
  • 【Tensorflow】安装支持AVX2指令集的Tensorflow「建议收藏」

    【Tensorflow】安装支持AVX2指令集的Tensorflow「建议收藏」主要依据:https://github.com/fo40225/tensorflow-windows-wheel在ReadMe中找到满足自己需求的版本我用的是:打开文件夹,获取其下载链接:https://github.com/fo40225/tensorflow-windows-wheel/blob/master/1.13.1/py37/CPU/avx2/tensorflow-1.13…

    2022年5月29日
  • 简述信道带宽的概念_传输信道带宽是什么意思

    简述信道带宽的概念_传输信道带宽是什么意思在写这篇文章之前我一直对“带宽”这个用语比较迷惑,比如我们通常说“带宽10M的网络”,“网络带宽是10M”等等,很容易跟信道的带宽比如10MHZ、100MHZ相混淆。我查阅了相关的资料,终于在通信和电路上将这两个概念彻底搞清楚了。1、网络带宽我们通常口头上说的网络带宽,用标准的术语来说应该是信道容量,单位为比特每秒(bit/s)。在通信原理中用香农公式计算出…

    2022年10月11日
  • 安卓4.0/4.1/4.2手机怎么打开USB调试模式「建议收藏」

    安卓4.0/4.1/4.2手机怎么打开USB调试模式「建议收藏」提示:手机和电脑的连接方式都是ADB连接方式,所以手机上是必须打开USB调试才能正式连接和控制手机,根据安卓多个版本系统一共有3个开启USB调试模式方法。下面三个3个模式开启方法介绍::第一种模式是:

    2022年7月2日
  • 2019 年最好用的 6 款数据库监控工具[通俗易懂]

    https://www.toutiao.com/a6654350892373901831/?tt_from=mobile_qq&amp;utm_campaign=client_share&amp;timestamp=1549354401&amp;app=news_article&amp;abtest_id=1&amp;iid=59568063679&amp;utm_medium=toutiao_a…

    2022年4月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号