第三期【百度大脑新品体验】UNIT搭建机器人助理
wangwei8638 发布于2019-06 浏览:3190 回复:8
1
收藏
最后编辑于2022-04

本文介绍通过调用UNIT预置技能,搭建自己的个性化机器人的方法。对于一个经常出差开会的人来说,一个会订票、查天气、预定会议室、回答一些常识问题的机器人助手就够用了,下面是具体搭建步骤。

一、概念介绍

1.机器人

一个机器人对应一个特定环境下多个对话场景的对话系统。通常按行业垂类划分(例如,银行大厅值班机器人、儿童机器人等)。

2.技能

某一个对话场景的对话能力,分为开发者自定义技能和UNIT平台预置技能。

自定义技能又分为「对话技能」和「问答技能」,完全由用户配置。

预置技能为UNIT平台预置的通用能力,部分预置技能目前支持添加词槽词典值来干预对话理解效果。

3.沙盒环境

沙盒环境是UNIT平台提供给您创建技能,训练技能模型,对话测试,调试优化技能模型的环境。每个技能都配有一个沙盒环境,将训练好的技能模型生效到沙盒环境后,就可以与技能进行对话了,同时可接入到您自己的业务系统中使用。一个技能可以训练出多个版本的模型,但只能选择一个放到沙盒环境中。

4.生产环境

生产环境是UNIT平台在百度云上为您提供的可定制的稳定的对话服务环境。

二.创建机器人

1.进入UNIT主页,首先创建自己的机器人,命名为小智。

https://ai.baidu.com/unit/home

2.点击“我的技能”选项卡,点击“添加预置技能”

3.选中“会议室预定”,在右侧可以输入对话,初步测试。点击“获取该技能”,即可将该技能加入到我的技能。

4.点击“我的机器人”选项卡,然后点击“添加技能”,将预置技能加入到自己的机器人。

5.可以看到机器人技能管理下已经加入了“会议室预定”技能

6.当然,如果需要,采用同样方法,可以加入其它技能,一个机器人最多只能添加5个技能。

7.至此,机器人已经搭建完成,并且具备预定机票、火车票、会议室,查询天气及智能问答功能,下面可以做综合测试,与机器人聊天了。

三.技能测试

点击机器人下方的“对话”,即可对机器人进行测试,以预定会议室为例,可以看出,技能能够根据用户输入开展多轮对话,自动询问必填槽位(会议时间)。

四.技能调用

1.首先要在控制台创建UNIT应用,获取API接口。点击“发布上线”,点击“获取API Key/Secret Key”。

2.点击“创建应用”,输入应用名:个人助理小智,此处获得的AK、SK在程序中会用到。

3.在Python3中实现UNIT API接口调用,下面直接给出代码:

# -*- coding: utf-8 -*-

import urllib.request as ul_re

import json

import urllib

import urllib.parse

#client_id 为官网获取的AK, client_secret 为官网获取的SK

client_id = '****************************'

client_secret = '*********************************'



#获取token

def get_token():

    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret

    request = urllib.request.Request(host)

    request.add_header('Content-Type', 'application/json; charset=UTF-8')

    response = urllib.request.urlopen(request)

    token_content = response.read()

    if token_content:

        token_info = json.loads(token_content.decode("utf-8"))

        token_key = token_info['access_token']

    return token_key



access_token = get_token()

url = 'https://aip.baidubce.com/rpc/2.0/unit/bot/chat?access_token=' + access_token

#print (access_token)

str = input("助理小智:请问有什么可以帮您?请说出您的需求:\n ");

#print("请说出您的需求 : ", str)



post_data  = {

         "bot_session": "",

         "log_id": "7758521",

         "request": {

                   "bernard_level": 0,

                   "client_session": "{\"client_results\":\"\", \"candidate_options\":[]}",

                   "query": str,

                   "query_info": {

                            "asr_candidates": [],

                            "source": "KEYBOARD",

                            "type": "TEXT"

                   },

                   "updates": "",

                   "user_id": "88888"

         },

         "bot_id": "64050",

         "version": "2.0"

}

encoded_data = json.dumps(post_data).encode('utf-8')

headers = {'Content-Type': 'application/json'}

request = ul_re.Request(url, data=encoded_data, headers=headers)

response = ul_re.urlopen(request)

content = response.read()

if content:

    license_plates = json.loads(content.decode("utf-8"))

    strover = '助理小智:'

    words_result = license_plates['result']

    number = words_result['response']['action_list'][0]['say']

    strover += '  {} \n '.format(number)

#        print (content)

    print (strover)

#    return content

#else:

#    return ''

4.测试结果

五.更多应用场景

UINT可广泛应用与智能客服、智能家居、机器人、车载设备等交互场景,解放人的双手,使智能设备与人的融合度更高、更自然。比如语音交互的智能音箱已经走入千家万户,越来越多的人们习惯于用口语化的指令查询和播放音乐,和智能音箱聊着天对话来获取了解天气情况、设置日程提醒、预订机票酒店等实用的生活服务。

UINT还可以应用于其他专业的系统。比如服务机器人已经凭借其标准化的专业服务走入了各行各业,为企业降低日渐高昂的人力成本。基于UNIT搭建的服务机器人可随时提供高质量服务,已成功应用于医疗健康、法律政务、酒店旅游、商业地产等场景。

六.意见建议

1. UINT优点很多,但也有需要完善的地方,比如预置技能需要单独调用,这样每次只能实现一种技能。通过沟通了解到后续会上线机器人模块,机器人下面可以添加多个技能,届时直接调用机器人即可。这样将大大提高使用效率。

2.目前机器人测试能进行对话体验,能否实现预定火车票、机票等实际操作,以及涉及个人资金安全的设计是否考虑周全,还没有看到相关文档说明。

收藏
点赞
1
个赞
共8条回复 最后由用户已被禁言回复于2022-04
#9wangwei8638回复于2020-03
#8 辰希Cx95回复
楼主大大,我有问题需要请教你,我在做毕业设计,其中有一块需要用到智能问答,我看了你上一个关于小程序的帖子,不知道哪里的代码需要改掉,可以给我一个你的联系方式吗,万分感谢
展开

q 394885854

0
#8辰希Cx95回复于2020-03

楼主大大,我有问题需要请教你,我在做毕业设计,其中有一块需要用到智能问答,我看了你上一个关于小程序的帖子,不知道哪里的代码需要改掉,可以给我一个你的联系方式吗,万分感谢

0
#7wangwei8638回复于2020-02
#6 dzhangzhong回复
请教,循环提问题怎么实现。  

添加追问语句,建议看看文档

0
#6dzhangzhong回复于2020-01

请教,循环提问题怎么实现。

 

0
#5wangwei8638回复于2019-08

5个技能不够用哈

0
#4大手拉小手0123回复于2019-07

又是机器人,太酷了

0
#3wangwei8638回复于2019-06

放在移动设备上才能用起来

0
#2wangwei8638回复于2019-06

后续接入微信小程序

 

0
TOP
切换版块