Make qdrant the default vector db (#1285)

* Make qdrant the default vector db

---------

Co-authored-by: Pablo Orgaz <pabloogc@gmail.com>
Co-authored-by: lopagela <lpglm@orange.fr>
This commit is contained in:
Iván Martínez
2023-11-20 16:19:22 +01:00
committed by GitHub
parent f1cbff0fb7
commit 510caa576b
9 changed files with 122 additions and 91 deletions

18
tests/fixtures/auto_close_qdrant.py vendored Normal file
View File

@@ -0,0 +1,18 @@
import pytest
from private_gpt.components.vector_store.vector_store_component import (
VectorStoreComponent,
)
from tests.fixtures.mock_injector import MockInjector
@pytest.fixture(autouse=True)
def _auto_close_vector_store_client(injector: MockInjector) -> None:
"""Auto close VectorStore client after each test.
VectorStore client (qdrant/chromadb) opens a connection the
Database that causes issues when running tests too fast,
so close explicitly after each test.
"""
yield
injector.get(VectorStoreComponent).close()

View File

@@ -1,27 +0,0 @@
from unittest.mock import PropertyMock, patch
from llama_index import Document
from private_gpt.server.ingest.ingest_service import IngestService
from tests.fixtures.mock_injector import MockInjector
def test_save_many_nodes(injector: MockInjector) -> None:
"""This is a specific test for a local Chromadb Vector Database setup.
Extend it when we add support for other vector databases in VectorStoreComponent.
"""
with patch(
"chromadb.api.segment.SegmentAPI.max_batch_size", new_callable=PropertyMock
) as max_batch_size:
# Make max batch size of Chromadb very small
max_batch_size.return_value = 10
ingest_service = injector.get(IngestService)
documents = []
for _i in range(100):
documents.append(Document(text="This is a sentence."))
ingested_docs = ingest_service._save_docs(documents)
assert len(ingested_docs) == len(documents)