File size: 2,042 Bytes
fe617ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6ad997d
fe617ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
59
60
61
62

import sys
import os
import platform
import time
from pathlib import Path

# Add project root to path
sys.path.append(str(Path(__file__).parent.parent))

def print_status(component, status, message=""):
    color = "\033[92m" if status == "OK" else "\033[91m"
    reset = "\033[0m"
    print(f"[{component.ljust(15)}] {color}{status}{reset} {message}")

def check_system():
    print("\n=== System Info ===")
    print(f"Python: {sys.version.split()[0]}")
    print(f"OS: {platform.system()} {platform.release()}")
    print_status("System", "OK")

def check_torch():
    print("\n=== PyTorch Check ===")
    try:
        import torch
        print(f"Torch Version: {torch.__version__}")
        if torch.backends.mps.is_available():
            print_status("Accelerator", "OK", "MPS (Metal Performance Shaders) is available! 🚀")
        elif torch.cuda.is_available():
            print_status("Accelerator", "OK", f"CUDA is available! ({torch.cuda.get_device_name(0)})")
        else:
            print_status("Accelerator", "WARN", "Running on CPU (Slow but safe)")
    except ImportError:
        print_status("PyTorch", "FAIL", "Not installed")

def check_vector_db():
    print("\n=== Vector Database Check ===")
    try:
        from src.core.rag.vector_db import VectorDB
        
        start = time.perf_counter()
        print("Loading VectorDB (this loads embeddings)...")
        vdb = VectorDB()
        print(f"Load Time: {time.perf_counter() - start:.2f}s")
        
        # Test Query
        test_q = "fantasy"
        results = vdb.search(test_q, k=1)
        if results:
            print_status("ChromaDB", "OK", f"Query '{test_q}' returned: {results[0].page_content[:50]}...")
        else:
            print_status("ChromaDB", "WARN", "Database loaded but returned empty results")
            
    except Exception as e:
        print_status("ChromaDB", "FAIL", str(e))
        print("Tip: Ensure 'data/chroma_db' exists.")

if __name__ == "__main__":
    check_system()
    check_torch()
    check_vector_db()