Skip to content

GenAICos/llmui-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLMUI Core v0.5.0

AGPL v3 Commons Clause Enterprise Clause Python Platform

Plateforme de consensus multi-modèles IA avec souveraineté numérique

Développé par Francois Chalut - Une solution québécoise pour l'intelligence artificielle locale et éthique.


🎯 Vue d'ensemble

LLMUI Core est une plateforme innovante de consensus entre plusieurs modèles de langage (LLM), permettant de:

  • Orchestrer plusieurs modèles IA en parallèle (workers + mergers)
  • Obtenir des réponses par consensus pour une qualité supérieure
  • Garantir la souveraineté numérique - hébergement local, sans cloud
  • Intégrer des systèmes de mémoire avancés (RAG, hybride)
  • Traiter des fichiers (PDF, DOCX, images, etc.)
  • Maintenir l'historique complet avec SQLite

Architecture

┌─────────────┐
│   Nginx     │ ← Interface web (port 80/443)
└──────┬──────┘
       │
┌──────▼──────┐
│ llmui-proxy │ ← Gestion sessions, auth (port 8080)
└──────┬──────┘
       │
┌──────▼──────┐
│llmui-backend│ ← Orchestration LLM (port 5000)
└──────┬──────┘
       │
┌──────▼──────┐
│   Ollama    │ ← Modèles locaux (port 11434)
└─────────────┘
  • phi3:3.8b (worker)
  • gemma2:2b (worker)
  • granite4:micro-h (merger)

📋 Prérequis

Matériel recommandé

  • CPU: 4 cœurs minimum, 8+ recommandé
  • RAM: 8GB minimum, 16GB+ recommandé
  • Disque: 20GB minimum, 50GB+ recommandé
  • GPU: Optionnel mais améliore les performances

Système d'exploitation

Linux natif

  • Debian 11/12
  • Ubuntu 20.04/22.04/24.04
  • Rocky Linux 8/9
  • RHEL 8/9

Windows via WSL

  • Windows 10/11 avec WSL2 activé
  • Distribution Ubuntu 20.04/22.04/24.04 dans WSL
  • 16GB RAM recommandés pour Windows + WSL

Logiciels

  • Python 3.8+
  • Accès root (sudo)
  • Git

🪟 Installation sur Windows (WSL)

Étape 1: Activer WSL2

Ouvrez PowerShell en tant qu'administrateur:

# Activer WSL
wsl --install

# Ou si déjà installé, mettre à jour vers WSL2
wsl --set-default-version 2

# Installer Ubuntu
wsl --install -d Ubuntu-22.04

Redémarrez votre ordinateur après l'installation.

Étape 2: Configuration WSL

Lancez Ubuntu depuis le menu Démarrer et configurez votre utilisateur.

# Mettre à jour le système
sudo apt update && sudo apt upgrade -y

# Installer les prérequis
sudo apt install -y git python3 python3-pip

Étape 3: Installation LLMUI Core dans WSL

# Cloner le dépôt
git clone https://github.com/GenAICos/llmui-core.git
cd llmui-core

# Lancer l'installation avec Andy
sudo bash andy_setup.sh

Accès depuis Windows

Une fois installé dans WSL, accédez à l'interface via:

http://localhost/

Le navigateur Windows peut directement accéder aux services WSL!

Notes importantes pour WSL

  • Performance: WSL2 offre d'excellentes performances, mais consommera de la RAM Windows
  • Fichiers: Accédez aux fichiers WSL depuis Windows via \\wsl$\Ubuntu-22.04\
  • Réseau: Les ports WSL sont automatiquement forwardés vers Windows
  • Mémoire: Configurez .wslconfig pour limiter l'usage RAM si nécessaire

Configuration .wslconfig (optionnel)

Créez C:\Users\VotreNom\.wslconfig:

[wsl2]
memory=8GB
processors=4
swap=4GB

🚀 Installation rapide avec Andy

Andy est l'assistant DevOps autonome qui automatise l'installation complète de LLMUI Core.

Installation en une commande

# Cloner le dépôt
git clone https://github.com/GenAICos/llmui-core.git
cd llmui-core

# Lancer l'installation interactive
sudo bash andy_setup.sh

Installation complète automatique

# Installation en 3 étapes automatisées
sudo python3 andy_installer.py      # Étape 1: Base système
sudo python3 andy_deploy_source.py  # Étape 2: Fichiers source
sudo python3 andy_start_services.py # Étape 3: Services

Andy va automatiquement:

  • ✅ Mettre à jour l'OS
  • ✅ Installer Ollama + 3 modèles LLM
  • ✅ Configurer Python + dépendances
  • ✅ Créer les services systemd
  • ✅ Configurer Nginx + SSL
  • ✅ Configurer le pare-feu
  • ✅ Vérifier l'installation

Note: Andy vous demandera uniquement le nom d'utilisateur et le mot de passe pour l'interface LLMUI.

Ce que fait Andy

  1. Installation de base (andy_installer.py)

    • Détection automatique du système (apt/dnf/yum)
    • Installation des dépendances système
    • Installation d'Ollama et téléchargement des modèles
    • Création de l'environnement virtuel Python
    • Configuration des services systemd
    • Configuration Nginx et pare-feu
  2. Déploiement des sources (andy_deploy_source.py)

    • Clone du dépôt Git (ou copie manuelle)
    • Installation des fichiers dans /opt/llmui-core/
    • Configuration des permissions
  3. Démarrage des services (andy_start_services.py)

    • Activation des services systemd
    • Démarrage backend → proxy → nginx
    • Vérification de l'état des services
    • Test HTTP et affichage de l'URL d'accès

Menu interactif (andy_setup.sh)

╔═══════════════════════════════════════════════════════════════════════════╗
║                           MENU PRINCIPAL                                  ║
╚═══════════════════════════════════════════════════════════════════════════╝

  [1] Installation complète (recommandé)
  [2] Installation de base uniquement
  [3] Déployer les fichiers source
  [4] Démarrer les services
  [5] Vérifier l'installation
  [6] Consulter les logs
  [7] Lire la documentation
  [Q] Quitter

📦 Structure du projet

llmui-core/
├── andy_setup.sh              # Menu interactif
├── andy_installer.py          # Installation base système
├── andy_deploy_source.py      # Déploiement sources
├── andy_start_services.py     # Démarrage services
├── README.md                  # Ce fichier
├── README_ANDY.md             # Documentation Andy
├── INSTALL.md                 # Guide installation détaillé
├── LICENSE                    # Licence propriétaire
│
├── src/                       # Code source backend
│   ├── llmui_backend.py      # Serveur FastAPI principal
│   ├── llmui_proxy.py        # Serveur proxy
│   ├── auth.py               # Authentification
│   ├── database.py           # Gestion SQLite
│   ├── memory.py             # Système mémoire
│   └── file_processor.py     # Traitement fichiers
│
├── web/                       # Interface web
│   ├── index.html
│   ├── css/
│   ├── js/
│   └── assets/
│
├── config.yaml                # Configuration principale
├── requirements.txt           # Dépendances Python
│
└── docs/                      # Documentation
    ├── ARCHITECTURE.md
    ├── API.md
    ├── CONFIGURATION.md
    └── TROUBLESHOOTING.md

🔧 Configuration

Fichier principal: config.yaml

server:
  host: "0.0.0.0"
  port: 5000
  ssl_enabled: false

ollama:
  base_url: "http://localhost:11434"
  models:
    workers:
      - "phi3:3.8b"
      - "gemma2:2b"
    merger: "granite4:micro-h"

database:
  path: "/opt/llmui-core/data/llmui.db"

security:
  jwt_secret: "auto-generated"
  session_timeout: 3600

Ports utilisés

Service Port Description
Nginx 80/443 Interface web
llmui-proxy 8080 Proxy + auth
llmui-backend 5000 API backend
Ollama 11434 Serveur LLM

🎮 Utilisation

Accès à l'interface

Une fois installé, accédez à LLMUI Core via votre navigateur:

Linux:

http://VOTRE_IP/

Windows (WSL):

http://localhost/

L'IP du serveur est affichée à la fin de l'installation par Andy.

Gestion des services

# Statut des services
sudo systemctl status llmui-backend
sudo systemctl status llmui-proxy
sudo systemctl status nginx

# Redémarrer les services
sudo systemctl restart llmui-backend
sudo systemctl restart llmui-proxy
sudo systemctl restart nginx

# Logs en temps réel
sudo journalctl -u llmui-backend -f
sudo journalctl -u llmui-proxy -f

API REST

Documentation complète de l'API disponible dans docs/API.md.

Exemples d'endpoints:

# Health check
curl http://localhost:5000/api/health

# Liste des modèles
curl http://localhost:5000/api/models

# Nouvelle conversation
curl -X POST http://localhost:5000/api/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Bonjour!", "user_id": "user123"}'

📊 Fonctionnalités

✨ Consensus multi-modèles

LLMUI Core utilise une approche unique:

  1. Workers analysent le prompt en parallèle
  2. Merger synthétise les réponses en consensus
  3. Qualité supérieure grâce à la diversité des modèles

🧠 Système de mémoire avancé

  • Mémoire court terme: Contexte de conversation

📄 Traitement de fichiers

Formats supportés:

  • Documents: PDF, DOCX, TXT, MD
  • Images: PNG, JPG, WEBP
  • Données: CSV, JSON, YAML
  • Code: Python, JavaScript, etc.

🔐 Sécurité

  • Authentification JWT
  • Chiffrement des sessions
  • Pare-feu configuré
  • Headers de sécurité Nginx
  • Isolation des services
  • Permissions strictes

📖 Documentation complète


🛠 Dépannage rapide

Les services ne démarrent pas

# Vérifier les logs
sudo journalctl -u llmui-backend -n 50
sudo journalctl -u llmui-proxy -n 50

# Vérifier les permissions
ls -la /opt/llmui-core/

# Vérifier l'environnement Python
/opt/llmui-core/venv/bin/python --version
/opt/llmui-core/venv/bin/pip list

Nginx erreur 502

Le backend n'est pas démarré:

sudo systemctl status llmui-backend
sudo systemctl start llmui-backend

Ollama ne répond pas

ollama list
ollama ps
sudo systemctl status ollama
sudo systemctl restart ollama

Problèmes WSL spécifiques

# Redémarrer WSL depuis PowerShell (Windows)
wsl --shutdown
wsl

# Vérifier la version WSL
wsl --list --verbose

# Libérer de la mémoire
sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"

Consulter les logs d'Andy

# Log d'installation
less /tmp/andy_install.log

# Base de données SQLite
sqlite3 /tmp/andy_installation.db

📄 Mise à jour

# Sauvegarder la configuration
sudo cp /opt/llmui-core/config.yaml /opt/llmui-core/config.yaml.bak

# Arrêter les services
sudo systemctl stop llmui-backend llmui-proxy

# Mettre à jour le code
cd /path/to/llmui-core
git pull origin main

# Redéployer
sudo python3 andy_deploy_source.py

# Redémarrer
sudo python3 andy_start_services.py

🤝 Contribution

Ce projet est développé par Francois Chalut

Pour toute question ou contribution:


📜 Licence

© 2025 Francois Chalut.

AGPLv3 + common clause

Voir LICENSE pour plus de détails.


🌟 Philosophie du projet

LLMUI Core s'inscrit dans une vision de souveraineté numérique québécoise:

  • 🇨🇦 Local d'abord: Hébergement et contrôle complets
  • 🔓 Open Architecture: Extensible et adaptable
  • 🛡️ Sécurité par conception: Protection des données
  • 🤖 IA éthique: Transparence et consensus
  • 🌱 Autonomie technologique: Indépendance des GAFAM

📞 Support

Documentation: GitHub Wiki
Logs Andy: /tmp/andy_install.log
Base de données Andy: /tmp/andy_installation.db
Installation: /opt/llmui-core/


Développé avec 💙 au Québec par Francois Chalut

About

Plateforme d'orchestration IA multi-modèles avec consensus intelligent.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published