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