Add providers module (base, factory)

This commit is contained in:
2026-02-04 12:31:33 +00:00
parent 8a65a9e724
commit b86cf8598c

View File

@@ -0,0 +1,26 @@
from typing import Optional
from .openai import OpenAIProvider
from .anthropic import AnthropicProvider
from .ollama import OllamaProvider
from ..core.exceptions import ProviderError
class ProviderFactory:
@staticmethod
def create(
provider_name: str,
model: Optional[str] = None,
temperature: float = 0.7,
api_key: Optional[str] = None,
**kwargs,
):
provider_name = provider_name.lower()
if provider_name in ("openai", "gpt-4", "gpt-3.5"):
return OpenAIProvider(api_key=api_key, model=model or "gpt-4", temperature=temperature)
elif provider_name in ("anthropic", "claude"):
return AnthropicProvider(api_key=api_key, model=model or "claude-3-sonnet-20240229", temperature=temperature)
elif provider_name in ("ollama", "local"):
return OllamaProvider(model=model or "llama2", temperature=temperature, **kwargs)
else:
raise ProviderError(f"Unknown provider: {provider_name}")