mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-11 00:58:30 +00:00
### RAG Config System * Added ChromaDB client creation via config with sensible defaults * Introduced optional imports and shared RAG config utilities/schema * Enabled embedding function support with ChromaDB provider integration * Refactored configs for immutability and stronger type safety * Removed unused code and expanded test coverage
25 lines
791 B
Python
25 lines
791 B
Python
"""Base classes for missing provider configurations."""
|
|
|
|
from typing import Literal
|
|
from dataclasses import field
|
|
|
|
from pydantic import ConfigDict
|
|
from pydantic.dataclasses import dataclass as pyd_dataclass
|
|
|
|
|
|
@pyd_dataclass(config=ConfigDict(extra="forbid"))
|
|
class _MissingProvider:
|
|
"""Base class for missing provider configurations.
|
|
|
|
Raises RuntimeError when instantiated to indicate missing dependencies.
|
|
"""
|
|
|
|
provider: Literal["chromadb", "__missing__"] = field(default="__missing__")
|
|
|
|
def __post_init__(self) -> None:
|
|
"""Raises error indicating the provider is not installed."""
|
|
raise RuntimeError(
|
|
f"provider '{self.provider}' requested but not installed. "
|
|
f"Install the extra: `uv add crewai'[{self.provider}]'`."
|
|
)
|