run_infer.sh 1.3 KB

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