from pydantic import BaseModel, Field, field_validator
class EmbedderConfig(BaseModel):
provider: str = Field(
description="Provider of the embedding model (e.g., 'ollama', 'openai')",
default="openai",
)
config: dict | None = Field(
description="Configuration for the specific embedding model", default={}
)
@field_validator("config")
def validate_config(cls, v, values):
provider = values.data.get("provider")
if provider in [
"openai",
"ollama",
"huggingface",
"azure_openai",
"gemini",
"vertexai",
"together",
"lmstudio",
"langchain",
"aws_bedrock",
"fastembed",
]:
return v
raise ValueError(f"Unsupported embedding provider: {provider}")