Grounded-Segment-Anything / util_tencent.py
liuyizhang
update app.py
5ee6e09
import json, os
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.tmt.v20180321 import tmt_client, models
def get_tmt_client():
try:
# 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
# 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
# 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
SecretId = os.environ.get("TENCENTCLOUD_SECRET_ID")
SecretKey = os.environ.get("TENCENTCLOUD_SECRET_KEY")
cred = credential.Credential(SecretId, SecretKey)
# 实例化一个http选项,可选的,没有特殊需求可以跳过
httpProfile = HttpProfile()
httpProfile.endpoint = "tmt.tencentcloudapi.com"
# 实例化一个client选项,可选的,没有特殊需求可以跳过
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
# 实例化要请求产品的client对象,clientProfile是可选的
client = tmt_client.TmtClient(cred, "ap-shanghai", clientProfile)
print(f'client_{client}')
return client
except TencentCloudSDKException as err:
print(f'client_err_{err}')
return None
def getTextTrans_tmt(tmt_client, text, source='zh', target='en'):
def is_chinese(string):
for ch in string:
if u'\u4e00' <= ch <= u'\u9fff':
return True
return False
if tmt_client is None:
return text
if not is_chinese(text) and target == 'en':
return text
try:
req = models.TextTranslateRequest()
params = {
"SourceText": text,
"Source": source,
"Target": target,
"ProjectId": 0
}
req.from_json_string(json.dumps(params))
resp = tmt_client.TextTranslate(req)
return resp.TargetText
except Exception as e:
return text
def getTextTrans(text, source='zh', target='en'):
return getTextTrans_tmt(get_tmt_client(), text, source, target)