SqlChat - NL to SQL: differenze tra le versioni
| (Una versione intermedia di uno stesso utente non è mostrata) | |||
| Riga 4: | Riga 4: | ||
Non fa altro che cercare di interpretare e generare un SQL corrispondente. | Non fa altro che cercare di interpretare e generare un SQL corrispondente. | ||
== Installazione in produzione == | == Installazione in produzione == | ||
| Riga 122: | Riga 121: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
verificare che tutto sia andato bene | verificare che tutto sia andato bene | ||
=== Process Manager === | |||
Utilizzare '''PM2''' per mantenere il server di produzione in esecuzione e gestire i riavvii automatici | |||
<syntaxhighlight lang="bash"> | |||
# Installa PM2 | |||
npm install -g pm2 | |||
# Avvia il server di produzione | |||
pm2 start npm --name "sqlchat" -- run start | |||
# Salva la configurazione per avviare PM2 al riavvio del sistema | |||
pm2 startup | |||
pm2 save | |||
</syntaxhighlight> | |||
Versione attuale delle 18:40, 14 gen 2025
https://github.com/sqlchat/sqlchat
Si propone di fare query con linguaggio naturale, leggendo la struttura del database.
Non fa altro che cercare di interpretare e generare un SQL corrispondente.
Installazione in produzione
[modifica]Node.js
[modifica]Configurare l'ambiente per Node.js
# Scarica l'ultima versione di nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.bashrc
# Installa Node.js 22
nvm install 22
nvm use 22
# Verificare con
node --version
# Verifica i rilasci ufficiali
nvm ls-remote
# eventualmente installare la versione voluta con
nvm install [version_number]
Aggiornare npm , Node Package Manager
npm install npm@latest -g
Installare pnpm, Performant Node Package Manager
npm install pnpm@latest -g
Applicazione
[modifica]Copiare la cartella principale in un folder tra i siti web, es /var/www/sqlchat.dbdemo47.com
Installa le dipendenze e genera il client
cd /var/www/sqlchat.dbdemo47.com
pnpm i
pnpm update
pnpm prisma generate
# Fa una copia di .env.nodb su .env
cp .env.nodb .env
Aprire il file .env e compilare le variabili d'ambiente OPENAI_API_KEY e NEXTAUTH_SECRET
OPENAI_API_KEY=sk-proj-y_CdQA08RfBBfRT_a7-1-CfyQqWWp8AanB5SaEDvFhpgtKAqb3d1vbGK0loFi8bi7dF__Kv7mrT3BlbkFJ13neJuz>
NEXTAUTH_SECRET=codiceacasonecessario
NEXT_PUBLIC_USE_DATABASE=false
Compilare TypeScript. Questo comando potrebbe dare errore, nel caso recarsi nel codice a correggere.
npx tsc
Esegui lo script build per generare la versione ottimizzata per la produzione
npm run build
Esegui lo script start per avviare il server di Next.js in modalità produzione
npm run start
In questo modo il progetto parte in locale sulla porta 3000
Apache config
[modifica]Creare un virtualhost che faccia da reverse proxy per node.
/etc/apache2/sites-available/sqlchat.dbdemo47.com.conf
#
# sqlchat.dbdemo47.com
#
<VirtualHost *:80>
ServerName sqlchat.dbdemo47.com
Redirect / https://%{SERVER_NAME}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
# Basic Auth
<Location />
AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /var/www/auth/.htpasswd
Require valid-user
</Location>
ServerAdmin info@designbest.com
ServerName sqlchat.dbdemo47.com
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
Abilitare il modulo proxy_http e poi abilitare il virtualhost
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo systemctl restart apache2
# Abilito il virtualhost appena creato
sudo a2ensite sqlchat.dbdemo47.com.conf
sudo systemctl reload apache2
Facciamo anche il certificato SSL.
Dopo aver collegato il DNS alla macchina
sudo certbot --apache -d sqlchat.dbdemo47.com
verificare che tutto sia andato bene
Process Manager
[modifica]Utilizzare PM2 per mantenere il server di produzione in esecuzione e gestire i riavvii automatici
# Installa PM2
npm install -g pm2
# Avvia il server di produzione
pm2 start npm --name "sqlchat" -- run start
# Salva la configurazione per avviare PM2 al riavvio del sistema
pm2 startup
pm2 save