from functools import lru_cache from app.clients.llm.base import LLMClient from app.clients.llm.qwen_client import QwenClient from app.clients.storage.base import StorageClient from app.clients.storage.rustfs_client import RustFSClient from app.core.config import get_config @lru_cache(maxsize=1) def get_llm_client() -> LLMClient: cfg = get_config() dashscope_cfg = cfg["dashscope"] return QwenClient( api_key=dashscope_cfg["api_key"], base_url=dashscope_cfg.get("base_url", "https://dashscope.aliyuncs.com/compatible-mode/v1"), fine_tune_base_url=dashscope_cfg.get("fine_tune_base_url"), ) @lru_cache(maxsize=1) def get_storage_client() -> StorageClient: cfg = get_config() return RustFSClient( endpoint=cfg["storage"]["endpoint"], access_key=cfg["storage"]["access_key"], secret_key=cfg["storage"]["secret_key"], )