增加火山翻译, 翻译词条小于16的情况
This commit is contained in:
parent
b39ce08b32
commit
95e03554ba
@ -6,14 +6,58 @@ from model.TranslateBaseModel import TranslateBaseModel
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
|
||||
|
||||
class VolcEngine(TranslateParent):
|
||||
def translate_text_with_ai(self, tag_list: list, target_language: str = "zh") -> dict | None:
|
||||
pass
|
||||
|
||||
class VolcEngine(TranslateBaseModel):
|
||||
def __init__(self, ):
|
||||
from main import server
|
||||
self.access_id, self.access_key = server.tell_volc_api()
|
||||
|
||||
def translate_text_with_ai(self, goto_translate_map: dict, source_language: str = "en",
|
||||
target_language: str = "zh") -> dict:
|
||||
pass
|
||||
|
||||
def _start_translate_with_machine_thread(self, goto_translate_map: dict, api_instance, rebuild_list,
|
||||
source_language: str = "en", target_language: str = "zh"):
|
||||
thread_status_code = {"code": 10500, "status": False}
|
||||
translate_text_request = volcenginesdktranslate20250301.TranslateTextRequest(
|
||||
source_language=source_language,
|
||||
target_language=target_language,
|
||||
text_list=rebuild_list,
|
||||
)
|
||||
try:
|
||||
response = api_instance.translate_text(translate_text_request)
|
||||
except ApiException as e:
|
||||
print(e)
|
||||
thread_status_code.update({"code": 10501}) # API接口错误
|
||||
return thread_status_code
|
||||
else:
|
||||
translate_list = response.translation_list
|
||||
if not self.check_translate_match_source(translate_list, goto_translate_map):
|
||||
thread_status_code.update({"code": 10502}) # 翻译结果不匹配
|
||||
return thread_status_code
|
||||
for item in range(len(rebuild_list)):
|
||||
goto_translate_map[rebuild_list[item]].update({"translate_model": "VolcEngine机器翻译",
|
||||
"translate": translate_list[item].translation})
|
||||
thread_status_code.update({"status": True})
|
||||
return thread_status_code
|
||||
|
||||
def translate_text_with_machine(self, goto_translate_map: dict, source_language: str = "en",
|
||||
target_language: str = "zh") -> dict:
|
||||
if len(goto_translate_map) == 0:
|
||||
return {"status": True, "translate_map": {}}
|
||||
list_limit = 15
|
||||
_, rebuild_list, return_false_code = self.rebuild_text_and_list_to_translate(goto_translate_map)
|
||||
self._set_configure()
|
||||
api_instance = volcenginesdktranslate20250301.TRANSLATE20250301Api()
|
||||
if len(rebuild_list) <= list_limit:
|
||||
err_code, thread_status = self._start_translate_with_machine_thread(goto_translate_map, api_instance,
|
||||
rebuild_list, source_language,
|
||||
target_language).values()
|
||||
if not thread_status:
|
||||
return_false_code.update({"code": err_code})
|
||||
return return_false_code
|
||||
return {"status": True, "translate_map": goto_translate_map}
|
||||
return return_false_code
|
||||
|
||||
def _set_configure(self):
|
||||
configuration = volcenginesdkcore.Configuration()
|
||||
configuration.ak = self.access_id
|
||||
|
||||
@ -9,6 +9,7 @@ from dataclasses import dataclass
|
||||
from model.TencentCloud import TencentCloud
|
||||
from model.BaiduCloud import BaiduCloud
|
||||
from model.NiuTrans import NiuTrans
|
||||
from model.VolcEngine import VolcEngine
|
||||
|
||||
|
||||
@dataclass
|
||||
@ -120,9 +121,12 @@ class OverwriteServerHandler(ServerHandler):
|
||||
niu_trans: NiuTrans = NiuTrans()
|
||||
response_dict: dict = niu_trans.translate_text_with_machine(goto_ai_translate_map)
|
||||
translate_network_map: dict = response_dict.get("translate_map")
|
||||
case "VolcEngineModelMachine": # 火山引擎机器翻译
|
||||
volc_engine: VolcEngine = VolcEngine()
|
||||
response_dict: dict = volc_engine.translate_text_with_machine(goto_ai_translate_map)
|
||||
translate_network_map: dict = response_dict.get("translate_map")
|
||||
case _:
|
||||
self.set_response_code(ResponseCode.RESPONSE_103_MODEL_ERROR)
|
||||
return
|
||||
return self.set_response_code(ResponseCode.RESPONSE_103_MODEL_ERROR)
|
||||
if not response_dict["status"]:
|
||||
match response_dict["code"]:
|
||||
case 10500:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user