Utiliser l'analyseur LLM

Cette page explique comment utiliser l'analyseur LLM du moteur RAG de Vertex AI.

Introduction

Le moteur RAG de Vertex AI utilise des LLM pour analyser les documents. Les LLM peuvent traiter efficacement les documents de différentes manières :

  • Comprendre et interpréter le contenu sémantique dans différents formats
  • Récupérer des fragments de documents pertinents
  • Extraire des informations utiles des documents
  • Identifier les sections pertinentes des documents
  • Résumer avec précision des documents complexes
  • Comprendre les éléments visuels et interagir avec eux
  • Extraire des données de graphiques et de diagrammes
  • Décrire des images
  • Comprendre les relations entre les graphiques et le texte
  • Fournir des réponses plus précises et plus riches en contexte

Les fonctionnalités du moteur RAG de Vertex AI améliorent considérablement la qualité des réponses générées.

Modèles compatibles

Les modèles suivants sont compatibles avec l'analyseur LLM du moteur RAG de Vertex AI :

Types de fichiers compatibles

L'analyseur LLM est compatible avec les types de fichiers suivants :

  • application/pdf
  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

Tarifs et quotas

Pour en savoir plus sur les tarifs, consultez la page Tarifs de Vertex AI.

Pour connaître les quotas applicables, consultez la page Quotas de débit.

L'analyseur LLM appelle les modèles Gemini pour analyser vos documents. Cela entraîne des coûts supplémentaires, qui sont facturés à votre projet. Vous pouvez estimer approximativement le coût à l'aide de la formule suivante :

cost = number_of_document_files * average_pages_per_document *
(average_input_tokens * input_token_pricing_of_selected_model +
average_output_tokens * output_token_pricing_of_selected_model)

Par exemple, vous disposez de 1 000 fichiers PDF, chacun contenant 50 pages. La page PDF moyenne comporte 500 jetons, et nous avons besoin de 100 jetons supplémentaires pour la requête. La sortie moyenne est de 100 jetons.

Gemini 2.0 Flash-Lite est utilisé dans votre configuration pour l'analyse. Il coûte 0,075 $pour 1 million de jetons d'entrée et 0,3 $pour les jetons de texte de sortie.

cost = 1,000 * 50 * (600 * 0.075 / 1M + 100 * 0.3 / 1M) = 3.75

Le coût est de 3,75 $.

Importer des fichiers avec LlmParser activé

Remplacez les valeurs des variables suivantes utilisées dans les exemples de code :

  • PROJECT_ID: ID de votre Google Cloud projet.
  • LOCATION: région dans laquelle votre requête est traitée.
  • RAG_CORPUS_RESOURCE: ID de votre corpus.
  • GCS_URI : URI Cloud Storage des fichiers que vous souhaitez importer.
  • GOOGLE_DRIVE_URI: URI Google Drive des fichiers que vous souhaitez importer.
  • MODEL_NAME : nom de ressource du modèle utilisé pour l'analyse.

    Format: projects/{project_id}/locations/{location}/publishers/google/models/{model_id}

  • CUSTOM_PARSING_PROMPT : (facultatif) requête personnalisée configurée par le client pour que l'analyseur LLM l'utilise pour analyser les documents.
  • MAX_PARSING_REQUESTS_PER_MIN : (facultatif) nombre maximal de requêtes que la tâche peut envoyer au modèle Vertex AI par minute. Pour en savoir plus, consultez la page Limites de débit de l'IA générative sur Vertex AI et la page Quotas et limites du système pour votre projet afin de définir une valeur appropriée.

REST

  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE/ragFiles:import" -d '{
    "import_rag_files_config": {
      "gcs_source": {
        "uris":  ["GCS_URI", "GOOGLE_DRIVE_URI"]
      },
      "rag_file_chunking_config": {
        "chunk_size": 512,
        "chunk_overlap": 102
      },
      "rag_file_parsing_config": {
        "llm_parser": {
          "model_name": "MODEL_NAME",
          "custom_parsing_prompt": "CUSTOM_PARSING_PROMPT"
          "max_parsing_requests_per_min": "MAX_PARSING_REQUESTS_PER_MIN"
        }
      }
    }
  }'

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.

  from vertexai import rag
  import vertexai

  PROJECT_ID = "PROJECT_ID"
  CORPUS_NAME = "RAG_CORPUS_RESOURCE"
  LOCATION = "LOCATION"
  MODEL_ID = "MODEL_ID"
  MODEL_NAME = "projects/{PROJECT_ID}/locations/{LOCATION}/publishers/google/models/{MODEL_ID}"
  MAX_PARSING_REQUESTS_PER_MIN = MAX_PARSING_REQUESTS_PER_MIN # Optional
  CUSTOM_PARSING_PROMPT = "Your custom prompt" # Optional

  PATHS = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]

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

  transformation_config = rag.TransformationConfig(
      chunking_config=rag.ChunkingConfig(
          chunk_size=1024, # Optional
          chunk_overlap=200, # Optional
      ),
  )

  llm_parser_config = rag.LlmParserConfig(
      model_name = MODEL_NAME,
      max_parsing_requests_per_min=MAX_PARSING_REQUESTS_PER_MIN, # Optional
      custom_parsing_prompt=CUSTOM_PARSING_PROMPT, # Optional
  )

  rag.import_files(
      CORPUS_NAME,
      PATHS,
      llm_parser=llm_parser_config,
      transformation_config=transformation_config,
  )

Rédaction de prompts

L'analyseur LLM du moteur RAG de Vertex AI utilise une requête prédéfinie et ajustée pour analyser les documents. Toutefois, si vous disposez de documents spécialisés qui ne conviennent pas à une requête générale, vous pouvez spécifier votre requête d'analyse personnalisée lorsque vous utilisez l'API. Lorsque vous demandez à Gemini d'analyser vos documents, le moteur RAG de Vertex AI ajoute une requête à votre requête système par défaut.

Tableau des modèles de prompts

Pour vous aider à analyser les documents, le tableau suivant fournit un exemple de modèle de prompt pour vous guider dans la création de requêtes que le moteur RAG de Vertex AI peut utiliser pour analyser vos documents :

Instruction Énoncé du modèle Exemple
Spécifiez le rôle. Vous êtes un/une [spécifiez le rôle, par exemple, un extracteur de données factuelles ou un récupérateur d'informations]. Vous êtes un récupérateur d'informations.
Spécifiez la tâche. Extrayez [spécifiez le type d'informations, par exemple, des déclarations factuelles , des données clés ou des détails spécifiques] à partir de [spécifiez la source du document , par exemple, un document, du texte, un article, une image, un tableau]. Extrayez les données clés du fichier sample.txt.
Expliquez comment vous souhaitez que le LLM génère la sortie en fonction de vos documents. Présentez chaque fait dans un [spécifiez le format de sortie, par exemple, une liste structurée ou un format texte] et créez un lien vers son [spécifiez l’emplacement source, par exemple, une page, un paragraphe, un tableau ou une ligne]. Présentez chaque fait dans une liste structurée et créez un lien vers sa page d'exemple.
Mettez en évidence ce sur quoi le LLM doit se concentrer. Extrayez [spécifiez les types de données clés, tels que les noms, les dates, les nombres, les attributs ou les relations] exactement comme indiqué. Extrayez les noms et les dates.
Mettez en évidence ce que vous ne voulez pas que le LLM fasse. [Répertoriez les actions à éviter, telles que l'analyse, l'interprétation, le résumé, l'inférence ou la formulation d'opinions]. Extrayez uniquement ce que le document indique explicitement. Ne formulez pas d'opinions. Extrayez uniquement ce que le document indique explicitement.

Conseils généraux

Suivez ces consignes pour rédiger votre requête à envoyer à l'analyseur LLM.

  • Spécifique : définissez clairement la tâche et le type d'informations à extraire.
  • Détaillé : fournissez des instructions détaillées sur le format de sortie, l'attribution de la source et la gestion des différentes structures de données.
  • Contraignant : indiquez explicitement ce que l'IA ne doit pas faire, comme l'analyse ou l'interprétation.
  • Clair : utilisez un langage clair et directif.
  • Structuré : organisez les instructions de manière logique à l'aide de listes numérotées ou de puces pour faciliter la lecture.

Analyse de la qualité de l'analyse

Ce tableau présente les résultats de scénarios exécutés par les clients à l'aide du moteur RAG de Vertex AI. Les commentaires montrent que l'analyseur LLM améliore la qualité de l'analyse des documents.

Scénario Résultat
Analyse des informations sur les diapositives et création de liens entre les sections L'analyseur LLM a correctement lié les titres des sections d'une diapositive aux informations détaillées présentées sur les diapositives suivantes.
Compréhension et extraction d'informations à partir de tableaux L'analyseur LLM a correctement mis en relation les colonnes et les en-têtes d'un grand tableau pour répondre à des questions spécifiques.
Interprétation des organigrammes L'analyseur LLM a pu suivre la logique d'un organigramme et extraire la séquence d'actions correcte ainsi que les informations correspondantes.
Extraction de données à partir de graphiques L'analyseur LLM a pu interpréter différents types de graphiques, tels que des graphiques linéaires, et extraire des points de données spécifiques en fonction de la requête.
Capture des relations entre les titres et le texte L'analyseur LLM, guidé par la requête, a prêté attention aux structures des titres et a pu récupérer toutes les informations pertinentes associées à un sujet ou à une section particulière.
Possibilité de surmonter les limites d'intégration grâce au prompt engineering Bien qu'initialement entravées par les limites du modèle d'intégration dans certains cas d'utilisation, des expériences supplémentaires ont démontré qu'une requête d'analyseur LLM bien conçue pouvait potentiellement atténuer ces problèmes et récupérer les informations correctes, même lorsque la compréhension sémantique est difficile pour le modèle d'intégration seul.

L'analyseur LLM améliore la capacité du LLM à comprendre le contexte d'un document et à raisonner à son sujet, ce qui permet d'obtenir des réponses plus précises et complètes.

Requête de récupération

Une fois que vous avez saisi une requête envoyée à un modèle d'IA générative, le composant de récupération de RAG effectue une recherche dans sa base de connaissances afin de trouver des informations pertinentes pour la requête. Pour obtenir 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.

Étape suivante