Supporto di documenti nativi per la Lingua di Azure AI (anteprima)
Importante
Il supporto dei documenti nativi è un'anteprima controllata. Per richiedere l'accesso alla funzionalità di supporto dei documenti nativi, completare e inviare il modulo Applica per l'accesso alle anteprime del servizio Lingua.
Le versioni di anteprima pubblica di Lingua di Azure AI offrono l'accesso anticipato alle funzionalità in fase di sviluppo attivo.
Le funzionalità, gli approcci e i processi possono cambiare prima della disponibilità generale, a seconda del feedback degli utenti.
La lingua di Azure AI è un servizio basato sul cloud che applica le funzionalità di elaborazione del linguaggio naturale ai dati basati su testo. La funzionalità di supporto del documento nativo consente di inviare richieste API in modo asincrono, usando un corpo della richiesta HTTP POST per inviare i dati e la stringa di query della richiesta HTTP GET per recuperare i risultati dello stato. I documenti elaborati si trovano nel contenitore di destinazione di archiviazione BLOB di Azure.
Un documento nativo fa riferimento al formato di file usato per creare il documento originale, ad esempio Microsoft Word (docx) o un file di documento portatile (pdf). Il supporto di documenti nativi elimina la necessità di pre-elaborazione del testo prima dell'uso delle funzionalità delle risorse di Lingua di Azure AI. Attualmente, il supporto per i documenti nativi è disponibile per le funzionalità seguenti:
informazioni personali (PII). La funzionalità di rilevamento delle informazioni personali consente di identificare, classificare e redigere le informazioni riservate in un testo non strutturato. L'API
PiiEntityRecognition
supporta l'elaborazione dei documenti nativa.Riepilogo del documento Il riepilogo del documento usa l'elaborazione del linguaggio naturale per generare riepiloghi estrattivi (estrazione di frasi salienti) o astrattivi (estrazione di parole contestuali) per i documenti. Sia le API
AbstractiveSummarization
cheExtractiveSummarization
supportano l'elaborazione dei documenti nativi.
Formati di documento supportati
Le applicazioni usano formati di file nativi per creare, salvare o aprire documenti nativi. Attualmente le funzionalità relative alle informazioni personali e al riepilogo del documento supportano i formati di documento nativi seguenti:
Tipo di file | Estensione di file | Descrizione |
---|---|---|
Testo | .txt |
Documento di testo non formattato. |
Adobe PDF | .pdf |
Documento formattato con file di documento portatile. |
Microsoft Word | .docx |
File di documento Microsoft Word. |
Linee guida per l'input
Formati di file supportati
Type | Supporto e limitazioni |
---|---|
I PDF a scansione completa non sono supportati. | |
Testo all'interno delle immagini | Le immagini digitali con testo incorporato non sono supportate. |
Tabelle digitali | Le tabelle nei documenti analizzati non sono supportate. |
Dimensioni del documento
Attributo | Limite di input |
---|---|
Numero totale di documenti per richiesta | ≤ 20 |
Dimensioni totali del contenuto per richiesta | ≤ 1 MB |
Includere documenti nativi con una richiesta HTTP
Attività iniziali:
Per questo progetto viene usato lo strumento da riga di comando cURL per effettuare chiamate API REST.
Nota
Il pacchetto cURL è preinstallato nella maggior parte delle distribuzioni di Windows 10, Windows 11, macOS e Linux. È possibile controllare la versione del pacchetto con i comandi seguenti: Windows:
curl.exe -V
macOScurl -V
Linux:curl --version
Se cURL non è installato, ecco i collegamenti di installazione per la piattaforma:
Un account Azure attivo. Se non si ha un account, è possibile crearne uno gratuito.
Un account di Archiviazione BLOB di Azure. È anche necessario creare i contenitori nell'account di Archiviazione BLOB di Azure per i file di origine e di destinazione:
- Contenitore di origine. Questo contenitore consente di caricare i file nativi per l'analisi (obbligatorio).
- Contenitore di destinazione. Questo contenitore è il percorso in cui vengono archiviati i file analizzati (obbligatorio).
Una risorsa Lingua a servizio singolo (non una risorsa Servizi di Azure AI multiservizio):
Completare i campi dei dettagli dell'istanza e del progetto di risorse lingua come indicato di seguito:
Sottoscrizione. Selezionare una delle sottoscrizioni di Azure disponibili.
Gruppo di risorse. È possibile creare un nuovo gruppo di risorse o aggiungere la risorsa a un gruppo di risorse preesistente che condivide ciclo di vita, autorizzazioni e criteri identici.
Area della risorsa. Scegliere Globale a meno che l'azienda o l'applicazione non richieda un'area specifica. Se si prevede di usare un'identità gestita assegnata dal sistema per l'autenticazione, scegliere un'area geografica come Stati Uniti occidentali.
Nome. Immettere il nome scelto per la risorsa. Il nome scelto deve essere univoco in Azure.
Piano tariffario. È possibile usare il piano tariffario gratuito (
Free F0
) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.Selezionare Rivedi e crea.
Esaminare le condizioni del servizio e selezionare Crea per distribuire la risorsa.
Dopo aver distribuito correttamente la risorsa, selezionare Vai alla risorsa.
Recuperare la chiave e l'endpoint del servizio di lingua
Le richieste al servizio Lingua richiedono una chiave di sola lettura e un endpoint personalizzato per autenticare l'accesso.
Se è stata creata una nuova risorsa, dopo la distribuzione selezionare Vai alla risorsa. Se si dispone di una risorsa del servizio lingua esistente, passare direttamente alla pagina della risorsa.
Nella barra di scorrimento a sinistra, in Gestione risorse, selezionare Chiavi ed endpoint.
È possibile copiare e incollare
key
elanguage service instance endpoint
negli esempi di codice per autenticare la richiesta al servizio lingua. Per effettuare una chiamata API è necessaria una sola chiave.
Creare contenitori di Archiviazione BLOB di Azure
Sarà necessario creare contenitori nell'account di Archiviazione BLOB di Azure per i file di origine e di destinazione.
- Contenitore di origine. Questo contenitore consente di caricare i file nativi per l'analisi (obbligatorio).
- Contenitore di destinazione. Questo contenitore è il percorso in cui vengono archiviati i file analizzati (obbligatorio).
Autenticazione
Prima di poter creare, leggere o eliminare BLOB, è necessario concedere alla risorsa lingua l'accesso all'account di archiviazione. Esistono due metodi principali che è possibile usare per concedere l'accesso ai dati di archiviazione:
Token di firma di accesso condiviso (SAS). I token di firma di accesso condiviso della delega utente sono protetti con le credenziali di Microsoft Entra. I token di firma di accesso condiviso forniscono accesso sicuro e delegato alle risorse nell'account di archiviazione di Azure.
Controllo degli accessi in base al ruolo dell'identità gestita. Le identità gestite per le risorse di Azure sono entità servizio che creano un'identità Microsoft Entra e autorizzazioni specifiche per le risorse gestite di Azure.
Per questo progetto, l'accesso agli URL source location
e target location
viene autenticato con token di firma di accesso condiviso (SAS) aggiunti come stringhe di query. Ogni token viene assegnato a un BLOB specifico (file).
- Il contenitore o il BLOB di origine deve designare l'accesso in lettura e per elenchi.
- Il contenitore o il BLOB di destinazione deve designare l'accesso di scrittura e per elenchi.
Suggerimento
Poiché si sta elaborando un singolo file (BLOB), è consigliabile delegare l'accesso SAS delegato a livello di BLOB.
Intestazioni e parametri della richiesta
parameter | Descrizione |
---|---|
-X POST <endpoint> |
Specifica l'endpoint della risorsa lingua per l'accesso all'API. |
--header Content-Type: application/json |
Il tipo di contenuto per l'invio di dati JSON. |
--header "Ocp-Apim-Subscription-Key:<key> |
Specifica la chiave della risorsa lingua per l'accesso all'API. |
-data |
File JSON contenente i dati da passare con la richiesta. |
I comandi cURL seguenti vengono eseguiti da una shell BASH. Modificare questi comandi con il nome e la chiave della risorsa e con i valori del file JSON. Provare ad analizzare i documenti nativi selezionando il progetto di codice di esempio Personally Identifiable Information (PII)
o Document Summarization
:
Documento di esempio PII
Per questo avvio rapido è necessario caricare un documento di origine nel contenitore di origine. È possibile scaricare il documento di esempio di Microsoft Word o Adobe PDF per questo progetto. La lingua di origine è l'inglese.
Compilare la richiesta POST
Usando l'editor o l'IDE preferito, creare una nuova directory per l'app denominata
native-document
.Creare un nuovo file JSON denominato pii-detection.json nella directory native-document .
Copiare e incollare il seguente esempio di richiesta di informazioni personali dell'utente finalenel file
pii-detection.json
. Sostituire{your-source-container-SAS-URL}
e{your-target-container-SAS-URL}
con i valori dell'istanza dei contenitori dell'account di archiviazione nel portale di Azure.
Esempio di richiesta
{
"displayName": "Extracting Location & US Region",
"analysisInput": {
"documents": [
{
"language": "en-US",
"id": "Output-excel-file",
"source": {
"location": "{your-source-blob-with-SAS-URL}"
},
"target": {
"location": "{your-target-container-with-SAS-URL}"
}
}
]
},
"tasks": [
{
"kind": "PiiEntityRecognition",
"parameters":{
"excludePiiCategories" : ["PersonType", "Category2", "Category3"],
"redactionPolicy": "UseRedactionCharacterWithRefId"
}
}
]
}
Il valore di origine
location
è l'URL di firma di accesso condiviso per il documento di origine (BLOB) e non l'URL della firma di accesso condiviso del contenitore di origine.I valori possibili
redactionPolicy
sonoUseRedactionCharacterWithRefId
(predefinito) oUseEntityTypeName
. Per altre informazioni, vedereParametri PiiTask.
Eseguire la richiesta POST
Ecco la struttura preliminare della richiesta POST:
POST {your-language-endpoint}/language/analyze-documents/jobs?api-version=2023-11-15-preview
Prima di eseguire la richiesta POST, sostituire
{your-language-resource-endpoint}
e{your-key}
con i valori dell'istanza del servizio Lingua nel portale di Azure.Importante
Al termine, ricordarsi di rimuovere la chiave dal codice e non renderlo mai pubblico. Per la produzione, utilizzare un modo sicuro per archiviare e accedere alle credenziali, ad esempio Azure Key Vault. Per altre informazioni, vedere l'articolo sulla sicurezza di Servizi di Azure AI.
PowerShell
cmd /c curl "{your-language-resource-endpoint}/language/analyze-documents/jobs?api-version=2023-11-15-preview" -i -X POST --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@pii-detection.json"
Prompt dei comandi/terminale
curl -v -X POST "{your-language-resource-endpoint}/language/analyze-documents/jobs?api-version=2023-11-15-preview" --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@pii-detection.json"
Di seguito è fornito un esempio di risposta:
HTTP/1.1 202 Accepted Content-Length: 0 operation-location: https://{your-language-resource-endpoint}/language/analyze-documents/jobs/f1cc29ff-9738-42ea-afa5-98d2d3cabf94?api-version=2023-11-15-preview apim-request-id: e7d6fa0c-0efd-416a-8b1e-1cd9287f5f81 x-ms-region: West US 2 Date: Thu, 25 Jan 2024 15:12:32 GMT
Risposta POST (jobId)
Si riceve una risposta 202 (Operazione riuscita) che include un'intestazione Operation-Location di sola lettura. Il valore di questa intestazione contiene un jobId che può essere sottoposto a query per ottenere lo stato dell'operazione asincrona e recuperare i risultati usando una richiesta GET:
Ottenere i risultati dell'analisi (richiesta GET)
Dopo aver completato la richiesta POST, eseguire il polling dell'intestazione operation-location restituita nella richiesta POST per visualizzare i dati elaborati.
Ecco la struttura preliminare della richiesta GET:
GET {your-language-endpoint}/language/analyze-documents/jobs/{jobId}?api-version=2023-11-15-preview
Prima di eseguire il comando, apportare queste modifiche:
Sostituire {jobId} con l'intestazione Operation-Location della risposta POST.
Sostituire {your-language-resource-endpoint} e {your-key} con i valori dell'istanza del servizio Lingua nel portale di Azure.
Richiesta GET
cmd /c curl "{your-language-resource-endpoint}/language/analyze-documents/jobs/{jobId}?api-version=2023-11-15-preview" -i -X GET --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}"
curl -v -X GET "{your-language-resource-endpoint}/language/analyze-documents/jobs/{jobId}?api-version=2023-11-15-preview" --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}"
Esaminare i risultati
Si riceve una risposta 200 (Operazione riuscita) con l'output JSON. Il campo stato indica il risultato dell'operazione. Se l'operazione non è completa, il valore di stato è "in esecuzione" o "notStarted" (non avviato) ed è necessario chiamare di nuovo l'API, manualmente o tramite uno script. Si consiglia di attendere almeno un secondo tra le chiamate.
Risposta di esempio
{
"jobId": "f1cc29ff-9738-42ea-afa5-98d2d3cabf94",
"lastUpdatedDateTime": "2024-01-24T13:17:58Z",
"createdDateTime": "2024-01-24T13:17:47Z",
"expirationDateTime": "2024-01-25T13:17:47Z",
"status": "succeeded",
"errors": [],
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "PiiEntityRecognitionLROResults",
"lastUpdateDateTime": "2024-01-24T13:17:58.33934Z",
"status": "succeeded",
"results": {
"documents": [
{
"id": "doc_0",
"source": {
"kind": "AzureBlob",
"location": "https://myaccount.blob.core.windows.net/sample-input/input.pdf"
},
"targets": [
{
"kind": "AzureBlob",
"location": "https://myaccount.blob.core.windows.net/sample-output/df6611a3-fe74-44f8-b8d4-58ac7491cb13/PiiEntityRecognition-0001/input.result.json"
},
{
"kind": "AzureBlob",
"location": "https://myaccount.blob.core.windows.net/sample-output/df6611a3-fe74-44f8-b8d4-58ac7491cb13/PiiEntityRecognition-0001/input.docx"
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2023-09-01"
}
}
]
}
}
Al termine dell'operazione:
- I documenti analizzati sono disponibili nel contenitore di destinazione.
- La corretta esecuzione del metodo POST restituisce un codice di risposta
202 Accepted
che indica che il servizio ha creato la richiesta batch. - Anche la richiesta POST restituisce intestazioni della risposta, tra cui
Operation-Location
che fornisce un valore usato nelle richieste GET successive.
Pulire le risorse
Se si vuole pulire e rimuovere una sottoscrizione a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate.