""" 优化任务 - 表示一个LLM优化任务 """ import logging from typing import Callable, Optional # 配置日志 def setup_logger(name, level=logging.INFO): """设置日志记录器""" logger = logging.getLogger(name) # 清除所有已有的handler,避免重复 if logger.handlers: logger.handlers.clear() # 添加新的handler handler = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(level) # 禁止传播到父logger,避免重复日志 logger.propagate = False return logger # 创建日志记录器 logger = setup_logger("optimizer.task") class OptimizeTask: """ 优化任务,表示一个需要LLM优化的文本任务 """ def __init__(self, sentence_id: str, text: str, callback: Optional[Callable[[str, str, str], None]] = None): """ 初始化优化任务 :param sentence_id: 句子ID :param text: 需要优化的文本 :param callback: 优化完成后的回调函数,接收参数(sentence_id, original_text, optimized_text) """ self.sentence_id = sentence_id self.text = text self.callback = callback logger.debug(f"创建优化任务: {sentence_id}") def __str__(self): """字符串表示""" return f"OptimizeTask(id={self.sentence_id}, text={self.text[:20]}...)" if __name__ == "__main__": # 设置日志级别为DEBUG以查看详细信息 logger.setLevel(logging.DEBUG) # 测试回调函数 def fake_callback(sid, original_text, optimized_text): logger.info(f"[回调] 优化结果:({sid}) -> {optimized_text}") # 创建任务 task = OptimizeTask("s001", "they go home maybe tomorrow", fake_callback) # 创建模型运行器 from optimizer.llm_api_runner import ChatGPTRunner runner = ChatGPTRunner() # 优化文本 optimized_text = runner.optimize(task.text) # 调用回调 if task.callback: task.callback(task.sentence_id, task.text, optimized_text) logger.info("测试完成")