| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #!/bin/bash
- set -eo pipefail
- source "evaluation/utils/version_control.sh"
- MODEL_CONFIG=$1
- COMMIT_HASH=$2
- AGENT=$3
- EVAL_LIMIT=$4
- MAX_ITER=$5
- NUM_WORKERS=$6
- DATASET=$7
- SPLIT=$8
- N_RUNS=$9
- if [ -z "$NUM_WORKERS" ]; then
- NUM_WORKERS=1
- echo "Number of workers not specified, use default $NUM_WORKERS"
- fi
- checkout_eval_branch
- if [ -z "$AGENT" ]; then
- echo "Agent not specified, use default CodeActAgent"
- AGENT="CodeActAgent"
- fi
- if [ -z "$MAX_ITER" ]; then
- echo "MAX_ITER not specified, use default 100"
- MAX_ITER=100
- fi
- if [ -z "$USE_INSTANCE_IMAGE" ]; then
- echo "USE_INSTANCE_IMAGE not specified, use default true"
- USE_INSTANCE_IMAGE=true
- fi
- if [ -z "$RUN_WITH_BROWSING" ]; then
- echo "RUN_WITH_BROWSING not specified, use default false"
- RUN_WITH_BROWSING=false
- fi
- if [ -z "$DATASET" ]; then
- echo "DATASET not specified, use default princeton-nlp/SWE-bench_Lite"
- DATASET="princeton-nlp/SWE-bench_Lite"
- fi
- if [ -z "$SPLIT" ]; then
- echo "SPLIT not specified, use default test"
- SPLIT="test"
- fi
- export USE_INSTANCE_IMAGE=$USE_INSTANCE_IMAGE
- echo "USE_INSTANCE_IMAGE: $USE_INSTANCE_IMAGE"
- export RUN_WITH_BROWSING=$RUN_WITH_BROWSING
- echo "RUN_WITH_BROWSING: $RUN_WITH_BROWSING"
- get_agent_version
- echo "AGENT: $AGENT"
- echo "AGENT_VERSION: $AGENT_VERSION"
- echo "MODEL_CONFIG: $MODEL_CONFIG"
- echo "DATASET: $DATASET"
- echo "SPLIT: $SPLIT"
- # Default to NOT use Hint
- if [ -z "$USE_HINT_TEXT" ]; then
- export USE_HINT_TEXT=false
- fi
- echo "USE_HINT_TEXT: $USE_HINT_TEXT"
- EVAL_NOTE="$AGENT_VERSION"
- # if not using Hint, add -no-hint to the eval note
- if [ "$USE_HINT_TEXT" = false ]; then
- EVAL_NOTE="$EVAL_NOTE-no-hint"
- fi
- if [ "$RUN_WITH_BROWSING" = true ]; then
- EVAL_NOTE="$EVAL_NOTE-with-browsing"
- fi
- if [ -n "$EXP_NAME" ]; then
- EVAL_NOTE="$EVAL_NOTE-$EXP_NAME"
- fi
- function run_eval() {
- local eval_note=$1
- COMMAND="poetry run python evaluation/swe_bench/run_infer.py \
- --agent-cls $AGENT \
- --llm-config $MODEL_CONFIG \
- --max-iterations $MAX_ITER \
- --eval-num-workers $NUM_WORKERS \
- --eval-note $eval_note \
- --dataset $DATASET \
- --split $SPLIT"
- if [ -n "$EVAL_LIMIT" ]; then
- echo "EVAL_LIMIT: $EVAL_LIMIT"
- COMMAND="$COMMAND --eval-n-limit $EVAL_LIMIT"
- fi
- # Run the command
- eval $COMMAND
- }
- unset SANDBOX_ENV_GITHUB_TOKEN # prevent the agent from using the github token to push
- if [ -z "$N_RUNS" ]; then
- N_RUNS=1
- echo "N_RUNS not specified, use default $N_RUNS"
- fi
- for i in $(seq 1 $N_RUNS); do
- current_eval_note="$EVAL_NOTE-run_$i"
- echo "EVAL_NOTE: $current_eval_note"
- run_eval $current_eval_note
- done
- checkout_original_branch
|