Spaces:
Sleeping
Sleeping
| """ | |
| Test script for the updated VectorStore implementation. | |
| """ | |
| import os | |
| import sys | |
| import logging | |
| # Set up logging | |
| logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') | |
| def test_vector_store(): | |
| """Test the VectorStore implementation.""" | |
| print("Testing VectorStore...") | |
| try: | |
| # Import the vector store | |
| from data.vector_store import VectorStore, DocumentChunk | |
| # Create a test instance | |
| print("Creating VectorStore instance...") | |
| vector_store = VectorStore(collection_name="test_collection", timeout=30) | |
| # Test connection | |
| print("Testing connection...") | |
| conn_result = vector_store.check_connection() | |
| print(f"Connection test result: {conn_result}") | |
| if not conn_result: | |
| print("Warning: Could not connect to Qdrant. Please ensure Qdrant is running.") | |
| return False | |
| # Test health check | |
| print("Performing health check...") | |
| health_result = vector_store.health_check() | |
| print(f"Health check result: {health_result}") | |
| # Test adding a document | |
| print("Testing document storage...") | |
| test_chunk = DocumentChunk( | |
| chunk_id="test_chunk_1", | |
| content="This is a test document for the vector store.", | |
| doc_path="test/path.txt", | |
| embedding=[0.1] * 384 # 384-dimensional vector | |
| ) | |
| store_result = vector_store.store_document_chunk(test_chunk) | |
| print(f"Document storage result: {store_result}") | |
| # Test search | |
| print("Testing search functionality...") | |
| search_results = vector_store.search([0.1] * 384, limit=5) | |
| print(f"Search results count: {len(search_results)}") | |
| # Test document count | |
| print("Testing document count...") | |
| count = vector_store.count_documents() | |
| print(f"Document count: {count}") | |
| # Clean up test collection | |
| print("Cleaning up test collection...") | |
| delete_result = vector_store.delete_collection() | |
| print(f"Delete collection result: {delete_result}") | |
| print("All VectorStore tests passed!") | |
| return True | |
| except Exception as e: | |
| print(f"Error in VectorStore test: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| return False | |
| async def test_rag_service(): | |
| """Test the RAGService implementation.""" | |
| print("\nTesting RAGService...") | |
| try: | |
| # Import the rag service | |
| from services.rag import RAGService | |
| # Create a test instance | |
| print("Creating RAGService instance...") | |
| rag_service = RAGService(vector_store_collection="test_rag_collection", vector_store_timeout=30) | |
| # Test health check | |
| print("Testing health check...") | |
| health_result = await rag_service.check_health() | |
| print(f"Health check result: {health_result}") | |
| # Test query with empty input (should handle gracefully) | |
| print("Testing query with empty input...") | |
| query_response = await rag_service.query("") | |
| print(f"Empty query response: {query_response}") | |
| # Clean up test collection | |
| if rag_service.vector_store: | |
| print("Cleaning up RAG test collection...") | |
| delete_result = rag_service.vector_store.delete_collection() | |
| print(f"Delete RAG collection result: {delete_result}") | |
| print("All RAGService tests passed!") | |
| return True | |
| except Exception as e: | |
| print(f"Error in RAGService test: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| return False | |
| import asyncio | |
| async def main(): | |
| """Run all tests.""" | |
| print("Starting tests for updated Qdrant implementation...") | |
| vector_store_success = test_vector_store() | |
| rag_service_success = await test_rag_service() | |
| if vector_store_success and rag_service_success: | |
| print("\nAll tests passed! The updated Qdrant implementation is working correctly.") | |
| return True | |
| else: | |
| print("\nSome tests failed. Please check the output above for details.") | |
| return False | |
| if __name__ == "__main__": | |
| success = asyncio.run(main()) | |
| sys.exit(0 if success else 1) |