Files
railseek6/test_ocr_search.py

73 lines
2.6 KiB
Python

import requests
import json
import time
def test_ocr_search():
# Test login and search functionality
base_url = 'http://localhost:3015'
login_data = {'username': 'jleu3482', 'password': 'jleu1212'}
print("Testing LightRAG OCR search functionality...")
try:
# Login
response = requests.post(f"{base_url}/login", data=login_data)
print(f'Login response: {response.status_code}')
if response.status_code == 200:
print('Login successful')
# Test search queries on OCR content
search_queries = [
"minimum safe distance",
"safety precautions",
"high voltage",
"traction voltage",
"electrical installation"
]
for query in search_queries:
print(f'\nTesting search query: "{query}"')
# Perform search
search_data = {
'query': query,
'top_k': 5,
'rerank': False
}
search_response = requests.post(f"{base_url}/search", json=search_data)
print(f'Search response: {search_response.status_code}')
if search_response.status_code == 200:
results = search_response.json()
if 'results' in results:
print(f'Found {len(results["results"])} results:')
for i, result in enumerate(results['results']):
print(f' {i+1}. Score: {result.get("score", "N/A")}')
print(f' Content: {result.get("content", "N/A")[:200]}...')
print(f' Source: {result.get("source", "N/A")}')
print()
else:
print(f'No results found for query: {query}')
else:
print(f'Search failed: {search_response.text}')
time.sleep(1) # Small delay between queries
return True
else:
print(f'Login failed: {response.text}')
return False
except Exception as e:
print(f'Error during search test: {e}')
return False
if __name__ == '__main__':
success = test_ocr_search()
if success:
print('\n✅ OCR search test PASSED!')
else:
print('\n❌ OCR search test FAILED!')