50 lines
2.5 KiB
Python
50 lines
2.5 KiB
Python
from tencentcloud.common import credential
|
||
from tencentcloud.common.profile.client_profile import ClientProfile
|
||
from tencentcloud.common.profile.http_profile import HttpProfile
|
||
from tencentcloud.tmt.v20180321 import tmt_client, models
|
||
|
||
class Translator:
|
||
def __init__(self, secret_id:str, secret_key:str, *,
|
||
region: str = 'ap-guangzhou'):
|
||
# 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
|
||
# 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
|
||
# 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
|
||
# 实例化一个http选项,可选的,没有特殊需求可以跳过
|
||
httpProfile = HttpProfile()
|
||
httpProfile.endpoint = "tmt.tencentcloudapi.com"
|
||
|
||
# 实例化一个client选项,可选的,没有特殊需求可以跳过
|
||
clientProfile = ClientProfile()
|
||
clientProfile.httpProfile = httpProfile
|
||
cred = credential.Credential(secret_id=secret_id, secret_key=secret_key)
|
||
self.client = tmt_client.TmtClient(credential=cred, region=region, profile=clientProfile)
|
||
|
||
|
||
def translate(self, text: str, *,
|
||
source: str|None = 'auto',
|
||
target: str|None = 'zh',
|
||
project_id: int|None = None,
|
||
untranslated_text: str|None = None
|
||
) -> str:
|
||
# 实例化一个请求对象,每个接口都会对应一个request对象
|
||
req = models.TextTranslateRequest()
|
||
req.SourceText = text
|
||
req.Source = source
|
||
req.Target = target
|
||
req.ProjectId = project_id or 0
|
||
req.UntranslatedText = untranslated_text
|
||
|
||
# 返回的resp是一个TextTranslateResponse的实例,与请求对象对应
|
||
resp = self.client.TextTranslate(req)
|
||
# 输出json格式的字符串回包
|
||
return resp.TargetText
|
||
|
||
if __name__ == '__main__':
|
||
import argparse
|
||
parser = argparse.ArgumentParser()
|
||
parser.add_argument('--secret_id', type=str, required=True)
|
||
parser.add_argument('--secret_key', type=str, required=True)
|
||
args = parser.parse_args()
|
||
t = Translator(args.secret_id, args.secret_key)
|
||
r = t.translate('branch_company | number_of_contracts | total_contract_amount'.replace('_', ' '), untranslated_text='|')
|
||
print(r) |