本文主要介绍如何通过API更新热词词表。
请求参数
功能名称 | 参数 | 类型 | 默认值 | 说明 |
词表名称 | Name | string | - | 必选,请设置热词词表的名称。 |
词表描述 | Description | string | - | 用于记录词表的具体信息。 |
热词权重 | WordWeights | string | - | 必选,词表里的词和对应的权重,为JSON的Map格式字符串。例如:
key为String类型的热词,value为Int类型的热词对应的权重。 |
示例代码
#!/usr/bin/env python
#coding=utf-8
import os
import json
import datetime
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from aliyunsdkcore.auth.credentials import AccessKeyCredential
def create_common_request(domain, version, protocolType, method, uri):
request = CommonRequest()
request.set_accept_format('json')
request.set_domain(domain)
request.set_version(version)
request.set_protocol_type(protocolType)
request.set_method(method)
request.set_uri_pattern(uri)
request.add_header('Content-Type', 'application/json')
return request
def init_parameters():
root = dict()
root['Name'] = '输入您的词表名称'
root['Description'] = '输入您的 词表描述'
words = dict()
words['苹果'] = 3
words['西瓜'] = 3
root['WordWeights'] = words
return root
body = init_parameters()
print(body)
# TODO 请通过环境变量设置您的 AccessKeyId 和 AccessKeySecret
credentials = AccessKeyCredential(os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'], os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'])
client = AcsClient(region_id='cn-beijing', credential=credentials)
phraseId = "输入热词词表ID"
request = create_common_request('tingwu.cn-beijing.aliyuncs.com', '2023-09-30', 'https', 'PUT', '/openapi/tingwu/v2/resources/phrases/{}'.format(phraseId))
request.set_content(json.dumps(body).encode('utf-8'))
response = client.do_action_with_exception(request)
print("response: \n" + json.dumps(json.loads(response), indent=4, ensure_ascii=False))
package com.alibaba.tingwu.client.demo.offlinetask;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.http.ProtocolType;
import com.aliyuncs.profile.DefaultProfile;
import org.junit.Test;
/**
* @author tingwu2023
* @desc 更新热词词表demo。
*/
public class UpdateTranscriptionPhrasesTest {
@Test
public void summitTask() throws ClientException {
String phraseId = "请输入热词词表ID";
CommonRequest request = createCommonRequest("tingwu.cn-beijing.aliyuncs.com", "2023-09-30", ProtocolType.HTTPS, MethodType.PUT, String.format("/openapi/tingwu/v2/resources/phrases/%s", phraseId));
JSONObject root = new JSONObject();
root.put("Name", "输入您的热词词表名称");
root.put("Description", "输入您的热词词表描述");
JSONObject wordWeights = new JSONObject();
wordWeights.fluentPut("苹果", 3)
.fluentPut("草莓", 3);
root.put("WordWeights", wordWeights);
System.out.println(root.toJSONString());
request.setHttpContent(root.toJSONString().getBytes(), "utf-8", FormatType.JSON);
// TODO 请通过环境变量设置您的AccessKeyId、AccessKeySecret
DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
IAcsClient client = new DefaultAcsClient(profile);
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
}
public static CommonRequest createCommonRequest(String domain, String version, ProtocolType protocolType, MethodType method, String uri) {
// 创建API请求并设置参数
CommonRequest request = new CommonRequest();
request.setSysDomain(domain);
request.setSysVersion(version);
request.setSysProtocol(protocolType);
request.setSysMethod(method);
request.setSysUriPattern(uri);
request.setHttpContentType(FormatType.JSON);
return request;
}
}
示例输出
{
"Code": "0",
"Data": {
"Status": "SUCCEEDED"
},
"Message": "success",
"RequestId": "20FDAC6B-7B79-5797-AED5-CB28ACA5****"
}
协议解析
具体字段定义如下。
参数名 | 类型 | 说明 |
Status | string | 任务状态 |
RequestId | string | RequestId用于排查问题使用。 |
文档内容是否对您有帮助?