gpt2tg/prompt.sh

78 lines
2.1 KiB
Bash

#!/usr/bin/env bash
# exit if any command fails
set -e
usage() {
echo "Usage: $(basename $0) <conversation_id> <parent_id> <text>"
}
if [ ! $# -eq 3 ]; then
usage
exit 1
fi
if [ -z $OPENAI_TOKEN ]; then
echo "OPENAI_TOKEN must be set with OpenAI authorization bearer token (without Bearer prefix)"
exit 1
fi
if [ -z "$OPENAI_COOKIE" ]; then
echo "OPENAI_COOKIE must be set with OpenAI cookies"
exit 1
fi
CONVERSATION_ID=$1
PARENT_ID=$2
TEXT="$3"
# apparently, UUIDs are generated by the client :thinking:
# or this is not really necessary, but I'll do it anyway since that's what the web version does.
MID=$(python -c 'import uuid;print(uuid.uuid4())')
BODY="{
\"action\": \"next\",
\"messages\": [
{
\"id\": \"$MID\",
\"author\": {
\"role\": \"user\"
},
\"content\": {
\"content_type\": \"text\",
\"parts\": [
\"$TEXT\"
]
},
\"metadata\": {}
}
],
\"conversation_id\": \"$CONVERSATION_ID\",
\"parent_message_id\": \"$PARENT_ID\",
\"model\": \"text-davinci-002-render-sha\",
\"timezone_offset_min\": -120,
\"suggestions\": [],
\"history_and_training_disabled\": false,
\"arkose_token\": null
}"
curl 'https://chat.openai.com/backend-api/conversation' \
-H 'authority: chat.openai.com' \
-H 'accept: text/event-stream' \
-H 'accept-language: en-US' \
-H "authorization: Bearer $OPENAI_TOKEN" \
-H 'content-type: application/json' \
-H "cookie: $OPENAI_COOKIE" \
-H 'origin: https://chat.openai.com' \
-H 'referer: https://chat.openai.com/c/3ad5849d-5a51-4b8e-8974-669c965a3896' \
-H 'sec-ch-ua: "Chromium";v="116", "Not)A;Brand";v="24", "Brave";v="116"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Linux"' \
-H 'sec-fetch-dest: empty' \
-H 'sec-fetch-mode: cors' \
-H 'sec-fetch-site: same-origin' \
-H 'sec-gpc: 1' \
-H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36' \
--data-raw "$BODY" \
--compressed | tee gpt_stream_$(date +%s.%N).txt