-
Notifications
You must be signed in to change notification settings - Fork 0
Inference
martialzinsou edited this page Sep 21, 2026
·
3 revisions

Déroulé pas à pas :
- Avant l'envoi — si une compétence est active dans le chat, son prompt système est inséré en tête de l'historique des messages.
-
L'utilisateur écrit et valide son message dans
ChatView. - L'interface met à jour la liste : le message utilisateur est ajouté, puis un bloc « assistant » vide est créé (ce bloc sera rempli au fil de l'eau).
-
ChatService.streamReply(history, baseURL)est appelé avec :- l'historique complet (messages système / user / assistant précédents),
- l'URL locale du moteur.
-
Requête HTTP envoyée :
POST http://127.0.0.1:<port>/v1/chat/completions { "model": "<nom du modèle>", "messages": [ ... ], "stream": true, "max_tokens": 512, "temperature": 0.7 } - Le moteur génère token par token (la tokenisation et l'inférence s'exécutent sur le CPU de la machine).
-
Réponse en streaming SSE — le serveur envoie des événements de la forme :
data: {"choices":[{"delta":{"content":"Bon"}}]} data: {"choices":[{"delta":{"content":"jour"}}]} ... data: [DONE] -
ChatServiceparse chaque événement et renvoie le texte token par token (fonction génératrice /yield). - Affichage accumulé : chaque token est concaténé au bloc « assistant », à l'écran, en direct.
Avant de parler, il faut que le moteur ait chargé le modèle en mémoire :

| Étape | Détail |
|---|---|
load(model) |
Appelé par la vue quand tu ouvres un modèle. |
| Moteur installé ? | Sinon, téléchargement et installation automatiques (Engine/). |
| Port libre | Recherche d'un port inutilisé (127.0.0.1). |
| Lancement | llama-server -m <fichier .gguf> --port <N> -c 2048 |
| Attente de disponibilité | Interrogation de GET /health toutes les 0,8 s, jusqu'à 120 s max. |
| Prêt | L'état passe à « Prêt » et l'onglet Chat devient utilisable. |
-
Moteur introuvable / crash : le message s'affiche avec un libellé
— (Erreur …)au lieu de la réponse. - Compétence impossible à lire : le prompt système est simplement omis ; la conversation reste utilisable.
- Réseau Hors-ligne : la Boutique affiche un message explicite ; l'app continue de fonctionner avec les modèles déjà installés.
Le streaming est la seule façon d'afficher une réponse : aucun écran « en attente » sans retour. Chaque token généré est rendu immédiatement, ce qui donne un effet de frappe en continu.
Voir aussi : Architecture, Compétences.
- Accueil
- Architecture
- Inférence d'un message
- Modèles et Boutique
- Agents autonomes
- Multimodal
- Compétences
- Persistance
- Code source
- Construction & lancement
- Dépannage
- Limites & évolutions
- Home
- Architecture
- Inference of a message
- Models and Store
- Autonomous agents
- Multimodal
- Skills
- Persistence
- Source code
- Build & launch
- Troubleshooting
- Limits & roadmap
Main repository — created by Martial Zinsou