OnyxlMunkey's picture
feat: Add multi-provider support for agent generation with model validation, new templates, and security checks.
84cf689
from enum import Enum
from pydantic import BaseModel, validator
from typing import Optional
class ProviderEnum(str, Enum):
ANTHROPIC = "anthropic"
HUGGINGFACE = "huggingface"
class GenerateRequest(BaseModel):
name: str
prompt: str
task: str
provider: ProviderEnum = ProviderEnum.ANTHROPIC
model: str
stream: bool = False
@validator('model')
def validate_model(cls, v, values):
provider = values.get('provider')
if provider == ProviderEnum.ANTHROPIC:
allowed = [
"claude-3-5-sonnet-20241022",
"claude-3-opus-20240229",
"claude-3-haiku-20240307",
"claude-3-5-haiku-20241022"
]
if v not in allowed:
raise ValueError(f"Model {v} not supported for Anthropic")
elif provider == ProviderEnum.HUGGINGFACE:
allowed = [
"meta-llama/Meta-Llama-3-8B-Instruct",
"mistralai/Mistral-7B-Instruct-v0.3"
]
if v not in allowed:
raise ValueError(f"Model {v} not supported for Hugging Face")
return v