Add providers module (base, factory)
This commit is contained in:
26
src/promptforge/providers/factory.py
Normal file
26
src/promptforge/providers/factory.py
Normal 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}")
|
||||||
Reference in New Issue
Block a user