feat: Add validation and improve documentation for embedder_config

- Add validation for embedder_config in Agent class
- Add test cases for invalid embedder configurations
- Improve docstrings with examples and error cases

Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
Devin AI
2025-02-19 15:28:34 +00:00
parent 59977a5f7c
commit 566ea3ced8
3 changed files with 53 additions and 3 deletions

View File

@@ -117,9 +117,29 @@ class Agent(BaseAgent):
)
embedder_config: Optional[Dict[str, Any]] = Field(
default=None,
description="Embedder configuration for the agent.",
description="Embedder configuration for the agent. Must include 'provider' and relevant configuration parameters.",
)
@validator("embedder_config")
def validate_embedder_config(cls, v):
"""Validate embedder configuration.
Args:
v: The embedder configuration to validate.
Returns:
The validated embedder configuration.
Raises:
ValueError: If the embedder configuration is invalid.
"""
if v is not None:
if not isinstance(v, dict) or "provider" not in v:
raise ValueError("embedder_config must contain 'provider' key")
if "config" not in v:
raise ValueError("embedder_config must contain 'config' key")
return v
@model_validator(mode="after")
def post_init_setup(self):
self._set_knowledge()