73 lines
2.6 KiB
Python
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!') |