from app.services.ai.base import AIProvider def get_provider(ai_config: dict) -> AIProvider: """ Factory: return an AIProvider instance based on the 'provider' key in the AI config section. ai_config is the 'ai' section of doc_service_config.json, loaded fresh per processing job. """ provider_name = ai_config.get("provider", "anthropic") provider_cfg = ai_config.get(provider_name, {}) match provider_name: case "anthropic": from app.services.ai.anthropic_provider import AnthropicProvider return AnthropicProvider(provider_cfg) case "ollama" | "lmstudio": from app.services.ai.openai_compat import OpenAICompatProvider return OpenAICompatProvider(provider_cfg) case _: raise ValueError(f"Unknown AI provider: {provider_name!r}") __all__ = ["AIProvider", "get_provider"]