mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-09 08:08:32 +00:00
* Added Qdrant provider support with factory, config, and protocols * Improved default embeddings and type definitions * Fixed ChromaDB factory embedding assignment
27 lines
815 B
Python
27 lines
815 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", "qdrant", "__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}]'`."
|
|
)
|