欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可!

现在不是讲各种各样的人工智能嘛,AI下棋,AI客服,AI玩家……其实我一直很好奇,两个AI碰上会怎样,比如一起下棋,一起打游戏……

今天做个简单的小实验,看看两个AI一起聊天会是什么样子的。为了让实验效果更好,我们两个机器人选取了不同网站的机器人(图灵和茉莉)。

01 准备

  1. pip下载安装python的requests模块,这个调用接口发送消息要用到。

  2. 去图灵机器人官网(http://www.turingapi.com/)申请账号->进入机器人设置->获得apikey。如下:

记得不要把密钥那里点开,不然后面要加密传输搞得很麻烦。

3) 茉莉机器人官网(http://www.itpk.cn/)申请账号->个人中心->获得Api key and Api Secret:

记得:

茉莉API地址:http://i.itpk.cn/api.php

图灵API地址:http://www.tuling123.com/openapi/api

待会搞事要用到。

02 开始搞事

好了,现在一切准备就绪,我们开始搞事情。

先调一下图灵机器人,测试一下:

 1import requests
2
3tuling_data = {
4    "key": "5da047a95db8450ea6e710dd065d4be4",
5    "info": '今天武汉天气怎样?',      #发送的数据
6    "userid": "272872"
7}
8tuling_api_url = 'http://www.tuling123.com/openapi/api'
9t = requests.post(tuling_api_url, data=tuling_data)         #post请求
10print(t.text)

运行结果如下:

大功告成,不过返回的是数据包,待会我们用函数处理一下,提取所需的信息即可。

同样可以调用茉莉机器人:


1import requests
2
3moli_data = {
4    "question":'今天武汉天气如何?',    #问题
5    "api_key": "ac00db995a4a8f2a3f3623c82f3cc9d9",
6    "api_secret": "anaoutswrz1y"
7}
8moli_api_url = 'http://i.itpk.cn/api.php'
9m = requests.post(moli_api_url, data = moli_data)
10print(m.text)

返回结果:

03 机器人之间的对话

然后就是整合两个机器人,让他们在一起聊聊天看看会发生什么了。

最简单的思路,先给一个导火线,然后死循环让他俩对话就行。。。


1from time import sleep
2import requests
3
4question = input("输入导火线:")
5TULING = '图灵'
6MOLI = '茉莉'
7print(TULING+':'+question)          #导火索  哈哈
8while True:
9    #图灵
10    tuling_data = {
11        "key": "5da047a95db8450ea6e710dd065d4be4",
12        "info": question,
13        "userid": "272872"
14    }
15    tuling_api_url = 'http://www.tuling123.com/openapi/api'
16    t = requests.post(tuling_api_url, data=tuling_data) #post请求
17
18    print(TULING+':'+eval(t.text)["text"]) #用eval函数处理一下图灵返回的消息
19    question = eval(t.text)["text"]     #重置question —>让茉莉回答
20
21    #茉莉
22    moli_data = {
23        "question": question,
24        "api_key": "ac00db995a4a8f2a3f3623c82f3cc9d9",
25        "api_secret": "anaoutswrz1y"
26    }
27    moli_api_url = 'http://i.itpk.cn/api.php'       #api地址
28    m = requests.post(moli_api_url, data = moli_data)
29    print(MOLI+':'+m.text)
30    sleep(1)        #设置循环延迟

不过这聊天确实有点尴尬啊:

10分钟用Python告诉你两个机器人聊天能聊出什么火花的更多相关文章

  1. 用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  2. 10分钟上手python pandas

    目录 Environment 开始 对象创建 查看数据 选择 直接选择 按标签选择 按位置选择 布尔索引 设置 缺失数据 操作 统计 应用(apply) 直方图化(Histogramming) 字符串 ...

  3. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  4. 10分钟学会Python

    #1. 语法 Python中没有强制的语句终止字符,代码块是通过缩进来指示的.缩进表示一个代码块的开始,逆缩进则表示一个代码块的结束.一般用4个空格来表示缩进. 声明以冒号(:)字符结束,并且开启一个 ...

  5. 程序员如何 10 分钟用 Python 画出蒙娜丽莎?

    之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路   ...

  6. [转]10分钟入门python

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为Rocrocket Wu. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体 ...

  7. 10分钟用Python爬取最近很火的复联4影评

    欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! <复仇者联盟4:终局之战>已经上映快三个星期了,全球票房破24亿美元,国内票房破40亿人民币. 虽然现在热度逐渐下降,但是我们还 ...

  8. 【python】10分钟教你用python打造贪吃蛇超详细教程

    10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...

  9. 【python】10分钟教你用python如何正确把妹

    前言 今天没妹子约,刚好研究一下.如何用神奇的python打造一个把妹神器吧.看完这个,你们就能走向人生巅峰,迎娶白富美啦. 我知道你们想看看效果 image 当然啦,这只是测试版的效果,真正的版本可 ...

随机推荐

  1. appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器 转自:上海-悠悠

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  2. 分享大麦UWP版本开发历程-03.GridView或ListView 滚动底部自动加载后续数据

    今天跟大家分享的是大麦UWP客户端,在分类.订单或是搜索时都用到的一个小技巧,技术粗糙大神勿喷. 以大麦分类举例,默认打开的时候,会为用户展示20条数据,当用户滚动鼠标或者使用手势将列表滑动到倒数第二 ...

  3. 分享大麦UWP版本开发历程-02.内容“高度/宽度”不同的列表展示

    一个成型的产品,肯定是经过了产品经理出的UE,美工设计的UI,最终到我们手里Coding,这里面最少3个人,最多就不知道会有多少人参与了.每个人脑子想的都是不一样的,我就不粘贴那个“XX眼中的XX”那 ...

  4. java之struts2之类型转换

    在使用servlet开发中,表单中提交的数据到servlet后都是字符串类型,需要程序员手动进行类型转换. 但是到struts2后,基本数据类型struts2都可以转换.但是如果是自定义类型,stru ...

  5. C#破解dll

    使用反编译工具对dll文件进行反编译,找到校验过期的相关代码,反编译工具可以使用ILSpy或Reflector; 使用ildasm.exe工具将dll导出成il文本文件,在该文件中找到相关的代码进行修 ...

  6. 1-redis使用笔记

    1.清空当前redis数据库缓存FLUSHDB flushdb 2.清空整个redis缓存FLUSHALL flushall 3.设置 SET w3ckey redis 4.获取 GET w3ckey ...

  7. springboot中常用的依赖

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  8. 常用的HTTP响应头

    响应头 说明 示例 状态 Access-Control-Allow-Origin 指定哪些网站可以跨域源资源共享 Access-Control-Allow-Origin: * 临时 Accept-Pa ...

  9. 74.js---移动端文章的瀑布流的实现。

    移动端文章的瀑布流的实现.   1.首先在前端html页面已经通过PHP代码循环完全数据.  2.然后在js先全部隐藏,通过判断滑动到底部,每次加载一部分数据,直到数据全部显示完全. js代码: // ...

  10. 逗号分隔的字符串转成表格参与IN条件查询

    返回值为'1,2,3,4,5,6,7',是一个字符串,如果要用IN 查询的话sql认为这是一个完整的字符串,需要将内容分隔转换变成table 定义函数如下: create Function sysfS ...