qdrant.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from typing import Optional
  2. from embedchain.config.vectordb.base import BaseVectorDbConfig
  3. from embedchain.helpers.json_serializable import register_deserializable
  4. @register_deserializable
  5. class QdrantDBConfig(BaseVectorDbConfig):
  6. """
  7. Config to initialize a qdrant client.
  8. :param: url. qdrant url or list of nodes url to be used for connection
  9. """
  10. def __init__(
  11. self,
  12. collection_name: Optional[str] = None,
  13. dir: Optional[str] = None,
  14. hnsw_config: Optional[dict[str, any]] = None,
  15. quantization_config: Optional[dict[str, any]] = None,
  16. on_disk: Optional[bool] = None,
  17. **extra_params: dict[str, any],
  18. ):
  19. """
  20. Initializes a configuration class instance for a qdrant client.
  21. :param collection_name: Default name for the collection, defaults to None
  22. :type collection_name: Optional[str], optional
  23. :param dir: Path to the database directory, where the database is stored, defaults to None
  24. :type dir: Optional[str], optional
  25. :param hnsw_config: Params for HNSW index
  26. :type hnsw_config: Optional[dict[str, any]], defaults to None
  27. :param quantization_config: Params for quantization, if None - quantization will be disabled
  28. :type quantization_config: Optional[dict[str, any]], defaults to None
  29. :param on_disk: If true - point`s payload will not be stored in memory.
  30. It will be read from the disk every time it is requested.
  31. This setting saves RAM by (slightly) increasing the response time.
  32. Note: those payload values that are involved in filtering and are indexed - remain in RAM.
  33. :type on_disk: bool, optional, defaults to None
  34. """
  35. self.hnsw_config = hnsw_config
  36. self.quantization_config = quantization_config
  37. self.on_disk = on_disk
  38. self.extra_params = extra_params
  39. super().__init__(collection_name=collection_name, dir=dir)