UNIT搭建机器人助理

作者:wangwei8638

本文介绍通过调用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搭建的服务机器人可随时提供高质量服务,已成功应用于医疗健康、法律政务、酒店旅游、商业地产等场景。

发布了10 篇原创文章 · 获赞 4 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_45449540/article/details/103297327