<!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>