MCPcopy
hub / github.com/HisMax/RedInk / __init__

Method __init__

backend/services/image.py:24–79  ·  view source on GitHub ↗

初始化图片生成服务 Args: provider_name: 服务商名称,如果为None则使用配置文件中的激活服务商

(self, provider_name: str = None)

Source from the content-addressed store, hash-verified

22 AUTO_RETRY_COUNT = 1 # 不自动重试,超时后让用户手动重试
23
24 def __init__(self, provider_name: str = None):
25 """
26 初始化图片生成服务
27
28 Args:
29 provider_name: 服务商名称,如果为None则使用配置文件中的激活服务商
30 """
31 logger.debug("初始化 ImageService...")
32
33 # 获取服务商配置
34 if provider_name is None:
35 provider_name = Config.get_active_image_provider()
36
37 logger.info(f"使用图片服务商: {provider_name}")
38 provider_config = Config.get_image_provider_config(provider_name)
39
40 # 创建生成器实例
41 provider_type = provider_config.get('type', provider_name)
42 logger.debug(f"创建生成器: type={provider_type}")
43 self.generator = ImageGeneratorFactory.create(provider_type, provider_config)
44
45 # 保存配置信息
46 self.provider_name = provider_name
47 self.provider_config = provider_config
48 self.policy = ImageProviderPolicy.from_config(
49 provider_config,
50 default_model=provider_config.get('model', 'default-model'),
51 )
52 self.worker_count = self.policy.worker_count
53 self.rate_limiter = ImageRateLimiter(
54 max_concurrent=self.worker_count,
55 interval_seconds=self.policy.request_interval_seconds,
56 )
57 self.history_service = get_history_service()
58
59 # 检查是否启用短 prompt 模式
60 self.use_short_prompt = provider_config.get('short_prompt', False)
61
62 # 加载提示词模板
63 self.prompt_template = self._load_prompt_template()
64 self.prompt_template_short = self._load_prompt_template(short=True)
65
66 # 历史记录根目录
67 self.history_root_dir = os.path.join(
68 os.path.dirname(os.path.dirname(os.path.dirname(__file__))),
69 "history"
70 )
71 os.makedirs(self.history_root_dir, exist_ok=True)
72
73 # 当前任务的输出目录(每个任务一个子文件夹)
74 self.current_task_dir = None
75
76 # 存储任务状态(用于重试)
77 self._task_states: Dict[str, Dict] = {}
78
79 logger.info(f"ImageService 初始化完成: provider={provider_name}, type={provider_type}")
80
81 @staticmethod

Callers

nothing calls this directly

Calls 8

_load_prompt_templateMethod · 0.95
ImageRateLimiterClass · 0.90
get_history_serviceFunction · 0.90
getMethod · 0.80
createMethod · 0.80
from_configMethod · 0.80

Tested by

no test coverage detected