extras/rule_violation_detector/run.py (42 lines of code) (raw):
import asyncio
from argparse import ArgumentParser
from pathlib import Path
from analyze import run_analysis
from prompts import ALL_QUESTIONS
parser = ArgumentParser(description="Script for analyzing submissions and detecting plagiarism.")
parser.add_argument(
"--submission",
help="Path to the JSONL file of submissions. Format mimics default submission format, with `logs_path` and/or `code_path` instead of `submission_path`.",
type=str,
required=True,
)
parser.add_argument(
"--output-dir",
help="Path to the directory where the analysis CSV will be saved.",
type=str,
required=True,
)
parser.add_argument(
"--questions",
help="List of question IDs to ask for each log file defined in `prompts.py`. Defaults to all questions.",
type=str,
nargs="+",
default=list(ALL_QUESTIONS.keys()),
required=False,
)
parser.add_argument(
"--extra-prompt",
help="Path to plaintext file containing additional prompt to be concatenated to end of the base analysis prompt. Useful for e.g. different log formats across agents.",
default=None,
required=False,
)
args = parser.parse_args()
if __name__ == "__main__":
asyncio.run(
run_analysis(
submission=Path(args.submission),
questions=args.questions,
output_dir=Path(args.output_dir),
extra_prompt=(Path(args.extra_prompt) if args.extra_prompt else None),
)
)