Le mode vision est automatique par défaut. Si le modèle que vous avez configuré a le support de la vision activé, les documents téléchargés utiliseront le pipeline de traitement le plus riche disponible pour ce format.
Matrice de support des formats
Chaque format de document dispose d’un pipeline de traitement dédié. Le comportement change selon que le modèle supporte la vision.| Format | Extraction de texte | Mode Vision (supports_vision=ON) | Secours (supports_vision=OFF) |
|---|---|---|---|
| pdfplumber (texte page par page) | Traitement intelligent : les pages riches en texte extraient le texte + les images intégrées (efficace en tokens) ; les pages numérisées/image uniquement sont rendues en PNG pleine page via PyMuPDF | Extraction de texte uniquement ; l’agent lit via l’outil read_uploaded_file | |
| DOCX / DOC | markitdown (conversion Markdown) | Images intégrées extraites avec marqueurs positionnels [Figure N] via python-docx | Extraction de texte uniquement ; images perdues |
| PPTX / PPT | markitdown (texte de chaque diapositive) | Images intégrées extraites avec marqueurs [Figure N] et séparateurs de diapositives via python-pptx | Extraction de texte uniquement ; visuels de diapositive perdus |
| XLSX / XLS | markitdown (structure de tableau préservée) | Identique au mode texte (les tableaux ne bénéficient pas de la vision) | Identique |
| Images (JPG, PNG, GIF, WebP) | N/A | Envoyées en tant que blocs de contenu vision image_url | Annotées comme [Attached image: filename] — le modèle est conscient mais ne peut pas voir le contenu |
| Fichiers texte (TXT, MD, PY, JS, HTML, CSV, JSON) | Lecture / analyse directe | N/A (le texte est du texte) | Identique |
Fonctionnement
Lorsqu’un utilisateur télécharge un document dans une conversation, FIM One exécute un pipeline de traitement basé sur le type de fichier et les capacités du modèle :Détection du type de fichier
Le système identifie le format du document par extension de fichier et type MIME, puis sélectionne le pipeline d’extraction approprié. Chaque fichier téléchargé est marqué avec son UUID
file_id, qui est injecté dans le contexte du message afin que l’agent puisse y accéder directement via l’outil read_uploaded_file.Extraction de texte
Indépendamment du support de la vision, le système extrait toujours le contenu textuel. Pour les PDF, pdfplumber est utilisé pour l’extraction page par page. Les formats Office utilisent markitdown pour la conversion en Markdown. Les fichiers texte sont lus directement.
Traitement de la vision (si supporté)
Lorsque le modèle a
supports_vision=true et que le document est d’un type supporté :- PDF (traitement intelligent) : Chaque page est analysée — les pages riches en texte extraient le texte plus les images intégrées séparément (économisant des tokens), tandis que les pages numérisées ou contenant uniquement des images sont rendues en PNG pleine page à la résolution configurée pour une fidélité maximale
- DOCX / PPTX : Les images intégrées sont extraites du XML du document avec des marqueurs de position
[Figure N] - Images : Transmises directement en tant que blocs de contenu de vision
Assemblage du contenu
Le texte extrait et le contenu de vision sont assemblés dans le format de message attendu par le modèle. Le texte et les images sont entrelacés afin que le modèle puisse corréler les informations visuelles et textuelles.
Persistance multi-tours
Le contenu de vision des fichiers téléchargés est stocké dans les métadonnées du message et persiste à travers les tours de conversation. Que les images proviennent d’une photo téléchargée par l’utilisateur ou aient été extraites d’un document, elles restent disponibles pour que le modèle les référence dans les messages suivants.
Configuration du Mode Vision
Il existe trois façons de contrôler le traitement des documents, énumérées de la plus spécifique à la plus générale.1. Basculement par modèle
Accédez à Admin > Models > Edit > Advanced et basculez la case à cocher Vision Support. C’est le contrôle principal — il indique au système si un modèle spécifique peut accepter du contenu image.2. Variable d’environnement global
DéfinissezDOCUMENT_PROCESSING_MODE dans votre environnement pour remplacer le comportement par défaut au niveau du système :
3. Paramètre par Requête
Passez le paramètredoc_mode dans l’API de chat pour contrôler le traitement pour une seule requête :
Le mode
auto (par défaut) utilise la vision lorsque le modèle a supports_vision=true et que le document est un type qui bénéficie du traitement par vision. C’est le paramètre recommandé pour la plupart des déploiements.Variables d’environnement
| Variable | Par défaut | Description |
|---|---|---|
DOCUMENT_PROCESSING_MODE | auto | Stratégie de traitement : auto (utiliser la vision si disponible), vision (toujours afficher), text (ne jamais afficher) |
DOCUMENT_VISION_DPI | 150 | Résolution du rendu PDF en points par pouce. Les valeurs plus élevées produisent une meilleure qualité mais consomment plus de jetons |
DOCUMENT_VISION_MAX_PAGES | 20 | Nombre maximum de pages PDF à afficher sous forme d’images. Les pages au-delà de cette limite reviennent à l’extraction de texte |
Considérations sur le coût des jetons
Le contenu visuel consomme beaucoup plus de jetons que le texte brut. Comprendre les compromis de coûts vous aide à configurer le système de manière appropriée. Estimations approximatives :| Scénario | Coût approximatif en jetons |
|---|---|
| Une page PDF à 150 DPI | 1 000 — 2 000 jetons |
| PDF de 10 pages en mode vision | 10 000 — 20 000 jetons |
| Même PDF de 10 pages en texte uniquement | 2 000 — 5 000 jetons |
| Une image DOCX intégrée | 500 — 1 500 jetons |
Conseils d’optimisation des coûts
- Définissez
DOCUMENT_VISION_MAX_PAGESà une limite raisonnable (par exemple, 10) pour un usage général - Réduisez
DOCUMENT_VISION_DPIde 150 à 100 si la qualité d’image est acceptable — cela réduit la consommation de jetons d’environ 40% - Utilisez le mode
textpour les documents où la mise en page n’a pas d’importance (par exemple, rapports en texte brut, feuilles de calcul) - Utilisez le mode
visionde manière sélective pour les documents où la mise en page visuelle est critique (par exemple, factures, formulaires, diagrammes)
Décisions de conception et limitations
Pourquoi pas LibreOffice pour le rendu pleine page ?
LibreOffice peut produire des rendus de page pixel-parfaits des fichiers DOCX et PPTX, mais cela ajoute environ 4 GB à l’image Docker. À la place, FIM One extrait les images intégrées directement du XML du document en utilisant python-docx et python-pptx — les deux sont déjà des dépendances transitives de markitdown, donc cela n’ajoute aucun surcoût d’installation supplémentaire. Le compromis : Nous obtenons les images intégrées réelles en qualité complète mais perdons le contexte de mise en page. Les marqueurs positionnels[Figure N] aident le LLM à corréler le texte et les images, mais la relation spatiale est approximative plutôt qu’exacte.
Qu’est-ce qui est perdu sans LibreOffice ?
| Élément perdu | Impact |
|---|---|
| Formatage du texte (gras, italique, tailles de police) | Le LLM reçoit uniquement du texte brut |
| Positionnement spatial image-texte | Les marqueurs [Figure N] se rapprochent mais ne montrent pas le placement exact |
| Graphiques générés par Office (non intégrés en tant qu’images) | Les graphiques définis en XML ne sont pas extraits |
| En-têtes et pieds de page dans DOCX | Partiellement préservés par markitdown |
Vision PDF vs. Vision DOCX/PPTX
La qualité du traitement de la vision varie selon le format :- PDF — Traitement intelligent page par page. Les pages riches en texte extraient le contenu textuel plus les images intégrées séparément, ce qui est nettement plus efficace en termes de jetons. Les pages numérisées ou contenant uniquement des images (par exemple, documents photographiés, contrats numérisés) sont rendues sous forme d’images PNG pleine page pour une fidélité visuelle maximale. Cette approche adaptative équilibre automatiquement la qualité et le coût des jetons.
- DOCX / PPTX — Contenu textuel plus images intégrées extraites. Bon pour la plupart des documents professionnels, mais la mise en page et le formatage ne sont pas préservés.
Secours Automatique
Si un modèle est configuré avec support de la vision mais rejette réellement le contenu d’image à l’exécution, le système réessaie automatiquement la demande sans images de document. Les images téléchargées par l’utilisateur (par exemple, les captures d’écran jointes par l’utilisateur) sont conservées lors de la nouvelle tentative — seules les images dérivées de documents sont supprimées.Ce mécanisme de secours empêche les défaillances de tâches causées par des paramètres de vision mal configurés. Si vous voyez un modèle revenir régulièrement au secours, vérifiez sa configuration de support de vision dans Admin > Models.
Garde-fous de sécurité
Protection de l’intégrité des fichiers
Lorsque l’agent ne peut pas lire un fichier (par exemple, un PDF basé sur des images sans vision activée), une barrière de sécurité au niveau du système empêche l’agent de substituer le contenu d’autres fichiers. Sans cette protection, l’agent pourrait lire un fichier accessible différent et présenter son contenu comme s’il provenait du document cible. La barrière de sécurité garantit que lorsqu’un fichier n’est pas lisible, l’agent signale honnêtement la limitation plutôt que de fabriquer une réponse à partir de sources non liées.Guidance d’erreur descriptive
Lorsqu’un fichier ne peut pas être lu par l’outilread_uploaded_file, le message d’erreur inclut :
- Le type de fichier détecté et la raison pour laquelle il n’a pas pu être traité
- Une suggestion d’activer la vision sur le modèle si le fichier est basé sur une image
- Les approches alternatives que l’utilisateur peut essayer (par exemple, exporter vers un format différent)
Meilleures pratiques
Pour les administrateurs
-
Activez la vision de manière sélective. N’activez
supports_visionque sur les modèles qui supportent véritablement l’entrée d’images. Une mauvaise configuration gaspille des tokens dans le cycle de retry de secours. -
Commencez par le mode
auto. Le comportement par défaut est correct pour la plupart des déploiements — la vision est utilisée quand elle est bénéfique et disponible. -
Surveillez l’utilisation des tokens. Après avoir activé la vision, observez le tableau de bord de consommation des tokens. Si les coûts augmentent de manière inattendue, ajustez
DOCUMENT_VISION_MAX_PAGESouDOCUMENT_VISION_DPI. -
Utilisez l’image sandbox pré-construite. Le
Dockerfile.sandboxinclut les packages de data-science courants (pdfplumber, Pillow, pandas, etc.) nécessaires pour l’exécution de code IA sur les documents. Construisez-la viadocker composeou manuellement avecdocker build -f Dockerfile.sandbox -t fim-sandbox .pour assurer que l’exécution de code fonctionne dans les conteneurs--network=none.
Pour les utilisateurs finaux
- Le PDF donne les meilleurs résultats. Lorsque la fidélité visuelle est importante, exportez vos documents Office en PDF avant de les télécharger.
- Les feuilles de calcul conviennent telles quelles. Les fichiers XLSX sont extraits sous forme de tableaux structurés — la vision n’ajoute aucun avantage.
- Les grands PDF peuvent être tronqués. Si votre document dépasse la limite
DOCUMENT_VISION_MAX_PAGES, seules les N premières pages seront rendues sous forme d’images. Les pages restantes sont toujours disponibles sous forme de texte extrait. - La qualité de l’image est importante. Pour les téléchargements d’images autonomes, utilisez des originaux haute résolution si possible. Les images compressées ou basse résolution réduisent la capacité du modèle à extraire les détails.