"""
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()