
    #^j                     >    S r SSKJrJr  SSKJrJr   " S S\5      rg)uo   
Base Provider Interface für LLM Calls.
Alle Provider (OpenAI, Anthropic) implementieren diese Schnittstelle.
    )DictAny)ABCabstractmethodc                   L    \ rS rSrSrS\4S jr\S\S\\\	4   4S j5       r
Srg	)
LLMProvider
   u(   Abstrakte Basisklasse für LLM Provider.modelc                 F    Xl         U R                  R                  U l        g )N)r
   	__class____name__name)selfr
   s     /app/llm/base.py__init__LLMProvider.__init__   s    
NN++	    promptreturnc                     [        5       e)u   
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
)NotImplementedError)r   r   s     r   extractLLMProvider.extract   s     "##r   )r
   r   N)r   
__module____qualname____firstlineno____doc__strr   r   r   r   r   __static_attributes__ r   r   r   r   
   s;    2,c , $c $d38n $ $r   r   N)r   typingr   r   abcr   r   r   r    r   r   <module>r#      s   
  #$# $r   