chatBot en bash para ChatGPT

Trucos y Utilidades 10 de ene. de 2023

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.

Creamos un secret key para usarlo mediante la API

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
El fichero sólo debe de tener una línea con el token de la API !!!

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
script chatGPT.sh


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
Ejecutar el script para conversar con ChatGPT

Ejemplo de una conversación con ChatGPT desde la bash:

Cuando quieras finalizar escribe 'salir'

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

Etiquetas

Luis GuLo

🐧 SysAdmin GNU/Linux - 🐳 Docker - 🖥️ Bash Scripting - 🐪 Perl - 🐬 MySQL - 👥 Formador de TI - 👥 Formador de SysAdmin's - 💢 Ansible - ☁️ Cloud Computing - ❤️ Debian GNU/Linux