|
|
|
""" |
|
Simple test script to verify vectorization functionality. |
|
Run this to check if sentence-transformers is working correctly. |
|
""" |
|
|
|
import os |
|
import sys |
|
|
|
def test_vectorization(): |
|
"""Test the vectorization functionality.""" |
|
print("π§ͺ Testing vectorization functionality...") |
|
|
|
|
|
print("\n1. Testing imports...") |
|
try: |
|
import numpy as np |
|
print("β
numpy imported successfully") |
|
except ImportError as e: |
|
print(f"β numpy import failed: {e}") |
|
return False |
|
|
|
try: |
|
from sentence_transformers import SentenceTransformer |
|
print("β
sentence-transformers imported successfully") |
|
except ImportError as e: |
|
print(f"β sentence-transformers import failed: {e}") |
|
print("Install with: pip install sentence-transformers") |
|
return False |
|
|
|
|
|
print("\n2. Testing model loading...") |
|
try: |
|
model = SentenceTransformer('all-MiniLM-L6-v2') |
|
print("β
SentenceTransformer model loaded successfully") |
|
except Exception as e: |
|
print(f"β Model loading failed: {e}") |
|
return False |
|
|
|
|
|
print("\n3. Testing embedding creation...") |
|
try: |
|
test_texts = [ |
|
"This is a Python function for machine learning", |
|
"Here's a repository configuration file", |
|
"Installation instructions for the project" |
|
] |
|
embeddings = model.encode(test_texts) |
|
print(f"β
Created embeddings with shape: {embeddings.shape}") |
|
except Exception as e: |
|
print(f"β Embedding creation failed: {e}") |
|
return False |
|
|
|
|
|
print("\n4. Testing similarity calculation...") |
|
try: |
|
query_embedding = model.encode(["Python code example"]) |
|
similarities = [] |
|
for embedding in embeddings: |
|
similarity = np.dot(query_embedding[0], embedding) / ( |
|
np.linalg.norm(query_embedding[0]) * np.linalg.norm(embedding) |
|
) |
|
similarities.append(similarity) |
|
print(f"β
Similarity scores: {[f'{s:.3f}' for s in similarities]}") |
|
except Exception as e: |
|
print(f"β Similarity calculation failed: {e}") |
|
return False |
|
|
|
|
|
print("\n5. Testing repo_explorer integration...") |
|
try: |
|
from repo_explorer import SimpleVectorStore, vectorize_repository_content |
|
|
|
|
|
test_repo_content = """# Test Repository |
|
import numpy as np |
|
import pandas as pd |
|
|
|
def main(): |
|
print("Hello, world!") |
|
|
|
class DataProcessor: |
|
def __init__(self): |
|
self.data = [] |
|
|
|
def process(self, data): |
|
return data.upper() |
|
|
|
if __name__ == "__main__": |
|
main() |
|
""" |
|
|
|
|
|
success = vectorize_repository_content(test_repo_content, "test/repo") |
|
if success: |
|
print("β
Repository vectorization successful") |
|
|
|
|
|
from repo_explorer import vector_store |
|
stats = vector_store.get_stats() |
|
print(f"β
Vector store stats: {stats}") |
|
|
|
|
|
results = vector_store.search("Python function", top_k=2) |
|
if results: |
|
print(f"β
Vector search returned {len(results)} results") |
|
for i, (chunk, similarity, metadata) in enumerate(results): |
|
print(f" Result {i+1}: similarity={similarity:.3f}") |
|
else: |
|
print("β οΈ Vector search returned no results") |
|
else: |
|
print("β Repository vectorization failed") |
|
return False |
|
|
|
except Exception as e: |
|
print(f"β repo_explorer integration test failed: {e}") |
|
return False |
|
|
|
print("\nπ All tests passed! Vectorization is working correctly.") |
|
return True |
|
|
|
if __name__ == "__main__": |
|
print("Repository Explorer Vectorization Test") |
|
print("=" * 45) |
|
|
|
success = test_vectorization() |
|
|
|
if success: |
|
print("\nβ
Ready to use vectorization in repo explorer!") |
|
print(" The sentence-transformers model will be downloaded on first use.") |
|
else: |
|
print("\nβ Vectorization setup incomplete.") |
|
print(" Make sure to install: pip install sentence-transformers numpy") |
|
|
|
sys.exit(0 if success else 1) |