文章目录

  • 1 机器人的创建
  • 2 Python调用API的代码实现

简介:利用百度大脑平台(百度智能对话定制与服务平台,即UNIT)提供的API接口,实现可以完成闲聊功能的智能对话机器人

1 机器人的创建

访问百度大脑网址:https://ai.baidu.com/unit/home
点击进入UNIT

然后登陆百度账号,进入到以下页面,点击我的机器人:

点击“+”号创建机器人,我们设置机器人名称为“闲聊机器人”,描述里写“闲聊”,然后创建:

点击新创建好的机器人界面,点击技能管理界面:

然后点击蓝字“技能管理页”,再点击“添加预置技能”,拉到最下面,找到闲聊功能并创建

然后新建我的闲聊技能,命名为“闲聊机器人”

然后回到我们的“我的机器人”界面中的技能管理,添加技能,我们可以看到我们创建的“闲聊机器人”功能,将其添加至机器人即可。

然后点击“发布上线”中的“研发/生产环境”,点击蓝色按钮“获取API Key/Secret Key

我们可以看到如下界面,其中有两个重要的参数——API Key和Secret Key

以上过程我们创建好了闲聊机器人,下面我们需要做的就是在Python中调用该机器人的API接口,实现闲聊功能。

2 Python调用API的代码实现

导入相关包:

import json
import random
import requests

设置好相关参数。这里的id对应的即上面的API Key,secret对应的是上面的Secret Key

client_id = "byKLF3DzDpYGQDPifrymq14j"
client_secret = "dZGTviCbBKr8FWzo2HjL7Qs5LMGFAki1"

编写函数unit_chat。其功能是调用百度大脑UNIT接口。包括两个参数:chat_input代表的是用户输入的内容,user_id表示用户的id号,我们默认为“88888”;函数的返回值是闲聊机器人的回复内容。

def unit_chat(chat_input, user_id="88888"):# 设置默认回复chat_reply = "不好意思,我正在学习中,随后回复你"# 固定的url格式url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s"%(client_id, client_secret)res = requests.get(url)access_token = eval(res.text)["access_token"]unit_chatbot_url = "https://aip.baidubce.com/rpc/2.0/unit/service/chat?access_token=" + access_token# 拼装聊天接口对应请求post_data = {"log_id": str(random.random()),  #登陆的id,是什么不重要,我们用随机数生成一个id即可"request": {"query": chat_input,  #用户输入的内容"user_id": user_id  #用户id},"session_id": "","service_id": "S53842",  #!!!!这个很重要,必须对应我们创建的机器人的id号,id号在百度大脑中我们创建的闲聊机器人中可见"version": "2.0"}# 将聊天接口对应请求数据转为json数据res = requests.post(url=unit_chatbot_url, json=post_data)# 获取聊天接口返回数据unit_chat_obj = json.loads(res.content)# 判断聊天接口返回数据是否出错(error_code == 0则表示请求正确)if unit_chat_obj["error_code"] != 0:return chat_reply# 解析聊天接口返回数据,找到返回文本内容 result -> response_list -> schema -> intent_confidence(>0) -> action_list -> sayunit_chat_obj_result = unit_chat_obj["result"]unit_chat_response_list = unit_chat_obj_result["response_list"]# 随机选取一个"意图置信度"[+response_list[].schema.intent_confidence]不为0的技能作为回答unit_chat_response_obj = random.choice([unit_chat_response for unit_chat_response in unit_chat_response_list ifunit_chat_response["schema"]["intent_confidence"] > 0.0])unit_chat_response_action_list = unit_chat_response_obj["action_list"]unit_chat_response_action_obj = random.choice(unit_chat_response_action_list)unit_chat_response_say = unit_chat_response_action_obj["say"]return unit_chat_response_say

测试我们的闲聊机器人。我们建立一个while循环,当用户输入Bye或bye后退出循环。

if __name__ == "__main__":while True:chat_input = input("请输入:")if chat_input == 'Bye' or chat_input == "bye":breakchat_reply = unit_chat(chat_input)print("Unit:", chat_reply)

测试结果如下:

Python调用Unit闲聊对话API的应用相关推荐

  1. Python 调用有道翻译api接口翻译外文网站的整篇西班牙文实战演示

    Python 调用有道翻译 api 接口翻译整篇西班牙文实战演示 第一章:翻译效果展示 ① 翻译文章示例一[阿尔卡拉门的无海摩纳哥:"不到4万欧元,你就不能在这里租任何东西."] ...

  2. python有道翻译接口-Python调用有道翻译api实现翻译

    通过调用有道翻译的api,实现中译英.其他语言译中文 代码: # coding=utf-8 import urllib import urllib2 import json import time i ...

  3. Python调用百度通用翻译api

    Python调用百度通用翻译api 首先 首先 首先需要先去百度翻译api官网注册成为开发者,然后申领一下通用翻译的appid和密钥. 附上代码,默认为源语言自动识别,效果感觉不是太好,目标语言默认为 ...

  4. Python调用百度智能云API进行文本情感分析

    Python调用百度智能云API进行文本情感分析 安装SDK 在调用前首先需要通过 pip 安装百度智能云 SDK. 可参考官方文档:https://cloud.baidu.com/doc/OCR/s ...

  5. 利用Python调用ECMWF欧洲中心API批量下载数据

    前段时间由于需要下载ECMWF(欧洲中期天气预报中心)的再分析数据,学习了如何利用Python调用ECMWF欧洲中心API进行批量下载.这种下载ECMWF数据的方法在官网上有非常详细的介绍.我只是对这 ...

  6. 使用Python调用百度地图的API在地图上添加标记

    写在前面 近期博主工作太忙,快一个月没更新博客.今天跑了大半天的腿,被一堆破事儿弄的无比憋屈,写篇博客调节一下心情. 博主的目的是在地图上做一些标记,然后保存为html网页文件,这样方便我的软件调用, ...

  7. python powerbi知乎_利用Python调用Power BI REST API

    本文是D-BI之Power BI REST API系列第三篇,讲解如何利用一段简单的Python脚本实现Power BI REST API的调用,将使用与上文完全不同的方法 前述 上文<Powe ...

  8. Python调用百度人脸识别API接口检测颜值

    我们今天使用Python发送网络请求到百度人脸识别API接口. 我们需要requests模块,它需要安装,代码是 pip3 install requests 注意:不好意思各位,我的配额没了!如需使用 ...

  9. python调用百度智能云API请求(以自然语言处理——词法分析为例)

    调用API的思路: 获得api的token 按官方文档发送链接 分析返回的结果 步骤一:获取API的token 如果不知道token是啥,或是不知道怎么获取token,请参考:https://blog ...

最新文章

  1. 关于sysobjects这个表
  2. java同步锁synchronized_Java对象锁和类锁全面解析(多线程synchronized关键字)
  3. lucene源码分析(7)Analyzer分析
  4. Spring Boot——AbstractWebSocketMessageBrokerConfigurer已过时解决方案
  5. Zing加快了JVM应用程序的预热
  6. debugging Auto Layout:Logical Errors
  7. [jQuery基础] jQuery案例 -- qq音乐以及初步解决Ajax 跨域问题
  8. matlab控制算法C语言,PID算法Matlab仿真程序和C程序
  9. jeecg字典表-系统字典
  10. android 点击事件失效,安卓手机微信自带浏览器点击事件失效解决
  11. 交换机生成树相关实验
  12. QQ浏览器 不支持html5,浏览器常见问题_浏览器高级功能_浏览器在线帮助-QQ浏览器官网...
  13. VVC/VTM:代码学习——量化实现之RDOQ
  14. Unity Error 打AssetBundle时出现 An asset is marked with HideFlags.DontSave but is included in the build
  15. 使用 ROT13 算法加密解密数据
  16. shell正则表达式及一些排序命令(sort、uniq、tr)
  17. UE4 材质学习 (02-利用UV来调整纹理)
  18. 计算机win7卡顿如何解决方法,win7电脑运行很慢很卡怎么办
  19. 调试经验——Excel函数转置函数(TRANSPOSE)的应用 (Use of TRANSPOSE function in Excel)
  20. 吃鸡游戏对服务器性能,《绝地求生》国服用超性能服务器,网络全互联

热门文章

  1. android开发视频资源 电驴10G下载
  2. 如何使用cleanmymac文件粉碎机
  3. python中seaborn库_[Python学习笔记(四)] Seaborn库基础学习——01
  4. 区块链浏览器在linux下部署
  5. spring boot(7)-mybatis全注解化
  6. json文件保存与读取
  7. ubuntu 20.4下服务器部署
  8. 51单片机-WIFI模块
  9. 金融安全算法介绍系列6——RSA
  10. 【高效办公】Everything高效应用案例——软件基本信息篇