手把手教你制作一个简单的聊天机器人(图灵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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • KRACK破解Wi-Fi WPA2加密协议 问题相关

    KRACK破解Wi-Fi WPA2加密协议 问题相关Wi-Fi爆重大安全漏洞,Android、iOS、Windows等所有无线设备都不安全了KRACK漏洞发现者回答纪实:所有设备都面临风险无线网络中所使用的WPA2安全加密协议遭到破解LineageOS已经着手修复WPA2安全加密协议的破解问题

    2022年5月1日
    35
  • 治疗治愈埃博拉病毒(非科幻)

    治疗治愈埃博拉病毒(非科幻)

    2022年1月2日
    66
  • 空间解析几何

    空间解析几何解析几何是用代数方法研究几何对象之间的关系和性质的一门几何学分支 通俗讲就是通过建立坐标系来用方程描述几何图形 在解析几何创立以前 几何与代数是彼此独立的两个分支 而它的出现使形与数统一起来 这是数学发展史上的一次重大突破 在平面解析几何中 除了研究直线的有关性质外 主要是研究圆锥曲线 圆 椭圆 抛物线 双曲线 的有关性质 在空间解析几何中 除了研究平面 直线有关性质外 主要研究柱面 锥

    2025年6月30日
    4
  • spring boot打jar包、war包的区别

    spring boot打jar包、war包的区别maven打包项目的打包类型:pom、jar、warpacking默认是jar类型,<packaging>pom</packaging>———>父类型都为pom类型<packaging>jar</packaging>———>内部调用或者是作服务使用<packa…

    2022年5月15日
    93
  • Linux上传文件到OSS

    Linux上传文件到OSS

    2021年6月1日
    201
  • 中文转拼音【真正的完整版】 拼音 驼峰命名专用

    中文转拼音【真正的完整版】 拼音 驼峰命名专用把下面的代码复制了,在桌面建一个后缀为“.html”格式的文件,如:“拼音.html”,打开 拼音.html,Ctrl+V,Ctrl+S,关闭,再打开&lt;!DOCTYPEhtml&gt;&lt;htmllang="cn"&gt;&lt;head&gt;&lt;metacharset="UTF-8"&gt;&lt;title&gt

    2022年6月21日
    24

发表回复

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

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