这只是一个对话器!还不能听歌(反正我也没在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. DRF比Django的认证和权限高在哪里

    Django可以用LoginRequiredMixin和PermissionRequiredMixin给类视图添加认证和权限,DRF做了高级封装,提供了更简洁的实现方式.我们通过继续学习官网教程来进行 ...

  2. EF5中使用UnitOfWork

    前言 每次提交数据库都会打开一个连接,造成结果是:多个连接无法共用一个数据库级别的事务,也就无法保证数据的原子性.一致性. 解决办法是:在ObjectContext的CRUD操作基础上再包装一层,提供 ...

  3. android 使用 Lottie

    1.添加依赖 dependencies { implementation 'com.airbnb.android:lottie:2.5.5'//lottie } 2.1layout实现 <?xm ...

  4. [每日一题]ES6中为什么要使用Symbol?

    关注「松宝写代码」,精选好文,每日面试题 加入我们一起学习,day day up 作者:saucxs | songEagle 来源:原创 一.前言 2020.12.23日刚立的flag,每日一题,题目 ...

  5. 在 xunit 测试项目中使用依赖注入

    在 xunit 测试项目中使用依赖注入 Intro 之前写过几篇 xunit 依赖注入的文章,今天这篇文章将结合我在 .NET Conf 上的分享,更加系统的分享一下在测试中的应用案例. 之所以想分享 ...

  6. Java通过IO流输出文件目录

    //通过IO流输出文件目录,不同级的目录之间用*间隔 1 package com.fjnu.io; 2 3 import java.io.File; 4 5 public class dicOut { ...

  7. jdbc编程学习(1)

    一,背景 1996年,sun公司发布了第一版本的数据库连接(JDBC)API,使编程人员可以通过这个API接口连接到数据库,并使用结构化查询语言(SQL)完成对数据库的查找与更新.JDBC自此成为Ja ...

  8. RocketMQ踩坑记

    一.前言 现在的主流消息队列基本都是kafka.RabbitMQ和RocketMQ,只有了解各自的优缺点才能在不同的场景选择合适的MQ,对比图如下: MQ对比图 本篇文章主要介绍我自己在跑官方demo ...

  9. Yaml spring boot 二维数组写法

    Yaml channel: info: - channel-ip: 192.168.1.40 channel-no: 5182001001 - channel-ip: 192.168.1.10 cha ...

  10. 在 CAP 中使用 AOP ( Castle.DynamicProxy )

    简介 本篇文章主要介绍如何在 CAP 中集成使用 Castle.DynamicProxy,Castle DynamicProxy 是一个用于在运行时动态生成轻量级.NET代理的库.代理对象允许在不修改 ...