57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
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()
|