test_pgvecto_rs.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  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 TestPgvectoRSVector(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 delete_by_document_id(self):
  26. self.vector.delete_by_document_id(document_id=self.example_doc_id)
  27. def get_ids_by_metadata_field(self):
  28. ids = self.vector.get_ids_by_metadata_field(key='document_id', value=self.example_doc_id)
  29. assert len(ids) == 1
  30. def test_pgvecot_rs(setup_mock_redis):
  31. TestPgvectoRSVector().run_all_tests()