Files
GuardDen/src/guardden/services/ai/factory.py
latte 537ae15998 fix: Remove ModerationResult and unused imports from AI services
Fix ImportError caused by removed ModerationResult class.

Changes:
- Remove ModerationResult from ai/__init__.py exports
- Remove unused ContentCategory enum and parse_categories function
- Remove unused imports from ai_moderation.py
- Clean up NullProvider to only have analyze_image method

Fixes bot startup crash.
2026-01-27 20:10:31 +01:00

58 lines
1.4 KiB
Python

"""Factory for creating AI providers."""
import logging
from typing import Literal
from guardden.services.ai.base import AIProvider
logger = logging.getLogger(__name__)
class NullProvider(AIProvider):
"""Null provider that does nothing (for when AI is disabled)."""
async def analyze_image(self, image_url, sensitivity=50):
from guardden.services.ai.base import ImageAnalysisResult
return ImageAnalysisResult()
async def close(self):
pass
def create_ai_provider(
provider: Literal["anthropic", "openai", "none"],
api_key: str | None = None,
) -> AIProvider:
"""
Create an AI provider instance.
Args:
provider: The provider type to create
api_key: API key for the provider
Returns:
AIProvider instance
Raises:
ValueError: If provider is unknown or API key is missing
"""
if provider == "none":
logger.info("AI moderation disabled")
return NullProvider()
if not api_key:
raise ValueError(f"API key required for {provider} provider")
if provider == "anthropic":
from guardden.services.ai.anthropic_provider import AnthropicProvider
return AnthropicProvider(api_key)
if provider == "openai":
from guardden.services.ai.openai_provider import OpenAIProvider
return OpenAIProvider(api_key)
raise ValueError(f"Unknown AI provider: {provider}")