Assistant IA local

L'assistant est un modèle de langage exécuté sur la machine de l'utilisateur, via Ollama. Il n'a accès ni au DOM, ni à la base, ni au disque, ni au réseau : il n'appelle que des tâches, exactement celles du moteur de workflows. Cette page décrit l'installation, le panneau et le périmètre exact de ce que le modèle peut faire.

Prérequis

ÉlémentValeur
RuntimeOllama, écoutant sur 127.0.0.1:11434
ModèleAucun modèle imposé. Le connecteur liste ceux installés via /api/tags et l'utilisateur choisit.
Fenêtre de contexte32k. Les résultats d'outils sont résumés pour ne pas la saturer.
RéseauAucun. Le transport refuse toute adresse non locale.

Installer Ollama

Ollama est le moteur local qui sert le modèle. IsoFind ne l'embarque pas : il a sa propre licence et son propre rythme de versions, et vit en dehors de l'application, exactement comme les sources documentaires externes.

ÉtapeDétail
Téléchargement Depuis ollama.com/download, pour Windows, macOS ou Linux. Sous Windows, l'installeur enregistre Ollama comme service en arrière-plan lancé avec la session.
La commande ollama L'installeur l'ajoute au PATH du système. Un nouveau terminal résout alors ollama --version ; sinon, l'entrée de PATH n'a pas été prise en compte et il faut rouvrir la session.
Stockage des modèles Les modèles tirés sont volumineux. Ils vont dans %USERPROFILE%\\.ollama\\models sous Windows, ~/.ollama/models ailleurs. Définir OLLAMA_MODELS pour les déplacer sur un autre disque avant de tirer.
Adresse du service Ollama écoute sur 127.0.0.1:11434. C'est l'adresse qu'attend le connecteur d'IsoFind ; la laisser locale. L'exposer sur 0.0.0.0 romprait la posture souveraine et air-gap sur laquelle l'assistant est bâti.
ollama --version # confirme que la commande est sur le PATH ollama pull llama3.1:8b # ou tout autre modele sachant appeler des outils ollama list # les modeles qu'IsoFind listera via /api/tags ollama serve # demarre le moteur si le service n'est pas deja actif

Modèles recommandés

IsoFind n'impose aucun modèle, mais l'assistant ne fonctionne qu'avec un modèle capable d'appeler des outils : il agit en invoquant des tâches, jamais en produisant du texte que l'application devrait analyser. Un modèle incapable d'émettre un appel d'outil répond en texte sans rien déclencher : le panneau affiche une réponse, et aucune tâche n'est exécutée.

ModèleNote
qwen2.5:14b Le choix fiable sur une carte de 12 Go, où il tient entièrement en VRAM. À l'essai, il appelle core.graphique et core.resume de façon sûre.
llama3.1:8b Plus léger, adapté aux machines disposant de moins de mémoire. Appelle les outils de façon fiable.
qwen3:14b Déconseillé pour cet assistant : à l'essai, il n'appelait pas core.graphique ni core.resume sous le même jeu d'outils que les autres géraient.
Un modèle qui raisonne bien en conversation n'est pas forcément un modèle qui appelle bien les outils. Les deux aptitudes sont distinctes, et l'assistant a besoin de la seconde. Préférer un modèle confirmé sur cette charge précise à un modèle plus récent ou plus gros qui n'a pas été mis à l'épreuve contre la liste des tâches.

Certains modèles écrivent les appels d'outils sous forme de fragments de texte plutôt que d'objets structurés, ce qui explique que le flux soit coupé quand des outils sont offerts (voir plus bas). Le nombre d'outils présentés est aussi réduit en mode conversation, un jeu trop large saturant un petit modèle au point qu'il cesse d'appeler quoi que ce soit.

Aucune clé d'API, aucun compte, aucune connexion sortante. En mode air-gap, l'assistant fonctionne à l'identique dès lors qu'Ollama et le modèle sont présents sur la machine.

Ce que le modèle peut faire

Le modèle appelle des tâches, et rien d'autre. Il n'a aucun pouvoir qu'un workflow n'ait déjà, et tout ce qu'il fait passe par le même chemin, le même journal et le même registre signé.

CapacitéPar quel outil
Interroger la base en lecturecore.sql
Calculer des statistiques par groupecore.resume
Agréger des analyses par échantilloncore.analyses
Tracer un graphiquecore.graphique
Chercher des correspondancescore.correspondance
Afficher une cartecore.carte
Générer un rapportcore.rapport

Ce qu'il ne peut pas faire

  • Aucun accès au DOM : il ne clique pas, ne remplit pas de formulaire, ne navigue pas.
  • Aucun accès direct à la base, au disque, ni à fetch.
  • Aucune tâche du noyau ne supprime de données.
  • Aucune donnée ne sort de la machine, y compris la campagne active, qui n'est jamais transmise au connecteur.
Ce que le modèle peut atteindre se limite à la liste des tâches enregistrées. Cette liste est déclarée par le cœur et par les plugins installés : changer de modèle, ou en installer un plus récent, ne l'élargit pas. Ajouter un outil suppose de déclarer une tâche.

Le calcul ne passe jamais par le modèle

Le modèle ne calcule pas. Il appelle core.resume, qui rend n, moyenne, 2SD, min et max par groupe, calculés en code sur la totalité des lignes.

Une moyenne estimée par un modèle sur deux cents valeurs comporte des écarts, souvent sur les dernières décimales, qui ne se repèrent pas à la relecture. Les statistiques sont donc calculées par du code, jamais par le modèle. La consigne est inscrite dans le prompt et rappelée dans la notice de chaque outil concerné.

Résumé des résultats

Quand un outil rend un tableau, le modèle ne reçoit pas les données mais leur forme : nombre de lignes, colonnes, statistiques, et douze lignes d'exemple. L'utilisateur, lui, voit le tableau complet à l'écran.

Le modèle reçoitL'utilisateur voit
Requête de 400 lignesForme : 400 lignes, 6 colonnes, statistiques, 12 lignes d'exempleLe tableau complet, trié et exportable
Coût en jetonsEnviron neuf fois moindreSans effet

Sans ce résumé, un seul appel d'outil suffirait à pousser le modèle hors de sa fenêtre de 32k, et la conversation perdrait son début sans prévenir.

Panneau Assistant

Le panneau core.assistant affiche le fil de conversation, les appels d'outils avec leurs arguments, et les résultats rendus (tableaux, graphiques, cartes).

Le texte de réponse arrive en flux (NDJSON lu ligne par ligne). Le streaming est désactivé quand des outils sont offerts : un appel d'outil arrive en fragments, et le modèle l'écrit en texte. Le reconstituer à la volée obligerait à deviner, à chaque fragment, si l'on est au milieu d'un objet JSON ou d'une phrase. Le tour d'appel d'outil est bref ; c'est le tour de réponse qui est long, et celui-là est en flux.

Deux modes

Mode planMode agent
Le modèleProduit un workflow, ne touche à rienAppelle les tâches directement
Relecture humaineAvant exécutionAprès coup
RejouableOui, le workflow est un artefactNon
UsageContextes régulés, livrables clientsExploration, itération rapide

Le détail est en page Mode plan et mode agent.

Un modèle de langage n'est pas déterministe : la même question peut produire une autre séquence d'appels. Le journal enregistre ce qui a été fait, il ne permet pas de rejouer la séquence à l'identique. Le mode plan couvre ce second besoin, puisqu'il produit un workflow.

Pages liées