Java接入图灵机器人,实现与机器人聊天

  很多人都玩过微信,其中就有与机器人聊天的功能:

  这个图灵机器人网站提供了相关的API接口,可以在程序中利用,过程如下:

1.在图灵机器人网(http://www.tuling123.com/openapi/cloud/home.jsp)注册账户,然后他就会给你相应的API KEY,这在程序中需要用到:

2.在Java程序中接入机器人:

        String APIKEY = "官网给你的api key";        String INFO = URLEncoder.encode("你好,美女", "utf-8");//这里可以输入问题        String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY + "&info=" + INFO;        URL getUrl = new URL(getURL);        HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();        connection.connect();

        // 取得输入流,并使用Reader读取        BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream(), "utf-8"));        StringBuffer sb = new StringBuffer();        String line = "";        while ((line = reader.readLine()) != null) {            sb.append(line);        }        reader.close();        // 断开连接        connection.disconnect();

这段代码上部分是连到图灵机器人的官网,下部分是读取他的回复信息。你要问的问题放在了INFO这个String里面。

3.一个简单的聊天程序:

import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.beans.EventHandler;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class 图灵机器人 {
    public 图灵机器人() {
    }
    public static void main(String[] args) throws IOException {
        String information = new String("Hello");
        String mechine = new String();
        JFrame frame = new JFrame("与机器人聊天");
        JPanel panel = new JPanel(new GridLayout(3,1));
        JPanel questionPanel = new JPanel(new FlowLayout());
        JPanel buttonPanel = new JPanel();
        JPanel answerPanel = new JPanel(new FlowLayout());
        JLabel question = new JLabel("问题");
        JTextField enterQuestion = new JTextField(20);
        JLabel answer = new JLabel("机器人回答");
        JTextArea enterAnswer = new JTextArea(3,25);
        JButton submit = new JButton("提交");
//        ImageIcon imgIcon = new ImageIcon("images/robot.png");
//        Icon img = imgIcon;
//        JLabel imgLabel = new JLabel();

        frame.setSize(600, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

        enterAnswer.setFont(new Font("宋体",Font.BOLD,15));
        enterQuestion.setFont(new Font("宋体",Font.BOLD,15));
//        imgIcon.setImage(imgIcon.getImage().getScaledInstance(35,35,Image.SCALE_DEFAULT));
        enterAnswer.setLineWrap(true);
//        imgLabel.setIcon(img);

        questionPanel.add(question);
        questionPanel.add(enterQuestion);
//        answerPanel.add(imgLabel);
        answerPanel.add(answer);
        answerPanel.add(enterAnswer);
        buttonPanel.add(submit);
        panel.add(questionPanel);
        panel.add(answerPanel);
        panel.add(buttonPanel);
        frame.add(panel);

        submit.addActionListener(new ActionListener(){
            @Override
            public void actionPerformed(ActionEvent e) {
                String answer = new String();
                String q = enterQuestion.getText();
                try {
                    answer = machine(q);
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                enterAnswer.setText(answer);
            }
        });

        enterQuestion.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode()==10 || e.getKeyCode()==38) {
                    String answer = new String();
                    String q = enterQuestion.getText();
                    try {
                        answer = machine(q);
                    } catch (IOException e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                    enterAnswer.setText(answer);
                }
            }

            @Override
            public void keyReleased(KeyEvent e) {
                // TODO Auto-generated method stub

            }

        });

    }
    private static String machine(String quesiton) throws IOException {
        //接入机器人,输入问题
        String APIKEY = "官网给你的api key";
        String INFO = URLEncoder.encode(quesiton, "utf-8");//这里可以输入问题
        String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY + "&info=" + INFO;
        URL getUrl = new URL(getURL);
        HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();
        connection.connect();

        // 取得输入流,并使用Reader读取
        BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream(), "utf-8"));
        StringBuffer sb = new StringBuffer();
        String line = "";
        while ((line = reader.readLine()) != null) {
            sb.append(line);
        }
        reader.close();
        // 断开连接
        connection.disconnect();
        String[] ss = new String[10];
        String s = sb.toString();
        String answer;
        ss = s.split(":");
        answer = ss[ss.length-1];
        answer = answer.substring(1,answer.length()-2);
        return answer;
    }
}

效果图:

总结:这机器人还是挺好玩的,可以开发出其他功能,剩下就看自己的想象力了。

时间: 2024-10-05 13:53:06

Java接入图灵机器人,实现与机器人聊天的相关文章

【chrome插件】web版微信接入图灵机器人API实现自动回复

小贱鸡自动回复API已经不可以用了,现在改良接入图灵机器人API 360chrome浏览器团队翻译了部分谷歌插件开发文档 地址:http://open.chrome.360.cn/extension_dev/overview.html 具体封装插件的方法请参考开发文档. 具体代码如下: background.js 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

apikey创建接入图灵机器人

图灵机器人很多人都听说过,这个开放平台有很多功能,今天来介绍如何用apikey接入图灵机器人.以下是python代码http://www.turingapi.com import requests import json userid = str('Elizabeth') # 1 可以替换成任何长度小于32的字符串哦 apikey = str('ec3cff2c300048a2b11ed63c0180b3cd') # 这里的A,记得替换成你自己的apikey哦- # 创建post函数 def r

Python使用微信接入图灵机器人

1.wxpy库介绍 wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展. 文档地址:https://wxpy.readthedocs.io 从 PYPI 官方源下载安装 pip install -U wxpy 2.图灵机器人 首先注册一个账号:http://www.turingapi.com/ ,然后可以创建一个自己的图灵机器人 3.使用微信接入图灵机器人 实现代码 1 #!/usr/bin/env python 2 # -*- coding:utf-

个人微信接入图灵机器人(基于Python)

开发环境:Ubuntu14.04 编程语言:Python2.7 1.在图灵机器人官网(http://www.tuling123.com)注册账号,创建机器人,如果只是学习的话,可以使用免费版,一个账号最多可以创建5个机器人,一个机器人日调用接口数5000次. 2.开发环境搭建,这里使用的是阿里云服务器Ubuntu14.04 2.1 安装python2.7: sudo apt-get install python2.7 2.2 借助python的itchat和pillow,可以使用pip安装.it

基于Tomcat7、Java、WebSocket的服务器推送聊天室 (转)

前言 HTML5 WebSocket实现了服务器与浏览器的双向通讯,双向通讯使服务器消息推送开发更加简单,最常见的就是即时通讯和对信息实时性要求比较高的应用.以前 的服务器消息推送大部分采用的都是“轮询”和“长连接”技术,这两中技术都会对服务器产生相当大的开销,而且实时性不是特别高.WebSocket技术对 只会产生很小的开销,并且实时性特别高.下面就开始讲解如何利用WebSocket技术开发聊天室.在这个实例中,采用的是Tomcat7服务器,每个服 务器对于WebSocket的实现都是不一样的

优傲机器人:协作机器人助力电子制造业智能转型

优傲机器人:协作机器人助力电子制造业智能转型 2016-03-17 16:35:36   来源:EEWORLD    关键字: 基础  智能  质量 中国上海,2016年3月17日——人机协作机器人全球领导企业丹麦优傲机器人公司(Universal Robots)作为协作机器人市场的先驱者,一直致力于推动电子制造业的智能转型.工业4.0及<中国制造2025>的相继出现,为中国传统制造业的升级.寻求新的动能打下了良好的基础与铺垫,进一步将“中国制造”向“中国智造”方向大力推进. 为实现智能升级与

自强队2018中国机器人大赛服务机器人专项赛赛后总结会简报

会议时间:2018年5月18日17:00-19:00会议地点:上海大学(延长校区)电机楼会议室会议主持:陈万米老师参会人员:陈万米.黄慎之老师及2018中国机器人大赛服务机器人专项赛参赛学生 会议纪要: 一.队员小结 贾若楠:GPSR项目中底盘出现问题,如果有语音识别离线包可能带来更好的成绩.主观项目如果能做好实体成绩会更好. 过铭泽:WhoIsWho项目规则有漏洞,大部分队伍的机器人并没有走到志愿者面前,我们的机器人可以实现所有项目,但是由于底盘导致我们的优势没有发挥出来. 徐慧:硬件还需要深

Java利用图灵机器人接口实现简单的聊天程序

package test; import java.awt.EventQueue; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.Timer; import javax.swing.JTextField; import javax.swing.JTextArea; import javax.swing.JLabel; import java.awt.Color; import java.aw

使用图灵机器人高速开发智能聊天机器人

聊天机器人如今已经成为一个流行的话题.不管微信公共帐号,还是qq聊天机器人,能够智能交互聊天的机器人帐号越来越多.相信非常多开发者也想自己实现这样一个好玩的智能聊天机器人. 以下就给广大的技术开发人员提供一个通过图灵机器人简单高速得实现这样一个智能聊天机器人的方法. 先看一下图灵机器人官方体验页的截图.相信大家会很感兴趣: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGFtY2hlbg==/font/5a6L5L2T/fontsize/400/fi