126 lines
2.8 KiB
Markdown
126 lines
2.8 KiB
Markdown
# OpenSquared Assistant PWA
|
|
|
|
POC de PWA mobile pour parler a l'assistant depuis un telephone.
|
|
|
|
## Fonctionnalites
|
|
|
|
- Interface mobile installable sur Android via "Ajouter a l'ecran d'accueil".
|
|
- Bouton micro avec transcription Groq Whisper.
|
|
- Reponse LLM Groq.
|
|
- Lecture audio automatique de la reponse apres interaction utilisateur.
|
|
- Envoi d'emails Gmail avec carnet de contacts `contacts.json`.
|
|
|
|
## Configuration locale
|
|
|
|
```powershell
|
|
cd pwa_assistant
|
|
copy .env.example .env
|
|
```
|
|
|
|
Remplir `.env` :
|
|
|
|
```text
|
|
GROQ_API_KEY=...
|
|
GMAIL_EMAIL=...
|
|
GMAIL_PASSWORD=...
|
|
APP_SECRET=...
|
|
```
|
|
|
|
Installer :
|
|
|
|
```powershell
|
|
C:\Users\baron\AppData\Local\Programs\Python\Python313\python.exe -m pip install -r requirements.txt
|
|
```
|
|
|
|
Lancer :
|
|
|
|
```powershell
|
|
C:\Users\baron\AppData\Local\Programs\Python\Python313\python.exe app.py
|
|
```
|
|
|
|
Puis ouvrir :
|
|
|
|
```text
|
|
http://localhost:8080
|
|
```
|
|
|
|
Sur telephone, le micro necessite HTTPS sauf cas particulier localhost.
|
|
|
|
## Deploiement VPS Hostinger
|
|
|
|
Exemple Ubuntu :
|
|
|
|
```bash
|
|
cd /var/www
|
|
git clone <ton-repo-ou-upload> opensquared-assistant
|
|
cd opensquared-assistant/pwa_assistant
|
|
python3 -m venv .venv
|
|
. .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
cp .env.example .env
|
|
nano .env
|
|
```
|
|
|
|
Service systemd :
|
|
|
|
```ini
|
|
[Unit]
|
|
Description=OpenSquared Assistant PWA
|
|
After=network.target
|
|
|
|
[Service]
|
|
WorkingDirectory=/var/www/opensquared-assistant/pwa_assistant
|
|
EnvironmentFile=/var/www/opensquared-assistant/pwa_assistant/.env
|
|
ExecStart=/var/www/opensquared-assistant/pwa_assistant/.venv/bin/gunicorn -w 2 -b 127.0.0.1:8080 app:app
|
|
Restart=always
|
|
RestartSec=3
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
Commandes :
|
|
|
|
```bash
|
|
sudo nano /etc/systemd/system/opensquared-assistant.service
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable --now opensquared-assistant
|
|
sudo systemctl status opensquared-assistant
|
|
```
|
|
|
|
Nginx :
|
|
|
|
```nginx
|
|
server {
|
|
server_name assistant.ton-domaine.com;
|
|
|
|
location / {
|
|
proxy_pass http://127.0.0.1:8080;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
}
|
|
}
|
|
```
|
|
|
|
HTTPS avec Certbot :
|
|
|
|
```bash
|
|
sudo certbot --nginx -d assistant.ton-domaine.com
|
|
```
|
|
|
|
## Installation Android
|
|
|
|
1. Ouvrir l'URL HTTPS dans Chrome Android.
|
|
2. Menu `...`.
|
|
3. `Ajouter a l'ecran d'accueil` ou `Installer l'application`.
|
|
4. Ouvrir l'icone `Assistant`.
|
|
5. Appuyer une fois sur `Demarrer` pour autoriser micro/audio.
|
|
|
|
## Notes
|
|
|
|
- Groq Orpheus TTS doit etre accepte dans la console Groq pour fonctionner :
|
|
https://console.groq.com/playground?model=canopylabs%2Forpheus-v1-english
|
|
- La lecture audio automatique depend toujours des regles du navigateur mobile, mais elle marche mieux dans une PWA apres un tap utilisateur que dans Telegram.
|