2026-04-27 16:21:00 +02:00
2026-04-27 15:42:17 +02:00
2026-04-27 15:42:17 +02:00
2026-04-27 15:42:17 +02:00
2026-04-27 16:21:00 +02:00
2026-04-27 15:42:17 +02:00
2026-04-27 16:19:02 +02:00
2026-04-27 15:42:17 +02:00

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

cd pwa_assistant
copy .env.example .env

Remplir .env :

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 :

C:\Users\baron\AppData\Local\Programs\Python\Python313\python.exe -m pip install -r requirements.txt

Lancer :

C:\Users\baron\AppData\Local\Programs\Python\Python313\python.exe app.py

Puis ouvrir :

http://localhost:8080

Sur telephone, le micro necessite HTTPS sauf cas particulier localhost.

Deploiement VPS Hostinger

Exemple Ubuntu pour le VPS actuel (/root/openbot) :

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 :

cp deploy/opensquared-assistant.service /etc/systemd/system/opensquared-assistant.service
systemctl daemon-reload
systemctl enable --now opensquared-assistant

Commandes faciles :

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 :

install -m 755 deploy/openbot /usr/local/bin/openbot
openbot status
openbot restart
openbot logs

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 :

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 :

Ajoute Sophie avec l'adresse sophie@example.com

Ensuite tu peux dire :

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 :

/root/openbot/data/memory.sqlite

Exemples de phrases :

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.
Description
No description provided
Readme 245 KiB
Languages
Python 77.9%
JavaScript 14.4%
CSS 4.8%
HTML 2.5%
Shell 0.4%