"""
LLM 模块

提供统一的大模型客户端接口：
- BaseModelClient: 抽象基类
- OpenAIClient: OpenAI 兼容 API 客户端（标准基类）
- AnthropicClient: Anthropic API 客户端（标准基类）
- MinimaxClient: MiniMax API 客户端（继承 AnthropicClient）
- ModelClientFactory: 工厂类
"""

from .base import (
    BaseModelClient,
    Message,
    MessageRole,
    SYSTEM_ROLES,
    ToolCall,
    ToolResult,
    ToolDefinition,
    StreamChunk,
    CompletionResponse,
    TokenUsage,
)
from .openai_client import OpenAIClient
from .anthropic_client import AnthropicClient
from .minimax_client import MinimaxClient
from .google_client import GoogleClient
from .factory import ModelClientFactory
from .models import (
    ModelInfo,
    MODELS,
    DEFAULT_CONTEXT_WINDOW,
    DEFAULT_PROVIDERS,
    get_model_info,
    get_context_window,
    get_models_by_provider,
    get_all_providers,
    get_model_list,
    get_default_models,
)

__all__ = [
    # 基类和数据结构
    "BaseModelClient",
    "Message",
    "MessageRole",
    "SYSTEM_ROLES",
    "ToolCall",
    "ToolResult",
    "ToolDefinition",
    "StreamChunk",
    "CompletionResponse",
    "TokenUsage",
    # 客户端实现
    "OpenAIClient",
    "AnthropicClient",
    "MinimaxClient",
    "GoogleClient",
    # 工厂
    "ModelClientFactory",
    # 模型定义
    "ModelInfo",
    "MODELS",
    "DEFAULT_CONTEXT_WINDOW",
    "DEFAULT_PROVIDERS",
    "get_model_info",
    "get_context_window",
    "get_models_by_provider",
    "get_all_providers",
    "get_model_list",
    "get_default_models",
]
