添加默认logger
This commit is contained in:
@@ -40,7 +40,7 @@ class PartialAgentResultError(ValueError):
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class AgentConfig:
|
||||
logger: logging.Logger
|
||||
logger: logging.Logger = global_logger
|
||||
base_url: str
|
||||
api_key: str | None = None
|
||||
model_id: str
|
||||
@@ -236,7 +236,7 @@ class Agent:
|
||||
self.max_concurrent = config.concurrent
|
||||
self.timeout = httpx.Timeout(connect=5, read=config.timeout, write=300, pool=10)
|
||||
self.thinking = config.thinking
|
||||
self.logger = config.logger or global_logger
|
||||
self.logger = config.logger
|
||||
self.total_error_counter = TotalErrorCounter(logger=self.logger)
|
||||
# 新增:用于统计最终未解决的错误
|
||||
self.unresolved_error_lock = Lock()
|
||||
@@ -461,7 +461,6 @@ class Agent:
|
||||
async with httpx.AsyncClient(
|
||||
trust_env=False, proxies=proxies, verify=False, limits=limits
|
||||
) as client:
|
||||
|
||||
async def send_with_semaphore(p_text: str):
|
||||
async with semaphore:
|
||||
result = await self.send_async(
|
||||
|
||||
@@ -12,7 +12,7 @@ from docutranslate.logger import global_logger
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class ConverterConfig(ABC):
|
||||
logger: Logger | None = None
|
||||
logger: Logger = global_logger
|
||||
|
||||
@abstractmethod
|
||||
def gethash(self) -> Hashable:
|
||||
@@ -23,9 +23,7 @@ class Converter(ABC):
|
||||
def __init__(self, config: ConverterConfig | None = None):
|
||||
self.config = config
|
||||
if config:
|
||||
self.logger = config.logger or global_logger
|
||||
else:
|
||||
self.logger = global_logger
|
||||
self.logger = config.logger
|
||||
|
||||
@abstractmethod
|
||||
def convert(self, document: Document) -> Document:
|
||||
|
||||
@@ -1,29 +1,35 @@
|
||||
# SPDX-FileCopyrightText: 2025 QinHan
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
from abc import ABC, abstractmethod
|
||||
from dataclasses import dataclass
|
||||
from logging import Logger
|
||||
from typing import TypeVar, Generic
|
||||
from abc import ABC,abstractmethod
|
||||
|
||||
from docutranslate.ir.document import Document
|
||||
from docutranslate.logger import global_logger
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class TranslatorConfig:
|
||||
logger:Logger|None=None
|
||||
logger: Logger = global_logger
|
||||
|
||||
|
||||
T = TypeVar('T', bound=Document)
|
||||
|
||||
|
||||
class Translator(ABC, Generic[T]):
|
||||
"""
|
||||
翻译中间文本(原地替换),Translator不做格式转换
|
||||
"""
|
||||
|
||||
def __init__(self, config: TranslatorConfig | None = None):
|
||||
self.config = config
|
||||
self.logger = config.logger or global_logger
|
||||
|
||||
@abstractmethod
|
||||
def translate(self, document: T) -> Document:
|
||||
...
|
||||
|
||||
@abstractmethod
|
||||
async def translate_async(self, document: T) -> Document:
|
||||
...
|
||||
@@ -9,11 +9,12 @@ from typing import Self, Generic, TypeVar
|
||||
from docutranslate.exporter.base import Exporter
|
||||
from docutranslate.ir.attachment_manager import AttachMentManager
|
||||
from docutranslate.ir.document import Document
|
||||
from docutranslate.logger import global_logger
|
||||
|
||||
|
||||
@dataclass(kw_only=True)
|
||||
class WorkflowConfig:
|
||||
logger: Logger | None = None
|
||||
logger: Logger = global_logger
|
||||
|
||||
|
||||
T_Config = TypeVar("T_Config", bound=WorkflowConfig)
|
||||
|
||||
Reference in New Issue
Block a user