"""AI Provider 基类""" from abc import ABC, abstractmethod from typing import Any, AsyncGenerator, Dict, List, Optional class BaseAIProvider(ABC): """AI 提供商抽象基类""" @abstractmethod async def generate( self, prompt: str, model: str, temperature: float, max_tokens: int, system_prompt: Optional[str] = None, tools: Optional[List[Dict]] = None, tool_choice: Optional[str] = None, ) -> Dict[str, Any]: """生成文本""" pass @abstractmethod async def generate_stream( self, prompt: str, model: str, temperature: float, max_tokens: int, system_prompt: Optional[str] = None, tools: Optional[List[Dict]] = None, tool_choice: Optional[str] = None, user_id: Optional[str] = None, ) -> AsyncGenerator[str, None]: """流式生成""" pass