博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三个机器人尬聊
阅读量:4080 次
发布时间:2019-05-25

本文共 2296 字,大约阅读时间需要 7 分钟。

一个调用腾讯API,一个调用图灵API,一个调用青云API。

原来写过了调用腾讯聊天API的,今天就不解释了,直接复制。

腾讯API获取参数的文件

import hashlib  import time  import random  import string  from urllib.parse import quote  def curlmd5(src):      m = hashlib.md5(src.encode('UTF-8'))      # 将得到的MD5值所有字符转换成大写    return m.hexdigest().upper()def get_params(plus_item):    # 请求时间戳(秒级),用于防止请求重放(保证签名5分钟有效)      t = time.time()    time_stamp=str(int(t))    # 请求随机字符串,用于保证签名不可预测      nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))      # 应用标志,这里修改成自己的id和key      app_id = '11066xxxx'      app_key = 'Wz0bsFWuNGxxxx'    params = {'app_id':app_id,                'question':plus_item,              'time_stamp':time_stamp,              'nonce_str':nonce_str,              'session':'10000'             }    sign_before = ''    # 要对key排序再拼接      for key in sorted(params):        # 键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8。quote默认大写。          sign_before += '{}={}&'.format(key,quote(params[key], safe=''))      # 将应用密钥以app_key为键名,拼接到字符串sign_before末尾      sign_before += 'app_key={}'.format(app_key)    # 对字符串sign_before进行MD5运算,得到接口请求签名      sign = curlmd5(sign_before)     params['sign'] = sign    return params

然后就是三人尬聊的文件,看了很久,或许他们在聊一些重复的内容,而且这也不是三个机器人在一起聊,聊天内容是单点传送,不知道有什么共享方式。

from time import sleepimport requests  import md5sign  def get_content(plus_item):      # 聊天的API地址      url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat"        # 获取请求参数    plus_item = plus_item.encode('utf-8')    payload = md5sign.get_params(plus_item)      # r = requests.get(url,params=payload)      r = requests.post(url,data=payload).json()    return r["data"]["answer"]def get_text(s):    resp = requests.post("http://www.tuling123.com/openapi/api",                        data={"key": "4fede3c4384846b9a7d0456a5e1e2943", "info": s, })      resp = resp.json()    return resp['text']def get_qy(s):    resp = requests.get("http://api.qingyunke.com/api.php", {'key': 'free', 'appid': 0, 'msg': s})      resp.encoding = 'utf8'      resp = resp.json()    return resp['content']if __name__ == '__main__':      a = input('我:')    while True:        a = get_text(a)        print('图灵:',a)        sleep(1)        a = get_content(a)        print('美女:',a)        sleep(1)        a = get_qy(a)        print("青云:",a)        sleep(1)

看起来还挺智能的,不过它们的聊天没有任何主题

你可能感兴趣的文章
一些实战项目(linux应用层编程,多线程编程,网络编程)
查看>>
我觉得专注于去学东西就好了,与世无争。
查看>>
原来k8s docker是用go语言写的,和现在所讲的go是一个东西!
查看>>
STM32CubeMX 真的不要太好用
查看>>
STM32CubeMX介绍、下载与安装
查看>>
电机和桨叶要搭配选择
查看>>
不要买铝合金机架的无人机,不耐摔,易变形弯曲。
查看>>
ACfly也是基于FreeRTOS的
查看>>
F330装GPS的位置
查看>>
我想先用三个或者五个激光测距做无人机的室内定位和避障
查看>>
pixhawk也可以用Airsim仿真
查看>>
《无人机电机与电调技术》可以看看
查看>>
我发现七月在线的GAAS课程基本都讲到了
查看>>
电机堵转
查看>>
一个真正好的无人机应该是需要自己慢慢去调参的,别人的默认参数是可以飞但是可能达不到perfect的效果。
查看>>
carzepony也在想往FreeRTOS上迁移
查看>>
可以买个好点的电烙铁
查看>>
ACfly调参记录(包括ACfly-F330和ACfly-T265)
查看>>
一定记得每飞几次或者隔一天要把螺丝和浆帽拧一次,确实会松的
查看>>
《多旋翼无人飞行器嵌入式飞控开发指南》里基于FreeRTOS的无人机软件框架
查看>>