Aller au contenu

Comment mintbot gère les fichiers

Quand tu envoies une photo, un document, un message vocal, un tableur, une capture d'écran ou un PDF à ton agent mintbot — via Telegram, le panneau web ou l'API —, le fichier est stocké sur le VPS de ton propre agent, et nulle part ailleurs. Il y reste aussi longtemps que tu le souhaites, et le LLM reçoit une copie de travail préparée pour lui.

C'est un choix de conception discret aux conséquences importantes. Il mérite d'être expliqué, car c'est l'un des points où mintbot se démarque le plus des chats IA grand public.

Schéma : un fichier envoyé est enregistré tel quel sur le VPS de ton agent ; un adaptateur choisi selon le type de fichier en fait une copie de travail pour le LLM
L’original reste intact sur ton VPS — le modèle ne voit jamais qu’une copie de travail préparée pour lui.

Le parcours, de bout en bout

  1. Le fichier arrive sur le VPS de l'agent. Un PDF glissé dans le panneau web va directement sur ton VPS. Une photo ou un fichier envoyé dans Telegram est récupéré auprès de Telegram par le bot mintbot et transmis aussitôt à ton VPS — simplement relayé, jamais stocké de façon centralisée. L'API locale de l'agent examine la signature du fichier (ses « magic bytes ») pour savoir de quel type de fichier il s'agit vraiment (téléphones et navigateurs se trompent d'étiquette étonnamment souvent), calcule son empreinte SHA-256 et l'écrit dans /var/lib/mintbot-agent/uploads/<shard>/<sha256>.<ext>. Une ligne est ajoutée à un catalogue local avec la source (telegram / panel / api), l'identifiant de l'expéditeur, le type MIME et le nom de fichier d'origine. Si tu envoies deux fois le même fichier, il n'est stocké qu'une seule fois.

    Si la conversation se déroule dans un projet, l'agent en dépose aussi une copie dans le dossier uploads/ de ce projet, pour pouvoir travailler sur le fichier juste à côté du reste du projet.

  2. L'original est sacré. À partir de là, rien dans mintbot ne modifie le fichier stocké. Les adaptateurs qui le préparent pour le LLM ne produisent que des copies de travail — JPEG redimensionnés, texte décodé. L'original, identique à l'octet près, reste sur le disque jusqu'à ce que tu le supprimes. Pas de stockage central, pas de délai de conservation, pas de fuite d'un agent à l'autre : chaque VPS d'agent ne connaît que les fichiers de son propre propriétaire.

  3. Le modèle reçoit une version faite pour lui. Quand l'agent montre le fichier au LLM, un petit répartiteur choisit le bon adaptateur d'après le type MIME et l'extension :

    Adaptateur Prend en charge Ce que reçoit le modèle
    Image JPG, PNG, WebP, GIF, HEIC (iPhone), AVIF, TIFF, BMP Redimensionnée à 1568 px sur le grand côté, réencodée en JPEG q85 et intégrée directement à la requête. Le décodage tourne dans un processus séparé et éphémère, avec un budget mémoire adapté à ton VPS, pour qu'une photo énorme ne puisse pas ralentir l'agent
    PDF .pdf jusqu'à 32 Mo Intégré tel quel au format PDF — Claude lit directement le texte et la mise en page. Un PDF plus gros reste sur le disque et l'agent en extrait lui-même le texte (par exemple avec pdftotext)
    Texte .txt, .md, .csv, .json, .yaml, .svg, code source (.py, .js, .ts, .go, .rs, …), journaux, diffs Décodé en UTF-8 (latin-1 en secours) et intégré jusqu'à 500 Ko ; au-delà, le fichier est tronqué et l'original complet reste sur le disque
    Audio .mp3, .ogg, .opus, .m4a, .wav, .flac, .aac Les messages vocaux de Telegram et du micro du panneau arrivent déjà transcrits. Un fichier audio n'est pas encore transcrit automatiquement — l'agent reçoit son emplacement et des instructions, et le transcrit quand tu le lui demandes
    Vidéo .mp4, .mov, .webm, .mkv, .avi Pas encore d'extraction automatique. À ta demande, l'agent installe ffmpeg (en t'indiquant d'abord l'espace disque nécessaire) et extrait lui-même des images ou la piste audio
    Documents Office .docx, .xlsx, .pptx, anciens .doc / .xls / .ppt, .odt, .ods, .odp Pas encore d'extraction automatique. À ta demande, l'agent installe une petite bibliothèque de lecture et en extrait le texte
    Inconnu Tout le reste Une note avec le nom, le type, la taille et l'emplacement du fichier sur le disque, plus ses premiers octets en hexadécimal — assez pour que le modèle reconnaisse le fichier et l'ouvre avec ses outils si la tâche l'exige

    Chaque copie de travail est mise en cache à côté de l'original sous <sha256>.cache/v<N>.json : la fois suivante où le modèle a besoin du fichier, il est chargé instantanément. Quand un adaptateur change, le cache se reconstruit tout seul.

  4. Pas d'URL à durée limitée dans le contexte du modèle. Quand une image ou un PDF part vers le LLM, il est intégré à la même requête — aucune URL qui pourrait renvoyer une erreur 404 plus tard, aucun lien signé avec date d'expiration. Quand le modèle n'a besoin que d'un pointeur, l'URL est une adresse interne https://agent<id>.<domain>/<panel_token>/api/local/uploads/<upload_id>/raw — protégée par le jeton de panneau de ton agent et valable tant que le fichier est sur le disque.

Pourquoi c'est mieux que les chats IA grand public

Quand tu envoies une photo à ChatGPT ou un PDF à Claude.ai, le fichier part dans le stockage du fournisseur, rattaché à cette conversation, et c'est la politique de conservation du fournisseur qui décide quand il disparaît. Passé un certain délai, le fichier n'existe plus, même si tu vois encore la conversation où il se trouvait. Changer de fournisseur, c'est repartir de zéro.

Un piège classique des bots Telegram rend la différence concrète. Telegram conserve un file_id permanent pour chaque photo, mais le lien de téléchargement qu'un bot obtient pour celle-ci n'est garanti que pendant une heure environ. Les bots qui ne gardent que ce lien renvoient une erreur 404 pour la photo d'hier. mintbot copie le fichier dans l'archive de ton agent dès son arrivée — et si tu réponds à une photo plus ancienne, il la récupère de nouveau grâce au file_id permanent. Dès lors, la photo est à toi.

Trois conséquences découlent de cette conception :

  • Les fichiers t'appartiennent, pas au fournisseur du LLM. Si tu passes de Claude à GPT le mois prochain, ton historique de fichiers te suit, intact, parce qu'il est sur ton VPS — pas dans le stockage d'un fournisseur.
  • Tu peux reposer la question plus tard. « Il y a trois mois, tu as analysé un contrat pour moi — peux-tu le comparer à cette nouvelle version ? » fonctionne, parce que l'original est toujours sur le disque. Avec un chat grand public, l'ancien fichier a généralement disparu.
  • Le modèle reçoit toujours la version qu'il exploite le mieux. Les modèles de vision reçoivent le JPEG redimensionné, les lecteurs de texte de l'UTF-8, les lecteurs de PDF un vrai PDF. Les téléphones peuvent envoyer du HEIC et ça marche, tout simplement — le décodeur d'images charge le plugin HEIF de Pillow, et la vérification de signature repère les téléphones qui étiquettent à tort le fichier comme application/octet-stream.

Où gérer tes fichiers

Le panneau web de l'agent comprend un gestionnaire de fichiers, dans Paramètres → Gestionnaire de fichiers. Il parcourt tout le VPS de l'agent ; l'archive des fichiers reçus, dans /var/lib/mintbot-agent/uploads/, est la partie que tes conversations remplissent. De là, tu peux :

  • Parcourir les dossiers, télécharger, renommer, déplacer ou supprimer des fichiers
  • Créer des dossiers
  • Glisser-déposer de nouveaux fichiers — envoyés par morceaux, jusqu'à 4 Go par fichier
  • Modifier de petits fichiers texte (jusqu'à 1 Mo) directement dans le navigateur

Limites de taille : un fichier joint dans le chat peut peser jusqu'à 500 Mo ; Telegram ne laisse les bots récupérer que des fichiers de 20 Mo au maximum ; le Gestionnaire de fichiers accepte jusqu'à 4 Go par fichier. Au-delà, la seule limite est ton disque — mintbot garde toujours un peu d'espace libre pour que le serveur continue de tourner. Si le disque se remplit, l'agent te prévient et te donne un lien direct vers le Gestionnaire de fichiers pour faire de la place — ou demande simplement à l'agent de supprimer les anciens fichiers.

Supprimer un fichier dans le Gestionnaire de fichiers l'efface du disque, et l'agent ne peut plus le montrer au LLM. C'est ce qui fait de l'original « le tien » : toi seul as le droit de le supprimer.

En résumé

La plupart des chats IA traitent tes fichiers comme un contexte de conversation jetable. mintbot les traite comme tes données — stockées sur ton VPS, à toi, et remises à la demande dans la forme exacte dont le modèle a besoin à ce moment-là. Bon nombre des fonctionnalités les plus intéressantes de mintbot reposent sur ce socle.