jina rerank working
This commit is contained in:
164
test_rerank_final.py
Normal file
164
test_rerank_final.py
Normal file
@@ -0,0 +1,164 @@
|
||||
import requests
|
||||
import json
|
||||
import time
|
||||
import sys
|
||||
|
||||
def check_server_health():
|
||||
"""Check if server is running"""
|
||||
try:
|
||||
response = requests.get("http://localhost:3015/health", timeout=5)
|
||||
print(f"Server health: {response.status_code}")
|
||||
if response.status_code == 200:
|
||||
print("✅ Server is running")
|
||||
return True
|
||||
else:
|
||||
print(f"❌ Server returned status {response.status_code}")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"❌ Server not reachable: {e}")
|
||||
return False
|
||||
|
||||
def test_query_with_rerank():
|
||||
"""Test query with rerank enabled"""
|
||||
url = "http://localhost:3015/query"
|
||||
headers = {
|
||||
"Content-Type": "application/json",
|
||||
"X-API-Key": "jleu1212",
|
||||
"X-Workspace": "test1"
|
||||
}
|
||||
|
||||
query = "what is odds"
|
||||
|
||||
print(f"\nTesting query: '{query}' for workspace: test1")
|
||||
print("="*60)
|
||||
|
||||
# Test with rerank enabled
|
||||
print("\n1. Testing WITH rerank enabled (enable_rerank=True):")
|
||||
data_with_rerank = {
|
||||
"query": query,
|
||||
"enable_rerank": True,
|
||||
"only_need_context": True
|
||||
}
|
||||
|
||||
try:
|
||||
start_time = time.time()
|
||||
response = requests.post(url, headers=headers, json=data_with_rerank, timeout=30)
|
||||
elapsed = time.time() - start_time
|
||||
|
||||
print(f" Status Code: {response.status_code}")
|
||||
print(f" Response Time: {elapsed:.2f}s")
|
||||
|
||||
if response.status_code == 200:
|
||||
result = response.json()
|
||||
response_text = result.get('response', '')
|
||||
|
||||
# Check for rerank-related messages
|
||||
if "Rerank is enabled but no rerank model is configured" in response_text:
|
||||
print(" ⚠️ Rerank warning found: 'Rerank is enabled but no rerank model is configured'")
|
||||
print(" This means the checkbox works but Jina API is not configured")
|
||||
return False
|
||||
elif "Successfully reranked" in response_text:
|
||||
print(" ✅ Rerank success message found!")
|
||||
return True
|
||||
elif "jina" in response_text.lower():
|
||||
print(" ✅ Jina-related content found!")
|
||||
return True
|
||||
else:
|
||||
print(" ℹ️ No rerank indicators found in response")
|
||||
# Check if we can find any rerank scores
|
||||
if "rerank_score" in response_text.lower():
|
||||
print(" ✅ Rerank scores found in response!")
|
||||
return True
|
||||
else:
|
||||
print(" ℹ️ No rerank scores found")
|
||||
return False
|
||||
else:
|
||||
print(f" ❌ Error: {response.status_code}")
|
||||
print(f" Response: {response.text[:200]}")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ Error: {e}")
|
||||
return False
|
||||
|
||||
def check_server_logs_for_rerank():
|
||||
"""Check server logs for rerank configuration"""
|
||||
print("\n2. Checking server logs for rerank configuration...")
|
||||
try:
|
||||
# Read the last few lines of the log file
|
||||
with open("lightrag.log", "r", encoding="utf-8") as f:
|
||||
lines = f.readlines()
|
||||
last_lines = lines[-50:] # Last 50 lines
|
||||
|
||||
# Look for rerank-related messages
|
||||
rerank_found = False
|
||||
for line in last_lines:
|
||||
if "rerank" in line.lower():
|
||||
print(f" Found: {line.strip()}")
|
||||
rerank_found = True
|
||||
if "disabled" in line.lower():
|
||||
print(" ❌ Rerank is disabled in server logs")
|
||||
return False
|
||||
elif "enabled" in line.lower():
|
||||
print(" ✅ Rerank is enabled in server logs")
|
||||
return True
|
||||
|
||||
if not rerank_found:
|
||||
print(" ℹ️ No rerank-related messages found in recent logs")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ Error reading logs: {e}")
|
||||
return False
|
||||
|
||||
def main():
|
||||
print("="*60)
|
||||
print("FINAL TEST: Jina Rerank Configuration Verification")
|
||||
print("="*60)
|
||||
|
||||
# Step 1: Check server health
|
||||
if not check_server_health():
|
||||
print("\n❌ Server is not running. Please start the server first.")
|
||||
return
|
||||
|
||||
# Wait a moment for server to fully initialize
|
||||
print("\nWaiting 5 seconds for server initialization...")
|
||||
time.sleep(5)
|
||||
|
||||
# Step 2: Check server logs
|
||||
logs_ok = check_server_logs_for_rerank()
|
||||
|
||||
# Step 3: Test query with rerank
|
||||
query_ok = test_query_with_rerank()
|
||||
|
||||
# Step 4: Final analysis
|
||||
print("\n" + "="*60)
|
||||
print("FINAL ANALYSIS:")
|
||||
print("="*60)
|
||||
|
||||
if logs_ok and query_ok:
|
||||
print("✅ SUCCESS: Jina rerank appears to be configured and working!")
|
||||
print(" - Server logs show rerank is enabled")
|
||||
print(" - Query with enable_rerank=True works without warnings")
|
||||
elif not logs_ok and query_ok:
|
||||
print("⚠️ PARTIAL SUCCESS: Query works but server logs don't show rerank")
|
||||
print(" - The 'enable rerank' checkbox is functional")
|
||||
print(" - Server may need to be restarted with --rerank-binding jina")
|
||||
elif logs_ok and not query_ok:
|
||||
print("⚠️ PARTIAL SUCCESS: Server configured but query shows warnings")
|
||||
print(" - Server is configured for rerank")
|
||||
print(" - Jina API key may be missing or invalid")
|
||||
else:
|
||||
print("❌ FAILURE: Rerank is not properly configured")
|
||||
print(" - Server needs to be restarted with modified start_server.py")
|
||||
print(" - Check that --rerank-binding jina is set")
|
||||
|
||||
print("\nNext steps:")
|
||||
print("1. If 'Rerank is enabled but no rerank model is configured' appears,")
|
||||
print(" the server needs a valid Jina API key")
|
||||
print("2. Get a Jina API key from https://jina.ai/")
|
||||
print("3. Update the JINA_API_KEY in start_server.py")
|
||||
print("4. Restart the server")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user