Utiliser l'analyseur de mise en page Document AI avec le moteur de RAG Vertex AI

Cette page présente l'analyseur de mise en page Document AI et son utilisation avec le moteur RAG.

Document AI

Document AI est une plate-forme de traitement et de compréhension des documents qui convertit les données non structurées des documents en champs adaptés au stockage dans une base de données. Les données structurées permettent de générer des données que vous pouvez comprendre, analyser et utiliser.

Document AI est basé sur les produits de Vertex AI avec l'IA générative pour vous aider à créer des applications de traitement de documents évolutives, de bout en bout et basées sur le cloud. Aucune expertise spécialisée en machine learning n'est requise pour utiliser ces produits.

Analyseur de mise en page Document AI

L'analyseur de mise en page extrait des éléments de contenu du document, tels que du texte, des tableaux et des listes. L'analyseur de mise en page crée ensuite des segments contextuels qui facilitent la récupération d'informations dans les applications d'IA générative et de découverte.

Lorsqu'elle est utilisée pour la récupération et la génération de LLM, la mise en page du document est prise en compte lors du processus de segmentation, ce qui améliore la cohérence sémantique et réduit le bruit dans le contenu. Tout le texte d'un bloc provient de la même entité de mise en page, comme le titre, le sous-titre ou la liste.

Pour connaître les types de fichiers utilisés par la détection de mise en page, consultez la section Détection de mise en page par type de fichier.

Utiliser l'analyseur de mise en page dans le RAG Vertex AI

L'API ImportRagFiles est compatible avec l'analyseur de mise en page. Toutefois, les limites suivantes s'appliquent:

  • Saisissez la taille maximale de fichier de 20 Mo pour tous les types de fichiers.
  • Chaque fichier PDF ne peut contenir que 500 pages maximum.

Les quotas et les tarifs de Document AI s'appliquent.

Activer l'API Document AI

L'exemple de code suivant montre comment activer l'analyse avancée à l'aide de REST dans une commande curl et du SDK Vertex AI pour Python.

REST

Cet exemple de code montre comment importer des fichiers Cloud Storage à l'aide de l'analyseur de mise en page. Pour en savoir plus sur les options de configuration, comme l'importation de fichiers à partir d'une autre source, consultez ImportRagFilesConfig.

Remplacez les variables utilisées dans l'exemple de code:

  • PROJECT_ID: ID de votre projet.
  • LOCATION: région dans laquelle traiter votre requête.
  • RAG_CORPUS_ID: ID de la ressource du corpus RAG.
  • GCS_URIS: liste d'emplacements Cloud Storage. Par exemple: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: chemin d'accès à la ressource du processeur d'analyseur de mise en page créé. Exemple : "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE : (facultatif) Nombre de jetons que chaque fragment doit avoir.
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Corps JSON de la requête :

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": GCS_URIS
    },
    "file_parsing_config": {
      "layout_parser": {
        "processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
      }
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE
    },
  }
}

Pour envoyer votre demande, choisissez l'une des options suivantes.

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante:

curl -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.

Remplacez les variables utilisées dans l'exemple de code:

  • PROJECT_ID: ID de votre projet.
  • LOCATION: région dans laquelle traiter votre requête.
  • RAG_CORPUS_ID: ID de la ressource du corpus RAG.
  • GCS_URIS: liste d'emplacements Cloud Storage. Par exemple: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: chemin d'accès à la ressource du processeur d'analyseur de mise en page créé. Exemple : "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE : (facultatif) Nombre de jetons que chaque fragment doit avoir.
from vertexai.preview import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/<var>PROJECT_ID</var>/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "GCS_URIS"]
# Supports Cloud Storage and Google Drive Links
layout_parser_processor_name = "projects/PROJECT_ID/locations/<var>LOCATION</var>/processors/LAYOUT_PARSER_PROCESSOR_NAME"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")

response = rag.import_files(
    corpus_name=RAG_CORPUS_ID,
    paths=paths,
    chunk_size=512,  # Optional
    chunk_overlap=100,  # Optional
    max_embedding_requests_per_min=900,  # Optional
    layout_parser=rag.LayoutParserConfig(
        processor_name=layout_parser_processor_name,
        max_parsing_requests_per_min=120,  # Optional
    )
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.

Activer l'analyseur de mise en page

Les exemples de code montrent comment activer votre analyseur de mise en page.

Votre base de connaissances (corpus) RAG

Si vous ne disposez pas d'un corpus RAG, créez-en un. Pour en savoir plus, consultez Créer un exemple de corpus RAG.

Si vous disposez déjà d'un corpus RAG, les fichiers existants importés sans analyseur de mise en page ne seront pas réimportés lorsque vous importerez des fichiers à l'aide de l'analyseur de mise en page. Si vous souhaitez utiliser un analyseur de mise en page avec vos fichiers, supprimez-les d'abord. Pour en savoir plus, consultez Exemple de suppression d'un fichier RAG.

Importer des fichiers à l'aide de l'analyseur de mise en page

Vous pouvez importer des fichiers et des dossiers à partir de différentes sources à l'aide de l'analyseur de mise en page.

REST

L'exemple de code montre comment importer des fichiers Cloud Storage à l'aide de l'analyseur de mise en page. Pour en savoir plus sur les options de configuration, y compris l'importation de fichiers à partir d'une autre source, consultez la documentation de référence sur ImportRagFilesConfig.

Avant d'utiliser les données de requête ci-dessous, remplacez les variables suivantes utilisées dans l'exemple de code:

  • PROJECT_ID: ID de votre projet.
  • LOCATION: région dans laquelle traiter la requête.
  • RAG_CORPUS_ID: ID de la ressource du corpus RAG.
  • GCS_URIS: liste d'emplacements Cloud Storage. Par exemple: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: chemin d'accès à l'outil de traitement de l'analyseur de mise en page créé. Exemple : "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE : (facultatif) Nombre de jetons que chaque fragment doit avoir.
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Corps JSON de la requête :

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "file_parsing_config": {
      "layout_parser": {
        "processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
      }
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE
    },
  }
}

Pour envoyer votre requête, choisissez l'une des options de codage suivantes:

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante:

curl -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.

Remplacez les variables suivantes utilisées dans l'exemple de code:

  • PROJECT_ID: ID de votre projet.
  • LOCATION: région dans laquelle traiter la requête.
  • RAG_CORPUS_ID: ID de la ressource du corpus RAG.
  • GCS_URIS: liste d'emplacements Cloud Storage. Par exemple: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: chemin d'accès à l'outil de traitement de l'analyseur de mise en page créé. Exemple : "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE : (facultatif) Nombre de jetons que chaque fragment doit avoir.
from vertexai.preview import rag
import vertexai

PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Supports Cloud Storage and Google Drive links
layout_parser_processor_name = "LAYOUT_PARSER_PROCESSOR_NAME"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    chunk_size=512,  # Optional
    chunk_overlap=100,  # Optional
    max_embedding_requests_per_min=900,  # Optional
    layout_parser=rag.LayoutParserConfig(
        processor_name=layout_parser_processor_name,
        max_parsing_requests_per_min=120,  # Optional
    )
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.

Requête de récupération

Lorsqu'un utilisateur pose une question ou fournit une requête, le composant de récupération du RAG effectue une recherche dans sa base de connaissances afin de trouver des informations pertinentes pour la requête.

Pour voir un exemple de récupération de fichiers RAG à partir d'un corpus en fonction d'un texte de requête, consultez la section Requête de récupération.

Prédiction

La prédiction génère une réponse ancrée à l'aide des contextes récupérés. Pour obtenir un exemple, consultez la section Génération.

Étape suivante