time_test.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. if [ $# -ne 3 ]; then
  3. echo "Usage: time_test.sh <domain> <key> <count>"
  4. exit 1
  5. fi
  6. domain=$1
  7. key=$2
  8. count=$3
  9. total_time=0
  10. times=()
  11. for ((i=1; i<=count; i++)); do
  12. result=$(curl -o /dev/null -s -w "%{http_code} %{time_total}\\n" \
  13. https://"$domain"/v1/chat/completions \
  14. -H "Content-Type: application/json" \
  15. -H "Authorization: Bearer $key" \
  16. -d '{"messages": [{"content": "echo hi", "role": "user"}], "model": "gpt-3.5-turbo", "stream": false, "max_tokens": 1}')
  17. http_code=$(echo "$result" | awk '{print $1}')
  18. time=$(echo "$result" | awk '{print $2}')
  19. echo "HTTP status code: $http_code, Time taken: $time"
  20. total_time=$(bc <<< "$total_time + $time")
  21. times+=("$time")
  22. done
  23. average_time=$(echo "scale=4; $total_time / $count" | bc)
  24. sum_of_squares=0
  25. for time in "${times[@]}"; do
  26. difference=$(echo "scale=4; $time - $average_time" | bc)
  27. square=$(echo "scale=4; $difference * $difference" | bc)
  28. sum_of_squares=$(echo "scale=4; $sum_of_squares + $square" | bc)
  29. done
  30. standard_deviation=$(echo "scale=4; sqrt($sum_of_squares / $count)" | bc)
  31. echo "Average time: $average_time±$standard_deviation"