Files
openbot/README.md

152 lines
3.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 avec une voix francaise douce cote navigateur.
- Envoi d'emails Gmail avec carnet de contacts `contacts.json`.
- Ajout de contacts par conversation, par exemple : `Ajoute Sophie avec l'adresse sophie@example.com`.
## Configuration locale
```powershell
cd pwa_assistant
copy .env.example .env
```
Remplir `.env` :
```text
GROQ_API_KEY=...
GMAIL_EMAIL=...
GMAIL_PASSWORD=...
APP_SECRET=...
TTS_PROVIDER=browser
CONTACTS_FILE=/root/openbot/data/contacts.json
```
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 pour le VPS actuel (`/root/openbot`) :
```bash
cd /root
git clone https://gitea.open-squared.tech/admin/openbot.git openbot
cd openbot
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
nano .env
```
Service systemd pour que l'app continue apres fermeture de Putty :
```bash
cp deploy/opensquared-assistant.service /etc/systemd/system/opensquared-assistant.service
systemctl daemon-reload
systemctl enable --now opensquared-assistant
```
Commandes faciles :
```bash
systemctl start opensquared-assistant
systemctl stop opensquared-assistant
systemctl restart opensquared-assistant
systemctl status opensquared-assistant
journalctl -u opensquared-assistant -f
```
Optionnel, installer le raccourci `openbot` :
```bash
install -m 755 deploy/openbot /usr/local/bin/openbot
openbot status
openbot restart
openbot logs
```
Nginx :
```nginx
server {
server_name assistant.ton-domaine.com;
location / {
proxy_pass http://172.17.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 lancer le mode mains libres.
6. Parler naturellement : apres 2 secondes de silence, le message est envoye.
7. Appuyer sur `Arreter` pour couper l'ecoute continue.
## Contacts email
Les contacts sont stockes dans `contacts.json` en local. Sur le VPS, le service utilise `/root/openbot/data/contacts.json` pour eviter de modifier les fichiers suivis par Git.
Tu peux les ajouter directement dans l'assistant :
```text
Ajoute Sophie avec l'adresse sophie@example.com
```
Ensuite tu peux dire :
```text
Envoie un email a Sophie
```
L'assistant remplacera `Sophie` par son adresse email.
## Notes
- Groq Orpheus TTS doit etre accepte dans la console Groq pour fonctionner :
https://console.groq.com/playground?model=canopylabs%2Forpheus-v1-english
- Par defaut `TTS_PROVIDER=browser` utilise la voix francaise du telephone pour eviter l'accent anglais du modele Groq Orpheus.
- La PWA privilegie les voix feminines francaises disponibles sur le telephone, avec un debit plus lent et un ton plus doux.
- Pour revenir au TTS Groq, mettre `TTS_PROVIDER=groq` dans `.env`.
- 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.