faster-whisper-small / optimizer /optimize_task.py
tianyaogavin's picture
init main framework
1bf36cc
"""
优化任务 - 表示一个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("测试完成")