zoukankan      html  css  js  c++  java
  • 10分钟用Python告诉你两个机器人聊天能聊出什么火花

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

    现在不是讲各种各样的人工智能嘛,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)        #设置循环延迟
    
    

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

  • 相关阅读:
    外校培训前三节课知识集合纲要(我才不会告诉你我前两节只是单纯的忘了)
    floyd算法----牛栏
    bfs开始--马的遍历
    (DP 线性DP 递推) leetcode 64. Minimum Path Sum
    (DP 线性DP 递推) leetcode 63. Unique Paths II
    (DP 线性DP 递推) leetcode 62. Unique Paths
    (DP 背包) leetcode 198. House Robber
    (贪心 复习) leetcode 1007. Minimum Domino Rotations For Equal Row
    (贪心) leetcode 452. Minimum Number of Arrows to Burst Balloons
    (字符串 栈) leetcode 921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/dengfaheng/p/10959140.html
Copyright © 2011-2022 走看看