Spaces:
Sleeping
Sleeping
| import requests | |
| import time | |
| import csv | |
| # API_URL = "https://manan77709-clearvoice-api.hf.space" | |
| API_URL = "http://localhost:8000" | |
| TEST_CLAIMS = [ | |
| "antibiotics can cure the flu", | |
| "exercise reduces risk of heart disease", | |
| "smoking causes lung cancer", | |
| "vitamin C prevents colds", | |
| "vaccines cause autism", | |
| "obesity is linked to type 2 diabetes", | |
| "drinking bleach cures infections", | |
| "high blood pressure increases stroke risk", | |
| "sugar causes diabetes", | |
| "stress causes high blood pressure", | |
| ] | |
| def verify_claim(claim, retries=3, delay=5): | |
| for attempt in range(retries): | |
| try: | |
| response = requests.post( | |
| f"{API_URL}/verify", | |
| json={"claim": claim}, | |
| timeout=60 | |
| ) | |
| if response.status_code == 200: | |
| return response.json() | |
| else: | |
| print(f" Attempt {attempt+1} failed: status {response.status_code}") | |
| except Exception as e: | |
| print(f" Attempt {attempt+1} error: {e}") | |
| time.sleep(delay) | |
| print(f" → ERROR after 3 attempts") | |
| return None | |
| def run_benchmark(): | |
| results = [] | |
| for claim in TEST_CLAIMS: | |
| print(f"Testing: {claim}") | |
| start = time.time() | |
| data = verify_claim(claim) | |
| elapsed = round(time.time() - start, 2) | |
| if data: | |
| results.append({ | |
| "claim": claim, | |
| "verdict": data.get("verdict"), | |
| "confidence": data.get("confidence"), | |
| "top_similarity": data.get("papers", [{}])[0].get("similarity", 0) if data.get("papers") else 0, | |
| "time_seconds": elapsed, | |
| "cached": data.get("cached") | |
| }) | |
| print(f" → {data.get('verdict')} ({data.get('confidence')}) in {elapsed}s") | |
| else: | |
| results.append({ | |
| "claim": claim, | |
| "verdict": "ERROR", | |
| "confidence": 0.0, | |
| "top_similarity": 0.0, | |
| "time_seconds": elapsed, | |
| "cached": False | |
| }) | |
| print(f" → ERROR after 3 attempts") | |
| time.sleep(3) | |
| return results | |
| def save_results(results): | |
| with open("phase1_baseline.csv", "w", newline="") as f: | |
| writer = csv.DictWriter(f, fieldnames=results[0].keys()) | |
| writer.writeheader() | |
| writer.writerows(results) | |
| print("\nSaved to phase1_baseline.csv") | |
| def print_summary(results): | |
| valid = [r for r in results if r["verdict"] != "ERROR"] | |
| avg_confidence = round(sum(r["confidence"] for r in valid) / len(valid), 2) | |
| avg_similarity = round(sum(r["top_similarity"] for r in valid) / len(valid), 2) | |
| avg_time = round(sum(r["time_seconds"] for r in results) / len(results), 2) | |
| print("\n=== PHASE 1 BASELINE SUMMARY ===") | |
| print(f"Total claims tested : {len(results)}") | |
| print(f"Errors : {len(results) - len(valid)}") | |
| print(f"Avg confidence : {avg_confidence}") | |
| print(f"Avg top similarity : {avg_similarity}") | |
| print(f"Avg response time : {avg_time}s") | |
| if __name__ == "__main__": | |
| results = run_benchmark() | |
| save_results(results) | |
| print_summary(results) |