DuerOS开放平台开发者使用CFC构建一个Custom-Skill
DuerOS 技能开放平台,英文全称 DuerOS Bots Platform,是 DuerOS 为第三方开发者提供的一整套技能开发、测试、部署工具的开放平台。第三方开发者可以在平台上,通过可视化界面,简单、高效地开发各类个性化技能。
本典型实践是指导 DuerOS 开放平台开放者用户使用 CFC 创建一个 Custom Skill。
开通 CFC 服务
-
使用百度账号登录 DuerOS技能开放平台。
- 注:若没有用户名,请先完成注册,操作请参考注册百度账号。
- 进入控制台页面,点击“创建新技能”按钮,在弹窗中技能类型选择“自定义”,并选择“从头开始“,然后依次输入技能名称和调用名称,选择应用场景和技能付费模式后,点击“确定”完成技能名称的创建步骤,并进入技能基础信息页面。
- 选择技能配置服务页面,然后选择“百度智能云CFC”并点击使用链接,我们将为您开通CFC函数计算服务的使用权限,并且链接在登录百度智能云控制台账号的前提下,可以直接进入函数计算CFC产品页面,点击创建函数后即可在创建环节,进行您的函数创建。
注意:
技能名称:技能名称是技能在小度技能商店中展现的名称,用户通过技能名称,快速辨识理解技能能力。
调用名称:技能在被用户调用时的名称,用户会通过表达“打开+调用名”进行使用技能 名称唯一:调用名称唯一,不能重复占用。
参考建议:清晰易辨识、避免同音词、避免使用生僻词组、避免复杂自创词汇、避免中文与英文数字混杂、不得带有“小度”或”小度小度”
商标占用:非企业认证用户不得使用品牌名称(及同音词)作为调用名,企业级认证用户仅能使用该公司品牌及旗下品牌作为调用名。
创建函数
函数的创建有两种方式,您可以根据自己的需求,任选一种方式开始您的函数创建。
从头创建函数
- 登录百度智能云平台官网。
-
登录成功后,选择“产品服务>云函数计算 CFC”,进入“函数列表”页面,点击创建函数,进入创建函数界面。
-
填写函数名称、描述,并根据需要选择运行语言,本典型实践以Nodejs 6.11的运行语言为例。
说明: 运行语言目前支持 Python 2.7、Nodejs 8.5、Nodejs 10.15、Java8、Golang 1.x、PHP 7 等。
- 点击创建按钮,完成创建。
-
进入函数代码页面,代码编辑类型分为:在线编辑和上传 .zip 文件两种,本实践以“在线编辑”为例,在“在线编辑器”中输入函数代码,进行您的函数创建。本操作以 DuerOS 技能的实例,输入文本“你好,世界!”,返回一段语音 Response 为例,代码如下。
let resp = { "version" : "2.0", "response" : { "outputSpeech": { "type" : "PlainText", "text" : "你好,世界!", }, "shouldEndSession" : false } } exports.handler = (event, context, callback) => { callback(null, resp); };
- 环境变量,您还可以自定义函数执行时的环境变量。环境变量的总长度不能超过 4KB。
- 进入函数触发器页面,新增触发器,选择“DuerOS 触发器“。
从模板创建函数
- 登录百度智能云平台官网。
-
登录成功后,选择“产品服务>云函数计算 CFC”,进入“函数列表”页面,点击从模板创建函数,进入从模板创建函数界面。
-
点击后,界面上会显示目前所有的模板,选择一个 DuerOS 相关的模板,点击下面的“创建”按钮。
-
在弹框中输入函数名称,点击确定。
-
点击确定后,即可创建一个DuerOS 技能的函数,这个函数默认内置了 BOT-SDK,用户可以通过界面上的编辑框修改 intent handler 来让这个函数响应DuerOS 技能 的事件。
测试你创建的函数
-
在函数列表页点击函数名最右侧的“测试“按钮,或者在函数基本信息页和函数代码页面,都可找到“测试“按钮,进入测试弹窗。
-
输入测试的事件,这里我们创建一个“DuerOSStartSession”类型的事件。
-
点击“执行”按钮,即可得到返回。
查询函数BRN
- 使用您创建CFC函数的百度智能云账号,登录百度智能云平台官网。
-
登录成功后,选择“产品服务>云函数计算 CFC”,进入“函数列表”页面,点击想要获得BRN的函数名称,进入函数详情页面可以查看函数的BRN。
绑定 DuerOS 技能 和 CFC 函数
- 返回 DuerOS 技能的设置界面,接入方式选择 BRN(Baidu Resource Name),在 BRN 的输入框中输入在百度智能云的资源名,即可完成绑定。
-
在DuerOS技能平台配置服务界面,“是否回调”列,选择执行回调。
注意: 如果选择不回调,将无法使用 DBP 平台的技能数据统计的能力。
- 选择回调后,您需要输入函数的 Public Key,Public Key 获取方式请参考 DuerOS技能开放平台,输入后点击“保存”完成配置服务项的填写。
- 创建意图,点击左侧导航栏中的“意图”进入意图详情页面,然后选择“创建意图”进入创建意图界面。
-
意图信息填写,按照要求填写意图中文名、意图标示名。
注意: 意图中文名称:用户调用创建事件意图时使用的意图名称。 意图标示名:用户在函数创建时代码中所写的对应调用事件的名称。
- 词典,词典分为自定义词典和系统词典。自定义词典是指开发者根据需求创建的词典。系统词典是对一些通用领域的词汇进行整理的词典,如城市词典、计量单位词典、等,开发者可以直接使用。自定义词典可以参考 DuerOS词典,系统词典使用可以参考 DuerOS系统词典
-
常用表达,您可以根据创建函数的用处,输入运行函数的常用表达语句,本典型实践为“查询个税”这个程序为例,进行演示。如下图所示:
注意: 系统会自动对您输入的文字中的城市名称和收入金额进行槽位标记,如果标记不符合您的业务需求,您可以在输入的文字中选择您想要标记的文字,在弹出的窗口中选择“添加词典”,进行自主标记。
- 在技能回复中选择“服务配置满足”,然后在页面最下角选择保存完成“查询个税”事件的创建。
测试 DuerOS 技能
- 使用百度账号登录 DuerOS技能开放平台。
- 选择需要测试的自定义技能名称,进入技能详情页面,在左侧导航栏中选择配置服务,进入测试页面。
-
在输入框中输入“打开+调用名称”打开事件,然后输入想要查询个税的金额或者城市,进行个税查询。
说明:
当用户说“我想查个税”时,DuerOS 会发送 IntentRequest 消息,技能处理消息时,确认意图信息,发现没有工资(sys.number)和城市(sys.city)信息,所以进行槽位追问。
当用户说“我工资 8000”,DuerOS 会发送 IntentRequest 消息,技能记录下工资(sys.number),发现没有城市(sys.city)信息,所以继续追问。
当用户说“我在北京”,DuerOS 会发送 IntentRequest 消息,技能记录下城市(sys.city)信息,并确认已经获得完整的用户请求信息,开始处理用户请求,并向用户返回处理结果。