chatBot en bash para ChatGPT
Creamos un script sencillo en bash para conversar con ChatGPT desde la consola
Para poder realizar todo el proceso necesitamos varias cosas:
- Cuenta en OpenAI
- Token para la acceso a la API
- Script en bash + fichero en el que guardaremos el token
Cuenta en OpenAI
Lo primero que debes hacer es ir a la web de OpenAI y acceder al proceso de Login (https://openai.com/api/login/) allí debes de pulsar sobre 'Sign Up' y crearte una cuenta gratuita con tu email:

Token de acceso a la API de OpenAI
Con la cuenta creada es necesario disponer de un token válido para poder conversar con ChatGPT mediante su API, para ello accederemos a nuestra cuenta y al apartado de API KEYs de OpenAI (https://beta.openai.com/account/api-keys)

Pulsa sobre View API keys y luego, en la nueva ventana, en el menú de la izquierda pulsa sobre la opción Api Keys
Ahora solamente debemos crear un nuevo 'secret' y copiarlo, ya que solo podemos copiarlo en ese momento, si no lo has copiado deberás de crear de nuevo otro secret y copiarlo.

Guarda el contenido copiado en un fichero que se va a llamar chatGPT.API_KEY, hazlo desde la consola escribiendo:
echo 'secret-api-key-generado' > chatGPT.API_KEY
Script en Bash para conversar con ChatGPT
Vamos a utilizar la herramienta curl para realizar peticiones a la API de ChatGPT, si no la tienes instalada, puedes hacerlo de la siguiente manera:
sudo apt -y install curl
Ahora simplemente creamos el script en bash para conversar, puedes copiar el código, o simplemente descargar el fichero chatGPT.sh
Código del script chatGPT.sh
#!/bin/bash
# Cargar la clave de API de ChatGPT
API_KEY=$(cat chatGPT.API_KEY)
echo "-----------------------"
echo " Conversar con ChatGPT "
echo "-----------------------"
echo
# Establece la URL del API de ChatGPT
CHATGPT_URL="https://api.openai.com/v1/completions"
# Bucle principal del programa
while true; do
# Solicitar una pregunta al usuario
echo -n "> $USER escribe una pregunta (o 'salir'): "
read pregunta
# Si escribe "salir", salimos del programa
if [ "$pregunta" == "salir" ]; then
break
fi
# Utiliza la herramienta "curl" en modo silencioso para enviar la pregunta al API de ChatGPT y obtener la respuesta del chatbot
echo -e " ... ChatGPT pensando ...\n"
respuesta=$(curl -s https://api.openai.com/v1/completions -H "Content-Type: application/json" -H "Authorization: Bearer $API_KEY" -d "{\"model\": \"text-davinci-003\", \"prompt\": \"$pregunta\", \"temperature\": 0, \"max_tokens\": 1000}")
# Extrae la respuesta del chatbot de la respuesta JSON de la API
respuesta_chatgpt=$(echo $respuesta |awk -F 'text":"' '{print $2}'|awk -F '","index"' '{print $1}'| awk -F '\n\n' '{print $1}')
# Muestra la respuesta del chatbot en la consola
echo -e "> ChatGPT: $respuesta_chatgpt\n"
echo "----------------------------------------------------------------------------------"
done
Recuerda que una vez creado o copiado debes de darle permisos de ejecución para poderlo usar desde la bash:
chmod +x chatGPT.sh
Conversando con ChatGPT
El script en bash y el fichero con tu token deben de estar en el mismo directorio para funcionar correctamente. El Token es personal, no lo compartas con nadie.
Lanzamos el script simplemente desde la consola mediante el comando:
./chatGPT.sh
Ejemplo de una conversación con ChatGPT desde la bash:

Cuando te canses de conversar con la IA de ChatGPT escribe salir para finalizar.