Files
railseek6/test_ocr_pdf_upload.py

70 lines
2.7 KiB
Python

import requests
import os
import json
# Test uploading the ocr.pdf file from project root
base_url = 'http://localhost:3015'
pdf_file = 'ocr.pdf'
# Check if ocr.pdf exists
if not os.path.exists(pdf_file):
print(f"{pdf_file} not found in current directory")
exit(1)
# Login first
print("🔐 Logging in...")
login_data = {'username': 'jleu3482', 'password': 'jleu1212'}
login_response = requests.post(f'{base_url}/login', data=login_data)
if login_response.status_code == 200:
token = login_response.json().get('access_token')
headers = {'Authorization': f'Bearer {token}'}
print('✅ Login successful')
# Upload ocr.pdf
print(f"📤 Uploading {pdf_file}...")
with open(pdf_file, 'rb') as file:
files = {'file': (pdf_file, file, 'application/pdf')}
upload_response = requests.post(f'{base_url}/documents/upload', files=files, headers=headers)
print(f" Upload Status: {upload_response.status_code}")
if upload_response.status_code == 200:
print('✅ Upload successful')
result = upload_response.json()
print(f" Response: {json.dumps(result, indent=2)}")
# Check document status
print("\n🔍 Checking document status...")
status_response = requests.get(f'{base_url}/documents', headers=headers)
if status_response.status_code == 200:
documents = status_response.json()
print(f" Documents response: {documents}")
if isinstance(documents, list):
for doc in documents:
if isinstance(doc, dict) and doc.get('filename') == pdf_file:
print(f" Document: {doc.get('filename')}")
print(f" Status: {doc.get('status')}")
print(f" Created: {doc.get('created_at')}")
break
else:
print(f" Unexpected response format: {type(documents)}")
else:
print(f'❌ Upload failed: {upload_response.text}')
# Test search with content from ocr.pdf
print("\n🔍 Testing search functionality...")
query_data = {'query': 'content from ocr.pdf', 'top_k': 5}
search_response = requests.post(f'{base_url}/query', json=query_data, headers=headers)
if search_response.status_code == 200:
results = search_response.json()
print(f"✅ Search successful (type: {type(results)})")
if isinstance(results, dict):
print(f" Response: {results.get('response', 'No response field')}")
else:
print(f" Raw result: {results}")
else:
print(f'❌ Search failed: {search_response.text}')
else:
print('❌ Login failed')