test_pgvecto_rs.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from core.rag.datasource.vdb.pgvecto_rs.pgvecto_rs import PGVectoRS, PgvectoRSConfig
  2. from tests.integration_tests.vdb.test_vector_store import (
  3. AbstractVectorTest,
  4. get_example_text,
  5. setup_mock_redis,
  6. )
  7. class PGVectoRSVectorTest(AbstractVectorTest):
  8. def __init__(self):
  9. super().__init__()
  10. self.vector = PGVectoRS(
  11. collection_name=self.collection_name.lower(),
  12. config=PgvectoRSConfig(
  13. host="localhost",
  14. port=5431,
  15. user="postgres",
  16. password="difyai123456",
  17. database="dify",
  18. ),
  19. dim=128,
  20. )
  21. def search_by_full_text(self):
  22. # pgvecto rs only support english text search, So it’s not open for now
  23. hits_by_full_text = self.vector.search_by_full_text(query=get_example_text())
  24. assert len(hits_by_full_text) == 0
  25. def get_ids_by_metadata_field(self):
  26. ids = self.vector.get_ids_by_metadata_field(key="document_id", value=self.example_doc_id)
  27. assert len(ids) == 1
  28. def test_pgvecto_rs(setup_mock_redis):
  29. PGVectoRSVectorTest().run_all_tests()