chore: setup default backoff for tranlate method (#387)

* chore: setup default backoff for tranlate method

Signed-off-by: Zhou Zhiqiang <im@strrl.dev>
This commit is contained in:
Zhou Zhiqiang 2024-02-29 10:08:59 +08:00 committed by GitHub
parent 95bdd1bf6b
commit 37808e044f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 18 additions and 4 deletions

View File

@ -1,5 +1,10 @@
import re import re
from copy import copy from copy import copy
import backoff
import logging
logging.basicConfig(level=logging.WARNING)
logger = logging.getLogger(__name__)
class EPUBBookLoaderHelper: class EPUBBookLoaderHelper:
@ -27,13 +32,20 @@ class EPUBBookLoaderHelper:
if single_translate: if single_translate:
p.extract() p.extract()
@backoff.on_exception(
backoff.expo,
Exception,
on_backoff=lambda details: logger.warning(f"retry backoff: {details}"),
on_giveup=lambda details: logger.warning(f"retry abort: {details}"),
)
def translate_with_backoff(self, **kwargs):
return self.translate_model.translate(**kwargs)
def deal_new(self, p, wait_p_list, single_translate=False): def deal_new(self, p, wait_p_list, single_translate=False):
self.deal_old(wait_p_list, single_translate, self.context_flag) self.deal_old(wait_p_list, single_translate, self.context_flag)
self.insert_trans( self.insert_trans(
p, p,
shorter_result_link( shorter_result_link(self.translate_with_backoff(p.text, self.context_flag)),
self.translate_model.translate(p.text, self.context_flag)
),
self.translation_style, self.translation_style,
single_translate, single_translate,
) )

View File

@ -1,3 +1,4 @@
-e . -e .
mkdocs mkdocs
mkdocs-material mkdocs-material
backoff

View File

@ -13,6 +13,7 @@ packages = [
"PyDeepLX", "PyDeepLX",
"google-generativeai", "google-generativeai",
"langdetect", "langdetect",
"backoff",
] ]