10分钟用Python告诉你两个机器人聊天能聊出什么火花
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可!

现在不是讲各种各样的人工智能嘛,AI下棋,AI客服,AI玩家……其实我一直很好奇,两个AI碰上会怎样,比如一起下棋,一起打游戏……
今天做个简单的小实验,看看两个AI一起聊天会是什么样子的。为了让实验效果更好,我们两个机器人选取了不同网站的机器人(图灵和茉莉)。
01 准备
pip下载安装python的requests模块,这个调用接口发送消息要用到。
去图灵机器人官网(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告诉你两个机器人聊天能聊出什么火花的更多相关文章
- 用Python写的一个多线程机器人聊天程序
本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...
- 10分钟上手python pandas
目录 Environment 开始 对象创建 查看数据 选择 直接选择 按标签选择 按位置选择 布尔索引 设置 缺失数据 操作 统计 应用(apply) 直方图化(Histogramming) 字符串 ...
- 10分钟学会Python函数基础知识
看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...
- 10分钟学会Python
#1. 语法 Python中没有强制的语句终止字符,代码块是通过缩进来指示的.缩进表示一个代码块的开始,逆缩进则表示一个代码块的结束.一般用4个空格来表示缩进. 声明以冒号(:)字符结束,并且开启一个 ...
- 程序员如何 10 分钟用 Python 画出蒙娜丽莎?
之前看到过很多头条,说哪国某人坚持了多少年自学使用excel画画,效果十分惊艳.对于他们的耐心我十分敬佩. 但是作为一个程序员,自然也得挑战一下自己. 这种需求,我们十分钟就可以完成! 基本思路 ...
- [转]10分钟入门python
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为Rocrocket Wu. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体 ...
- 10分钟用Python爬取最近很火的复联4影评
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! <复仇者联盟4:终局之战>已经上映快三个星期了,全球票房破24亿美元,国内票房破40亿人民币. 虽然现在热度逐渐下降,但是我们还 ...
- 【python】10分钟教你用python打造贪吃蛇超详细教程
10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的.今天就在家研究一下, 弄了个贪吃蛇出来.希望大家喜欢. 先看程序效果: 0 ...
- 【python】10分钟教你用python如何正确把妹
前言 今天没妹子约,刚好研究一下.如何用神奇的python打造一个把妹神器吧.看完这个,你们就能走向人生巅峰,迎娶白富美啦. 我知道你们想看看效果 image 当然啦,这只是测试版的效果,真正的版本可 ...
随机推荐
- OAuth2实现原理
现在开放平台非常流行,例如微信开放平台.微博开放平台等,开放平台都涉及用户授权问题,OAuth2就是目前的主流授权解决方案 OAuth2是什么 OAuth(Open Authorization,开放授 ...
- WebapiController的名字不能随便取名
在做webapi时候,遇到一个很坑的问题,就是新增一个控制器时,当新增加的控制器名称叫:AccountController.cs 自己测试,通过postman 访问 都没有问题,但是前端调用会报错,说 ...
- 【转载】Sqlserver使用IsNull方法对空字段进行赋值操作
在Sqlserver的SQL语句查询过程或者编写存储过程以及自定义函数过程中,有时候字段的值为空,如果为空的字段需要赋值一个默认值,可以使用Sqlserver内置系统函数IsNull来给定一个默认值, ...
- Appscan漏洞之Authentication Bypass Using HTTP Verb Tampering
本次针对 Appscan漏洞 Authentication Bypass Using HTTP Verb Tampering(HTTP动词篡改导致的认证旁路)进行总结,如下: 1. Authentic ...
- ECSHOP v3.0 数据库字典
商品相关表 商品分类表 category 此表用来维护商品分类信息 字段名 字段描述 字段类型 默认值 索引 cat_id 分类编号 smallint(5) unsigned 自增 PK cat_na ...
- linux防火墙开放端口,针对固定ip开放端口
编辑/etc/sysconfig/iptables,添加 -A INPUT -m state --state NEW -m tcp -p tcp -s 127.0.0.1 --dport 6379 - ...
- mac中git使用
配置用户名及邮箱在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中.git config --global user.name "xxxxxx"git con ...
- 【转】TI DSP C6657学习之——编译静态库.lib
熟悉C++开发的的小伙伴都知道,我们一般代码中往往要引入许多第三方编译好的库,有些是静态链接库static library, 有些是动态链接库dll.引入库的目的一是减少代码的编译时间,二是只提供函数 ...
- mqtt服务搭建(emqx,原emq)
系统环境: ubuntu 18.04server lts 目标系统IP地址(可访问):192.168.1.31 emqx版本: v3.2.3 打开网页,根据目标系统和emqx版本选择好安装包.这里我选 ...
- 基于k8s集群部署prometheus监控etcd
目录 基于k8s集群部署prometheus监控etcd 1.背景和环境概述 2.修改prometheus配置 3.检查是否生效 4.配置grafana图形 基于k8s集群部署prometheus监控 ...