机器人之间对聊,您想试试么

摘要: 这是借助图灵机器人提供的免费API实现的两个机器人对话的功能,系统自动提取图灵平台提供的智能聊天库,自己还能导入自己的知识库让机器人更具个性化,更符合你的胃口.图片链接

这是借助图灵机器人提供的免费API实现的两个机器人对话的功能,系统自动提取图灵平台提供的智能聊天库,自己还能导入自己的知识库让机器人更具个性化,更符合你的胃口.


import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.JsonNode;
import com.mashape.unirest.http.Unirest;

public class Main {
    private static final String KEY = "91e71ab13d4f1be71de4a7ef1c1ec2ef";
    private static final String BASEURL = "http://www.tuling123.com/openapi/api?key="+KEY+"&userid=";
    private static final String ALICE = "Alice";
    private static final String TITAN = "Titan";

    public static void main(String[] args) {
        //第一次交谈
        String first = "你好啊!";
        System.out.println(ALICE+"对"+TITAN+"说:"+first);
        new Main().communication(ALICE, first);
    }

    /**
     * ALICE 与 TITAN 交谈
     * @param user 用户
     * @param text 聊天室内容
     */
    public void communication(String user, String text) {
        // 构造 访问图灵的地址
        StringBuffer url = new StringBuffer("");
        url.append(BASEURL);
        url.append(user);
        url.append("&info=").append(text);
        // 输出日志
//        System.out.println(url.toString());
        // 取回交谈内容
        String msg = getRobotMsg(url.toString());
        if (ALICE.equals(user)) {//如果对ALICE说
            System.out.println(TITAN+"对"+ALICE+"说:"+msg);
            communication(TITAN, msg);
        } else if (TITAN.equals(user)) {//如果对TITAN说
            System.out.println(ALICE+"对"+TITAN+"说:"+msg);
            communication(ALICE, msg);
        }
    }

    /**
     * 取回机器人的回答
     * @param url 图灵机器人完全访问地址;带 userid和info
     * @return 机器人的回答
     */
    public String getRobotMsg(String url) {
        try {
            HttpResponse jsonNodeHttpResponse = Unirest.get(url).asJson();
            String text = jsonNodeHttpResponse.getBody().getObject().get("text").toString();
            return text;
        } catch (Exception e) {
            return "我不知道!";
        }
    }
}

上一篇: 获取文件 MD5和SHA1
下一篇: postgresql 随机数, 随机选择数组中的值

Avatar

小雨 评论于: 2016-03-07

个人觉得像这样的机器人对聊,很大可能最终会出现的是一个死循环,虽然未必是一问一答那种死循环,有可能是大范围的——比如说100句为一个循环节的循环。
因为机器人的语料库是有限的,而对相同语句的应答也是有限的。前一个有限导致在足够长的对话中必然出现相同的语句,后一个有限导致相同的语句出现的次数足够多必然出现相同的应答,那么,循环就产生了,而一旦进入循环,机器人是无法脱离循环的,因为它不像人那样有意识。
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号