Analyser et fragmenter des documents

L'analyseur par défaut pour Gemini Enterprise est l'analyseur de mise en page. Il s'agit généralement du meilleur choix, car il détecte et comprend la hiérarchie des documents, ce qui permet d'améliorer le fractionnement et, par conséquent, la génération et la récupération des réponses. Toutefois, vous pouvez modifier l'analyseur par défaut dans certaines situations, par exemple lorsque vous avez beaucoup de données numérisées à importer dans votre datastore. Cette page explique comment modifier l'analyseur.

Vous pouvez spécifier comment analyser le contenu non structuré lorsque vous l'importez dans Gemini Enterprise. Gemini Enterprise fournit un analyseur de mise en page (par défaut, recommandé), un analyseur numérique et un analyseur OCR pour les PDF. Vous pouvez également importer vos propres documents analysés.

Consultez Améliorer la détection de contenu grâce à l'analyse.

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 de mise en page. L'analyseur de mise en page est l'analyseur par défaut. Pour en savoir plus sur cet analyseur, consultez Diviser des documents en fragments pour le RAG.

    • 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 numérique. L'analyseur numérique est un analyseur de base qui extrait le texte lisible par machine des documents. Pour en savoir plus, consultez Analyseur numérique.

  • Utiliser votre propre document analysé (Preview) Si vous avez déjà analysé vos documents non structurés, vous pouvez importer ce contenu pré-analysé dans Gemini Enterprise. Consultez Utiliser votre propre document analysé.

Comparaison de la disponibilité des analyseurs

Le tableau suivant indique la disponibilité de chaque analyseur par type de fichier de document 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, de titre, d'image et d'en-tête
DOCX 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 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 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
XLSM 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 OCR pour les PDF

Si vous disposez de 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 à Gemini Enterprise d'extraire des éléments de paragraphe.

Si vous disposez de fichiers 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 disposez de fichiers PDF contenant à la fois du texte non consultable (tel que du texte numérisé 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 d'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 de données non structurées.

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

Il s'agit de l'analyseur par défaut. Elle permet à Gemini Enterprise de détecter les mises en page pour les fichiers PDF, HTML, DOCX, PPTX, XLSX et XLSM. Gemini Enterprise peut ensuite identifier les éléments de contenu tels que les blocs de texte, les tableaux, les listes et les éléments structurels tels que les titres et les en-têtes, et les utiliser pour définir l'organisation et la hiérarchie d'un document.

L'analyseur de mise en page détecte les éléments de contenu tels que les paragraphes, les tableaux, les listes et les éléments structurels tels que les titres, les en-têtes, les pieds de page.

Gemini Enterprise divise les documents en fragments au moment de l'ingestion et peut les renvoyer sous forme de fragments. La détection de la mise en page des documents permet de segmenter le contenu et d'améliorer la recherche et la génération de réponses liées aux éléments des documents. Pour en savoir plus sur la segmentation de documents pour le RAG, consultez Segmenter des documents pour le RAG.

Les fonctionnalités complètes de l'analyseur de mise en page, telles que l'analyse des tableaux, les mises en page multicolonnes et le contenu dépendant de l'OCR, sont mieux exploitées en mode d'ingestion de données.

Bien que les connecteurs en mode de connexion de recherche fédérée (comme Microsoft SharePoint et Microsoft OneDrive) utilisent également l'analyseur de mise en page, la nature en temps réel de ces requêtes peut empêcher l'analyseur d'analyser entièrement les structures PDF complexes. Pour une analyse approfondie des PDF complexes, nous vous recommandons d'utiliser des connecteurs en mode d'ingestion de données.

Annotation d'images

Avec l'annotation d'images, 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 fragment. L'annotation détermine si le fragment doit être renvoyé dans un résultat de recherche. Si une réponse est générée, l'annotation peut être une source de la réponse.

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

Annotation de tableau

Avec l'annotation de tableau, 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 fragment doit être renvoyé dans un résultat de recherche. Si une réponse est générée, l'annotation peut être une source de la réponse.

Exclure le contenu HTML

Lorsque vous utilisez l'analyseur de mise en page pour les documents HTML, vous pouvez exclure certaines parties du contenu HTML du traitement. 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 des éléments HTML à exclure. Les éléments HTML associés à ces attributs d'ID, ainsi que leur contenu, sont exclus.

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 en-têtes.

L'analyseur numérique est utilisé si l'analyseur spécifié n'est pas compatible avec un type de fichier en cours d'importation. Par exemple, si l'analyseur de mise en page est spécifié, l'analyseur numérique est utilisé pour analyser les fichiers TXT, car l'analyseur de mise en page n'est pas compatible avec les fichiers texte.

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 datastore. 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 à l'aide de l'API, incluez documentProcessingConfig.defaultParsingConfig dans la requête 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. À définir uniquement si vous ingérez des PDF. Si cette option est définie sur true, elle active le traitement du texte lisible par machine 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 datastore de recherche via la console, vous pouvez spécifier l'analyseur par défaut.

Exemple

L'exemple suivant spécifie 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 doit être analysé par un analyseur différent de l'analyseur par défaut. Pour ce faire, incluez le champ documentProcessingConfig dans votre requête 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 d'analyseur spécifique à un type de fichier :

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

    Vous pouvez spécifier un analyseur pour un type de fichier donné :

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

    Remplacez les éléments suivants :

    • FILE_TYPE : les valeurs acceptées sont pdf, html, docx, pptx, xlsm et xlsx.

    • 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. À définir uniquement 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 datastores 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 de l'analyseur mis à jour 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 analysés à nouveau avec les nouveaux paramètres.

Pour modifier les paramètres d'analyse des documents d'un data store, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Gemini Enterprise.

    Gemini Enterprise

  2. Dans le menu de navigation, cliquez sur Datastores.

  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 de Analyse des documents.

    Les paramètres de fragmentation des documents ne peuvent pas être modifiés. Si la fragmentation des documents n'est pas activée pour 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 tags, 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 les 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 avec l'ID d'attribut 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&createAdvancedSiteSearch=true" \
-d '{
  "displayName": "exampledatastore",
  "industryVertical": "GENERIC",
  "contentConfig": "PUBLIC_WEBSITE",
  "documentProcessingConfig": {
    "chunkingConfig": {
      "layoutBasedChunkingConfig": {}
    },
    "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é. Obtenir des documents analysés au format JSON peut être utile si vous devez les importer ailleurs ou si vous décidez de les réimporter dans Gemini Enterprise à l'aide de la fonctionnalité Apporter votre propre document analysé.

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 Gemini Enterprise. 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, ce qui garantit 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.

Avant de commencer

Préparez vos documents analysés.

Chaque document analysé que vous souhaitez ingérer dans un data store non structuré doit être représenté par un fichier JSON autonome respectant la structure de schéma JSON suivante :

Champ Type Description
title Chaîne Titre du fichier de contenu.
description Chaîne Facultatif : description du document.
uri Chaîne URI Cloud Storage du contenu.
name Chaîne Facultatif : Chemin d'accès complet au nom de ressource du document.
blocks Tableau Liste ordonnée de blocs de mise en page représentant la structure du document.

Ingérer des données non structurées analysées

Vous importez des 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. Chaque fois qu'un fichier JSON est importé et identifié par un type MIME application/json ou une extension de fichier JSON dans votre fichier JSON Lines de métadonnées, il est traité comme un document analysé.

Pour ingérer des données non structurées analysées, procédez comme suit :

  1. Préparez votre fichier de métadonnées JSON Lines.

    Chaque ligne du fichier de métadonnées doit respecter le format structData :

    {
      "id": "DOCUMENT_ID",
      "structData": {
        "category": "CATEGORY",
        "updated": "YYYY-MM-DD"
      },
      "content": {
        "mimeType": "application/json",
        "uri": "gs://PARSED_DOC_FILE"
      }
    }
    

    Remplacez les éléments suivants :

    • DOCUMENT_ID : Identifiant unique du document.

    • CATEGORY : étiquette de votre choix pour la classification des documents. Ce champ est généralement réservé aux métadonnées pouvant être utilisées pour le filtrage et la segmentation.

    • YYYY-MM-DD : date de modification du document.

    • PARSED_DOC_FILE : chemin d'accès Cloud Storage à l'un des fichiers JSON autonomes que vous avez créés dans la section Avant de commencer ci-dessus, par exemple my_bucket/my_folder/my_file.json.

  2. Ingérez les données dans un nouveau data store non structuré (Créer un datastore first party) ou dans un data store existant (Actualiser les données non structurées).

Diviser des documents pour le RAG

Par défaut, Gemini Enterprise 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.

Gemini Enterprise peut être optimisé pour la RAG, où votre application de recherche est principalement utilisée pour enrichir les résultats du LLM avec vos données personnalisées. Lorsque la segmentation des documents est activée, Gemini Enterprise divise vos documents en segments. Dans les résultats de recherche, votre application de recherche peut renvoyer des fragments de données pertinents au lieu de documents complets. L'utilisation de données fragmentées pour le RAG augmente la pertinence des réponses des LLM et réduit leur charge de calcul.

Pour utiliser Gemini Enterprise pour la RAG :

  1. Activez la fragmentation des documents lorsque vous créez votre datastore. Vous pouvez également importer vos propres fragments (preview) si vous avez déjà fragmenté vos documents.

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

  3. Renvoyer des blocs dans les demandes de recherche

Limites

Les limites suivantes s'appliquent au chunking :

  • La fragmentation des documents ne peut pas être activée ni désactivée après la création du data store.
  • Vous pouvez envoyer des requêtes de recherche de documents au lieu de fragments à partir d'un data store pour lequel la fragmentation des documents est activée. Toutefois, les datastores 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 en documents.

Options de fragmentation de documents

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

Lors de la création du data store, activez les options suivantes pour que Gemini Enterprise 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 la segmentation de documents basée sur la mise en page est activée, Gemini Enterprise détecte la mise en page d'un document et en tient compte lors de la segmentation. 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, DOCX, PPTX, XLSX et XLSM. Il identifie les éléments tels que les blocs de texte, les tableaux, les listes, les titres et les 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

Pour activer la fragmentation des documents, incluez l'objet documentProcessingConfig dans votre demande de création de data store, puis activez 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 requête 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. L'ajout du titre et des en-têtes à tous les niveaux aux fragments du 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 via la console, vous pouvez activer la fragmentation des documents.

Apportez vos propres blocs

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

Chaque document que vous souhaitez importer sous forme de blocs présegmentés doit être représenté par un fichier JSON autonome respectant le schéma suivant :

{
  "documentMetadata": {
    "title": "DOCUMENT_TITLE",
    "uri": "gs://ORIGINAL_DOC_FILE"
  },
  "chunks": [
    {
      "id": "CHUNK_ID",
      "content": "CHUNK_CONTENT",
      "pageSpan": {
        "pageStart": PAGE_START,
        "pageEnd": PAGE_END
      }
    }
  ]
}

Remplacez les éléments suivants :

  • DOCUMENT_TITLE : titre du document.
  • ORIGINAL_DOC_FILE : chemin d'accès Cloud Storage au fichier du document d'origine, par exemple my-bucket-123/my_folder/document.pdf.
  • CHUNK_ID : ID unique du bloc.
  • CHUNK_CONTENT : contenu textuel du fragment.
  • PAGE_START : numéro de la page (à partir de 1) où commence le fragment dans le document d'origine.
  • PAGE_END : numéro de la page (à partir de 1) où se termine le bloc dans le document d'origine.

Il n'existe pas de bouton permettant d'activer cette fonctionnalité. Lorsqu'un fichier JSON conforme à ce schéma est importé et identifié par un type MIME application/json ou une extension de fichier JSON dans votre fichier de lignes de métadonnées, il est automatiquement reconnu et ingéré en tant que document pré-segmenté.

Lister les fragments d'un document

Pour lister tous les fragments 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 dont vous souhaitez lister les fragments.

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

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

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 dont vous souhaitez obtenir les fragments.

Obtenir des fragments spécifiques

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

REST

Pour obtenir un fragment 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 d'où provient le fragment.
    • CHUNK_ID : ID du bloc à renvoyer.

Une fois que vous avez confirmé que vos données ont été correctement segmentées, Gemini Enterprise peut renvoyer des données segmentées dans ses résultats de recherche.

La réponse renvoie un fragment pertinent pour la requête de recherche. En outre, vous pouvez choisir de renvoyer les fragments adjacents qui apparaissent avant et après le fragment pertinent dans le document source. Les fragments 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 de blocs. Pour obtenir des fragments, la fragmentation des documents doit être activée dans le data store. Les valeurs acceptées sont documents et chunks. Si la segmentation des documents est activée 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 fragments à renvoyer qui suivent immédiatement le fragment pertinent. La valeur maximale autorisée est de 5.

Exemple

L'exemple de requête de recherche suivant définit SearchResultMode sur chunks, demande un fragment précédent et un fragment suivant, et limite le nombre de résultats à un seul fragment 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 montre la réponse renvoyée pour l'exemple de requête. La réponse contient les fragments pertinents, les fragments précédents et suivants, les métadonnées du document d'origine et la plage de pages du document à partir de laquelle chaque fragment a été dérivé.

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