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

现在不是讲各种各样的人工智能嘛,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. git学习笔记 ---删除文件

    在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...

  2. C#连接数据库不安装Oracle客户端

    Oracle提供了这样的Oracle.ManagedDataAccess.dll,让用可以需要安装Oracle客户端即可连接数据库,并且不区分32位和64位. 1.引用 选择引用,找到对应文件目录下的 ...

  3. 2.8_Database Interface ADO由来

    OLE-DB,它无法广为流行,因为如下两点: 1.由于OLE-DB太底层化,使用上非常复杂,需要程序员拥有高潮的技巧. 2.OLEDB标准的API是C++API,只能供C++语言调用. 为了使得流行的 ...

  4. 使用springboot实现一个简单的restful crud——01、项目简介以及创建项目

    前言 之前一段时间学习了一些springboot的一些基础使用方法和敲了一些例子,是时候写一个简单的crud来将之前学的东西做一个整合了 -- 一个员工列表的增删改查. 使用 restful api ...

  5. vue-cli3 一直运行 /sockjs-node/info

    首先 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟.全双工的浏览器和web服务器之间通信通道. 服务端:sockjs-node(ht ...

  6. netaddr网络地址工具python

    print("==========1==========") from netaddr import IPNetwork # IPNetwork('192.168.7.80/30' ...

  7. SQL统计部门人数,人数为0的部门也要显示出来

    相同点:它们都以一张部门表(或类别表),其它表都有部门编号DepartmentID(类别编号) 案例一:一张表 select c.DepartmentID,c.DepartmentName, t.Nu ...

  8. expect脚本远程登录、远程执行命令和脚本传参简单用法

    expect介绍: 最近想写一个自动化安装脚本,涉及到远程登录.分发文件包.远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解决呢?不妨试试expe ...

  9. centos 7 安装webmin

    wget http://prdownloads.sourceforge.net/webadmin/webmin-1.930-1.noarch.rpm yum -y install perl perl- ...

  10. Flask-SQLAlchemy操作指南

    Flask-SQLAlchemy官方文档 from flask_sqlalchemy import SQLAlchemy app = Flask(__name__)app.config['SQLALC ...