Il parser predefinito per Gemini Enterprise è il parser di layout. In genere è la scelta migliore perché rileva e comprende la gerarchia dei documenti, il che porta a un migliore chunking e, in ultima analisi, a una migliore generazione e recupero delle risposte. Tuttavia, in alcune situazioni potresti voler modificare l'analizzatore sintattico predefinito, ad esempio se hai molti dati scansionati da caricare nel datastore. Questa pagina descrive come modificare il parser.
Puoi specificare come analizzare i contenuti non strutturati quando li carichi su Gemini Enterprise. Gemini Enterprise fornisce un parser di layout (predefinito, consigliato), un parser digitale e un parser OCR per i PDF. Puoi anche utilizzare i tuoi documenti analizzati.
Consulta Migliora il rilevamento contenuti con l'analisi.
Analizza i documenti
Puoi controllare l'analisi dei contenuti nei seguenti modi:
Specifica il tipo di parser. Puoi specificare il tipo di analisi da applicare in base al tipo di file:
Parser del layout. Il parser del layout è il parser predefinito. Per informazioni su questo parser, consulta Suddividi i documenti per RAG.
Analisi OCR per i PDF. Se prevedi di caricare PDF scansionati o PDF con testo all'interno di immagini, puoi attivare l'analizzatore OCR per migliorare l'indicizzazione dei PDF. Consulta la sezione Parser OCR per PDF di questo documento.
Parser digitale. Il parser digitale è un parser di base che estrae il testo leggibile da macchina dai documenti. Per saperne di più, consulta Parser digitale.
Porta il tuo documento analizzato. (Anteprima) Se hai già analizzato i tuoi documenti non strutturati, puoi importare i contenuti pre-analizzati in Gemini Enterprise. Consulta Utilizza il tuo documento analizzato.
Confronto della disponibilità dei parser
La tabella seguente elenca la disponibilità di ogni parser in base ai tipi di file dei documenti e mostra quali elementi ogni parser può rilevare e analizzare.
| Tipo di file | Parser digitale | Parser OCR | Parser del layout |
|---|---|---|---|
| HTML | Rileva gli elementi dei paragrafi | Non applicabile | Rileva elementi di paragrafo, tabella, immagine, elenco, titolo e intestazione |
| Rileva gli elementi di paragrafo (testo digitale) | Rileva gli elementi dei paragrafi | Rileva elementi di paragrafo, tabella, titolo, immagine e intestazione | |
| DOCX | Rileva gli elementi dei paragrafi | Non applicabile | Rileva elementi di paragrafo, tabella, immagine, elenco, titolo e intestazione |
| PPTX | Rileva gli elementi dei paragrafi | Non applicabile | Rileva elementi di paragrafo, tabella, immagine, elenco, titolo e intestazione |
| TXT | Rileva gli elementi dei paragrafi | Non applicabile | Non applicabile |
| XLSX | Rileva gli elementi dei paragrafi | Non applicabile | Rileva elementi di paragrafo, tabella, titolo e intestazione |
| XLSM | Rileva gli elementi dei paragrafi | Non applicabile | Rileva elementi di paragrafo, tabella, titolo e intestazione |
Parser OCR per PDF
Se hai PDF non disponibili per la ricerca (PDF scansionati o PDF con testo all'interno di immagini, come infografiche), Google consiglia di attivare l'elaborazione del riconoscimento ottico dei caratteri (OCR) durante la creazione del datastore. In questo modo, Gemini Enterprise può estrarre gli elementi dei paragrafi.
Se hai PDF disponibili per la ricerca o altri formati digitali composti principalmente da testo leggibile da macchina, in genere non è necessario utilizzare l'analizzatore OCR. Tuttavia, se hai PDF con testo non ricercabile (ad esempio testo scansionato o infografiche) e testo leggibile da macchina, puoi impostare il campo useNativeText su true quando specifichi l'analizzatore OCR. In questo caso, il testo leggibile da macchina viene unito agli output di analisi OCR per migliorare la qualità dell'estrazione del testo.
Le funzionalità di elaborazione OCR sono disponibili per le app di ricerca personalizzata con datastore di dati non strutturati.
Il processore OCR può analizzare le prime 500 pagine di un file PDF. Le pagine che superano il limite di 500 non vengono elaborate.
Parser del layout
Questo è il parser predefinito. Consente a Gemini Enterprise di rilevare i layout per PDF, HTML, DOCX, PPTX, XLSX e XLSM. Gemini Enterprise può quindi identificare elementi di contenuto come blocchi di testo, tabelle, elenchi ed elementi strutturali come titoli e intestazioni e utilizzarli per definire l'organizzazione e la gerarchia di un documento.
Il parser del layout rileva elementi dei contenuti come paragrafi, tabelle, elenchi ed elementi strutturali come titoli, intestazioni, piè di pagina e note a piè di pagina.
Gemini Enterprise suddivide i documenti in blocchi al momento dell'importazione e può restituirli come blocchi. Il rilevamento del layout del documento consente il chunking sensibile ai contenuti e migliora la ricerca e la generazione di risposte relative agli elementi del documento. Per saperne di più sul chunking dei documenti per RAG, consulta Suddividi i documenti per RAG.
Le funzionalità complete del parser di layout, come l'analisi delle tabelle, i layout a più colonne e i contenuti dipendenti dall'OCR, vengono sfruttate al meglio in modalità di importazione dati.
Sebbene anche i connettori in modalità di connessione di ricerca federata (come Microsoft SharePoint e Microsoft OneDrive) utilizzino l'analizzatore del layout, la natura in tempo reale di queste query può impedire all'analizzatore di analizzare completamente strutture PDF complesse. Per un'analisi approfondita di PDF complessi, consigliamo di utilizzare i connettori in modalità di importazione dati.
Annotazione di immagini
Con l'annotazione delle immagini, quando viene rilevata un'immagine in un documento di origine, una descrizione (annotazione) dell'immagine e l'immagine stessa vengono assegnate a un chunk. L'annotazione determina se il segmento deve essere restituito in un risultato di ricerca. Se viene generata una risposta, l'annotazione può essere una fonte per la risposta.
Il parser del layout può rilevare i seguenti tipi di immagini: BMP, GIF, JPEG, PNG e TIFF.
Annotazione tabella
Con l'annotazione delle tabelle, quando viene rilevata una tabella in un documento di origine, una descrizione (annotazione) della tabella e la tabella stessa vengono assegnate a un chunk. L'annotazione determina se il segmento deve essere restituito in un risultato di ricerca. Se viene generata una risposta, l'annotazione può essere una fonte per la risposta.
Escludi i contenuti HTML
Quando utilizzi l'analizzatore del layout per i documenti HTML, puoi escludere parti specifiche dei contenuti HTML dall'elaborazione. Per migliorare la qualità dei dati per le applicazioni di ricerca e le applicazioni RAG, puoi escludere boilerplate o sezioni come menu di navigazione, intestazioni, piè di pagina o barre laterali.
layoutParsingConfig fornisce i seguenti campi
per questo scopo:
excludeHtmlElements: elenco dei tag HTML da escludere. I contenuti all'interno di questi tag sono esclusi.excludeHtmlClasses: elenco degli attributi della classe HTML da escludere. Gli elementi HTML contenenti questi attributi di classe, insieme ai relativi contenuti, vengono esclusi.excludeHtmlIds: elenco degli attributi ID degli elementi HTML da escludere. Gli elementi HTML con questi attributi ID, insieme ai relativi contenuti, vengono esclusi.
Parser digitale
Il parser digitale estrae il testo leggibile da macchina dai documenti. Rileva i blocchi di testo, ma non gli elementi del documento come tabelle, elenchi e intestazioni.
Il parser digitale viene utilizzato se il parser specificato non supporta un tipo di file che viene caricato. Ad esempio, se viene specificato l'analizzatore del layout, l'analizzatore digitale viene utilizzato per analizzare i file TXT perché l'analizzatore del layout non supporta i file di testo.
Specifica un parser predefinito
Se includi l'oggetto documentProcessingConfig quando crei un datastore, puoi specificare un parser predefinito per quel datastore. Se non includi documentProcessingConfig.defaultParsingConfig, viene utilizzato l'analizzatore digitale. Il parser digitale viene utilizzato anche se il parser specificato non è disponibile per un tipo di file.
REST
Per specificare un parser predefinito:
Quando crei un datastore utilizzando l'API, includi
documentProcessingConfig.defaultParsingConfignella richiesta di creazione del datastore. Puoi specificare il parser OCR, il parser di layout o il parser digitale:Per specificare l'analizzatore OCR per i PDF:
"documentProcessingConfig": { "defaultParsingConfig": { "ocrParsingConfig": { "useNativeText": "NATIVE_TEXT_BOOLEAN" } } }NATIVE_TEXT_BOOLEANè facoltativo. Imposta solo se importi PDF. Se impostata sutrue, questa opzione attiva l'elaborazione del testo leggibile da macchina per il parser OCR. Il valore predefinito èfalse.
Per specificare il parser di layout:
"documentProcessingConfig": { "defaultParsingConfig": { "layoutParsingConfig": {} } }Per specificare il parser digitale:
"documentProcessingConfig": { "defaultParsingConfig": { "digitalParsingConfig": {} } }
Console
Quando crei un datastore di ricerca tramite la console, puoi specificare l'analizzatore sintattico predefinito.
Esempio
L'esempio seguente specifica durante la creazione del datastore che il parser OCR sarà il parser predefinito. Poiché l'analizzatore OCR si applica solo ai file PDF, tutti i file PDF importati verranno elaborati dall'analizzatore OCR, mentre tutti gli altri tipi di file verranno elaborati dall'analizzatore digitale.
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"
}
}
}
}'
Specifica gli override del parser per i tipi di file
Puoi specificare che un determinato tipo di file deve essere analizzato da un parser diverso da quello predefinito. Per farlo, includi il campo documentProcessingConfig nella richiesta di creazione del datastore e specifica l'analizzatore sintattico di override. Se non specifichi un parser predefinito, il parser digitale è quello predefinito.
REST
Per specificare un override del parser specifico per il tipo di file:
Quando crei un datastore utilizzando l'API, includi
documentProcessingConfig.defaultParsingConfignella richiesta di creazione del datastore.Puoi specificare un parser per un determinato tipo di file:
"documentProcessingConfig": { "parsingConfigOverrides": { "FILE_TYPE": { PARSING_CONFIG }, } }Sostituisci quanto segue:
FILE_TYPE: i valori accettati sonopdf,html,docx,pptx,xlsmexlsx.PARSING_CONFIG: Specifica la configurazione per il parser che desideri applicare al tipo di file. Puoi specificare il parser OCR, il parser di layout o il parser digitale:Per specificare l'analizzatore sintattico OCR per i PDF:
"ocrParsingConfig": { "useNativeText": "NATIVE_TEXT_BOOLEAN" }NATIVE_TEXT_BOOLEAN: (Facoltativo) Imposta solo se stai importando PDF. Se impostato sutrue, attiva l'elaborazione del testo leggibile da macchina per il parser OCR. Il valore predefinito èfalse.
Per specificare il parser di layout:
"layoutParsingConfig": {}Per specificare il parser digitale:
"documentProcessingConfig": { "defaultParsingConfig": { "digitalParsingConfig": {} } }
Console
Quando crei un datastore di ricerca tramite la console, puoi specificare gli override del parser per tipi di file specifici.
Esempio
L'esempio seguente specifica durante la creazione del datastore che i file PDF devono essere elaborati dal parser OCR e che i file HTML devono essere elaborati dal parser del layout. In questo caso, tutti i file diversi da PDF e HTML verranno elaborati dall'analizzatore digitale.
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": {}
}
}
}
}'
Modifica l'analisi dei documenti per i datastore esistenti
Se hai già un datastore, puoi modificare il parser predefinito e aggiungere eccezioni per i formati file. Tuttavia, le impostazioni del parser aggiornate si applicano solo ai nuovi documenti importati nel datastore. I documenti già presenti nel datastore non vengono analizzati nuovamente con le nuove impostazioni.
Per modificare le impostazioni di analisi dei documenti per un datastore, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Gemini Enterprise.
Nel menu di navigazione, fai clic su Datastore.
Nella colonna Nome, fai clic sul datastore da modificare.
Nella scheda Configurazione di elaborazione, modifica le impostazioni di Analisi dei documenti.
Le impostazioni di Suddivisione in blocchi dei documenti non possono essere modificate. Se il datastore non ha il chunking dei documenti abilitato, non puoi scegliere l'analizzatore del layout.
Fai clic su Invia.
Configura il parser del layout per escludere i contenuti HTML
Puoi configurare il parser del layout per escludere i contenuti HTML specificando excludeHtmlElements, excludeHtmlClasses o excludeHtmlIds in documentProcessingConfig.defaultParsingConfig.layoutParsingConfig.
REST
Per escludere determinati contenuti HTML dall'elaborazione da parte del parser del layout, segui questi passaggi:
Quando crei un datastore di ricerca utilizzando l'API, includi
documentProcessingConfig.defaultParsingConfig.layoutParsingConfignella richiesta di creazione del datastore.Per escludere tipi di tag HTML specifici, utilizza:
"documentProcessingConfig": { "defaultParsingConfig": { "layoutParsingConfig": { "excludeHtmlElements": ["HTML_TAG_1","HTML_TAG_2","HTML_TAG_N"] } } }Sostituisci le variabili HTML_TAG con i nomi dei tag, ad esempio
navefooter.Per escludere attributi di classe di elementi HTML specifici, utilizza:
"documentProcessingConfig": { "defaultParsingConfig": { "layoutParsingConfig": { "excludeHtmlClasses": ["HTML_CLASS_1","HTML_CLASS_2","HTML_CLASS_N"] } } }Sostituisci le variabili HTML_CLASS con gli attributi della classe, ad esempio
overlayescreenreader.Per escludere attributi ID di elementi HTML specifici, utilizza:
"documentProcessingConfig": { "defaultParsingConfig": { "layoutParsingConfig": { "excludeHtmlIds": ["HTML_ID_1","HTML_ID_2","HTML_ID_N"] } } }Sostituisci le variabili HTML_ID con gli attributi ID, ad esempio
cookie-banner.
Esempio
Questo esempio specifica che, quando i file HTML vengono elaborati dal parser del layout, il parser ignora quanto segue:
Tag degli elementi HTML,
header,footer,naveasideAttributi di classe degli elementi HTML di tipo
overlaysescreenreaderQualsiasi elemento con l'ID attributo
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"]
}
}
}
}'
Ottieni documenti analizzati in JSON
Puoi ottenere un documento analizzato in formato JSON chiamando il metodo getProcessedDocument e specificando PARSED_DOCUMENT come tipo di documento elaborato. Ottenere i documenti analizzati in formato JSON può essere utile se devi caricarli altrove o se decidi di reimportarli in Gemini Enterprise utilizzando la funzionalità Porta il tuo documento analizzato.
REST
Per ottenere i documenti analizzati in formato JSON, segui questo passaggio:
Chiama il metodo
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"Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto.DATA_STORE_ID: l'ID del datastore.DOCUMENT_ID: l'ID del documento da recuperare.
Usa il tuo documento analizzato
Puoi importare documenti non strutturati pre-analizzati nei datastore di Gemini Enterprise. Ad esempio, anziché importare un documento PDF non elaborato, puoi analizzare il PDF e importare il risultato dell'analisi. In questo modo puoi importare i documenti in modo strutturato, assicurandoti che la ricerca e la generazione delle risposte abbiano informazioni sul layout e sugli elementi del documento.
Un documento non strutturato analizzato è rappresentato da un JSON che descrive il documento non strutturato utilizzando una sequenza di blocchi di testo, tabelle ed elenchi.
Prima di iniziare
Prepara i documenti analizzati.
Ogni documento analizzato che vuoi importare in un datastore di dati non strutturati deve essere rappresentato da un file JSON autonomo che rispetti la seguente struttura dello schema JSON:
| Campo | Tipo | Descrizione |
|---|---|---|
title |
Stringa | Titolo del file dei contenuti. |
description |
Stringa | (Facoltativo) Descrizione del documento. |
uri |
Stringa | L'URI Cloud Storage dei contenuti. |
name |
Stringa | (Facoltativo) Percorso del nome completo della risorsa del documento. |
blocks |
Array | Elenco ordinato di blocchi di layout che rappresentano la struttura del documento. |
Importa i dati non strutturati analizzati
Puoi importare i file JSON con i dati dei documenti non strutturati analizzati nello stesso modo in cui importi altri tipi di documenti non strutturati, come i PDF.
Ogni volta che un file JSON viene caricato e identificato da un tipo MIME application/json o da un'estensione del file JSON nel file JSON Lines dei metadati, viene trattato come un documento analizzato.
Per importare i dati non strutturati analizzati, segui questi passaggi:
Prepara il file di metadati JSON Lines.
Ogni riga del file di metadati deve seguire il formato structData:
{ "id": "DOCUMENT_ID", "structData": { "category": "CATEGORY", "updated": "YYYY-MM-DD" }, "content": { "mimeType": "application/json", "uri": "gs://PARSED_DOC_FILE" } }Sostituisci quanto segue:
DOCUMENT_ID: l'ID univoco del documento.CATEGORY: un'etichetta a tua scelta per la classificazione dei documenti. Questo campo è in genere destinato ai metadati che possono essere utilizzati per il filtro e la suddivisione in gruppi.YYYY-MM-DD: la data di modifica del documento.PARSED_DOC_FILE: il percorso di Cloud Storage di uno dei file JSON autonomi che hai creato nella sezione Prima di iniziare riportata sopra, ad esempiomy_bucket/my_folder/my_file.json.
Importa i dati in un nuovo datastore di dati non strutturati (Crea un datastore di dati proprietari) o in un datastore esistente (Aggiorna i dati non strutturati).
Suddividi i documenti in blocchi per RAG
Per impostazione predefinita, Gemini Enterprise è ottimizzato per il recupero di documenti, in cui l'app di ricerca restituisce un documento, ad esempio un PDF o una pagina web, con ogni risultato di ricerca.
Le funzionalità di suddivisione in blocchi dei documenti sono disponibili per le app di ricerca personalizzate con datastore non strutturati.
Gemini Enterprise può invece essere ottimizzato per la RAG, in cui l'app di ricerca viene utilizzata principalmente per migliorare l'output dell'LLM con i tuoi dati personalizzati. Quando la suddivisione dei documenti in blocchi è attiva, Gemini Enterprise suddivide i documenti in blocchi. Nei risultati di ricerca, l'app di ricerca può restituire blocchi di dati pertinenti anziché documenti completi. L'utilizzo di dati suddivisi in blocchi per la RAG aumenta la pertinenza delle risposte degli LLM e riduce il carico di calcolo per gli LLM.
Per utilizzare Gemini Enterprise per RAG:
Attiva il chunking dei documenti quando crei il datastore. In alternativa, carica i tuoi chunk (anteprima) se hai già suddiviso i tuoi documenti.
Recupera e visualizza i chunk nei seguenti modi:
Limitazioni
Al chunking si applicano le seguenti limitazioni:
- Il chunking dei documenti non può essere attivato o disattivato dopo la creazione del datastore.
- Puoi effettuare richieste di ricerca di documenti anziché di chunk da un datastore con il chunking dei documenti attivato. Tuttavia, i datastore con la suddivisione in blocchi dei documenti attivata non sono ottimizzati per la restituzione dei documenti. I documenti vengono restituiti aggregando i chunk in documenti.
Opzioni di chunking dei documenti
Questa sezione descrive le opzioni che specifichi per attivare il chunking dei documenti.
Durante la creazione del datastore, attiva le seguenti opzioni in modo che Gemini Enterprise possa indicizzare i tuoi documenti come chunk.
Chunking dei documenti basato sul layout. Per attivare questa opzione, includi il campo
documentProcessingConfignella richiesta di creazione del datastore e specificaChunkingConfig.LayoutBasedChunkingConfig.Quando la suddivisione in blocchi dei documenti basata sul layout è attiva, Gemini Enterprise rileva il layout di un documento e lo tiene in considerazione durante la suddivisione in blocchi. In questo modo, migliora la coerenza semantica e si riduce il rumore nei contenuti quando vengono utilizzati per il recupero e la generazione di LLM. Tutto il testo di un segmento proverrà dalla stessa entità di layout, ad esempio intestazioni, sottotitoli ed elenchi.
Analisi del layout. Per attivare questa opzione, specifica
ParsingConfig.LayoutParsingConfigdurante la creazione del datastore.Il parser di layout rileva i layout per i file PDF, HTML, DOCX, PPTX, XLSX e XLSM. Identifica elementi come blocchi di testo, tabelle, elenchi, titoli e intestazioni e li utilizza per definire l'organizzazione e la gerarchia di un documento.
Per saperne di più sull'analisi del layout, consulta Analisi del layout.
Attiva il chunking dei documenti
Puoi attivare il chunking dei documenti includendo l'oggetto documentProcessingConfig nella richiesta di creazione del datastore e attivando il chunking dei documenti basato sul layout e l'analisi del layout.
REST
Per attivare il chunking dei documenti:
Quando crei un datastore di ricerca utilizzando l'API, includi l'oggetto
documentProcessingConfig.chunkingConfignella richiesta di creazione del datastore."documentProcessingConfig": { "chunkingConfig": { "layoutBasedChunkingConfig": { "chunkSize": CHUNK_SIZE_LIMIT, "includeAncestorHeadings": HEADINGS_BOOLEAN, } }, "defaultParsingConfig": { "layoutParsingConfig": {} } }Sostituisci quanto segue:
CHUNK_SIZE_LIMIT: (Facoltativo) Il limite di dimensioni dei token per ogni chunk. Il valore predefinito è 500. I valori supportati sono compresi tra 100 e 500 (inclusi).HEADINGS_BOOLEAN: (Facoltativo) Determina se le intestazioni sono incluse in ogni chunk. Il valore predefinito èfalse. L'aggiunta del titolo e delle intestazioni a tutti i livelli ai chunk dalla parte centrale del documento può aiutare a prevenire la perdita di contesto nel recupero e nel ranking dei chunk.
Console
Quando crei un datastore di ricerca tramite la console, puoi attivare il chunking dei documenti.
Utilizza i tuoi chunk
Se hai già suddiviso i tuoi documenti, puoi caricarli su Gemini Enterprise anziché attivare le opzioni di suddivisione dei documenti.
Ogni documento che vuoi importare come chunk pre-segmentati deve essere rappresentato da un file JSON autonomo conforme al seguente schema:
{
"documentMetadata": {
"title": "DOCUMENT_TITLE",
"uri": "gs://ORIGINAL_DOC_FILE"
},
"chunks": [
{
"id": "CHUNK_ID",
"content": "CHUNK_CONTENT",
"pageSpan": {
"pageStart": PAGE_START,
"pageEnd": PAGE_END
}
}
]
}
Sostituisci quanto segue:
DOCUMENT_TITLE: il titolo del documento.ORIGINAL_DOC_FILE: il percorso di Cloud Storage del file del documento originale, ad esempiomy-bucket-123/my_folder/document.pdf.CHUNK_ID: un ID univoco per il chunk.CHUNK_CONTENT: il contenuto di testo del segmento.PAGE_START: il numero di pagina, a partire da 1, in cui inizia il chunk nel documento originale.PAGE_END: il numero di pagina, a partire da 1, in cui termina il segmento nel documento originale.
Non esiste un'opzione esplicita per attivare questa funzionalità. Quando un file JSON conforme a questo schema viene caricato e identificato da un tipo MIME application/json o da un'estensione del file JSON nel file delle righe dei metadati, viene riconosciuto e importato automaticamente come documento pre-suddiviso in blocchi.
Elenca i chunk di un documento
Per elencare tutti i chunk di un documento specifico, chiama il metodo Chunks.list.
REST
Per elencare i chunk di un documento, segui questo passaggio:
Chiama il metodo
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"Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto.DATA_STORE_ID: l'ID del datastore.DOCUMENT_ID: l'ID del documento da cui elencare i chunk.
Ottieni i chunk in formato JSON da un documento elaborato
Puoi ottenere tutti i segmenti di un documento specifico in formato JSON chiamando il metodo getProcessedDocument. Ottenere i chunk in formato JSON può essere utile se devi caricarli altrove o se decidi di reimportarli in Gemini Enterprise utilizzando la funzionalità Bring Your Own Chunk.
REST
Per ottenere i chunk JSON per un documento, segui questo passaggio:
Chiama il metodo
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"Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto.DATA_STORE_ID: l'ID del datastore.DOCUMENT_ID: l'ID del documento da cui ottenere i chunk.
Recupera chunk specifici
Per ottenere un chunk specifico, chiama il metodo Chunks.get.
REST
Per ottenere un chunk specifico, segui questo passaggio:
Chiama il metodo
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"Sostituisci quanto segue:
PROJECT_ID: l'ID del progetto.DATA_STORE_ID: l'ID del datastore.DOCUMENT_ID: l'ID del documento da cui proviene il chunk.CHUNK_ID: l'ID del chunk da restituire.
Restituisci i chunk nelle richieste di ricerca
Dopo aver verificato che i dati sono stati suddivisi in blocchi correttamente, Gemini Enterprise può restituire i dati suddivisi in blocchi nei risultati di ricerca.
La risposta restituisce un segmento pertinente alla query di ricerca. Inoltre, puoi scegliere di restituire i segmenti adiacenti che appaiono prima e dopo il segmento pertinente nel documento di origine. I chunk adiacenti possono aggiungere contesto e precisione.
REST
Per ottenere i dati suddivisi in blocchi:
Quando effettui una richiesta di ricerca, specifica
ContentSearchSpec.SearchResultModecomechunks.contentSearchSpec": { "searchResultMode": "RESULT_MODE", "chunkSpec": { "numPreviousChunks": NUMBER_OF_PREVIOUS_CHUNKS, "numNextChunks": NUMBER_OF_NEXT_CHUNKS } }RESULT_MODE: determina se i risultati di ricerca vengono restituiti come documenti completi o in blocchi. Per ottenere i chunk, il datastore deve avere il chunking dei documenti attivato. I valori accettati sonodocumentsechunks. Se il chunking dei documenti è attivato per il datastore, il valore predefinito èchunks.NUMBER_OF_PREVIOUS_CHUNKS: il numero di chunk da restituire che precedono immediatamente il chunk pertinente. Il valore massimo consentito è 5.NUMBER_OF_NEXT_CHUNKS: il numero di segmenti da restituire che seguono immediatamente il segmento pertinente. Il valore massimo consentito è 5.
Esempio
Il seguente esempio di richiesta di query di ricerca imposta SearchResultMode su
chunks, richiede un chunk precedente e un chunk successivo e limita il numero
di risultati a un singolo chunk pertinente utilizzando 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'esempio seguente mostra la risposta restituita per la query di esempio. La risposta contiene i segmenti pertinenti, i segmenti precedenti e successivi, i metadati del documento originale e l'intervallo di pagine del documento da cui è stato derivato ogni segmento.
Risposta
{ "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": {} }