👍[Update] Model : 翻訳失敗時にCTranslate2での翻訳処理を追加修正
不要なコードを削除
This commit is contained in:
@@ -360,7 +360,7 @@ dict_ctranslate2_languages = {
|
||||
'Luxembourgish': 'lb',
|
||||
'Myanmar': 'my',
|
||||
'Tibetan': 'bo',
|
||||
'Tagalog': 'tl',
|
||||
'Filipino': 'tl',
|
||||
'Malagasy': 'mg',
|
||||
'Assamese': 'as',
|
||||
'Tatar': 'tt',
|
||||
@@ -372,7 +372,7 @@ dict_ctranslate2_languages = {
|
||||
'Sundanese': 'su'
|
||||
}
|
||||
|
||||
translation_lang["ctranslate2"] = {
|
||||
translation_lang["CTranslate2"] = {
|
||||
"source":dict_ctranslate2_languages,
|
||||
"target":dict_ctranslate2_languages,
|
||||
}
|
||||
@@ -20,6 +20,7 @@ class Translator():
|
||||
self.weight_path = os.path.join(path, "weight", directory_name)
|
||||
self.translator = ctranslate2.Translator(self.weight_path, device="cpu", device_index=0, compute_type="int8", inter_threads=1, intra_threads=4)
|
||||
self.tokenizer = transformers.AutoTokenizer.from_pretrained(tokenizer)
|
||||
self.deepl_client = None
|
||||
|
||||
def authenticationDeepLAuthKey(self, authkey):
|
||||
result = True
|
||||
@@ -27,10 +28,11 @@ class Translator():
|
||||
self.deepl_client = deepl_Translator(authkey)
|
||||
self.deepl_client.translate_text(" ", target_lang="EN-US")
|
||||
except Exception:
|
||||
self.deepl_client = None
|
||||
result = False
|
||||
return result
|
||||
|
||||
def translate(self, translator_name, source_language, target_language, message):
|
||||
def translate(self, translator_name, source_language, target_language, target_country, message):
|
||||
try:
|
||||
result = ""
|
||||
source_language=translation_lang[translator_name]["source"][source_language]
|
||||
@@ -44,11 +46,24 @@ class Translator():
|
||||
to_language=target_language,
|
||||
)
|
||||
case "DeepL_API":
|
||||
result = self.deepl_client.translate_text(
|
||||
message,
|
||||
source_lang=source_language,
|
||||
target_lang=target_language,
|
||||
).text
|
||||
if self.deepl_client is None:
|
||||
result = False
|
||||
else:
|
||||
if target_language == "English":
|
||||
if target_country in ["United States", "Canada", "Philippines"]:
|
||||
target_language = "English American"
|
||||
else:
|
||||
target_language = "English British"
|
||||
elif target_language == "Portuguese":
|
||||
if target_country in ["Portugal"]:
|
||||
target_language = "Portuguese European"
|
||||
else:
|
||||
target_language = "Portuguese Brazilian"
|
||||
result = self.deepl_client.translate_text(
|
||||
message,
|
||||
source_lang=source_language,
|
||||
target_lang=target_language,
|
||||
).text
|
||||
case "Google":
|
||||
result = other_web_Translator(
|
||||
query_text=message,
|
||||
@@ -82,18 +97,4 @@ class Translator():
|
||||
with open('error.log', 'a') as f:
|
||||
traceback.print_exc(file=f)
|
||||
result = False
|
||||
return result
|
||||
|
||||
# def translate_ctranslate2(self, translator_name, source_language, target_language, message):
|
||||
|
||||
# source_language=translation_lang["ctranslate2"]["source"][source_language]
|
||||
# target_language=translation_lang["ctranslate2"]["target"][target_language]
|
||||
|
||||
# self.tokenizer.src_lang = source_language
|
||||
# source = self.tokenizer.convert_ids_to_tokens(self.tokenizer.encode(message))
|
||||
# target_prefix = [self.tokenizer.lang_code_to_token[target_language]]
|
||||
# results = self.translator.translate_batch([source], target_prefix=[target_prefix])
|
||||
# target = results[0].hypotheses[0][1:]
|
||||
|
||||
# result = self.tokenizer.decode(self.tokenizer.convert_tokens_to_ids(target))
|
||||
# return result
|
||||
return result
|
||||
Reference in New Issue
Block a user