这只是一个对话器!还不能听歌(反正我也没在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小度的更多相关文章

  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. 算法(Java实现)—— KMP算法

    KMP算法 应用场景 字符串匹配问题 有一个字符串str1 = " hello hello llo hhello lloh helo" 一个子串str2 = "hello ...

  2. 探究 | App Startup真的能减少启动耗时吗

    前言 之前我们说了启动优化的一些常用方法,但是有的小伙伴就很不屑了: "这些方法很久之前就知道了,不知道说点新东西?比如App Startup?能对启动优化有帮助吗?" ok,既然 ...

  3. 教你用python爬取抖音app视频

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...

  4. matplotlib学习日记(八)----完善统计图

    (一)再说legend() import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 2.1, 0.1) y = np.p ...

  5. 从数据库将数据导出到excel表格

    public class JxlExcel { public static void main(String[] args) { //创建Excel文件 String[] title= {" ...

  6. [转载]Mybatis Generator最完整配置详解

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  7. JDBC数据连接之增删改查MVC

    每天叫醒自己的不是闹钟,而是梦想 conn层 package conn; import java.sql.Connection; import java.sql.DriverManager; impo ...

  8. std::thread线程详解(1)

    目录 目录 简介 线程的使用 线程的创建 线程的方法和属性 std::jthread (C++20) stop_token (C++20) 总结 Ref 简介 本文主要介绍了标准库中的线程部分.线程是 ...

  9. Linux之远程登录和文件传输

    一---导读 在实际开发过程中,程序员和Linux系统是远程的,并且可能有多个程序员一同在同一个linux系统上工作,那么这个时候就需要我们远程登录linux系统 二---软件介绍 xshell 和 ...

  10. 中移动ipv6-老毛子固件获取ipv6设置

    对于有ipv6的服务商原理上可以参照下图