35 lines
1.1 KiB
Bash
Executable File
35 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
conversation_file=$(mktemp)
|
|
echo new conversation: "$conversation_file"
|
|
OPENAPI_TOKEN=$(pass openai/api-key)
|
|
|
|
prompt="You are Mr.Helper. You are an assistant that lives in a floating terminal above my mac. I can summon you with the press of a button! Feel free to use ansii escape codes to add colors or other formatting to your responses."
|
|
|
|
echo -n "$prompt" | jq -sR '{"role": "system", "content": .}' > "$conversation_file"
|
|
|
|
bind 'set disable-completion On' 2>/dev/null
|
|
|
|
printf '\033[48;5;241m\033[38;5;15m'
|
|
while read -rep '> ' prompt ; do
|
|
[ -n "$prompt" ] || continue
|
|
|
|
echo -n "$prompt" | jq -sR '{"role": "user", "content": .}' >> "$conversation_file"
|
|
|
|
messages=$(jq -rsc < "$conversation_file")
|
|
|
|
out="$(
|
|
http \
|
|
-A bearer \
|
|
--auth "$OPENAPI_TOKEN" \
|
|
https://api.openai.com/v1/chat/completions \
|
|
model=gpt-3.5-turbo \
|
|
messages:="$messages"
|
|
)"
|
|
reply=$(echo "$out" | jq -rc .choices[0].message)
|
|
echo "$reply" >> "$conversation_file"
|
|
printf '\033[48;5;235m\033[38;5;15m'
|
|
echo "$reply" | jq -rc .content
|
|
printf '\033[48;5;241m\033[38;5;15m'
|
|
done
|