run_infer.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. set -eo pipefail
  3. source "evaluation/utils/version_control.sh"
  4. MODEL_CONFIG=$1
  5. COMMIT_HASH=$2
  6. AGENT=$3
  7. DATASET=$4
  8. EVAL_LIMIT=$5
  9. checkout_eval_branch
  10. if [ -z "$AGENT" ]; then
  11. echo "Agent not specified, use default CodeActAgent"
  12. AGENT="CodeActAgent"
  13. fi
  14. get_agent_version
  15. if [ -z "$DATASET" ]; then
  16. echo "Dataset not specified, use default 'things'"
  17. DATASET="things"
  18. fi
  19. # check if OPENAI_API_KEY is set
  20. if [ -z "$OPENAI_API_KEY" ]; then
  21. echo "OPENAI_API_KEY is not set, please set it to run the script"
  22. exit 1
  23. fi
  24. # IMPORTANT: Because Agent's prompt changes fairly often in the rapidly evolving codebase of OpenDevin
  25. # We need to track the version of Agent in the evaluation to make sure results are comparable
  26. AGENT_VERSION=v$(poetry run python -c "import agenthub; from opendevin.controller.agent import Agent; print(Agent.get_cls('$AGENT').VERSION)")
  27. echo "AGENT: $AGENT"
  28. echo "AGENT_VERSION: $AGENT_VERSION"
  29. echo "MODEL_CONFIG: $MODEL_CONFIG"
  30. echo "DATASET: $DATASET"
  31. COMMAND="poetry run python evaluation/EDA/run_infer.py \
  32. --agent-cls $AGENT \
  33. --llm-config $MODEL_CONFIG \
  34. --dataset $DATASET \
  35. --data-split test \
  36. --max-iterations 20 \
  37. --OPENAI_API_KEY $OPENAI_API_KEY \
  38. --max-chars 10000000 \
  39. --eval-num-workers 1 \
  40. --eval-note ${AGENT_VERSION}_${DATASET}"
  41. if [ -n "$EVAL_LIMIT" ]; then
  42. echo "EVAL_LIMIT: $EVAL_LIMIT"
  43. COMMAND="$COMMAND --eval-n-limit $EVAL_LIMIT"
  44. fi
  45. # Run the command
  46. echo $COMMAND
  47. eval $COMMAND