from typing import Optional from pydantic import Field, PositiveInt from pydantic_settings import BaseSettings class ChromaConfig(BaseSettings): """ Configuration settings for Chroma vector database """ CHROMA_HOST: Optional[str] = Field( description="Hostname or IP address of the Chroma server (e.g., 'localhost' or '192.168.1.100')", default=None, ) CHROMA_PORT: PositiveInt = Field( description="Port number on which the Chroma server is listening (default is 8000)", default=8000, ) CHROMA_TENANT: Optional[str] = Field( description="Tenant identifier for multi-tenancy support in Chroma", default=None, ) CHROMA_DATABASE: Optional[str] = Field( description="Name of the Chroma database to connect to", default=None, ) CHROMA_AUTH_PROVIDER: Optional[str] = Field( description="Authentication provider for Chroma (e.g., 'basic', 'token', or a custom provider)", default=None, ) CHROMA_AUTH_CREDENTIALS: Optional[str] = Field( description="Authentication credentials for Chroma (format depends on the auth provider)", default=None, )