run_infer.sh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #!/bin/bash
  2. set -eo pipefail
  3. source "evaluation/utils/version_control.sh"
  4. REPO_SPLIT=$1
  5. MODEL_CONFIG=$2
  6. COMMIT_HASH=$3
  7. AGENT=$4
  8. EVAL_LIMIT=$5
  9. MAX_ITER=$6
  10. NUM_WORKERS=$7
  11. DATASET=$8
  12. SPLIT=$9
  13. N_RUNS=${10}
  14. if [ -z "$NUM_WORKERS" ]; then
  15. NUM_WORKERS=1
  16. echo "Number of workers not specified, use default $NUM_WORKERS"
  17. fi
  18. checkout_eval_branch
  19. if [ -z "$AGENT" ]; then
  20. echo "Agent not specified, use default CodeActAgent"
  21. AGENT="CodeActAgent"
  22. fi
  23. if [ -z "$MAX_ITER" ]; then
  24. echo "MAX_ITER not specified, use default 100"
  25. MAX_ITER=100
  26. fi
  27. if [ -z "$USE_INSTANCE_IMAGE" ]; then
  28. echo "USE_INSTANCE_IMAGE not specified, use default true"
  29. USE_INSTANCE_IMAGE=true
  30. fi
  31. if [ -z "$RUN_WITH_BROWSING" ]; then
  32. echo "RUN_WITH_BROWSING not specified, use default false"
  33. RUN_WITH_BROWSING=false
  34. fi
  35. if [ -z "$DATASET" ]; then
  36. echo "DATASET not specified, use default wentingzhao/commit0_combined"
  37. DATASET="wentingzhao/commit0_combined"
  38. fi
  39. if [ -z "$REPO_SPLIT" ]; then
  40. echo "REPO_SPLIT not specified, use default lite"
  41. REPO_SPLIT=0
  42. fi
  43. if [ -z "$SPLIT" ]; then
  44. echo "HF SPLIT not specified, use default test"
  45. SPLIT="test"
  46. fi
  47. export USE_INSTANCE_IMAGE=$USE_INSTANCE_IMAGE
  48. echo "USE_INSTANCE_IMAGE: $USE_INSTANCE_IMAGE"
  49. export RUN_WITH_BROWSING=$RUN_WITH_BROWSING
  50. echo "RUN_WITH_BROWSING: $RUN_WITH_BROWSING"
  51. get_openhands_version
  52. echo "AGENT: $AGENT"
  53. echo "OPENHANDS_VERSION: $OPENHANDS_VERSION"
  54. echo "MODEL_CONFIG: $MODEL_CONFIG"
  55. echo "DATASET: $DATASET"
  56. echo "HF SPLIT: $SPLIT"
  57. echo "REPO SPLIT: $REPO_SPLIT"
  58. # Default to NOT use Hint
  59. if [ -z "$USE_HINT_TEXT" ]; then
  60. export USE_HINT_TEXT=false
  61. fi
  62. echo "USE_HINT_TEXT: $USE_HINT_TEXT"
  63. EVAL_NOTE="$OPENHANDS_VERSION"
  64. # if not using Hint, add -no-hint to the eval note
  65. if [ "$USE_HINT_TEXT" = false ]; then
  66. EVAL_NOTE="$EVAL_NOTE-no-hint"
  67. fi
  68. if [ "$RUN_WITH_BROWSING" = true ]; then
  69. EVAL_NOTE="$EVAL_NOTE-with-browsing"
  70. fi
  71. if [ -n "$EXP_NAME" ]; then
  72. EVAL_NOTE="$EVAL_NOTE-$EXP_NAME"
  73. fi
  74. function run_eval() {
  75. local eval_note=$1
  76. COMMAND="poetry run python evaluation/benchmarks/commit0_bench/run_infer.py \
  77. --agent-cls $AGENT \
  78. --llm-config $MODEL_CONFIG \
  79. --max-iterations $MAX_ITER \
  80. --eval-num-workers $NUM_WORKERS \
  81. --eval-note $eval_note \
  82. --dataset $DATASET \
  83. --split $SPLIT \
  84. --repo-split $REPO_SPLIT"
  85. if [ -n "$EVAL_LIMIT" ]; then
  86. echo "EVAL_LIMIT: $EVAL_LIMIT"
  87. COMMAND="$COMMAND --eval-n-limit $EVAL_LIMIT"
  88. fi
  89. # Run the command
  90. eval $COMMAND
  91. }
  92. unset SANDBOX_ENV_GITHUB_TOKEN # prevent the agent from using the github token to push
  93. if [ -z "$N_RUNS" ]; then
  94. N_RUNS=1
  95. echo "N_RUNS not specified, use default $N_RUNS"
  96. fi
  97. for i in $(seq 1 $N_RUNS); do
  98. current_eval_note="$EVAL_NOTE-run_$i"
  99. echo "EVAL_NOTE: $current_eval_note"
  100. run_eval $current_eval_note
  101. done
  102. checkout_original_branch