Python小度
这只是一个对话器!还不能听歌(反正我也没在UNIT平台配置听歌的功能)!
反正最近也不知怎么的,就想做一个AI对话器
语音识别和语音输出都不要,input()和print()就行
本来准备用小爱的,但要实名,身份证找不到
还是百度良心,不用实名认证,开始喽
代码
1 import requests
2 import random
3 import datetime
4
5 helpword='''
6 Python小度 帮助
7 本地帮助
8 $help 获取帮助
9 $quit 退出
10 $get_acc_token 获取access token
11 $test 测试网络连接
12 '''
13
14 def localCommand(word):
15 if word=='$help':
16 print(helpword)
17 elif word=='$quit':
18 exit()
19 elif word=='$get_acc_token':
20 print(get_acc_token())
21 elif word=='$test':
22 print(requests.get("https://www.baidu.com"))
23
24 def get_acc_token():
25 dic={'grant_type':'client_credentials','client_id':'OgyQl5Pc3zN9kFGs4UHqrnxf','client_secret':'cEh2zkvbPuxi4me5jj068VaRGg00Vf06'}
26 res=requests.post("https://aip.baidubce.com/oauth/2.0/token",data=dic)
27 req=res.json()
28 acc_token=req['access_token']
29 return acc_token
30
31 def chat(word):
32 skill_ids=['1036063','1036064','1036060','1036062','1036059','1036061']
33 dic={
34 'log_id':str(random.random()),
35 'request':{
36 'query':word,
37 'user_id':str(random.randint(0,16384))
38 },
39 'session':'',
40 'skill_ids':skill_ids,
41 'service_id':'S31885',
42 'version':'2.0'}
43 res=requests.post("https://aip.baidubce.com/rpc/2.0/unit/service/chat?access_token="+get_acc_token(),json=dic)
44 req=res.json()
45 unit_chat_obj_result = req["result"]
46 unit_chat_response_list = unit_chat_obj_result["response_list"]
47 # 随机选取一个"意图置信度"[+response_list[].schema.intent_confidence]不为0的技能作为回答
48 unit_chat_response_obj = unit_chat_response_list[0]
49 unit_chat_response_action_list = unit_chat_response_obj["action_list"]
50 unit_chat_response_action_obj = random.choice(unit_chat_response_action_list)
51 unit_chat_response_say = unit_chat_response_action_obj["say"]
52 return unit_chat_response_say
53
54 print(get_acc_token())
55 print('2020 By 人工智障')
56 print('调用本地功能请在关键词前面输入$,更多帮助请输入$help')
57 print('==================================================')
58
59 while True:
60 curr_time=datetime.datetime.now()
61 print('我 '+datetime.datetime.strftime(curr_time,'%Y-%m-%d %H:%M:%S'))
62 word=input('')
63 print('')
64 localCommand(word)
65 curr_time=datetime.datetime.now()
66 print('小度 '+datetime.datetime.strftime(curr_time,'%Y-%m-%d %H:%M:%S'))
67 print(chat(word))
68 print('')
虽然我把代码贴出来了,但希望你不要在我不知道的情况下拿我的api key和api secret去干别的,如果真的要拿去做别的事,就跟我说一声。
下载
| 名称 | Python小度 |
| 链接 | https://n802.com/dir/27256477-40136798-aa8542 |
| py文件 | 有 |
| exe文件 | 无 |
| 一键安装库 | 提供 |
Python小度的更多相关文章
- Python selenium根据class定位页面元素
在日常的网页源码中,我们基于元素的id去定位是最万无一失的,id在单个页面中是不会重复的.但是实际工作中,很多前端开发人员并未给每个元素都编写id属性.通常一段html代码如下: <div cl ...
- [转]0.python:scikit-learn基本用法
感谢百小度治哥,该文原地址:here 经Edwin Chen的推荐,认识了scikit-learn这个非常强大的python机器学习工具包.这个帖子作为笔记.(其实都没有笔记的意义,因为他家文档做的太 ...
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
随机推荐
- vue原理之-神奇的Object.defineProperty
vue2.0通过defineProperty进行数据双向绑定 例如:(他接受三个参数,都是必填!) var a= {} Object.defineProperty(a,"b",{ ...
- 【学习笔记】分布式追踪Tracing
在软件工程中,Tracing指使用特定的日志记录程序的执行信息,与之相近的还有两个概念,它们分别是Logging和Metrics. Logging:用于记录离散的事件,包含程序执行到某一点或某一阶段的 ...
- Ubuntu使用Nginx 部署你的静态网页
首先使用Putty 登录填写名称 unbutu 然后获取管理员权限 sudo -i 首先更新APT库sudo apt-get updatesudo apt-get upgrade 安装 git,su ...
- MySQL忘记密码了怎么解决
前言:在不考虑到原来用户对关联数据库的授权问题的情况下,有以下三种思路解决 #1.登录状态下修改 说明:在登录状态的话,直接使用命令修改密码就行了 mysql> use mysql; mysql ...
- Android基础工具移植说明
早前开展的计划因各种杂事而泡汤,而当遇到了具体任务后,在压力下花了两个多周的业余时间把这件事完成了. 这就是我的引以为傲的Mercury-Project,它的核心目标是移植一些Android底层轮子到 ...
- (十五)、linux软件的安装与查询-rpm与yum命令
一.RPM软件管理程序:rpm 1.RPM安装软件(install) rpm命令的选项超级多,安装话直接使用-ivh即可,其余做了解即可 命令格式:rpm -ivh package_name.rp ...
- Listary效率快捷键
快捷键 打开搜索框快捷键: 双击Ctrl键 上一个项目:向上键 下一个项目:向下键/Tap 打开动作:Enter 属性窗口:Ctrl+O (查询)关键字 作用范围:搜索框 使用方法:命令+空格+关键字 ...
- [NOIP2013 提高组] 货车运输
前言 使用算法:堆优化 \(prim\) , \(LCA\) . 题意 共有 \(n\) 个点,有 \(m\) 条边来连接这些点,每条边有权值.有 \(q\) 条类似于 \(u\) \(v\) 询问, ...
- [LeetCode]501. Find Mode in Binary Search Tree二叉搜索树寻找众数
这次是二叉搜索树的遍历 感觉只要和二叉搜索树的题目,都要用到一个重要性质: 中序遍历二叉搜索树的结果是一个递增序列: 而且要注意,在递归遍历树的时候,有些参数如果是要随递归不断更新(也就是如果递归返回 ...
- IO输入和输出
编程语言的I/O类库中常用使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接受端对象."流"屏蔽了实际的I/O设备中处理数据的细节. JAVA类库中的 ...