import json import os import glob def main(): uploads_dir = "backend/uploads" sources_dir = "backend/sources" if not os.path.exists(uploads_dir): # Fallback to local paths if run from backend folder uploads_dir = "uploads" sources_dir = "sources" manual_pattern = os.path.join(uploads_dir, "manual_label_*.json") results_jsonl = os.path.join(uploads_dir, "test_images_results.jsonl") output_manual = os.path.join(sources_dir, "manual_labels.json") output_ai = os.path.join(sources_dir, "ai_results.json") # 1. Compile Manual Labels manual_files = glob.glob(manual_pattern) manual_list = [] for mf in sorted(manual_files): try: with open(mf, "r", encoding="utf-8") as f: data = json.load(f) manual_list.append(data) except Exception as e: print(f"Error reading manual label {mf}: {e}") with open(output_manual, "w", encoding="utf-8") as f: json.dump(manual_list, f, indent=2, ensure_ascii=False) print(f"Successfully compiled {len(manual_list)} manual labels into: {output_manual}") # 2. Compile AI Results ai_list = [] if os.path.exists(results_jsonl): try: with open(results_jsonl, "r", encoding="utf-8") as f: for line in f: if not line.strip(): continue data = json.loads(line) ai_list.append(data) except Exception as e: print(f"Error reading JSONL results: {e}") with open(output_ai, "w", encoding="utf-8") as f: json.dump(ai_list, f, indent=2, ensure_ascii=False) print(f"Successfully compiled {len(ai_list)} AI results into: {output_ai}") else: print(f"Warning: JSONL results file not found at {results_jsonl}") if __name__ == "__main__": main()