fix: expose Qdrant https option (#5380)
This commit is contained in:
@@ -76,6 +76,7 @@ Let's see the available parameters for the `qdrant` config:
|
|||||||
| `path` | Path for the qdrant database | `/tmp/qdrant` |
|
| `path` | Path for the qdrant database | `/tmp/qdrant` |
|
||||||
| `url` | Full URL for the qdrant server | `None` |
|
| `url` | Full URL for the qdrant server | `None` |
|
||||||
| `api_key` | API key for the qdrant server | `None` |
|
| `api_key` | API key for the qdrant server | `None` |
|
||||||
|
| `https` | Whether to force HTTPS on or off. `None` lets the client decide; set `False` for plain HTTP Qdrant with API key authentication. | `None` |
|
||||||
| `on_disk` | For enabling persistent storage | `False` |
|
| `on_disk` | For enabling persistent storage | `False` |
|
||||||
</Tab>
|
</Tab>
|
||||||
<Tab title="TypeScript">
|
<Tab title="TypeScript">
|
||||||
@@ -90,4 +91,4 @@ Let's see the available parameters for the `qdrant` config:
|
|||||||
| `apiKey` | API key for the Qdrant server | `None` |
|
| `apiKey` | API key for the Qdrant server | `None` |
|
||||||
| `onDisk` | For enabling persistent storage | `False` |
|
| `onDisk` | For enabling persistent storage | `False` |
|
||||||
</Tab>
|
</Tab>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ class QdrantConfig(BaseModel):
|
|||||||
path: Optional[str] = Field("/tmp/qdrant", description="Path for local Qdrant database")
|
path: Optional[str] = Field("/tmp/qdrant", description="Path for local Qdrant database")
|
||||||
url: Optional[str] = Field(None, description="Full URL for Qdrant server")
|
url: Optional[str] = Field(None, description="Full URL for Qdrant server")
|
||||||
api_key: Optional[str] = Field(None, description="API key for Qdrant server")
|
api_key: Optional[str] = Field(None, description="API key for Qdrant server")
|
||||||
|
https: Optional[bool] = Field(
|
||||||
|
None,
|
||||||
|
description="Whether to force HTTPS on or off. Explicit schemes in url take precedence.",
|
||||||
|
)
|
||||||
on_disk: Optional[bool] = Field(False,description="Enables persistent storage. Vectors are kept on disk (True) or in memory (False). Does not delete the local database path.")
|
on_disk: Optional[bool] = Field(False,description="Enables persistent storage. Vectors are kept on disk (True) or in memory (False). Does not delete the local database path.")
|
||||||
|
|
||||||
@model_validator(mode="before")
|
@model_validator(mode="before")
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ class Qdrant(VectorStoreBase):
|
|||||||
path: str = None,
|
path: str = None,
|
||||||
url: str = None,
|
url: str = None,
|
||||||
api_key: str = None,
|
api_key: str = None,
|
||||||
|
https: bool | None = None,
|
||||||
on_disk: bool = False,
|
on_disk: bool = False,
|
||||||
):
|
):
|
||||||
"""
|
"""
|
||||||
@@ -51,6 +52,8 @@ class Qdrant(VectorStoreBase):
|
|||||||
path (str, optional): Path for local Qdrant database. Defaults to None.
|
path (str, optional): Path for local Qdrant database. Defaults to None.
|
||||||
url (str, optional): Full URL for Qdrant server. Defaults to None.
|
url (str, optional): Full URL for Qdrant server. Defaults to None.
|
||||||
api_key (str, optional): API key for Qdrant server. Defaults to None.
|
api_key (str, optional): API key for Qdrant server. Defaults to None.
|
||||||
|
https (bool, optional): Whether to force HTTPS on or off. Explicit schemes in url take precedence.
|
||||||
|
Defaults to None.
|
||||||
on_disk (bool, optional): Enables persistent storage. Vectors are stored on disk (True) or in memory (False).
|
on_disk (bool, optional): Enables persistent storage. Vectors are stored on disk (True) or in memory (False).
|
||||||
Does not delete the local database path. Defaults to False.
|
Does not delete the local database path. Defaults to False.
|
||||||
"""
|
"""
|
||||||
@@ -66,6 +69,8 @@ class Qdrant(VectorStoreBase):
|
|||||||
if host and port:
|
if host and port:
|
||||||
params["host"] = host
|
params["host"] = host
|
||||||
params["port"] = port
|
params["port"] = port
|
||||||
|
if https is not None:
|
||||||
|
params["https"] = https
|
||||||
|
|
||||||
if not params:
|
if not params:
|
||||||
params["path"] = path
|
params["path"] = path
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
|
from mem0.configs.vector_stores.qdrant import QdrantConfig
|
||||||
|
from mem0.vector_stores import qdrant as qdrant_module
|
||||||
|
|
||||||
|
|
||||||
|
def test_qdrant_config_accepts_explicit_https_false():
|
||||||
|
config = QdrantConfig(
|
||||||
|
host="127.0.0.1",
|
||||||
|
port=6333,
|
||||||
|
api_key="test-key",
|
||||||
|
https=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert config.https is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_qdrant_passes_explicit_https_to_client(monkeypatch):
|
||||||
|
client_cls = MagicMock()
|
||||||
|
monkeypatch.setattr(qdrant_module, "QdrantClient", client_cls)
|
||||||
|
monkeypatch.setattr(qdrant_module.Qdrant, "create_col", lambda *args, **kwargs: None)
|
||||||
|
|
||||||
|
qdrant_module.Qdrant(
|
||||||
|
collection_name="memories",
|
||||||
|
embedding_model_dims=1536,
|
||||||
|
host="127.0.0.1",
|
||||||
|
port=6333,
|
||||||
|
api_key="test-key",
|
||||||
|
https=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
client_cls.assert_called_once_with(
|
||||||
|
api_key="test-key",
|
||||||
|
host="127.0.0.1",
|
||||||
|
port=6333,
|
||||||
|
https=False,
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user