<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body><div style="font-family: sans-serif;"><div class="markdown" style="white-space: normal;">
<p dir="auto">For those who are using the OpenAI bundle, here is a copy of my local sh script where I use the same API keys to perform chatgpt text interactions…</p>
<h2>chatgpt.sh</h2>
<pre style="margin-left: 15px; margin-right: 15px; padding: 5px; background-color: #F7F7F7; border-radius: 5px 5px 5px 5px; overflow-x: auto; max-width: 90vw;"><code class="language-#!/bin/bash" style="margin: 0 0; border-radius: 3px; background-color: #F7F7F7; padding: 0px;">
API_KEY="${OPENAI_API_KEY}"
MODEL="${OPENAI_MODEL}"
HISTORY_FILE="/tmp/chatgpt_history.json"
# Initialize history
if [ ! -f "$HISTORY_FILE" ]; then
echo '[{"role":"system","content":"You are a helpful assistant."}]' > "$HISTORY_FILE"
fi
while true; do
echo -n "You: "
read -r USER_INPUT
[ -z "$USER_INPUT" ] && continue
TMP_HISTORY=$(mktemp)
jq --arg content "$USER_INPUT" '. + [{"role":"user","content":$content}]' "$HISTORY_FILE" > "$TMP_HISTORY"
mv "$TMP_HISTORY" "$HISTORY_FILE"
RESPONSE=$(curl -s https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d @- <<EOF
{
"model": "$MODEL",
"messages": $(cat "$HISTORY_FILE"),
"temperature": 0.5
}
EOF
)
REPLY=$(echo "$RESPONSE" | jq -r '.choices[0].message.content')
# Append assistant response to history
TMP_HISTORY=$(mktemp)
jq --arg content "$REPLY" '. + [{"role":"assistant","content":$content}]' "$HISTORY_FILE" > "$TMP_HISTORY"
mv "$TMP_HISTORY" "$HISTORY_FILE"
echo -e "\nChatGPT: $REPLY\n"
done```
Jim Bates
(804) 690-9143 (Cell/Signal)
</code></pre>
</div>
</div>
</body>
</html>