qdrant.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. batch_size: Optional[int] = 10,
  18. **extra_params: dict[str, any],
  19. ):
  20. """
  21. Initializes a configuration class instance for a qdrant client.
  22. :param collection_name: Default name for the collection, defaults to None
  23. :type collection_name: Optional[str], optional
  24. :param dir: Path to the database directory, where the database is stored, defaults to None
  25. :type dir: Optional[str], optional
  26. :param hnsw_config: Params for HNSW index
  27. :type hnsw_config: Optional[dict[str, any]], defaults to None
  28. :param quantization_config: Params for quantization, if None - quantization will be disabled
  29. :type quantization_config: Optional[dict[str, any]], defaults to None
  30. :param on_disk: If true - point`s payload will not be stored in memory.
  31. It will be read from the disk every time it is requested.
  32. This setting saves RAM by (slightly) increasing the response time.
  33. Note: those payload values that are involved in filtering and are indexed - remain in RAM.
  34. :type on_disk: bool, optional, defaults to None
  35. :param batch_size: Number of items to insert in one batch, defaults to 10
  36. :type batch_size: Optional[int], optional
  37. """
  38. self.hnsw_config = hnsw_config
  39. self.quantization_config = quantization_config
  40. self.on_disk = on_disk
  41. self.batch_size = batch_size
  42. self.extra_params = extra_params
  43. super().__init__(collection_name=collection_name, dir=dir)