Explorer
/opt/struktur/lead-engine/llm/base.py
← Zurück ↓ Download
"""
Base Provider Interface für LLM Calls.
Alle Provider (OpenAI, Anthropic) implementieren diese Schnittstelle.
"""

from typing import Dict, Any
from abc import ABC, abstractmethod


class LLMProvider(ABC):
    """Abstrakte Basisklasse für LLM Provider."""

    def __init__(self, model: str):
        self.model = model
        self.name = self.__class__.__name__

    @abstractmethod
    def extract(self, prompt: str) -> Dict[str, Any]:
        """
        Führt LLM-Call durch und gibt JSON-Objekt zurück.

        Args:
            prompt: Vollständiger Prompt für das Modell

        Returns:
            Dict mit extrahierten Feldern

        Raises:
            ValueError: Bei JSON-Parse-Fehler oder API-Fehler
        """
        raise NotImplementedError()