Thuong Nguyen
Initial deployment: FastAPI backend with data and Dockerfile
f3cb94f
"""
Test OG-RAG Retrieval
Verify HyperGraph indexing and test search functionality
"""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
from config import get_settings
from services.embedding_service import VietnameseEmbeddingService
from services.vector_db_service import SupabaseVectorDB
def test_hypergraph():
"""Test HyperGraph retrieval"""
print("\n" + "="*60)
print("Testing OG-RAG HyperGraph Retrieval")
print("="*60 + "\n")
# Initialize services
print("Initializing services...")
settings = get_settings()
embed_service = VietnameseEmbeddingService()
vector_db = SupabaseVectorDB(
url=settings.supabase_url,
key=settings.supabase_anon_key
)
# Check database
node_count = vector_db.count_nodes()
print(f"Total HyperNodes in database: {node_count}\n")
# Test queries
test_queries = [
"chữa ho",
"bổ thận tráng dương",
"đau khớp viêm khớp",
"trị sốt rét",
"lợi tiểu tiêu sưng"
]
for query in test_queries:
print(f"\n{'='*60}")
print(f"Query: '{query}'")
print(f"{'='*60}")
# Embed query
query_emb = embed_service.embed_text(query)
# Search by value (most relevant for use cases)
results = vector_db.search_by_value(
query_embedding=query_emb,
top_k=5,
threshold=0.5
)
print(f"\nTop {len(results)} results:\n")
for i, result in enumerate(results, 1):
print(f"{i}. [Sim: {result['similarity']:.3f}] {result['plant_name']}")
print(f" {result['key']}: {result['value'][:100]}...")
if result.get('section'):
print(f" Section: {result['section']}")
print()
# Test plant-specific query
print(f"\n{'='*60}")
print(f"Test: Get all info about 'Sâm cau'")
print(f"{'='*60}\n")
sam_cau_nodes = vector_db.get_plant_nodes("Sâm cau")
print(f"Found {len(sam_cau_nodes)} nodes for Sâm cau")
if sam_cau_nodes:
print("\nSample nodes:")
for i, node in enumerate(sam_cau_nodes[:5], 1):
print(f"{i}. {node['key']}: {node['value'][:60]}...")
print(f"\n{'='*60}")
print("✅ HyperGraph test complete!")
print(f"{'='*60}\n")
if __name__ == "__main__":
test_hypergraph()