SPB Git forge

spb/immbot-ai

Public
1commits 1branches 0releases
1.5 MBsize
maindefault branch
20 days agolast push
TypeScript 98.3% CSS 0.9% Shell 0.7%
2.4 KB

# Installation — Immbot AI

# Prérequis

  • Node.js ≥ 24 (utilise node:sqlite natif et l'exécution TypeScript intégrée — Node 25 recommandé)
  • pnpm (npm i -g pnpm)
  • Les dossiers de cours IMM1003-20/ et IMM1033-20/ accessibles (par défaut : à côté de immbot-ai/)
  • Une clé OpenRouter (https://openrouter.ai/keys) pour le chat

# Installation automatique

bash
./scripts/setup.sh

Fait : pnpm install → création de .env (avec AUTH_SECRET généré) → pnpm seed → pnpm ingest.

# Installation manuelle

bash
pnpm install
cp .env.example .env        # puis renseigner OPENROUTER_API_KEY et AUTH_SECRET
pnpm seed                   # admin initial + cours + prompts + 140 cartes + 129 questions + 6 examens
pnpm ingest                 # parse les .tex des cours → 2 000+ fragments indexés (FTS5 + embeddings)
pnpm dev                    # http://localhost:3070

Premier pnpm ingest : téléchargement du modèle d'embeddings (~120 Mo) dans data/models/, puis tout fonctionne hors-ligne.

# Variables d'environnement

Voir .env.example. Essentielles :

Variable Rôle
OPENROUTER_API_KEY Clé serveur (jamais exposée au navigateur)
AUTH_SECRET Générer : openssl rand -hex 32
DATABASE_PATH SQLite (défaut ./data/immbot.db)
INITIAL_ADMIN_USERNAME / INITIAL_ADMIN_PASSWORD Amorçage seulement — changement forcé
FORCE_INITIAL_ADMIN_PASSWORD_CHANGE true (défaut)
DISABLE_INITIAL_ADMIN true en production une fois le vrai compte créé
SIGNUP_ACCESS_CODE Code exigé à l'inscription étudiante (vide = libre)
COURSE_IMM1003_PATH / COURSE_IMM1033_PATH Dossiers sources des cours

# Compte administrateur initial

Créé par pnpm seed : admin / admin123, haché bcrypt (coût 12), indicateur must_change_password → l'interface force le remplacement à la première connexion et refuse admin123 comme mot de passe permanent. Une bannière d'avertissement reste visible tant que le compte d'amorçage est actif. Procédure recommandée en production :

  1. se connecter, changer le mot de passe ;
  2. créer son compte personnel (rôle admin via Sécurité) ;
  3. mettre DISABLE_INITIAL_ADMIN=true et désactiver le compte admin dans l'admin.

# Vérification

bash
./scripts/verify.sh   # tsc + 34 tests + évaluation RAG (rappel/refus/isolation)