"""LLM 클라이언트 추상 베이스 클래스."""

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


class BaseLLMClient(ABC):
    @abstractmethod
    def generate_structured(
        self,
        system_prompt: str,
        user_prompt: str,
        response_schema: Dict[str, Any],
        schema_name: str = "response",
        max_tokens: int = 16000,
    ) -> dict:
        """Call LLM and return structured JSON response."""
        ...
