por Clarktribegames, LLC
El GPT4All API Server with Watchdog es un servidor HTTP simple que monitorea y reinicia una aplicación Python, en este caso el Server.py, que sirve como una interfaz para los modelos compatibles con GPT4All.
Watchdog ejecuta continuamente y reinicia una aplicación de Python.Watchdog verifica el estado de la aplicación y maneja ciertas contingencias.GPT4All API con modelos compatibles con GPT4All con solicitud de API y envía respuestas desde el modelo Windows: clon en una ubicación a la que su usuario (o cuenta de servicio si usa uno) tiene acceso completo de lectura/escritura.
MacOS/Linux: Recomendamos clonar este repositorio en /usr/local/bin si planea usarlo como un servicio. Sin embargo, puede clonar y ejecutarlo desde cualquier lugar. Ejecute estos comandos en su terminal:
cd /path-to-wherever/
git clone https://github.com/AznIronMan/gpt4all_api.gitTambién recomendamos ejecutar esto dentro de un entorno virtual de Python:
Nota: también puede usar Anaconda. No se recomienda no usar un entorno virtual de Python.
# Windows
cd gpt4all_api
python.exe -m venv .venv
source .venv/Scripts/activate # macOS/Linux
cd gpt4all_api
python3 -m venv .venv
source .venv/bin/activate Asegúrese de instalar los requisitos de PIP (confirme que está en su nuevo .venv Venv antes de hacerlo!)
pip install -r requirements.txt ¡Asegúrese de configurar el archivo .env antes de comenzar! (Clone el .env.example y cambie el nombre .env y cárguelo con la información apropiada).
Se recomiendan modelos GGML para esta aplicación. Modelos GGML en la cara abrazada
Nota: Esta aplicación solo se probó con modelos WizardML GGML (no Falcon).
A partir de ahí, para ejecutar el servidor, puede:
# Windows
python.exe watchdog.py # mac/OS/Linux
sudo python3 watchdog.py O puede usar el Bundled start.bat (Windows) o start.sh (MacOS/Linux) incluido para iniciar el servidor.
Usuarios de MacOS/Linux: es posible que deba ejecutar este comando antes de permitir que el start.sh se ejecute en su sistema operativo:
sudo chmod +x ./start.sh La parte watchdog de esta aplicación se ejecuta en su máquina y monitorea la aplicación gpt4all_api . Comprueba la existencia de un archivo watchdog que sirve como señal para indicar cuándo el servidor gpt4all_api ha completado el procesamiento de una solicitud.
Después de completar cada solicitud, se reinicia el servidor gpt4all_api . Esto se hace para restablecer el estado del servidor gpt4all_api y asegurarse de que esté listo para manejar la próxima solicitud entrante. (Esto es para garantizar nuevas respuestas del modelo. Las pruebas mostraron que no reiniciar el servidor API resultó en respuestas repetitivas y, a veces, hallunicación de diferentes modelos).
El watchdog verifica si el archivo watchdog falta durante más de 5 segundos. El servidor gpt4all_api eliminará el archivo watchdog al finalizar, activando el reinicio. Si le falta el archivo watchdog al gpt4all_api responde a la solicitud y/o si hay un error durante el proceso gpt4all_api , el script watchdog supone que algo sale mal e intenta reiniciar el servidor gpt4all_api después de registrar el error en la carpeta logs .
El servidor gpt4all_api usa Flask para aceptar la solicitud de API entrante. La route predeterminada es /gpt4all_api pero puede configurarla, junto con casi todo lo demás, en el .env . Puede enviar solicitudes de publicación con un tipo de parámetro de consulta para obtener los mensajes deseados. Aquí hay algunos ejemplos de cómo obtener todos los mensajes:
# Using curl:
curl -X POST http://serverhostname_or_ipaddress_here:5000/gpt4all_api -H " Content-Type: application/json " -d " { " prompt " : " your question or request goes here " , " persona " : " [your system prompt goes here] " } " # Using Postman:
Set the request type to POST.
Set the URL to http://serverhostname_or_ipaddress_here:5000/messages.
Under Params, add a key-value pair with
key: ' prompt '
value: ' your question or request goes here '
And
key: ' persona '
value: ' [your system prompt goes here] ' Si tiene problemas con la configuración, puede seguir estos pasos:
# macOS/Linux
cp .env.example .env
nano .env # or use TextEdit, VIM, VS Code, etc.
touch requirements.txt
nano requirements.txt # Windows
copy .env.example .env
notepad .env # notepad is on everyone windows machine but vscode or notepad++ is recommended
(make edits to your .env)
# if you do not have a requirements.txt for some reason
notepad requirements.txt Pegue estos contenidos en sus requirements.txt archivo:
blinker= =1.6.2
certifi= =2023.5.7
charset-normalizer= =3.1.0
click= =8.1.3
colorama= =0.4.6
Flask= =2.3.2
gpt4all= =0.3.5
idna= =3.4
itsdangerous= =2.1.2
Jinja2= =3.1.2
MarkupSafe= =2.1.3
python-dotenv= =1.0.0
requests= =2.31.0
tqdm= =4.65.0
urllib3= =2.0.3
Werkzeug= =2.3.6Luego instale los requisitos:
pip install -r requirements.txt Luego puede usar python3 start.sh (macOS/Linux) o python.exe start.bat (Windows) para iniciar el servidor.
Si tiene algún problema con la configuración, no dude en contactarnos utilizando los detalles que se proporcionan a continuación.
Este proyecto tiene licencia bajo la licencia MIT.
Discord: AznIronMan Correo electrónico: Geoff at Clark Tribe Games dot com ( sin espacios y reemplazar con @ y Dot con )