SqlChat - NL to SQL
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
Node.js
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
Applicazione
Copiare la cartella principale in un folder tra i siti web, es /var/www/sqlchat.dbdemo47.com
Installa le dipendenze e genera il client
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
Apache config
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
sudo a2enmod proxy
sudo a2enmod proxy_http