63 lines
1.9 KiB
Bash
63 lines
1.9 KiB
Bash
|
#!/bin/bash
|
||
|
# Establecer VALORES API de ChatGPT Local
|
||
|
SCLGPT_URL="http://127.0.0.1:5000/llama"
|
||
|
MAX_TOKENS=100
|
||
|
SALUDO_IA="Eres un asistente genial" #You are a helpful assistant
|
||
|
|
||
|
if [ "$1" == "" ] ; then
|
||
|
MAX_TOKENS=100
|
||
|
else
|
||
|
if [ $1 -gt 100 ] ; then
|
||
|
MAX_TOKENS=$1
|
||
|
else
|
||
|
MAX_TOKENS=100
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# Funciones docker IA
|
||
|
function StarIA() {
|
||
|
echo "Iniciando IA ..."
|
||
|
StopIA
|
||
|
#docker run -d --name sclgpt -ti -p 5000:5000 llama2 2>/dev/null 1>/dev/null
|
||
|
docker run -d --name sclgpt -ti -p 5000:5000 -v $(pwd)/llama-2-7b-chat.Q2_K.gguf:/app/llama-2-7b-chat.Q2_K.gguf llama2
|
||
|
}
|
||
|
|
||
|
function StopIA() {
|
||
|
docker stop sclgpt 2>/dev/null
|
||
|
docker rm sclgpt 2>/dev/null
|
||
|
}
|
||
|
|
||
|
function TimeIA() {
|
||
|
echo -e "\nProcesado en: $(docker logs sclgpt |grep 'total time'|tail -1|awk '{print $5" milisegundos"}')"
|
||
|
}
|
||
|
|
||
|
# ----- Main / Principal ---------------------------
|
||
|
StarIA
|
||
|
clear
|
||
|
echo
|
||
|
echo "----------------------------------------"
|
||
|
echo " Conversar con SoloConLinux-GPT [SCL-GPT]"
|
||
|
echo "----------------------------------------"
|
||
|
echo
|
||
|
|
||
|
# Bucle principal del programa
|
||
|
while true; do
|
||
|
# Solicitar una pregunta al usuario
|
||
|
echo -n "[$USER] escribe tu pregunta (o 'salir'): "
|
||
|
read SCL_PREGUNTA
|
||
|
|
||
|
# Si escribe "salir", salimos del programa
|
||
|
if [ "$SCL_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 "\n ... SCL-GPT pensando ...\n"
|
||
|
# Extrae la respuesta del chatbot de la respuesta JSON de la API
|
||
|
# Muestra la respuesta del chatbot en la consola
|
||
|
echo -e "[SCL-GPT]:\n$(curl -s $SCLGPT_URL -H "Content-Type: application/json" -d "{\"system_message\": \"$SALUDO_IA\", \"user_message\": \"$SCL_PREGUNTA\", \"max_tokens\": $MAX_TOKENS}" | grep '"text"' | sed 's/`//g' | awk -F 'SYS>>' '{print $3}' | awk -F 'INST]' '{print $2}')"
|
||
|
TimeIA
|
||
|
echo -e "\n----------------------------------------------------------------------------------"
|
||
|
done
|
||
|
StopIA
|
||
|
|