由于UNIT没有一个好的信源输出,DuerOS的信源很丰富.所以一直想使用DuerOS的信源,用UNIT的语义解析.
现在UNIT提供了资源api的功能.可以完美实现从DuerOS直接调用UNIT的解析.现在记录一下接入的步骤.
资源API的详细文档参考 http://ai.baidu.com/docs#/UNIT-res-API/top
1.肯定是配置好UNIT.具体的可以参考goJhou大神写的帖子.需要注意的是.
要使用资源api.在单元中.必须选择执行函数.
2.训练好以后.选择发布到DuerOS.
发布的时候需要填写资源API的URL.
这个URL对应的是我们服务端的逻辑代码.这个后面点来说.
3.跳转到DuerOS平台.
可以看到是UNIT类型的技能,不用配置其他东西.这时候在平台的工作就算完成了.然后看看我们服务端的代码
服务端我是用C#写的.
其实很方便.DuerOS在识别语音以后.如果是符合我们设置的函数规则.就会回调API资源设置的URL.
在这个URL里面.我们来处理接收到的JSON
[HttpPost]
[ActionName("callback")]
public ActionResult CallBack()
{
byte[] byts = new byte[Request.InputStream.Length];
Request.InputStream.Read(byts, 0, byts.Length);
string req = System.Text.Encoding.UTF8.GetString(byts);
req = Server.UrlDecode(req);
var response = new UNITRespons();
response.error_code = 0;
response.error_msg = "";
response.result = new UNITResponsResult() { type = "text" };
response.result.content = "这次很成功的调用";
return Json(response);
}
实体类是
public class UNITRespons
{
public int error_code { get; set; }
public string error_msg { get; set; }
public UNITResponsResult result { get; set; }
}
public class UNITResponsResult
{
public string type { get; set; }
public string content { get; set; }
}
是不是很简单..不要实体类的话.动态解析也就几句代码搞定.当然.具体的控制转发等.需要自己在代码的req里面来写了.
然后我们去DuerOS的模拟测试去试试.
OK.搞定.
这样我们就可以完美的在DuerOS里面调用UNIT的训练技能了.UNIT的训练真的很智能.就是时间有点.^-^
TOP
切换版块
赞,厉害~
赞,收藏先
好帖,谢谢以上大佬们的赞扬.
好帖,赞一下~ 以上都是大佬
好贴,给你加精
好贴