如何用Java实现智能对话机器人

Java实现智能对话机器人自动聊天+语音秒回 技术说明: 1. 调用青云课人工智能聊天API接口 请求地址 http://api.qingyunke.com/api.php 请求方式 GET 字符编码 utf-8 请求示例 http://api.qingyunke.com/api.php?key=free&appid=0&msg=你好 2. 下载jacob.jar实现文本转语音 需要资源或代码有疑问的可加我的技术讨论q群1005611884 3. 使用Java Swing实现简单.. 阅读详情

前言 这个时代人工智能如此火爆,身为圈内人我们应该多少对他有些了解,为了靠他近一些今天我们动手用Java实现一个智能聊天机器人,当然此处我们需要依赖图灵机器人的Api


点我进入图灵机器人官网注册帐号

这篇博客涵盖的知识点

  • HTML网页源代码抓取
  • JSON字符串解析

以下为需要用到的Jar

Jar备注
JSONObject用于解析JSON

首先我们要注册一个图灵机器人的帐号 并创建我们自己的机器人

创建机器人

这里可以根据个人需求填写
然后拿到我们刚刚创建的机器人的APIkey

APIkey

从这里我们可以拿到我们的api请求地址,和我们的机器人的APIkey


图灵机器人现在维护的请求方式为POST 但是GET请求还能使用,这里我们使用GET请求接口。
接口的请求地址为 http://www.tuling123.com/openapi/api?key= [APPkey]&info=[你需要发送的消息]

准备完毕后 我们开始代码部分

  • 第一步,编写的工具类
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

/**
 * @author 4everlynn
 * @date 2017/12/17
 */
public class Util {
    //存储APIkey
    public static final String API_KEY = "填写你的APPKEY";
    //存储接口请求地址
    public static final String API_URL = "http://www.tuling123.com/openapi/api";

    /**
     * 拼接出我们的接口请求地址
     *
     * @param msg 需要发送的消息
     * @return
     */
    private String setParameter(String msg) {
        //在接口请求中 中文要用URLEncoder encode成UTF-8
        try {
            return API_URL + "?key=" + API_KEY + "&info=" + URLEncoder.encode(msg, "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 拿到消息回复的内容的方法
     * @param json 请求接口得到的JSON
     * @return text的部分
     */
    private String getString(String json){
        try {
            JSONObject object = new JSONObject(json);
            return object.getString("text");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 提供对外公开的方法用于最终拿到机器人回复的消息
     * @param msg 传入你需要发送的信息
     * @return 机器人对你的回复
     */
    public String getMessage(String msg){
        return getString(getHTML(setParameter(msg)));
    }


    private String getHTML(String url) {
        StringBuffer buffer = new StringBuffer();
        BufferedReader bufferedReader = null;
        try {
            //创建URL对象
            URL u = new URL(url);
            //打开连接
            HttpURLConnection connection = (HttpURLConnection) u.openConnection();
            //从连接中拿到InputStream并由BufferedReader进行读取
            bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line = "";
            //循环每次加入一行HTML内容 直到最后一行
            while ((line = bufferedReader.readLine()) != null) {
                buffer.append(line);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                //结束时候关闭释放资源
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return buffer.toString();
    }
}

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94

  • 第二步,编写测试类
package com.disware;

import java.util.Scanner;

/**
 * @author 4everlynn
 * @date 2017/12/17
 */
public class Main {

    public static void main(String[] args) {
        //声明并实例化我们刚刚封装好的工具类
        Util util = new Util();
        //接收用户输入
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            //直接输出机器人的回复
            System.err.println("Ta 对你说 -> " + util.getMessage(scanner.nextLine()));
        }
    }
}

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22


效果图





Android智能聊天机器人:图灵API实战教程 Android平台的智能聊天机器人是移动应用开发领域中的一个热门趋势,这类应用能够通过自然语言处理技术,与用户进行流畅的交流,实现人机互动。智能聊天机器人可以集成到各种Android应用程序中,提供客户服务、个性化推荐、信息查询、智能助手等多种功能。由于Android系统的广泛普及,开发者们得以通过这种形式,将先进的智能技术推广到数以亿计的用户手中。图灵机器人API提供了一系列的接口,允许开发者将人工智能的聊天机器人集成到自己的应用中。功能覆盖文本理解和生成,用户画像管理,会话管理等多个方面。 阅读详情

相关推荐

springboot-aimlbot 智能问答机器人示例

基于aiml实现的智能问答机器人,spring boot 整合aiml

SpringBoot+Vue+Uniapp搭建的Java版本的智能Ai对话系统

SpringBoot+Vue+Uniapp搭建的Java版本的智能Ai对话系统

IT谢彪的博客 3381

Anaconda详细安装及使用教程(带图文)

Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda的下载文件比较大(约531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和Python)。 Conda是一个开源的包、环境管理器,可以用于...

代码帮 186万+

如何用Java写一个聊天机器人

如何用Java写一个聊天机器人?

qq_47431361的博客 2万+

基于ESP32的气象雷达站设计与实现

物联网技术通过嵌入式设备实现环境数据的实时采集与可视化,其中ESP32凭借其双核处理器和WiFi/蓝牙功能成为热门选择。本项目利用ESP32结合LVGL图形库,构建了一个低成本气象监测系统,通过OpenWeatherMap API获取全球气象数据并在7英寸触摸屏上动态展示。系统采用三级优化策略处理高分辨率雷达图,包括服务端预处理、硬件加速解码和显示增强,有效解决了内存占用和帧率问题。在物联网设备开发中,类似方案可应用于智能家居、农业监测等场景,特别是需要实时数据可视化的领域。通过SPIFFS存储和zlib压

weixin_42524864的博客 422

【图形学】后处理下的HDR、颜色分级、颜色映射与颜色空间

目录 一、Color Grading 1.1概念 1.2 内置在Unity/UE4 二、HDR、LDR与VDR 2.1 LDR 2.2 HDR 2.3 VDR 三、Tone Mapping 3.1 概念 3.2 算法发展史 3.3 ACES算法 四、常见的颜色空间标准 参考 一、Color Grading 1.1概念 Color Grading(颜色分级、颜色校正)俗称调色,是游戏后期处理中最常见也是必要的一个环节。它能够改变或矫正最终图像的颜色和亮度,你可以把它想象...

ColorGalaxy 8419

Java智能之Spring AI:5分钟打造智能聊天模型的利器

通过本文的介绍,我们深入了解了Spring AI项目的优势和特性,以及在实际应用中的快速实战示例。Spring AI作为一个高度抽象化的人工智能应用程序开发框架,为开发者提供了便捷的模型支持、灵活的功能模块交换和优化能力。它不仅能将AI模型输出映射为POJO,还能与主流矢量数据库提供商无缝集成,从而显著提升开发AI应用程序的效率和可靠性。与Python相比,Java在企业级应用和大型系统中具有显著优势。

努力的小雨,一个阳光向上的博客不仅仅给你知识更希望带给你快乐 1443

Origin2018(汉化版)在使用科学计数法的时候如何将坐标刻度的0.0改成0

文章目录1 问题2 解决方法 1 问题 先看下面这张图,当我使用科学计数法时,纵坐标出现了0.0的字样,这样看起来很不美观。有些期刊还会有要求,不能出现0.0的格式。 图1 那么该怎么将它改成0呢?首先让我们尝试着用Origin自带的属性,看看能不能设置。 2 解决方法 解决方法一: step1: 双击坐标轴,打开坐标轴属性设置。 step2: 在刻度线标签选项中设置左轴的显示 图2 会发现,按照图2的方式改好之后,其它的小数位也全没了,如果但是有些数字就被覆盖了,这显然不是我

qq_40077565的博客 2万+

智能对话 | 使用 Java实现 智能对话机器人

人工智能 目前人工智能与深度学习顺应了互联网时代潮流,人机对话已经成为目前人工智能领域中非常热门的处理技术。其中基于深度学习的人机对话交换系统(智能机器人)是人工智能最有潜力的领域,甚至被称作人工智能的皇冠。相对于传统的页面简单交互,人机对话系统更能读懂你的内心世界与想法。 机器人人机对话系统主要涉及深度学习、机器学习、特征过程、自然语言处理等核心知识。 技术领域 在此,先推荐一下学习的主...

haponchang的博客 2万+

从波士顿动力SpotMini拆解看四足机器人机械设计:关节布局与电机选型的5个关键决策点

本文深入解析波士顿动力SpotMini四足机器人的机械设计,聚焦关节布局与电机选型的5个关键决策点。通过拆解髋关节偏移距、膝关节传动链、电机热管理等核心设计,揭示商业级四足机器人的工程智慧,为工业巡检、物流机器人等应用提供实用参考。

postgres8guard的博客 893

MacBook上玩转国民技术N32G430:从零搭建ARM开发环境(VSCode + pyOCD)

本文详细介绍了在MacBook上搭建国民技术N32G430的ARM开发环境,涵盖VSCode配置、pyOCD调试及一键编译烧录全流程。通过Homebrew安装工具链、配置Python环境及VSCode插件,开发者可在MacOS高效开发嵌入式应用,特别适合国产芯片N32G430的开发者参考。

weixin_30614109的博客 436

java 对话 智能,如何用Java实现智能对话机器人

如何用Java实现智能对话机器人前言 这个时代人工智能如此火爆,身为圈内人我们应该多少对他有些了解,为了靠他近一些今天我们动手用Java实现一个智能聊天机器人,当然此处我们需要依赖图灵机器人的Api这篇博客涵盖的知识点HTML网页源代码抓取JSON字符串解析以下为需要用到的JarJar备注JSONObject用于解析JSON首先我们要注册一个图灵机器人的帐号 并创建我们自己的机器人这里可以根据个人...

weixin_34246971的博客 1497

海思图像质量之HiPQTool调试

文章目录一. HiPQTool 界面二. 图像调试三. 将调试参数写入程序中 一. HiPQTool 界面 二. 图像调试 三. 将调试参数写入程序中

lzg2011的博客 2378

java对接图灵机器人搭建自己的智能机器人

一、概述 1、图灵机器人大脑具备强大的中文语义分析能力,可准确理解中文含义并作出回应,是最擅长聊中文的机器人大脑,赋予软硬件产品自然流畅的人机对话能力。 2、我们熟悉的案例有QQ小冰,通过用户的输入能够达到智能对话,当然,图灵机器人的运用不止于此。 3、作为一个 java 初学者,可以利用图灵的 Api ,搭建一个智能对话系统,玩一点有意思的东西,哈哈。 案例:图灵机器人支持自定义词库,这......

码坑中的咸鱼 8429

相位偏折PMD全栈技术拆解 | 四步相移解算+梯度积分形貌重建,助力镜面工件微米级缺陷高精度稳定检测

工业精密检测领域中,高反光镜面类工件长期存在检测瓶颈,涵盖汽车高亮车漆、半导体抛光晶圆、光学透镜、精密抛光模具、玻璃盖板等主流产品。传统2D机器视觉仅能识别表面明显污渍、大尺寸破损,完全无法捕捉微米级划痕、凹坑、橘皮、曲面微形变等微观缺陷;常规线激光3D、普通结构光3D检测设备,面对镜面材质会产生严重镜面反射杂光,激光条纹、结构光图案完全失真,必须喷涂显影粉辅助检测,不仅破坏工件表面完整性,还无法适配自动化量产产线,检测效率与良率极低。

getusushu的博客 543

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

如何快速构建微信机器人:从零开始的智能对话系统实战指南

想要为自己的微信账号添加一个智能助手吗?🤖 微信机器人开发正成为越来越多开发者和技术爱好者的热门选择。今天我将为大家详细介绍一个基于Java的微信机器人项目,帮助你从零开始构建功能丰富的智能对话系统。 这个微信机器人项目支持自动回复好友消息、群聊陪聊、查询天气、垃圾分类、查看新闻和知乎热榜等实用功能,让你的微信账号变得更加智能和高效!✨ ## 🚀 微信机器人的核心功能 ### 智能对话与

gitblog_00345的博客 792

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

WorkTool企微机器人接入智能问答

WorkTool 企微机器人现已经集成 ChatGPT 可以零代码、简单快速地搭建智能对话机器人。OpenAI开放文档(ChatGPT):https://platform.openai.com/docs/guides/chat目前集成版本使用模型为 gpt-3.5-turbo。至此,你应该已经完成了 WorkTool 企微机器人和 ChatGPT 的对接,一个智能问答企微机器人就实现了,如果还没了解过 WorkTool 可以先看下官网或入门教程尝试一下。

gallonyin的博客 5204

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

简单的例子:Java结合图灵机器人开发

图灵机器人API可以用作机器人交互,上传一段话,该云机器人可以以Jason格式返回一个比较智能的回答,它支持云机器人的知识库管理和调教。 package chat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpUR

zhuqiaolun的博客 5912

终极微信群机器人指南:5分钟打造智能自动化管理神器

微信群机器人是现代化社群管理的必备工具,能够实现自动化消息推送、智能回复和定时提醒等功能。wechatGroupRobot项目基于Java技术栈,结合天气API和图灵AI,为用户提供强大的微信群自动化管理能力,让您的微信群管理变得更加智能高效。 ## 为什么需要微信群机器人?🚀 在当今快节奏的社交环境中,微信群已经成为人们沟通交流的重要平台。传统的手动管理方式效率低下,容易出现遗漏和延迟。微

gitblog_00492的博客 788

图灵机器人

package com.mandi.test.tuling; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import ...

游园拾忆 229

基于IBM Watson的开源聊天机器人项目介绍

基于IBM Watson的开源聊天机器人项目介绍 本项目是一个开源聊天机器人项目,基于IBM Watson的强大自然语言处理能力构建。主要使用的编程语言是Java,同时包含了CSS和JavaScript等前端技术。 项目基础介绍 本项目旨在帮助开发者快速搭建属于自己的聊天机器人。通过利用IBM Watson的对话服务(Watson Conversation),项目能够实现智能的交互式对话。此外,项...

gitblog_00493的博客 388

Java实现微信机器人二次开发:基于WTAPI的企业级解决方案

在企业级应用开发中,Java凭借其稳定性和生态成熟度,成为微信机器人开发的首选语言。本文将从技术实现角度,探讨如何基于WTAPI平台进行微信机器人的二次开发。Java开发者在选择微信机器人开发方案时,通常面临协议复杂度、账号安全性和开发效率三大挑战。WTAPI作为企业级微信API平台,通过标准化的HTTP接口封装了复杂的微信协议,为Java开发者提供了便捷的接入方式。

2609_95764716的博客 570
上一篇: Postman 使用方法详解
下一篇: SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
java_yuan12138
博客等级 码龄9年 97粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值