Analyser et segmenter des documents

Cette page explique comment utiliser Vertex AI Search pour analyser et segmenter vos documents.

Vous pouvez configurer les paramètres d'analyse ou de segmentation pour :

  • Spécifiez comment Vertex AI Search analyse le contenu. Vous pouvez spécifier comment analyser le contenu non structuré lorsque vous l'importez dans Vertex AI Search. Vertex AI Search fournit un analyseur numérique, un analyseur OCR pour les PDF et un analyseur de mise en page. Vous pouvez également apporter vos propres documents analysés. L'analyseur de mise en page est recommandé lorsque vous avez du contenu enrichi et des éléments structurels tels que des sections, des paragraphes, des tableaux, des images et des listes à extraire des documents pour la recherche et la génération de réponses.

    Consultez Améliorer la détection de contenu avec l'analyse.

  • Utilisez Vertex AI Search pour la génération augmentée par récupération (RAG). Améliorez la sortie des LLM avec les données pertinentes que vous avez importées dans votre application Vertex AI Search. Pour ce faire, activez le découpage des documents, qui indexe vos données sous forme de blocs pour améliorer la pertinence et réduire la charge de calcul des LLM. Vous activerez également l'analyseur de mise en page, qui détecte les éléments de document tels que les titres et les listes, pour améliorer la façon dont les documents sont segmentés.

    Pour en savoir plus sur le découpage pour la RAG et sur la façon de renvoyer des blocs dans les requêtes de recherche, consultez Découper les documents pour la RAG.

Analyser des documents

Vous pouvez contrôler l'analyse du contenu de différentes manières :

  • Spécifiez le type d'analyseur. Vous pouvez spécifier le type d'analyse à appliquer en fonction du type de fichier :

    • Analyseur numérique : L'analyseur numérique est activé par défaut pour tous les types de fichiers, sauf si un autre type d'analyseur est spécifié. L'analyseur numérique traite les documents ingérés si aucun autre analyseur par défaut n'est spécifié pour le data store ou si l'analyseur spécifié ne prend pas en charge le type de fichier d'un document ingéré.
    • Analyse OCR pour les PDF : Si vous prévoyez d'importer des PDF numérisés ou des PDF contenant du texte dans des images, vous pouvez activer l'analyseur OCR pour améliorer l'indexation des PDF. Consultez la section Analyseur OCR pour les PDF de ce document.
    • Analyseur de mise en page Activez l'analyseur de mise en page pour les fichiers HTML, PDF ou DOCX si vous prévoyez d'utiliser Vertex AI Search pour le RAG. Pour en savoir plus sur ce parseur et sur la façon de l'activer, consultez Segmenter les documents pour RAG.
  • Utilisez votre propre document analysé. (Aperçu avec liste d'autorisation) Si vous avez déjà analysé vos documents non structurés, vous pouvez importer ce contenu pré-analysé dans Vertex AI Search. Consultez Utiliser votre propre document analysé.

Comparaison de la disponibilité des analyseurs

Le tableau suivant indique la disponibilité de chaque analyseur en fonction des types de fichiers de documents et montre les éléments que chaque analyseur peut détecter et analyser.

Type de fichier Analyseur numérique Analyseur OCR Analyseur de mise en page
HTML Détecte les éléments de paragraphe Non applicable Détecte les éléments de paragraphe, de tableau, d'image, de liste, de titre et d'en-tête
PDF Détecte les éléments de paragraphe (texte numérique) Détecte les éléments de paragraphe Détecte les éléments de paragraphe, de tableau, d'image, de titre et d'en-tête
DOCX (Preview) Détecte les éléments de paragraphe Non applicable Détecte les éléments de paragraphe, de tableau, d'image, de liste, de titre et d'en-tête
PPTX (Aperçu) Détecte les éléments de paragraphe Non applicable Détecte les éléments de paragraphe, de tableau, d'image, de liste, de titre et d'en-tête
TXT Détecte les éléments de paragraphe Non applicable Non applicable
XLSX (Preview) Détecte les éléments de paragraphe Non applicable Détecte les éléments de paragraphe, de tableau, de titre et d'en-tête

Analyseur numérique

L'analyseur numérique extrait le texte lisible par machine des documents. Il détecte les blocs de texte, mais pas les éléments de document tels que les tableaux, les listes et les titres.

L'analyseur numérique est utilisé par défaut si vous ne spécifiez pas d'autre analyseur par défaut lors de la création du data store ou si un analyseur spécifié ne prend pas en charge un type de fichier en cours d'importation.

Analyseur OCR pour les PDF

Si vous avez des PDF non consultables (PDF numérisés ou PDF avec du texte dans des images, comme des infographies), Google vous recommande d'activer le traitement de la reconnaissance optique des caractères (OCR) lors de la création du data store. Cela permet à Vertex AI Search d'extraire des éléments de paragraphe.

Si vous disposez de PDF consultables ou d'autres formats numériques principalement composés de texte lisible par machine, vous n'avez généralement pas besoin d'utiliser l'analyseur OCR. Toutefois, si vous avez des PDF contenant à la fois du texte non consultable (comme du texte scanné ou des infographies) et du texte lisible par machine, vous pouvez définir le champ useNativeText sur "true" lorsque vous spécifiez l'analyseur OCR. Dans ce cas, le texte lisible par machine est fusionné avec les résultats de l'analyse OCR pour améliorer la qualité de l'extraction de texte.

Les fonctionnalités de traitement OCR sont disponibles pour les applications de recherche personnalisée avec des datastores non structurés.

Le processeur OCR peut analyser les 500 premières pages d'un fichier PDF. Les pages au-delà de la limite de 500 ne sont pas traitées.

Analyseur de mise en page

L'analyse de la mise en page permet à Vertex AI Search de détecter les mises en page des fichiers PDF et HTML. La prise en charge des fichiers DOCX est disponible en version preview. Vertex AI Search peut ensuite identifier des éléments de contenu tels que des blocs de texte, des tableaux, des listes et des éléments structurels tels que des titres et des sous-titres, et les utiliser pour définir l'organisation et la hiérarchie d'un document.

Vous pouvez activer l'analyse de la mise en page pour tous les types de fichiers ou spécifier les types de fichiers pour lesquels l'activer. L'analyseur de mise en page détecte les éléments de contenu tels que les paragraphes, les tableaux et les listes, ainsi que les éléments structurels tels que les titres, les en-têtes et les notes de bas de page.

L'analyseur de mise en page n'est disponible que lorsque vous utilisez la fragmentation des documents pour la RAG. Lorsque le découpage des documents est activé, Vertex AI Search divise les documents en blocs au moment de l'ingestion et peut renvoyer les documents sous forme de blocs. La détection de la mise en page des documents permet de segmenter le contenu en fonction de son contexte et d'améliorer la recherche et la génération de réponses liées aux éléments du document. Pour en savoir plus sur le découpage des documents pour la RAG, consultez Découper des documents pour la RAG.

Annotation d'images (fonctionnalité en preview)

Si l'annotation d'image est activée, lorsqu'une image est détectée dans un document source, une description (annotation) de l'image et l'image elle-même sont attribuées à un bloc. L'annotation détermine si le bloc doit être renvoyé dans un résultat de recherche. Si une réponse est générée, l'annotation peut être une source pour la réponse.

L'analyseur de mise en page peut détecter les types d'image suivants : BMP, GIF, JPEG, PNG et TIFF.

Annotation de tables

Si l'annotation de tableau est activée, lorsqu'un tableau est détecté dans un document source, une description (annotation) du tableau et le tableau lui-même sont attribués à un bloc. L'annotation détermine si le bloc doit être renvoyé dans un résultat de recherche. Si une réponse est générée, l'annotation peut être une source pour la réponse.

Exclure le contenu HTML

Lorsque vous utilisez l'analyseur de mise en page pour les documents HTML, vous pouvez exclure du traitement certaines parties spécifiques du contenu HTML. Pour améliorer la qualité des données pour les applications de recherche et les applications RAG, vous pouvez exclure les modèles ou les sections tels que les menus de navigation, les en-têtes, les pieds de page ou les barres latérales.

layoutParsingConfig fournit les champs suivants à cette fin :

  • excludeHtmlElements : liste des balises HTML à exclure. Le contenu de ces balises est exclu.
  • excludeHtmlClasses : liste des attributs de classe HTML à exclure. Les éléments HTML contenant ces attributs de classe, ainsi que leur contenu, sont exclus.
  • excludeHtmlIds : liste des attributs ID d'éléments HTML à exclure. Les éléments HTML associés à ces attributs ID, ainsi que leur contenu, sont exclus.

Spécifier un analyseur par défaut

En incluant l'objet documentProcessingConfig lorsque vous créez un data store, vous pouvez spécifier un analyseur par défaut pour ce data store. Si vous n'incluez pas documentProcessingConfig.defaultParsingConfig, l'analyseur numérique est utilisé. L'analyseur numérique est également utilisé si l'analyseur spécifié n'est pas disponible pour un type de fichier.

REST

Pour spécifier un analyseur par défaut :

  1. Lorsque vous créez un datastore de recherche à l'aide de l'API, incluez documentProcessingConfig.defaultParsingConfig dans la demande de création du data store. Vous pouvez spécifier l'analyseur OCR, l'analyseur de mise en page ou l'analyseur numérique :

    • Pour spécifier l'analyseur OCR pour les PDF :

      "documentProcessingConfig": {
        "defaultParsingConfig": {
          "ocrParsingConfig": {
            "useNativeText": "NATIVE_TEXT_BOOLEAN"
          }
        }
      }
      
      • NATIVE_TEXT_BOOLEAN est facultatif. Ne le définissez que si vous ingérez des PDF. Si la valeur est définie sur true, le traitement du texte lisible par machine est activé pour l'analyseur OCR. La valeur par défaut est false.
    • Pour spécifier l'analyseur de mise en page :

      "documentProcessingConfig": {
        "defaultParsingConfig": {
          "layoutParsingConfig": {}
        }
      }
      
    • Pour spécifier l'analyseur numérique :

       "documentProcessingConfig": {
          "defaultParsingConfig": { "digitalParsingConfig": {} }
       }
      

Console

Lorsque vous créez un data store de recherche dans la console, vous pouvez spécifier l'analyseur par défaut.

Exemple

L'exemple suivant indique, lors de la création du data store, que l'analyseur OCR sera l'analyseur par défaut. Étant donné que l'analyseur OCR ne s'applique qu'aux fichiers PDF, tous les fichiers PDF ingérés seront traités par l'analyseur OCR, et tous les autres types de fichiers seront traités par l'analyseur numérique.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: exampleproject" \
"https://discoveryengine.googleapis.com/v1/projects/exampleproject/locations/global/collections/default_collection/dataStores?dataStoreId=datastore123" \
-d '{
  "displayName": "exampledatastore",
  "industryVertical": "GENERIC",
  "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
  "contentConfig": "CONTENT_REQUIRED",
  "documentProcessingConfig": {
    "defaultParsingConfig": {
      "ocrParsingConfig": {
        "useNativeText": "false"
      }
    }
  }
}'

Spécifier des remplacements d'analyseur pour les types de fichiers

Vous pouvez spécifier qu'un type de fichier particulier (PDF, HTML ou DOCX) doit être analysé par un analyseur différent de l'analyseur par défaut. Pour ce faire, incluez le champ documentProcessingConfig dans votre demande de création de data store et spécifiez l'analyseur de remplacement. Si vous ne spécifiez pas d'analyseur par défaut, l'analyseur numérique est utilisé par défaut.

REST

Pour spécifier un remplacement de l'analyseur spécifique à un type de fichier :

  1. Lorsque vous créez un datastore de recherche à l'aide de l'API, incluez documentProcessingConfig.defaultParsingConfig dans la demande de création du data store.

    Vous pouvez spécifier un analyseur pour pdf, html ou docx :

    "documentProcessingConfig": {
      "parsingConfigOverrides": {
        "FILE_TYPE": { PARSING_CONFIG },
      }
     }
    

    Remplacez les éléments suivants :

    • FILE_TYPE : les valeurs acceptées sont pdf, html et docx.
    • PARSING_CONFIG : spécifiez la configuration de l'analyseur que vous souhaitez appliquer au type de fichier. Vous pouvez spécifier l'analyseur OCR, l'analyseur de mise en page ou l'analyseur numérique :

      • Pour spécifier l'analyseur OCR pour les PDF :

        "ocrParsingConfig": {
          "useNativeText": "NATIVE_TEXT_BOOLEAN"
        }
        
        • NATIVE_TEXT_BOOLEAN : facultatif. Ne définissez cette valeur que si vous ingérez des PDF. Si la valeur est définie sur true, le traitement du texte lisible par machine est activé pour l'analyseur OCR. La valeur par défaut est false.
      • Pour spécifier l'analyseur de mise en page :

        "layoutParsingConfig": {}
        
      • Pour spécifier l'analyseur numérique :

        "documentProcessingConfig": {
          "defaultParsingConfig": { "digitalParsingConfig": {} }
        }
        

Console

Lorsque vous créez un datastore de recherche dans la console, vous pouvez spécifier des remplacements d'analyseur pour des types de fichiers spécifiques.

Exemple

L'exemple suivant spécifie, lors de la création du data store, que les fichiers PDF doivent être traités par l'analyseur OCR et que les fichiers HTML doivent être traités par l'analyseur de mise en page. Dans ce cas, tous les fichiers autres que les fichiers PDF et HTML seraient traités par l'analyseur numérique.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: exampleproject" \
"https://discoveryengine.googleapis.com/v1/projects/exampleproject/locations/global/collections/default_collection/dataStores?dataStoreId=datastore123" \
-d '{
  "displayName": "exampledatastore",
  "industryVertical": "GENERIC",
  "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
  "contentConfig": "CONTENT_REQUIRED",
  "documentProcessingConfig": {
    "parsingConfigOverrides": {
      "pdf": {
        "ocrParsingConfig": {
            "useNativeText": "false"
          },
      },
      "html": {
         "layoutParsingConfig": {}
      }
    }
  }
}'

Modifier l'analyse des documents pour les data stores existants

Si vous disposez déjà d'un data store, vous pouvez modifier l'analyseur par défaut et ajouter des exceptions de format de fichier. Toutefois, les paramètres du nouvel analyseur ne s'appliquent qu'aux nouveaux documents importés dans le data store. Les documents déjà présents dans le data store ne sont pas réanalysés avec les nouveaux paramètres.

Pour modifier les paramètres d'analyse des documents d'un data store :

  1. Dans la console Google Cloud , accédez à la page AI Applications.

    AI Applications

  2. Dans le menu de navigation, cliquez sur Data Stores (Magasins de données).

  3. Dans la colonne Nom, cliquez sur le data store que vous souhaitez modifier.

  4. Dans l'onglet Configuration du traitement, modifiez les paramètres Analyse des documents.

    Vous ne pouvez pas modifier les paramètres de fragmentation des documents. Si la fragmentation des documents n'est pas activée dans le datastore, vous ne pouvez pas choisir l'analyseur de mise en page.

  5. Cliquez sur Envoyer.

Configurer l'analyseur de mise en page pour exclure le contenu HTML

Vous pouvez configurer l'analyseur de mise en page pour exclure le contenu HTML en spécifiant excludeHtmlElements, excludeHtmlClasses ou excludeHtmlIds dans documentProcessingConfig.defaultParsingConfig.layoutParsingConfig.

REST

Pour empêcher l'analyseur de mise en page de traiter certains contenus HTML, procédez comme suit :

  1. Lorsque vous créez un datastore de recherche à l'aide de l'API, incluez documentProcessingConfig.defaultParsingConfig.layoutParsingConfig dans la demande de création du data store.

  2. Pour exclure des types de balises HTML spécifiques, utilisez :

    "documentProcessingConfig": {
      "defaultParsingConfig": {
       "layoutParsingConfig": {
        "excludeHtmlElements": ["HTML_TAG_1","HTML_TAG_2","HTML_TAG_N"]
       }
      }
     }
    

    Remplacez les variables HTML_TAG par des noms de balises, par exemple nav et footer.

  3. Pour exclure des attributs de classe d'éléments HTML spécifiques, utilisez :

    "documentProcessingConfig": {
      "defaultParsingConfig": {
       "layoutParsingConfig": {
        "excludeHtmlClasses": ["HTML_CLASS_1","HTML_CLASS_2","HTML_CLASS_N"]
       }
      }
     }
    

    Remplacez les variables HTML_CLASS par des attributs de classe, par exemple overlay et screenreader.

  4. Pour exclure des attributs d'ID d'élément HTML spécifiques, utilisez :

    "documentProcessingConfig": {
      "defaultParsingConfig": {
       "layoutParsingConfig": {
        "excludeHtmlIds": ["HTML_ID_1","HTML_ID_2","HTML_ID_N"]
       }
      }
     }
    

    Remplacez les variables HTML_ID par des attributs d'ID, par exemple cookie-banner.

Exemple

Cet exemple indique que lorsque des fichiers HTML sont traités par l'analyseur de mise en page, les éléments suivants sont ignorés par l'analyseur :

  • Balises d'éléments HTML, header, footer, nav et aside

  • Attributs de classe d'élément HTML de type overlays et screenreader

  • Tous les éléments dont l'ID d'attribut est cookie-banner

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: exampleproject" \
"https://discoveryengine.googleapis.com/v1/projects/exampleproject/locations/global/collections/default_collection/dataStores?dataStoreId=datastore123" \
-d '{
  "displayName": "exampledatastore",
  "industryVertical": "GENERIC",
  "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
  "contentConfig": "CONTENT_REQUIRED",
  "documentProcessingConfig": {
    "defaultParsingConfig": {
      "layoutParsingConfig": {
       "excludeHtmlElements": ["header", "footer", "nav", "aside"],
       "excludeHtmlClasses": ["overlays", "screenreader"],
       "excludeHtmlIds": ["cookie-banner"]
      }
    }
  }
}'

Obtenir des documents analysés au format JSON

Vous pouvez obtenir un document analysé au format JSON en appelant la méthode getProcessedDocument et en spécifiant PARSED_DOCUMENT comme type de document traité. Il peut être utile d'obtenir des documents analysés au format JSON si vous devez les importer ailleurs ou si vous décidez de les réimporter dans les applications d'IA à l'aide de la fonctionnalité Apportez vos propres documents analysés.

REST

Pour obtenir des documents analysés au format JSON, procédez comme suit :

  1. Appelez la méthode getProcessedDocument :

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID:getProcessedDocument?processed_document_type=PARSED_DOCUMENT"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet.
    • DATA_STORE_ID : ID de votre data store.
    • DOCUMENT_ID : ID du document à obtenir.

Utiliser votre propre document analysé

Vous pouvez importer des documents non structurés pré-analysés dans des datastores Vertex AI Search. Par exemple, au lieu d'importer un document PDF brut, vous pouvez l'analyser vous-même et importer le résultat de l'analyse. Cela vous permet d'importer vos documents de manière structurée, en veillant à ce que la recherche et la génération de réponses disposent d'informations sur la mise en page et les éléments du document.

Un document non structuré analysé est représenté par un fichier JSON qui décrit le document non structuré à l'aide d'une séquence de blocs de texte, de tableau et de liste. Vous importez les fichiers JSON contenant vos données de documents non structurés analysées de la même manière que les autres types de documents non structurés, tels que les PDF. Lorsque cette fonctionnalité est activée, chaque fois qu'un fichier JSON est importé et identifié par un type MIME application/json ou une extension .JSON, il est traité comme un document analysé.

Pour activer cette fonctionnalité et savoir comment l'utiliser, contactez l'équipe chargée de votre compte Google.

Segmenter des documents pour le RAG

Par défaut, Vertex AI Search est optimisé pour la récupération de documents, où votre application de recherche renvoie un document tel qu'un PDF ou une page Web avec chaque résultat de recherche.

Les fonctionnalités de segmentation de documents sont disponibles pour les applications de recherche personnalisées avec des datastores non structurés.

Vertex AI Search peut plutôt être optimisé pour la RAG, où votre application de recherche est principalement utilisée pour augmenter la sortie du LLM avec vos données personnalisées. Lorsque le découpage des documents est activé, Vertex AI Search divise vos documents en blocs. Dans les résultats de recherche, votre application de recherche peut renvoyer des blocs de données pertinents au lieu de documents complets. L'utilisation de données segmentées pour le RAG augmente la pertinence des réponses des LLM et réduit la charge de calcul pour les LLM.

Pour utiliser Vertex AI Search pour le RAG :

  1. Activez la fragmentation des documents lorsque vous créez votre datastore.

    Vous pouvez également importer vos propres blocs (fonctionnalité en aperçu avec liste d'autorisation) si vous avez déjà segmenté vos documents.

  2. Récupérez et affichez les blocs de différentes manières :

  3. Renvoie des blocs dans les requêtes de recherche.

Limites

Les limites suivantes s'appliquent au découpage :

  • Vous ne pouvez pas activer ni désactiver la fragmentation des documents après avoir créé le data store.
  • Vous pouvez envoyer des requêtes de recherche pour des documents plutôt que pour des blocs à partir d'un data store dont la fragmentation des documents est activée. Toutefois, les data stores pour lesquels le découpage de documents est activé ne sont pas optimisés pour renvoyer des documents. Les documents sont renvoyés en agrégeant les blocs dans les documents.
  • Lorsque le découpage des documents est activé, les résumés de recherche et la recherche avec suivi sont disponibles en version Preview publique, mais pas en version GA.

Options de fragmentation des documents

Cette section décrit les options que vous spécifiez pour activer le découpage des documents.

Lors de la création du data store, activez les options suivantes pour que Vertex AI Search puisse indexer vos documents sous forme de blocs.

  • Fragmentation de documents tenant compte de la mise en page. Pour activer cette option, incluez le champ documentProcessingConfig dans votre demande de création de data store et spécifiez ChunkingConfig.LayoutBasedChunkingConfig.

    Lorsque le découpage de documents tenant compte de la mise en page est activé, Vertex AI Search détecte la mise en page d'un document et en tient compte lors du découpage. Cela améliore la cohérence sémantique et réduit le bruit dans le contenu lorsqu'il est utilisé pour la récupération et la génération de LLM. Tout le texte d'un bloc proviendra de la même entité de mise en page, comme les titres, les sous-titres et les listes.

  • Analyse de la mise en page : Pour activer cette option, spécifiez ParsingConfig.LayoutParsingConfig lors de la création du data store.

    L'analyseur de mise en page détecte les mises en page des fichiers PDF, HTML et DOCX. Il identifie des éléments tels que des blocs de texte, des tableaux, des listes, des titres et des en-têtes, et les utilise pour définir l'organisation et la hiérarchie d'un document.

    Pour en savoir plus sur l'analyse de la mise en page, consultez Analyse de la mise en page.

Activer la fragmentation de documents

Vous pouvez activer la fragmentation des documents en incluant l'objet documentProcessingConfig dans votre demande de création de data store et en activant la fragmentation des documents tenant compte de la mise en page et l'analyse de la mise en page.

REST

Pour activer la fragmentation de documents :

  1. Lorsque vous créez un datastore de recherche à l'aide de l'API, incluez l'objet documentProcessingConfig.chunkingConfig dans la demande de création du data store.

     "documentProcessingConfig": {
       "chunkingConfig": {
           "layoutBasedChunkingConfig": {
               "chunkSize": CHUNK_SIZE_LIMIT,
               "includeAncestorHeadings": HEADINGS_BOOLEAN,
           }
       },
       "defaultParsingConfig": {
         "layoutParsingConfig": {}
       }
     }
    

    Remplacez les éléments suivants :

    • CHUNK_SIZE_LIMIT : facultatif. Taille limite des jetons pour chaque bloc. La valeur par défaut est 500. Les valeurs acceptées sont comprises entre 100 et 500 (inclus).
    • HEADINGS_BOOLEAN : facultatif. Détermine si les titres sont inclus dans chaque bloc. La valeur par défaut est false. Ajouter le titre et les en-têtes de tous les niveaux aux fragments situés au milieu du document peut aider à éviter la perte de contexte lors de la récupération et du classement des fragments.

Console

Lorsque vous créez un datastore de recherche dans la console, vous pouvez activer la fragmentation des documents.

Apportez vos propres blocs (aperçu avec liste d'autorisation)

Si vous avez déjà segmenté vos propres documents, vous pouvez les importer dans Vertex AI Search au lieu d'activer les options de segmentation des documents.

L'utilisation de vos propres blocs est une fonctionnalité en version Preview avec liste d'autorisation. Pour utiliser cette fonctionnalité, contactez l'équipe chargée de votre compte Google.

Lister les blocs d'un document

Pour lister tous les blocs d'un document spécifique, appelez la méthode Chunks.list.

REST

Pour lister les blocs d'un document, procédez comme suit :

  1. Appelez la méthode Chunks.list :

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID/chunks"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet.
    • DATA_STORE_ID : ID de votre data store.
    • DOCUMENT_ID : ID du document à partir duquel lister les blocs.

Obtenir des blocs au format JSON à partir d'un document traité

Vous pouvez obtenir tous les blocs d'un document spécifique au format JSON en appelant la méthode getProcessedDocument. Obtenir des blocs au format JSON peut être utile si vous devez les importer ailleurs ou si vous décidez de les réimporter dans les applications d'IA à l'aide de la fonctionnalité Apportez vos propres blocs.

REST

Pour obtenir des blocs JSON pour un document, procédez comme suit :

  1. Appelez la méthode getProcessedDocument :

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID:getProcessedDocument?processed_document_type=CHUNKED_DOCUMENT"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet.
    • DATA_STORE_ID : ID de votre data store.
    • DOCUMENT_ID : ID du document à partir duquel obtenir les blocs.

Obtenir des blocs spécifiques

Pour obtenir un bloc spécifique, appelez la méthode Chunks.get.

REST

Pour obtenir un bloc spécifique, procédez comme suit :

  1. Appelez la méthode Chunks.get :

    curl -X GET \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents/DOCUMENT_ID/chunks/CHUNK_ID"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet.
    • DATA_STORE_ID : ID de votre data store.
    • DOCUMENT_ID : ID du document dont provient le bloc.
    • CHUNK_ID : ID du bloc à renvoyer.

Une fois que vous avez vérifié que vos données ont été correctement segmentées, Vertex AI Search peut renvoyer des données segmentées dans ses résultats de recherche.

La réponse renvoie un bloc pertinent par rapport à la requête de recherche. De plus, vous pouvez choisir de renvoyer les blocs adjacents qui apparaissent avant et après le bloc pertinent dans le document source. Les blocs adjacents peuvent ajouter du contexte et de la précision.

REST

Pour obtenir des données segmentées :

  1. Lorsque vous effectuez une requête de recherche, spécifiez ContentSearchSpec.SearchResultMode comme chunks.

    contentSearchSpec": {
      "searchResultMode": "RESULT_MODE",
      "chunkSpec": {
           "numPreviousChunks": NUMBER_OF_PREVIOUS_CHUNKS,
           "numNextChunks": NUMBER_OF_NEXT_CHUNKS
       }
    }
    
    • RESULT_MODE : détermine si les résultats de recherche sont renvoyés sous forme de documents complets ou par blocs. Pour obtenir des blocs, la fragmentation des documents doit être activée dans le data store. Les valeurs acceptées sont documents et chunks. Si le découpage des documents est activé pour votre data store, la valeur par défaut est chunks.
    • NUMBER_OF_PREVIOUS_CHUNKS : nombre de fragments à renvoyer qui précèdent immédiatement le fragment concerné. La valeur maximale autorisée est de 5.
    • NUMBER_OF_NEXT_CHUNKS : nombre de blocs à renvoyer qui suivent immédiatement le bloc pertinent. La valeur maximale autorisée est de 5.

Exemple

L'exemple suivant de requête de recherche définit SearchResultMode sur chunks, demande un bloc précédent et un bloc suivant, et limite le nombre de résultats à un seul bloc pertinent à l'aide de pageSize.

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: exampleproject" \
"https://discoveryengine.googleapis.com/v1/projects/exampleproject/locations/global/collections/default_collection/dataStores/datastore123/servingConfigs/default_search:search" \
-d '{
  "query": "animal",
  "pageSize": 1,
  "contentSearchSpec": {
    "searchResultMode": "CHUNKS",
    "chunkSpec": {
           "numPreviousChunks": 1,
           "numNextChunks": 1
       }
  }
}'

L'exemple suivant illustre la réponse renvoyée pour l'exemple de requête. La réponse contient les blocs pertinents, les blocs précédents et suivants, les métadonnées du document d'origine et la plage de pages du document à partir desquelles chaque bloc a été extrait.

Réponse

{
  "results": [
    {
      "chunk": {
        "name": "projects/961309680810/locations/global/collections/default_collection/dataStores/allie-pdf-adjacent-chunks_1711394998841/branches/0/documents/0d8619f429d7f20b3575b14cd0ad0813/chunks/c17",
        "id": "c17",
        "content": "\n# ESS10: Stakeholder Engagement and Information Disclosure\nReaders should also refer to ESS10 and its guidance notes, plus the template available for a stakeholder engagement plan. More detail on stakeholder engagement in projects with risks related to animal health is contained in section 4 below. The type of stakeholders (men and women) that can be engaged by the Borrower as part of the project's environmental and social assessment and project design and implementation are diverse and vary based on the type of intervention. The stakeholders can include: Pastoralists, farmers, herders, women's groups, women farmers, community members, fishermen, youths, etc. Cooperatives members, farmer groups, women's livestock associations, water user associations, community councils, slaughterhouse workers, traders, etc. Veterinarians, para-veterinary professionals, animal health workers, community animal health workers, faculties and students in veterinary colleges, etc. 8 \n# 4. Good Practice in Animal Health Risk Assessment and Management\n\n# Approach\nRisk assessment provides the transparent, adequate and objective evaluation needed by interested parties to make decisions on health-related risks associated with project activities involving live animals. As the ESF requires, it is conducted throughout the project cycle, to provide or indicate likelihood and impact of a given hazard, identify factors that shape the risk, and find proportionate and appropriate management options. The level of risk may be reduced by mitigation measures, such as infrastructure (e.g., diagnostic laboratories, border control posts, quarantine stations), codes of practice (e.g., good animal husbandry practices, on-farm biosecurity, quarantine, vaccination), policies and regulations (e.g., rules for importing live animals, ban on growth hormones and promotors, feed standards, distance required between farms, vaccination), institutional capacity (e.g., veterinary services, surveillance and monitoring), changes in individual behavior (e.g., hygiene, hand washing, care for animals). Annex 2 provides examples of mitigation practices. This list is not an exhaustive one but a compendium of most practiced interventions and activities. The cited measures should take into account social, economic, as well as cultural, gender and occupational aspects, and other factors that may affect the acceptability of mitigation practices by project beneficiaries and other stakeholders. Risk assessment is reviewed and updated through the project cycle (for example to take into account increased trade and travel connectivity between rural and urban settings and how this may affect risks of disease occurrence and/or outbreak). Projects monitor changes in risks (likelihood and impact) b               by using data, triggers or indicators. ",
        "documentMetadata": {
          "uri": "gs://table_eval_set/pdf/worldbank/AnimalHealthGoodPracticeNote.pdf",
          "title": "AnimalHealthGoodPracticeNote"
        },
        "pageSpan": {
          "pageStart": 14,
          "pageEnd": 15
        },
        "chunkMetadata": {
          "previousChunks": [
            {
              "name": "projects/961309680810/locations/global/collections/default_collection/dataStores/allie-pdf-adjacent-chunks_1711394998841/branches/0/documents/0d8619f429d7f20b3575b14cd0ad0813/chunks/c16",
              "id": "c16",
              "content": "\n# ESS6: Biodiversity Conservation and Sustainable Management of Living Natural Resources\nThe risks associated with livestock interventions under ESS6 include animal welfare (in relation to housing, transport, and slaughter); diffusion of pathogens from domestic animals to wildlife, with risks for endemic species and biodiversity (e.g., sheep and goat plague in Mongolia affecting the saiga, an endemic species of wild antelope); the introduction of new breeds with potential risk of introducing exotic or new diseases; and the release of new species that are not endemic with competitive advantage, potentially putting endemic species at risk of extinction. Animal welfare relates to how an animal is coping with the conditions in which it lives. An animal is in a good state of welfare if it is healthy, comfortable, well nourished, safe, able to express innate behavior, 7 Good Practice Note - Animal Health and related risks and is not suffering from unpleasant states such as pain, fear or distress. Good animal welfare requires appropriate animal care, disease prevention and veterinary treatment; appropriate shelter, management and nutrition; humane handling, slaughter or culling. The OIE provides standards for animal welfare on farms, during transport and at the time of slaughter, for their welfare and for purposes of disease control, in its Terrestrial and Aquatic Codes. The 2014 IFC Good Practice Note: Improving Animal Welfare in Livestock Operations is another example of practical guidance provided to development practitioners for implementation in investments and operations. Pastoralists rely heavily on livestock as a source of food, income and social status. Emergency projects to restock the herds of pastoralists affected by drought, disease or other natural disaster should pay particular attention to animal welfare (in terms of transport, access to water, feed, and animal health) to avoid potential disease transmission and ensure humane treatment of animals. Restocking also entails assessing the assets of pastoralists and their ability to maintain livestock in good conditions (access to pasture and water, social relationship, technical knowledge, etc.). Pastoralist communities also need to be engaged by the project to determine the type of animals and breed and the minimum herd size to be considered for restocking. \n# Box 5. Safeguarding the welfare of animals and related risks in project activities\nIn Haiti, the RESEPAG project (Relaunching Agriculture: Strengthening Agriculture Public Services) financed housing for goats and provided technical recommendations for improving their welfare, which is critical to avoid the respiratory infections, including pneumonia, that are serious diseases for goats. To prevent these diseases, requires optimal sanitation and air quality in herd housing. This involves ensuring that buildings have adequate ventilation and dust levels are reduced to minimize the opportunity for infection. Good nutrition, water and minerals are also needed to support the goats' immune function. The project paid particular attention to: (i) housing design to ensure good ventilation; (ii) locating housing close to water sources and away from human habitation and noisy areas; (iii) providing mineral blocks for micronutrients; (iv) ensuring availability of drinking water and clean food troughs. ",
              "documentMetadata": {
                "uri": "gs://table_eval_set/pdf/worldbank/AnimalHealthGoodPracticeNote.pdf",
                "title": "AnimalHealthGoodPracticeNote"
              },
              "pageSpan": {
                "pageStart": 13,
                "pageEnd": 14
              }
            }
          ],
          "nextChunks": [
            {
              "name": "projects/961309680810/locations/global/collections/default_collection/dataStores/allie-pdf-adjacent-chunks_1711394998841/branches/0/documents/0d8619f429d7f20b3575b14cd0ad0813/chunks/c18",
              "id": "c18",
              "content": "\n# Scoping of risks\nEarly scoping of risks related to animal health informs decisions to initiate more comprehensive risk assessment according to the type of livestock interventions and activities. It can be based on the following considerations: • • • • Type of livestock interventions supported by the project (such as expansion of feed resources, improvement of animal genetics, construction/upgrading and management of post-farm-gate facilities, etc. – see also Annex 2); Geographic scope and scale of the livestock interventions; Human and animal populations that are likely to be affected (farmers, women, children, domestic animals, wildlife, etc.); and Changes in the project or project context (such as emerging disease outbreak, extreme weather or climatic conditions) that would require a re-assessment of risk levels, mitigation measures and their likely effect on risk reduction. Scenario planning can also help to identify project-specific vulnerabilities, country-wide or locally, and help shape pragmatic analyses that address single or multiple hazards. In this process, some populations may be identified as having disproportionate exposure or vulnerability to certain risks because of occupation, gender, age, cultural or religious affiliation, socio-economic or health status. For example, women and children may be the main caretakers of livestock in the case of 9 Good Practice Note - Animal Health and related risks household farming, which puts them into close contact with animals and animal products. In farms and slaughterhouses, workers and veterinarians are particularly exposed, as they may be in direct contact with sick animals (see Box 2 for an illustration). Fragility, conflict, and violence (FCV) can exacerbate risk, in terms of likelihood and impact. Migrants new to a geographic area may be immunologically naïve to endemic zoonotic diseases or they may inadvertently introduce exotic diseases; and refugees or internally displaced populations may have high population density with limited infrastructure, leaving them vulnerable to disease exposure. Factors such as lack of access to sanitation, hygiene, housing, and health and veterinary services may also affect disease prevalence, contributing to perpetuation of poverty in some populations. Risk assessment should identify populations at risk and prioritize vulnerable populations and circumstances where risks may be increased. It should be noted that activities that seem minor can still have major consequences. See Box 6 for an example illustrating how such small interventions in a project may have large-scale consequences. It highlights the need for risk assessment, even for simple livestock interventions and activities, and how this can help during the project cycle (from concept to implementation). ",
              "documentMetadata": {
                "uri": "gs://table_eval_set/pdf/worldbank/AnimalHealthGoodPracticeNote.pdf",
                "title": "AnimalHealthGoodPracticeNote"
              },
              "pageSpan": {
                "pageStart": 15,
                "pageEnd": 16
              }
            }
          ]
        }
      }
    }
  ],
  "totalSize": 61,
  "attributionToken": "jwHwjgoMCICPjbAGEISp2J0BEiQ2NjAzMmZhYS0wMDAwLTJjYzEtYWQxYS1hYzNlYjE0Mzc2MTQiB0dFTkVSSUMqUMLwnhXb7Ygtq8SKLa3Eii3d7Ygtj_enIqOAlyLm7Ygtt7eMLduPmiKN96cijr6dFcXL8xfdj5oi9-yILdSynRWCspoi-eyILYCymiLk7Ygt",
  "nextPageToken": "ANxYzNzQTMiV2MjFWLhFDZh1SMjNmMtADMwATL5EmZyMDM2YDJaMQv3yagQYAsciPgIwgExEgC",
  "guidedSearchResult": {},
  "summary": {}
}

Étapes suivantes