Annotations

En plus de la fonctionnalité OCR de base, l'API Document AI de Mistral ajoute la fonctionnalité annotations, qui permet d'extraire des informations dans un format json structuré que vous fournissez.

Avant de commencer

Avant de commencer

Que pouvez-vous faire avec les Annotations ?

Plus précisément, elle propose deux types d'annotations :

  • bbox_annotation : fournit l'annotation des bboxes extraites par le modèle OCR (graphiques, figures, etc.) en fonction des exigences de l'utilisateur et du format d'annotation bbox/image fourni. L'utilisateur peut par exemple demander de décrire ou légender la figure.
  • document_annotation : renvoie l'annotation de l'ensemble du document en fonction du format d'annotation de document fourni.
annotations_explanation_graph
Fonctionnalités clés

Fonctionnalités clés

  • Étiquetage et annotation de données
  • Extraction et structuration d'informations spécifiques de documents dans un format JSON prédéfini
  • Automatisation de l'extraction de données pour réduire la saisie manuelle et les erreurs
  • Traitement efficace de grands volumes de documents pour les applications d'entreprise
Cas d'usage courants

Cas d'usage courants

  • Analyse de formulaires, classification de documents et traitement d'images, incluant texte, graphiques et signatures
  • Conversion de graphiques en tableaux, extraction de texte en petits caractères à partir de figures, ou définition de types d'images personnalisés
  • Capture de données de reçus, incluant les noms de marchands et les montants de transactions, pour la gestion des dépenses.
  • Extraction d'informations clés telles que les détails des fournisseurs et les montants à partir de factures pour une comptabilité automatisée.
  • Extraction de clauses et termes clés de contrats pour faciliter la révision et la gestion
Fonctionnement

Fonctionnement

annotations_workflow_graph
Annotations BBOX

Annotations BBOX

  • Tous types de documents :
    • Une fois l'OCR standard terminé, nous appelons un LLM capable de vision pour toutes les bboxes individuellement avec le format d'annotation fourni.
Annotation de document

Annotation de document

  • Tous types de documents :
    • Nous exécutons l'OCR et envoyons le texte de sortie en Markdown, accompagné des huit premières bounding boxes d'images extraites, à un LMM capable de vision, avec le format d'annotation fourni.
Formats acceptés

Formats acceptés

Vous pouvez utiliser notre API avec les formats de documents suivants :

Dans les extraits de code ci-dessous, nous considérerons le format OCR avec PDF.

Utilisation

Utilisation

Comment annoter

Comme mentionné précédemment, vous pouvez soit :

  • Utiliser la fonctionnalité bbox_annotation, permettant d'extraire des informations à partir des bboxes du document.
  • Utiliser la fonctionnalité document_annotation, permettant d'extraire des informations de l'ensemble du document.
    • En option, nous proposons également la possibilité d'ajouter un document_annotation_prompt, un prompt général de haut niveau pour guider et instruire sur la manière d'annoter le document.
  • Utiliser les deux fonctionnalités simultanément.

Voici un exemple d'utilisation de nos fonctionnalités d'annotation BBox.

Définir le modèle de données

Définir le modèle de données

Tout d'abord, définissez les formats de réponse pour BBox Annotation, en utilisant soit des schémas Pydantic ou Zod pour nos SDK, soit un schéma JSON pour un appel API curl.

Les schémas Pydantic/Zod/JSON acceptent des objets imbriqués, des tableaux, des énumérations, etc.

from pydantic import BaseModel

# BBOX Annotation response formats
class Image(BaseModel):
  image_type: str
  short_description: str
  summary: str

Vous pouvez également fournir une description pour chaque entrée ; la description sera utilisée comme information détaillée et instructions pendant l'annotation ; par exemple :

from pydantic import BaseModel, Field

# BBOX Annotation response formats
class Image(BaseModel):
  image_type: str = Field(..., description="The type of the image.")
  short_description: str = Field(..., description="A description in english describing the image.")
  summary: str = Field(..., description="Summarize the image.")
Démarrer la requête

Démarrer la requête

Ensuite, effectuez une requête et assurez-vous que la réponse respecte les structures définies en utilisant bbox_annotation_format défini sur les schémas correspondants :

import os
from mistralai.client import Mistral, DocumentURLChunk, ImageURLChunk, ResponseFormat
from mistralai.extra import response_format_from_pydantic_model

api_key = os.environ["MISTRAL_API_KEY"]

client = Mistral(api_key=api_key)

response = client.ocr.process(
    model="mistral-ocr-latest",
    document=DocumentURLChunk(
      document_url="https://arxiv.org/pdf/2410.07073"
    ),
    bbox_annotation_format=response_format_from_pydantic_model(Image),
    include_image_base64=True
  )
Exemple de sortie d'annotation BBox

Exemple de sortie d'annotation BBox

La fonctionnalité BBox Annotation permet d'extraire des données et d'annoter des images qui ont été extraites du document original. Ci-dessous, vous avez l'une des images d'un document extraite par notre processeur OCR.

bbox-image

L'image extraite est fournie dans un format encodé en base64.

{ 
  "image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGB{LONG_MIDDLE_SEQUENCE}KKACiiigAooooAKKKKACiiigD//2Q==..." 
}

Et vous pouvez annoter l'image avec le schéma de modèle que vous souhaitez. Ci-dessous, vous avez un exemple de sortie.

{
  "image_type": "nuage de points",
  "short_description": "Comparaison de différents modèles en fonction des performances et du coût.",
  "summary": "L'image se compose de deux nuages de points comparant divers modèles sur deux métriques de performance différentes par rapport à leur coût ou leur nombre de paramètres. Le graphique de gauche montre les performances sur MM-MT-Bench, tandis que le graphique de droite montre les performances sur LMSys-Vision ELO. Chaque point représente un modèle différent, l'axe des x indiquant le coût ou le nombre de paramètres en milliards (B) et l'axe des y indiquant le score de performance. La région ombrée dans les deux graphiques met en évidence le meilleur rapport performance/coût, Pixtral 12B étant positionné dans cette région dans les deux graphiques, suggérant qu'il offre un bon équilibre entre performances et efficacité des coûts. D'autres modèles comme Qwen-2-VL 72B et Qwen-2-VL 7B montrent également des performances élevées mais à des coûts variables."
}
Cookbooks

Cookbooks

Pour plus d'informations et de guides sur l'utilisation de l'OCR, nous disposons des cookbooks suivants :

FAQ

FAQ