AiTranslatorConfig添加skip_translate参数
This commit is contained in:
@@ -19,18 +19,20 @@ class MDTranslator(AiTranslator):
|
||||
def __init__(self, config: MDTranslatorConfig):
|
||||
super().__init__(config=config)
|
||||
self.chunk_size = config.chunk_size
|
||||
agent_config = MDTranslateAgentConfig(custom_prompt=config.custom_prompt,
|
||||
to_lang=config.to_lang,
|
||||
baseurl=config.base_url,
|
||||
key=config.api_key,
|
||||
model_id=config.model_id,
|
||||
temperature=config.temperature,
|
||||
thinking=config.thinking,
|
||||
max_concurrent=config.concurrent,
|
||||
timeout=config.timeout,
|
||||
logger=self.logger,
|
||||
glossary_dict=config.glossary_dict)
|
||||
self.translate_agent = MDTranslateAgent(agent_config)
|
||||
self.translate_agent = None
|
||||
if not self.skip_translate:
|
||||
agent_config = MDTranslateAgentConfig(custom_prompt=config.custom_prompt,
|
||||
to_lang=config.to_lang,
|
||||
baseurl=config.base_url,
|
||||
key=config.api_key,
|
||||
model_id=config.model_id,
|
||||
temperature=config.temperature,
|
||||
thinking=config.thinking,
|
||||
max_concurrent=config.concurrent,
|
||||
timeout=config.timeout,
|
||||
logger=self.logger,
|
||||
glossary_dict=config.glossary_dict)
|
||||
self.translate_agent = MDTranslateAgent(agent_config)
|
||||
|
||||
def translate(self, document: MarkdownDocument) -> Self:
|
||||
self.logger.info("正在翻译markdown")
|
||||
@@ -38,9 +40,13 @@ class MDTranslator(AiTranslator):
|
||||
chunks: list[str] = split_markdown_text(document.content.decode(), self.chunk_size)
|
||||
if self.glossary_agent:
|
||||
self.glossary_dict_gen = self.glossary_agent.send_segments(chunks, self.chunk_size)
|
||||
self.translate_agent.update_glossary_dict(self.glossary_dict_gen)
|
||||
if self.translate_agent:
|
||||
self.translate_agent.update_glossary_dict(self.glossary_dict_gen)
|
||||
self.logger.info(f"markdown分为{len(chunks)}块")
|
||||
result: list[str] = self.translate_agent.send_chunks(chunks)
|
||||
if self.translate_agent:
|
||||
result: list[str] = self.translate_agent.send_chunks(chunks)
|
||||
else:
|
||||
result = chunks
|
||||
content = join_markdown_texts(result)
|
||||
# 做一些加强鲁棒性的操作
|
||||
content = content.replace(r'\(', r'\(')
|
||||
@@ -57,10 +63,14 @@ class MDTranslator(AiTranslator):
|
||||
|
||||
if self.glossary_agent:
|
||||
self.glossary_dict_gen = await self.glossary_agent.send_segments_async(chunks, self.chunk_size)
|
||||
self.translate_agent.update_glossary_dict(self.glossary_dict_gen)
|
||||
if self.translate_agent:
|
||||
self.translate_agent.update_glossary_dict(self.glossary_dict_gen)
|
||||
|
||||
self.logger.info(f"markdown分为{len(chunks)}块")
|
||||
result: list[str] = await self.translate_agent.send_chunks_async(chunks)
|
||||
if self.translate_agent:
|
||||
result: list[str] = await self.translate_agent.send_chunks_async(chunks)
|
||||
else:
|
||||
result = chunks
|
||||
|
||||
def run():
|
||||
content = join_markdown_texts(result)
|
||||
|
||||
Reference in New Issue
Block a user