Spaces:
Sleeping
Sleeping
File size: 5,777 Bytes
f884e6e | 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | #!/usr/bin/env python3
"""
Test script to validate complete HF deployment functionality
Tests file ingestion, RAG pipeline, and query responses
"""
import os
import sys
sys.path.append("src")
def test_file_ingestion():
"""Test that synthetic_policies files are being processed"""
print("π Testing file ingestion...")
# Check if synthetic_policies directory exists
corpus_dir = "synthetic_policies"
if not os.path.exists(corpus_dir):
print(f"β Corpus directory not found: {corpus_dir}")
return False
# Count files in directory
policy_files = []
for file in os.listdir(corpus_dir):
if file.endswith((".md", ".txt")):
policy_files.append(file)
print(f"β
Found {len(policy_files)} policy files in {corpus_dir}")
return len(policy_files) > 0
def test_rag_pipeline_initialization():
"""Test RAG pipeline initialization with ingestion"""
print("π Testing RAG pipeline initialization...")
try:
# Set environment to enable HF services
os.environ["OPENROUTER_API_KEY"] = "test"
from routes.main_routes import get_rag_pipeline
pipeline = get_rag_pipeline()
if pipeline is None:
print("β RAG pipeline not initialized")
return False
print("β
RAG pipeline initialized")
# Check search service
if not hasattr(pipeline, "search_service") or pipeline.search_service is None:
print("β Search service not available")
return False
print("β
Search service available")
# Check vector store
if hasattr(pipeline.search_service, "vector_db"):
try:
count = pipeline.search_service.vector_db.get_count()
print(f"β
Vector store has {count} embeddings")
return count > 0
except Exception as e:
print(f"β οΈ Could not get embedding count: {e}")
return False
else:
print("β Vector database not accessible")
return False
except Exception as e:
print(f"β RAG pipeline initialization failed: {e}")
return False
def test_query_response():
"""Test that queries return proper responses"""
print("π Testing query response functionality...")
try:
# Set environment to enable HF services
os.environ["OPENROUTER_API_KEY"] = "test"
from routes.main_routes import get_rag_pipeline
pipeline = get_rag_pipeline()
if pipeline is None or pipeline.search_service is None:
print("β RAG pipeline not properly initialized for testing")
return False
# Test search functionality
try:
search_results = pipeline.search_service.search("vacation policy", top_k=3)
if search_results and len(search_results) > 0:
print(f"β
Search returned {len(search_results)} results for 'vacation policy'")
return True
else:
print("β οΈ Search returned no results - may be expected with test data")
return True # This may be expected in some environments
except Exception as e:
print(f"β Search query failed: {e}")
return False
except Exception as e:
print(f"β Query response test failed: {e}")
return False
def test_health_check():
"""Test RAG pipeline health check"""
print("π Testing RAG pipeline health check...")
try:
# Set environment to enable HF services
os.environ["OPENROUTER_API_KEY"] = "test"
from routes.main_routes import get_rag_pipeline
pipeline = get_rag_pipeline()
if pipeline is None:
print("β RAG pipeline not initialized for health check")
return False
health = pipeline.health_check()
if health and isinstance(health, dict):
status = health.get("pipeline", "unknown")
print(f"β
Health check completed - Pipeline status: {status}")
return True
else:
print("β Health check returned invalid response")
return False
except Exception as e:
print(f"β Health check failed: {e}")
return False
def main():
"""Run all HF deployment validation tests"""
print("π§ͺ Testing Complete HF Deployment Functionality")
print("=" * 60)
tests = [
("File Ingestion", test_file_ingestion),
("RAG Pipeline Initialization", test_rag_pipeline_initialization),
("Query Response", test_query_response),
("Health Check", test_health_check),
]
passed = 0
for test_name, test_func in tests:
print(f"\nπ§ Running {test_name} test...")
try:
if test_func():
print(f"β
{test_name}: PASSED")
passed += 1
else:
print(f"β {test_name}: FAILED")
except Exception as e:
print(f"π₯ {test_name}: ERROR - {e}")
print()
print("=" * 60)
print(f"π Results: {passed}/{len(tests)} tests passed")
if passed == len(tests):
print("π All tests passed! HF deployment should work correctly.")
print("π The app should now:")
print(" β’ Process synthetic_policies files during startup")
print(" β’ Create embeddings from policy documents")
print(" β’ Initialize RAG pipeline with populated vector store")
print(" β’ Return proper responses to policy questions")
return 0
else:
print("β οΈ Some tests failed. Check the issues above.")
return 1
if __name__ == "__main__":
sys.exit(main())
|