#!/usr/bin/env sh

OPENAI_API_KEY="sk-xxx"

request_params=$(
  cat <<EOF
{
    "model": "gpt-3.5-turbo",
    "stream": true,
    "messages": [
        {
            "role": "user",
            "content": "$1"
        }
    ]
}
EOF
)

curl --header "Authorization: Bearer $OPENAI_API_KEY" \
  --header 'Content-Type: application/json' \
  --data "$request_params" -N -s 'https://api.openai.com/v1/chat/completions' |
  awk -F 'data: ' '{print $2; system("")}' |
  jq --unbuffered -R 'fromjson?' |
  jq --unbuffered -r '(.choices[].delta.content)? | select(. != null)' |
  awk '{printf "%s", $0}'
echo
