自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第1张

完整源代码(以及.py下载链接)见最后!

    聊天机器人(Chatterbot)是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试,如Siri、小爱同学、微软小冰等。

    本教程将教你用Python实现4大免费且好用的聊天机器人:微软小冰、图灵机器人、腾讯闲聊、青云客机器人

从简单开始!


青云客机器人

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第2张

简介

    完全免费,支持功能:天气、翻译、藏头诗、笑话、歌词、计算、域名信息/备案/收录查询、IP查询、手机号码归属、人工智能聊天

    不用注册,不用申请key,拿来就用!

实现

def qingyunke(msg):    url = '/api.php?key=free&appid=0&msg={}'.format(urllib.parse.quote(msg))    html = requests.get(url)    return html.json()['content']msg = '我好看吗'print('原话>>', msg)res = qingyunke(msg)print('青云客>>', res)

输出

原话>> 我好看吗青云客>> 你很美,在这世上你就是排第二的美人

图灵机器人

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第3张

简介

    图灵机器人致力于“让机器理解世界”,产品服务包括机器人开放平台、机器人OS和场景方案。通过图灵机器人,开发者和厂商能够以高效的方式创建专属的聊天机器人、客服机器人、领域对话问答机器人、儿童/服务机器人等。

    需要注册账号,可以申请5个机器人,未认证账户每个机器人只能回3条/天,认证账户每个机器人能用100条/天。

申请

    登录后申请创建机器人,填入相关信息

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第4张

    可以接入微信个人号、微信公众号、QQ个人号、API调用

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第5张

    在拓展中心开启拓展功能

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第6张

拿到API key,注意下面的密钥不要打开!

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第7张

实现

def tuling(msg):    api_key = '1234'    url = 'http:///openapi/api/v2'    data = {        'perception': {            'inputText': {                'text': msg            },        },        'userInfo': {            'apiKey': api_key,            'userId': '1'        }    }    datas = json.dumps(data)    html = requests.post(url, datas).json()    if html['intent']['code'] == 4003:        print('次数用完')        return None    return html['results'][0]['values']['text']msg = '我好看吗'print('原话>>', msg)res = tuling(msg)print('图灵>>', res)

输出

原话>> 我好看吗图灵>> 我说不好看你会生气吗?

微软小冰

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第8张

简介

    ​微软小冰是领先的跨平台人工智能机器人。微软小冰注重人工智能在拟合人类情商维度的发展,强调人工智能情商,而非任务完成在人机交互中的基础价值。

    需要先领养小冰!通过微博关注微软小冰,并向她发送一条消息,点击她回的链接进行领养。

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第9张

领养完成后,按F12打开调试窗口,在Cookie界面找到SUB值(非常重要

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第10张

随便发一条消息给小冰,在head界面找到source值和uid值(非常重要

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第11张

注意微博不能手动点注销退出,不然上面获取的值就失效了!非常重要

实现

def xiaobing(msg):    uid = '123'    source = '123'    SUB = '123'    url_send = 'https://api.weibo.com/webim/2/direct_messages/new.json'    data = {        'text': msg,        'uid': uid,        'source': source    }    headers = {        'cookie': 'SUB='+SUB,        'Content-Type': 'application/x-www-form-urlencoded',        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',        'Referer': 'https://api.weibo.com/chat/'    }    response = requests.post(url_send, data=data, headers=headers).json()    sendMsg = response['text']    time.sleep(1)    while True:        url_get = 'https://api.weibo.com/webim/2/direct_messages/conversation.json?uid={}&source={}'.format(uid, source)        response = requests.get(url_get, headers=headers).json()        getMsg = response['direct_messages'][0]['text']        if sendMsg == getMsg:            time.sleep(1)        else:            return getMsg            msg = '我好看吗'print('原话>>', msg)res = xiaobing(msg)print('小冰>>', res)

输出

原话>> 我好看吗小冰>> 呃..那勉为其难的给你鉴定下吧:/A67OgMYi

腾讯闲聊

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第12张

简介

    腾讯闲聊服务基于AI Lab领先的NLP引擎能力、数据运算能力和千亿级互联网语料数据的支持,同时集成了广泛的知识问答能力,可实现上百种自定义属性配置,以及男、女不同的语言风格及说话方式,从而让聊天变得更睿智、简单和有趣。

    需要注册和申请,还需要加密处理。

    这里有个坑,自定义配置闲聊画像千万不能开启,不然调用总出错,我排查了很久!!!

申请

    ​先创建应用

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第13张

    ​拿到ID和KEY

自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客,第14张

实现

def tencent(msg):    APPID = '123'    APPKEY = '123'    url = 'https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat'    params = {        'app_id': APPID,        'time_stamp': str(int(time.time())),        'nonce_str': ''.join(random.choice(string.ascii_letters + string.digits) for x in range(16)),        'session': '10000'.encode('utf-8'),        'question': msg.encode('utf-8')    }    sign_before = ''    for key in sorted(params):        # 键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8。quote默认大写。        sign_before += '{}={}&'.format(key, urllib.parse.quote(params[key], safe=''))        # 将应用密钥以app_key为键名,拼接到字符串sign_before末尾    sign_before += 'app_key={}'.format(APPKEY)    # 对字符串sign_before进行MD5运算,得到接口请求签名    sign = hashlib.md5(sign_before.encode('UTF-8')).hexdigest().upper()    params['sign'] = sign    # print(params)    html = requests.post(url, data=params).json()    return html['data']['answer']msg= '我好看吗'print('原话>>', msg)res = tencent(msg)print('腾讯>>', res)

输出

原话>> 我好看吗腾讯>> 好看,在哪看

完整源码

  1. import requests
  2. import urllib
  3. import time
  4. import json
  5. import string
  6. import random
  7. import urllib
  8. import hashlib
  9. import base64
  10. class Robot:
  11. def __init__(self):
  12. pass
  13. def qingyunke(self, msg):
  14. url = '/api.php?key=free&appid=0&msg={}'.format(urllib.parse.quote(msg))
  15. html = requests.get(url)
  16. return html.json()['content']
  17. def tuling(self, msg):
  18. index = 0
  19. while True:
  20. api_key = [
  21. '618bd2a9b7c6414ebbda21585f0d0752', # 提供一下我的
  22. ]
  23. url = '/openapi/api/v2'
  24. data = {
  25. 'perception': {
  26. 'inputText': {
  27. 'text': msg
  28. },
  29. },
  30. 'userInfo': {
  31. 'apiKey': api_key[index],
  32. 'userId': '1'
  33. }
  34. }
  35. datas = json.dumps(data)
  36. html = requests.post(url, datas).json()
  37. if html['intent']['code'] == 4003:
  38. print('>> 次数用完')
  39. index += 1
  40. if index == len(api_key):
  41. return None
  42. else:
  43. print('>> 换key重试:', index)
  44. time.sleep(1)
  45. continue
  46. break
  47. return html['results'][0]['values']['text']
  48. def tencent(self, msg):
  49. APPID = '2129556483'#!!!!!!!!!!!!这里要改的!!!!!!!!!!!!!!!!!!!!!
  50. APPKEY = ''#!!!!!!!!!!!!这里要改的!!!!!!!!!!!!!!!!!!!!!
  51. url = 'https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat'
  52. params = {
  53. 'app_id': APPID,
  54. 'time_stamp': str(int(time.time())),
  55. 'nonce_str': ''.join(random.choice(string.ascii_letters + string.digits) for x in range(16)),
  56. 'session': '10000'.encode('utf-8'),
  57. 'question': msg.encode('utf-8')
  58. }
  59. sign_before = ''
  60. for key in sorted(params):
  61. # 键值拼接过程value部分需要URL编码,URL编码算法用大写字母,例如%E8。quote默认大写。
  62. sign_before += '{}={}&'.format(key, urllib.parse.quote(params[key], safe=''))
  63. # 将应用密钥以app_key为键名,拼接到字符串sign_before末尾
  64. sign_before += 'app_key={}'.format(APPKEY)
  65. # 对字符串sign_before进行MD5运算,得到接口请求签名
  66. sign = hashlib.md5(sign_before.encode('UTF-8')).hexdigest().upper()
  67. params['sign'] = sign
  68. # print(params)
  69. html = requests.post(url, data=params).json()
  70. return html['data']['answer']
  71. def sizhi(self, msg):
  72. url = '/bot?spoken={}'.format(urllib.parse.quote(msg))
  73. html = requests.get(url)
  74. return html.json()['data']['info']['text']
  75. def xiaodou(self, msg):
  76. key = 'M1E1OUZJNCtsODZvZndqNj1UV2x4Zz1xWnhvQUFBPT0'
  77. url = '/?key={}&msg={}'.format(key, msg)
  78. html = requests.get(url)
  79. return html.text
  80. def xiaobing(self, msg):
  81. uid = '5175429989'#!!!!!!!!!!!!这里要改的!!!!!!!!!!!!!!!!!!!!!
  82. source = '209678993'#!!!!!!!!!!!!这里要改的!!!!!!!!!!!!!!!!!!!!!
  83. SUB = '_2A25zeEw7DeRhGeNG6lQS9SbKyD2IHXVQDDrzrDV8PUNbmtANLWXukW9NS25ufhgLW38wP8yAkpHlxnTZ3CN3dQFy'#!!!!!!!!!!!!这里要改的!!!!!!!!!!!!!!!!!!!!!
  84. url_send = 'https://api.weibo.com/webim/2/direct_messages/new.json'
  85. data = {
  86. 'text': msg,
  87. 'uid': uid,
  88. 'source': source
  89. }
  90. headers = {
  91. 'cookie': 'SUB='+SUB,
  92. 'Content-Type': 'application/x-www-form-urlencoded',
  93. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
  94. 'Referer': 'https://api.weibo.com/chat/'
  95. }
  96. response = requests.post(url_send, data=data, headers=headers).json()
  97. sendMsg = response['text']
  98. time.sleep(1)
  99. while True:
  100. url_get = 'https://api.weibo.com/webim/2/direct_messages/conversation.json?uid={}&source={}'.format(uid, source)
  101. response = requests.get(url_get, headers=headers).json()
  102. getMsg = response['direct_messages'][0]['text']
  103. if sendMsg == getMsg:
  104. time.sleep(1)
  105. else:
  106. return getMsg
  107. if __name__ == '__main__':
  108. msg = '你好'
  109. print('原话:你好') # 原话:你好
  110. robot = Robot()
  111. print(robot.tuling(msg)) # 你说好就好吧。
  112. print(robot.qingyunke(msg)) # 你好,我就开心了
  113. print(robot.tencent(msg)) # 果然我的魅力无敌,终于把你吸引来了,哈哈哈
  114. print(robot.sizhi(msg)) # 感觉不错。你好吗?
  115. print(robot.xiaodou(msg)) # 你好哇,很开心你能找我聊天。
  116. print(robot.xiaobing(msg)) # (不想登微博了,自行测试吧!)

链接:https://download.csdn.net/download/sxf1061700625/12555760

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 自己动手实现4大免费聊天机器人:小冰、图灵、腾讯、青云客

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情