74 lines
2.6 KiB
Python
74 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
"""Test current Jina rerank behavior with the server"""
|
|
|
|
import requests
|
|
import json
|
|
import time
|
|
|
|
def test_rerank_behavior():
|
|
print("=== Testing Current Rerank Behavior ===")
|
|
|
|
# Test query with rerank enabled
|
|
test_query = {
|
|
"query": "what is odds",
|
|
"workspace": "test1",
|
|
"enable_rerank": True,
|
|
"top_k": 5
|
|
}
|
|
|
|
print(f"Query: {test_query}")
|
|
|
|
try:
|
|
start_time = time.time()
|
|
response = requests.post(
|
|
"http://localhost:3015/api/query",
|
|
json=test_query,
|
|
headers={"Content-Type": "application/json"},
|
|
timeout=30
|
|
)
|
|
elapsed_time = time.time() - start_time
|
|
|
|
print(f"\nResponse Status: {response.status_code}")
|
|
print(f"Response Time: {elapsed_time:.2f} seconds")
|
|
|
|
if response.status_code == 200:
|
|
result = response.json()
|
|
print(f"\n✓ Query successful")
|
|
print(f"Response keys: {list(result.keys())}")
|
|
|
|
# Check if rerank was used
|
|
if "rerank_scores" in result:
|
|
print(f"\n✓ Rerank scores found: {result['rerank_scores']}")
|
|
else:
|
|
print(f"\n✗ No rerank scores in response")
|
|
|
|
# Check response time indication
|
|
if elapsed_time > 5:
|
|
print(f"⚠ Long response time ({elapsed_time:.2f}s) suggests rerank might be attempting to call external API")
|
|
else:
|
|
print(f"✓ Normal response time")
|
|
|
|
elif response.status_code == 500:
|
|
error_text = response.text
|
|
print(f"\n✗ Server error (500)")
|
|
print(f"Error: {error_text[:500]}...")
|
|
|
|
# Check for Jina API key error
|
|
if "api.jina.ai" in error_text or "JINA_API_KEY" in error_text:
|
|
print("\n⚠ Detected Jina Cloud API error - needs API key or local configuration")
|
|
elif "timeout" in error_text.lower():
|
|
print("\n⚠ Timeout error - external API might be unreachable")
|
|
|
|
else:
|
|
print(f"\n✗ Unexpected status: {response.status_code}")
|
|
print(f"Response: {response.text[:500]}...")
|
|
|
|
except requests.exceptions.Timeout:
|
|
print(f"\n✗ Request timeout (30s) - rerank might be stuck trying to reach external API")
|
|
except requests.exceptions.ConnectionError:
|
|
print(f"\n✗ Connection error - server might not be running")
|
|
except Exception as e:
|
|
print(f"\n✗ Error: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
test_rerank_behavior() |