# 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`. - Memoire professionnelle SQLite pour clients, projets, taches, notes et depots Git associes. ## 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 MEMORY_DB=/root/openbot/data/memory.sqlite ``` 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. ## Memoire professionnelle Les informations professionnelles sont stockees dans une base SQLite. Sur le VPS, le service utilise : ```text /root/openbot/data/memory.sqlite ``` Exemples de phrases : ```text SAFTCO est un nouveau client, note quelque part que je dois rappeler le directeur. Note que le projet Portail SAFTCO est associe au client SAFTCO. Associe le repo /root/openbot/repos/saftco au projet Portail SAFTCO. Qu'est-ce que tu sais sur SAFTCO ? ``` La memoire peut contenir des clients, projets, taches, notes et depots Git associes a un projet. ## 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.