ales27pm/monGARS_webLLM

ai assistant

TypeScript

0

326 commits

updated Apr 2, 2026

See the code

README

Mon Gars – WebLLM Assistant

Mon Gars is a privacy-first AI chat experience that runs fully in the browser using WebLLM. The multi-screen React UI (Home, Voix, Réglages, Raisonnement, Capacités) is optimized for WebGPU when available and gracefully falls back to WebGL/CPU on other browsers. A shared brain layer orchestrates conversation flow so the same services can power the Tauri desktop shell.

Prérequis

  • Node.js 18 ou plus récent
  • npm 9+
  • Navigateur moderne (WebGPU recommandé mais non obligatoire)

Installation

npm install

Lancer le développement

La configuration Vite démarre un serveur HTTPS (port 3000) pour activer WebGPU et les API de contexte sécurisé :

npm run dev

Ouvrez https://localhost:3000 et acceptez le certificat autosigné généré par Vite si besoin.

Tests

Les suites Vitest fonctionnent en environnement jsdom et mockent WebLLM/WebGPU :

npm test -- --watch=false

Build de production

Générez les assets statiques optimisés et servez-les en local :

npm run build
npm run preview

Pour un hébergement statique (NGINX, CDN…), déployez simplement le contenu du dossier dist/ sans backend supplémentaire. Le bundle est découpé (vendor/react) pour de meilleurs caches longue durée.

Pour la coque desktop Tauri, générez d’abord les icônes à partir de leurs sources Base64 puis lancez la build empaquetée :

npm run tauri:prepare
cd src-tauri && cargo tauri build

Pour des instructions détaillées de packaging (static hosting et Tauri desktop), consultez ARCHITECTURE.md et DEPLOY.md.

Déploiement GitHub Pages

Le dépôt inclut déjà un workflow GitHub Actions prêt à l’emploi: .github/workflows/static.yml.

  1. Activez Settings → Pages → Source: GitHub Actions.
  2. Poussez sur main (ou lancez le workflow manuellement).
  3. Le site sera publié automatiquement avec la base correcte (/ ou /<repo>/).

Sans crédit GitHub Actions

Vous pouvez déployer sans Actions directement depuis main avec un dossier docs/ :

npm run deploy:pages

Puis configurez Settings → Pages → Deploy from a branch, branche main dossier /docs.

Le script vérifie origin, l’état git et demande confirmation avant push vers gh-pages (utilisez -- --yes pour non-interactif, -- --no-push pour préparer sans push).

Alternative: publier dist/ vers gh-pages (npx gh-pages -d dist) puis choisir gh-pages / (root).

Détails complets dans DEPLOY.md.

Points clés de l’architecture

  • Entrée web : index.tsx monte src/App.tsx qui encapsule le routeur à onglets et le ChatProvider.
  • Brain : src/brain/MonGarsBrainService.ts gère l’état de conversation, applique le prompt système, séquence les appels WebLLM et expose un snapshot via useMonGarsBrain / ChatContext.
  • Services : src/services/WebLLMService.* (Web/Native) encapsulent l’initialisation @mlc-ai/web-llm, tandis que src/services/GpuService.* détectent WebGPU → WebGL → aucun.
  • UI : src/screens/ et src/components/ consomment uniquement le ChatContext pour l’historique, le statut de génération, le raisonnement et l’état vocal.
  • Desktop : src-tauri/tauri.conf.json empaquette le bundle Vite avec une CSP locale stricte, sans accès distant par défaut.

Licences et responsabilités

Ce projet est fourni tel quel pour un usage de recherche et d’assistant local. Vérifiez les licences des dépendances dans package.json et adaptez la configuration à vos contraintes réglementaires.

Contributors

ales27pm

318 commits

ales-27pm

8 commits

ales27pm/monGARS_webLLM

ai assistant

TypeScript

0

326 commits

updated Apr 2, 2026

See the code

README

Mon Gars – WebLLM Assistant

Mon Gars is a privacy-first AI chat experience that runs fully in the browser using WebLLM. The multi-screen React UI (Home, Voix, Réglages, Raisonnement, Capacités) is optimized for WebGPU when available and gracefully falls back to WebGL/CPU on other browsers. A shared brain layer orchestrates conversation flow so the same services can power the Tauri desktop shell.

Prérequis

  • Node.js 18 ou plus récent
  • npm 9+
  • Navigateur moderne (WebGPU recommandé mais non obligatoire)

Installation

npm install

Lancer le développement

La configuration Vite démarre un serveur HTTPS (port 3000) pour activer WebGPU et les API de contexte sécurisé :

npm run dev

Ouvrez https://localhost:3000 et acceptez le certificat autosigné généré par Vite si besoin.

Tests

Les suites Vitest fonctionnent en environnement jsdom et mockent WebLLM/WebGPU :

npm test -- --watch=false

Build de production

Générez les assets statiques optimisés et servez-les en local :

npm run build
npm run preview

Pour un hébergement statique (NGINX, CDN…), déployez simplement le contenu du dossier dist/ sans backend supplémentaire. Le bundle est découpé (vendor/react) pour de meilleurs caches longue durée.

Pour la coque desktop Tauri, générez d’abord les icônes à partir de leurs sources Base64 puis lancez la build empaquetée :

npm run tauri:prepare
cd src-tauri && cargo tauri build

Pour des instructions détaillées de packaging (static hosting et Tauri desktop), consultez ARCHITECTURE.md et DEPLOY.md.

Déploiement GitHub Pages

Le dépôt inclut déjà un workflow GitHub Actions prêt à l’emploi: .github/workflows/static.yml.

  1. Activez Settings → Pages → Source: GitHub Actions.
  2. Poussez sur main (ou lancez le workflow manuellement).
  3. Le site sera publié automatiquement avec la base correcte (/ ou /<repo>/).

Sans crédit GitHub Actions

Vous pouvez déployer sans Actions directement depuis main avec un dossier docs/ :

npm run deploy:pages

Puis configurez Settings → Pages → Deploy from a branch, branche main dossier /docs.

Le script vérifie origin, l’état git et demande confirmation avant push vers gh-pages (utilisez -- --yes pour non-interactif, -- --no-push pour préparer sans push).

Alternative: publier dist/ vers gh-pages (npx gh-pages -d dist) puis choisir gh-pages / (root).

Détails complets dans DEPLOY.md.

Points clés de l’architecture

  • Entrée web : index.tsx monte src/App.tsx qui encapsule le routeur à onglets et le ChatProvider.
  • Brain : src/brain/MonGarsBrainService.ts gère l’état de conversation, applique le prompt système, séquence les appels WebLLM et expose un snapshot via useMonGarsBrain / ChatContext.
  • Services : src/services/WebLLMService.* (Web/Native) encapsulent l’initialisation @mlc-ai/web-llm, tandis que src/services/GpuService.* détectent WebGPU → WebGL → aucun.
  • UI : src/screens/ et src/components/ consomment uniquement le ChatContext pour l’historique, le statut de génération, le raisonnement et l’état vocal.
  • Desktop : src-tauri/tauri.conf.json empaquette le bundle Vite avec une CSP locale stricte, sans accès distant par défaut.

Licences et responsabilités

Ce projet est fourni tel quel pour un usage de recherche et d’assistant local. Vérifiez les licences des dépendances dans package.json et adaptez la configuration à vos contraintes réglementaires.

Contributors

ales27pm

318 commits

ales-27pm

8 commits

Languages

TypeScript

85.6%

Python

8.6%

CSS

2.4%

JavaScript

1.8%

HTML

1.4%