开发指导
1.1 接口调用说明
介绍使用NLP识别功能所需的三个接口的使用方法。
1.2 Oauth Token获取接口
以下是通过OkHttp发送请求的代码片段。
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
// 通过form的形式进行传参
RequestBody body = RequestBody.create(mediaType, "grant_type=password&username=77572307&password=YWRtaW4xMjM%3D&scope=default");
Request request = new Request.Builder()
// 请求地址,其中host,port需要根据实际情况进行修改
.url("http://host:port/oauth/oauth/token")
.post(body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
// 指定Oauth client的 clientid 和secret
.addHeader("Authorization", "Basic Y2xpZW50OnNlY3JldA==")
.build();
Response response = client.newCall(request).execute();
Oauth client的clientId
与secret
使用Basic认证,内容格式为client:secret
,以英文冒号分隔,对以上内容进行Base64编码,可得Y2xpZW50OnNlY3JldA==
。
form参数:
- grant_type=password, 固定
- username=xxxxx,用户名根据实际情况
- password=xxxxx,RSA加密的密码
- scope=default,固定
响应报文如下:
{
"access_token": "63c13913-8e24-4fbf-8925-92f0f009e661",
"token_type": "bearer",
"refresh_token": "55d951d2-d62c-4fdb-ad2c-688416da71ed",
"expires_in": 71192,
"scope": "default"
}
响应结果中的access_token即为后续需要用到的权限认证token。
1.3 识别请求接口
以下是通过OkHttp发送请求的代码片段。
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"text\": \"我明天要去北京\",\n \"templateCode\": \"test-2019-06-24\",\n \"context\": [\n {\"contextKey\":\"1\",\"contextType\":\"select_tenant\"}\n ]\n }");
Request request = new Request.Builder()
.url("http://host:port/hnlp/v1/0/text-extract/do")
.post(body)
.addHeader("Content-Type", "application/json")
// 设置token
.addHeader("Authorization", "Bearer 67c1b371-d6c4-4812-a853-59603f40b6e4")
.build();
Response response = client.newCall(request).execute();
请求路径:http:// host:port
/hnlp/v1/ 0
/text-extract/do
其中0代表用户的租户id。host
port
需要根据实际情况给定。请求头中需要添加bearer token。
请求报文格式如下:
{
"text": "我明天要去北京", # 识别文本
"templateCode": "test-2019-06-24", # 识别需要使用到的模版编码
"context": [
{"contextKey":"1","contextType":"select_tenant"} # 识别时查询基础数据的上下文条件,
# 只有当基础数据上下文全部满足时才会被用作识别
]
}
后端调用可以使用nlp客户端进行内容提取
1.4 基础数据同步接口
请求路径: http:// host:port
/hnlp/v1/ 0
/basic-datas/send
请求方法:POST
其中0代表使用的租户id。 host
port
根据实际情况进行替换。
请求头:
header | value |
---|---|
Content-Type | application/json |
Authorization | Bearer xxxxxx(token) |
请求使用json进行传参。
Body:
{
"action": "UPSERT", #可以为UPSERT或者DELETE,分别代表更新与删除
"context": [
{
"contextKey": "key",
"contextType": "type" #上下文约束
}
],
"dataKey": "string", #基础数据的code
"dataType": "string", #数据类型
"id": "string", #数据id
"value": "string" #数据用于识别的值
}
基础数据采用id-dataType-tenantId为唯一索引,当传入已存在的基础数据时,会覆盖已有的基础数据。
1.5 基础数据调度接口
请求路径: http:// host:port
/v1/ 0
/basic-datas/scheduling
请求方法:POST
其中0代表使用的租户id。 host
port
根据实际情况进行替换。
此功能需要配合接口平台
使用,将目标接口定义在接口平台
目标接口的返回结构需要满足结构:
[
{
"context": [
{
"contextKey": "string",
"contextType": "string"
}
],
"dataKey": "string",
"dataType": "string",
"id": "string",
"value": "string"
}
]