File size: 1,978 Bytes
3120cc0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import logging
from app import LegalTextSearchBot
import numpy as np

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

def test_embeddings():
    try:
        logger.info("Initializing LegalTextSearchBot...")
        bot = LegalTextSearchBot()
        
        # Test queries
        test_queries = [
            "What are the penalties for corruption?",
            "Explain criminal conspiracy",
            "What constitutes culpable homicide?"
        ]
        
        for query in test_queries:
            logger.info(f"\nTesting query: {query}")
            
            # Generate embedding
            logger.info("Generating embedding...")
            embedding = bot.get_embedding(query)
            
            # Verify embedding
            logger.info(f"Embedding dimension: {len(embedding)}")
            assert len(embedding) == 1024, f"Embedding dimension should be 1024, got {len(embedding)}"
            
            # Verify embedding values
            embedding_array = np.array(embedding)
            logger.info(f"Embedding stats - Mean: {embedding_array.mean():.4f}, Std: {embedding_array.std():.4f}")
            
            # Test search
            logger.info("Testing vector search...")
            results = bot._search_astra(query)
            
            if results:
                logger.info(f"Successfully retrieved {len(results)} results")
                # Print first result title
                logger.info(f"First result: {results[0].get('title', 'No title')}")
            else:
                logger.warning("No results found")
        
        return True
            
    except Exception as e:
        logger.error(f"Test failed: {str(e)}")
        return False

if __name__ == "__main__":
    print("\n=== Starting Embedding Tests ===\n")
    success = test_embeddings()
    if success:
        print("\n✅ All embedding tests passed!")
    else:
        print("\n❌ Embedding tests failed!")