• 开发指导


    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的clientIdsecret使用Basic认证,内容格式为client:secret,以英文冒号分隔,对以上内容进行Base64编码,可得Y2xpZW50OnNlY3JldA==
    form参数:

    响应报文如下:

    {
        "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"
      }
    ]