bizwechat/sqlcode/tt_tencent.py

50 lines
2.5 KiB
Python
Raw Permalink Normal View History

2025-02-17 10:34:35 +08:00
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)