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)
|