这只是一个对话器!还不能听歌(反正我也没在UNIT平台配置听歌的功能)!

反正最近也不知怎么的,就想做一个AI对话器
语音识别和语音输出都不要,input()和print()就行
本来准备用小爱的,但要实名,身份证找不到
还是百度良心,不用实名认证,开始喽

代码

  1. 1 import requests
  2. 2 import random
  3. 3 import datetime
  4. 4
  5. 5 helpword='''
  6. 6 Python小度 帮助
  7. 7 本地帮助
  8. 8 $help 获取帮助
  9. 9 $quit 退出
  10. 10 $get_acc_token 获取access token
  11. 11 $test 测试网络连接
  12. 12 '''
  13. 13
  14. 14 def localCommand(word):
  15. 15 if word=='$help':
  16. 16 print(helpword)
  17. 17 elif word=='$quit':
  18. 18 exit()
  19. 19 elif word=='$get_acc_token':
  20. 20 print(get_acc_token())
  21. 21 elif word=='$test':
  22. 22 print(requests.get("https://www.baidu.com"))
  23. 23
  24. 24 def get_acc_token():
  25. 25 dic={'grant_type':'client_credentials','client_id':'OgyQl5Pc3zN9kFGs4UHqrnxf','client_secret':'cEh2zkvbPuxi4me5jj068VaRGg00Vf06'}
  26. 26 res=requests.post("https://aip.baidubce.com/oauth/2.0/token",data=dic)
  27. 27 req=res.json()
  28. 28 acc_token=req['access_token']
  29. 29 return acc_token
  30. 30
  31. 31 def chat(word):
  32. 32 skill_ids=['1036063','1036064','1036060','1036062','1036059','1036061']
  33. 33 dic={
  34. 34 'log_id':str(random.random()),
  35. 35 'request':{
  36. 36 'query':word,
  37. 37 'user_id':str(random.randint(0,16384))
  38. 38 },
  39. 39 'session':'',
  40. 40 'skill_ids':skill_ids,
  41. 41 'service_id':'S31885',
  42. 42 'version':'2.0'}
  43. 43 res=requests.post("https://aip.baidubce.com/rpc/2.0/unit/service/chat?access_token="+get_acc_token(),json=dic)
  44. 44 req=res.json()
  45. 45 unit_chat_obj_result = req["result"]
  46. 46 unit_chat_response_list = unit_chat_obj_result["response_list"]
  47. 47 # 随机选取一个"意图置信度"[+response_list[].schema.intent_confidence]不为0的技能作为回答
  48. 48 unit_chat_response_obj = unit_chat_response_list[0]
  49. 49 unit_chat_response_action_list = unit_chat_response_obj["action_list"]
  50. 50 unit_chat_response_action_obj = random.choice(unit_chat_response_action_list)
  51. 51 unit_chat_response_say = unit_chat_response_action_obj["say"]
  52. 52 return unit_chat_response_say
  53. 53
  54. 54 print(get_acc_token())
  55. 55 print('2020 By 人工智障')
  56. 56 print('调用本地功能请在关键词前面输入$,更多帮助请输入$help')
  57. 57 print('==================================================')
  58. 58
  59. 59 while True:
  60. 60 curr_time=datetime.datetime.now()
  61. 61 print('我 '+datetime.datetime.strftime(curr_time,'%Y-%m-%d %H:%M:%S'))
  62. 62 word=input('')
  63. 63 print('')
  64. 64 localCommand(word)
  65. 65 curr_time=datetime.datetime.now()
  66. 66 print('小度 '+datetime.datetime.strftime(curr_time,'%Y-%m-%d %H:%M:%S'))
  67. 67 print(chat(word))
  68. 68 print('')

虽然我把代码贴出来了,但希望你不要在我不知道的情况下拿我的api key和api secret去干别的,如果真的要拿去做别的事,就跟我说一声。

下载

名称 Python小度
链接 https://n802.com/dir/27256477-40136798-aa8542
py文件
exe文件
一键安装库 提供

Python小度的更多相关文章

  1. Python selenium根据class定位页面元素

    在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写id属性.通常一段html代码如下: <div cl ...

  2. [转]0.python:scikit-learn基本用法

    感谢百小度治哥,该文原地址:here 经Edwin Chen的推荐,认识了scikit-learn这个非常强大的python机器学习工具包.这个帖子作为笔记.(其实都没有笔记的意义,因为他家文档做的太 ...

  3. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  4. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  5. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  6. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  7. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  8. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  9. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

随机推荐

  1. .Net 常用ORM框架对比:EF Core、FreeSql、SqlSuger

    前言: 最近由于工作需要,需要选用一种ORM框架,也因此对EF Core.FreeSql.SqlSuger作简单对比.个人认为各有有优势,存在即合理,不然早就被淘汰了是吧,所以如何选择因人而议.因项目 ...

  2. CORS(跨域资源共享)笔记

    0.前言 CORS(Cross-Origin Resource Sharing)是一个用于处理跨域问题的W3C标准,本文将介绍什么是跨域,引起跨域的同源策略,什么是CORS,CORS的工作过程,请求方 ...

  3. openstack高可用集群18-Ceph和openstack的对接

    Ceph对接Openstack 官方文档: https://docs.ceph.com/docs/master/rbd/rbd-openstack/   Ceph的一个使用场景是结合Openstack ...

  4. python函数收集不确定数量的值

    python写函数的时候,有时候会不确定到底传入多少值. 首先是,*args,单星号参数收集参数: 1 #!usr/bin/python 2 #-*-coding:utf-8-*- 3 4 #定义一个 ...

  5. 整合SSM框架

    整合SSM 基本环境搭建 导入相关的pom依赖! <dependencies> <!--Junit--> <dependency> <groupId>j ...

  6. [leetcode]53Maximum Subarray动态规划经典题目:最大子串问题

    /** * Find the contiguous subarray within an array (containing at least one number) * which has the ...

  7. 页面中嵌套iframe,微信浏览器长按二维码识别不了

    问题:在微信浏览器内,页面中嵌套iframe,iframe中用户触发事件后有个弹框会显示二维码,用户长按二维码可以识别并跳转.尝试了一下,安卓是正常的,但是ios是识别不了的. 解决过程: 1.这里客 ...

  8. 已加载"C:\Windows\SysWOW64\msvcp120d.dll".无法查找或打开 PDB 文件.

    已加载"C:\Windows\SysWOW64\msvcp120d.dll".无法查找或打开 PDB 文件. 今天使用vs2013遇到了这样的问题. 解决方案: 点调试. 然后选项 ...

  9. Java优雅停机

    Java的优雅停机通常通过注册JDK的ShootDownHook实现,当系统接受到退出指令后,首先标记系统处于退出状态,不再接受新的消息,然后将积压的消息处理完,最后调用资源回收接口将资源销毁,最后各 ...

  10. SonarQube学习(三)- 项目代码扫描

    一.前言 元旦三天假,两天半都在玩86版本DNF,不得不说,这个服真的粘度太高了,但是真的很良心. 说明: 注册账号上线100w点券,一身+15红字史诗装备以及+21强化新手武器.在线泡点一分钟888 ...