test_weaviate.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import uuid
  2. from core.rag.datasource.vdb.weaviate.weaviate_vector import WeaviateConfig, WeaviateVector
  3. from models.dataset import Dataset
  4. from tests.integration_tests.vdb.test_vector_store import (
  5. get_sample_document,
  6. get_sample_embedding,
  7. get_sample_query_vector,
  8. get_sample_text,
  9. setup_mock_redis,
  10. )
  11. def test_weaviate_vector(setup_mock_redis) -> None:
  12. attributes = ['doc_id', 'dataset_id', 'document_id', 'doc_hash']
  13. dataset_id = str(uuid.uuid4())
  14. vector = WeaviateVector(
  15. collection_name=Dataset.gen_collection_name_by_id(dataset_id),
  16. config=WeaviateConfig(
  17. endpoint='http://localhost:8080',
  18. api_key='WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih',
  19. ),
  20. attributes=attributes
  21. )
  22. # create vector
  23. vector.create(
  24. texts=[get_sample_document(dataset_id)],
  25. embeddings=[get_sample_embedding()],
  26. )
  27. # search by vector
  28. hits_by_vector = vector.search_by_vector(query_vector=get_sample_query_vector())
  29. assert len(hits_by_vector) >= 1
  30. # search by full text
  31. hits_by_full_text = vector.search_by_full_text(query=get_sample_text())
  32. assert len(hits_by_full_text) >= 1
  33. # delete vector
  34. vector.delete()