java Web api接入讯飞aiui(1)

1 篇文章 0 订阅
1 篇文章 0 订阅

创建应用

在这里插入图片描述
目标: 开发一个语音交互技能,可以让用户订票
在这里插入图片描述
创建号技能后点击进去创建意图,意图创建好后不可刪除,一个技能可以有多个意图,一个意图有多个语料
在这里插入图片描述
aiui技能文档

链接: https://doc.iflyos.cn/studio/.

创建语料
在这里插入图片描述
创建好后给语料设置辅助词和实体,选中你需要设置的词就会出现这个框,可以在这里使用官方的也可以使用自己创建的,如果你发现这里没你想要的那么就需要自己去创建
在这里插入图片描述
怎么设置相应的辅助词和实体呢,到底什么设置辅助词,什么设置实体呢,我们看这句话

我想订一张明天上午深圳到北京的机票

辅助词:我想,订,一张,到,的
实体 :明天上午(时间),深圳(城市),北京(城市),机票(票)

单机上方的技能工作室去创建辅助词和实体
在这里插入图片描述
时间,城市可以用官方的,票的实体需要我们创建
在这里插入图片描述
创建好后我们给实体创建相对应的词条
在这里插入图片描述
创建辅助词
在这里插入图片描述
在这里插入图片描述
其余的辅助词你们自己创建

给语料设置对应的实体和辅助词
在这里插入图片描述
在这里插入图片描述
设置好后点击构建进行测试
在这里插入图片描述
测试完后到应用里进行配置
在这里插入图片描述
科大讯飞webApi文档

链接:
https://doc.iflyos.cn/aiui/sdk/more_doc/webapi/summary.html

test方法

Map params = new HashMap();
        params.put("break", "true");
        params.put("language", "cn");
        params.put("sn", "20af74dec95c180eee6a9e834b96bd2c");
        params.put("oriText", "我要订一张明天上午深圳到北京的机票 ");

        byte[] dataByteArr = params.get("oriText").toString().getBytes(StandardCharsets.UTF_8);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("scene", "main_box");
        jsonObject.put("auth_id", "20af74dec95c180eee6a9e834b96bd2c");
        jsonObject.put("data_type", "text");
        String param = JSONObject.toJSONString(jsonObject);
        String paramBase64= Base64.encodeBase64String(param.getBytes(StandardCharsets.UTF_8));
        long curTime = System.currentTimeMillis() / 1000;
        String checkSum = DigestUtils.md5Hex("c914daac81524be34d0612b8766d7e4e" + curTime + paramBase64);
        Map<String, String> header = new HashMap<>();
        header.put("X-Param",paramBase64);
        header.put("X-CurTime", String.valueOf(curTime));
        header.put("X-CheckSum", checkSum);
        header.put("X-Appid", "5fd9c0c8");
        /* 调用讯飞接口 */
        String results = HttpUtils.post("http://openapi.xfyun.cn/v2/aiui", header, dataByteArr);
        System.out.println(results);

http Post

 private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);

    private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
    private static final MediaType FORM = MediaType.parse("application/x-www-form-urlencoded; charset=utf-8");
    private static final OkHttpClient httpClient = new OkHttpClient();

    public static String post(String url, Map<String, String> headers,byte[] body) {
        long start=System.currentTimeMillis();

        Request.Builder builder = new Request.Builder();
        builder.url(url);
        if (Objects.nonNull(headers)) {
            headers.forEach(builder::addHeader);
        }

        builder.post(RequestBody.create(FORM,body));

        try {
            Response response = httpClient.newCall(builder.build()).execute();
            if (response.isSuccessful()) {
                logger.info(".....request xf coast time Mils:{}",System.currentTimeMillis()-start);

                return response.body().string();
            } else {
                logger.error("***********error:返回数据异常,不能解析,response={}",response);
                throw new Exception("网络请求错误,Response:" + response);
            }
        } catch (Exception e) {
            logger.error("***********error:请求数据异常,{}",e);
            return null;
        }
    }

返回数据

{"data":[{"sub":"nlp","auth_id":"20af74dec95c180eee6a9e834b96bd2c","intent":{"category":"OS10035533372.ticket","intentType":"custom","rc":0,"semantic":[{"entrypoint":"ent","hazard":false,"intent":"book","score":1,"slots":[{"begin":5,"end":9,"name":"datetime","normValue":"{\"datetime\":\"2020-12-25TAM\",\"suggestDatetime\":\"2020-12-25T06:00:00\"}","value":"明天上午"},{"begin":9,"end":11,"name":"from","normValue":"深圳市","value":"深圳"},{"begin":12,"end":14,"name":"to","normValue":"北京市","value":"北京"},{"begin":15,"end":17,"name":"ticketType","normValue":"air","value":"机票"}],"template":"{helpme}{book}{mbl_one}{datetime}{from}到{to}{mbl_relate}{ticketType}"}],"semanticType":0,"service":"OS10035533372.ticket","sid":"ara0bd47a24@dx0001133f4df1094000","state":null,"text":"我要订一张明天上午深圳到北京的机票 ","uuid":"ara0bd47a24@dx0001133f4df1094000","vendor":"OS10035533372","version":"2.0"},"result_id":1}],"sid":"ara0bd47a24@dx0001133f4df1094000","code":"0","desc":"success"}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值