Il riepilogo condensa il contenuto che gli utenti considerano troppo lungo per la lettura. Il servizio fornisce soluzioni di riepilogo per tre tipi di genere: testo normale, conversazioni e documenti nativi. Selezionare la scheda corrispondente al tipo di contenuto da riepilogare.
Il riepilogo del testo riduce il contenuto che gli utenti considerano troppo lungo per la lettura. Riepiloghi estrattivi e astrattivi condensano articoli o documenti in frasi chiave.
Riepilogo estrattivo: genera un riepilogo estraendo frasi che rappresentano collettivamente le informazioni più importanti o rilevanti all'interno del contenuto originale.
Riepilogo astrattivo: genera un riepilogo creando frasi riepilogate dal documento che racchiudono l'idea principale.
Riepilogo incentrato sulle query: consente di usare una query durante il riepilogo.
Ognuna di queste funzionalità può riepilogare gli elementi specifici di interesse quando specificato.
Il servizio fornisce i modelli di intelligenza artificiale usati dall'API. È sufficiente inviare contenuto per l'analisi.
Per semplificare la navigazione, ecco i collegamenti alle sezioni corrispondenti per ogni servizio:
Features
L'API di riepilogo estrattivo usa tecniche di elaborazione del linguaggio naturale per individuare frasi chiave in un documento di testo non strutturato. Queste frasi trasmettono collettivamente l'idea principale del documento.
Il riepilogo estrativo restituisce un punteggio di classificazione come parte della risposta di sistema insieme alle frasi estratte e alla relativa posizione nei documenti originali. Un punteggio di classificazione indica la rilevanza di una frase per l'idea principale di un documento. Il modello assegna un punteggio compreso tra 0 e 1 (inclusi) a ogni frase e restituisce le frasi con punteggio più alto per ogni richiesta. Ad esempio, se si richiede un riepilogo a tre frasi, il servizio restituisce le tre frasi con punteggio più alto.
Un'altra funzionalità di Azure Language in Foundry Tools, l'estrazione di frasi chiave, può estrarre informazioni chiave. Quando si decide tra estrazione di frasi chiave e riepilogo estrativo, considerare questi fattori:
- L'estrazione di frasi chiave restituisce frasi, mentre il riepilogo estrattivo restituisce enunciati.
- Il riepilogo estrattivo restituisce enunciati insieme a un punteggio di classificazione e gli enunciati classificati più in alto verranno restituiti per ogni richiesta.
- Il riepilogo estrattivo restituisce anche le informazioni sulla posizione seguenti:
- Scostamento: posizione iniziale di ogni enunciato estratto.
- Lunghezza: lunghezza di ogni enunciato estratto.
Determinare come elaborare i dati (facoltativo)
Invio di dati
Inviare documenti all'API come stringhe di testo. L'API esegue l'analisi al ricevimento della richiesta. Poiché l'API è asincrona, potrebbe verificarsi un ritardo tra l'invio di una richiesta API e la ricezione dei risultati.
Quando si usa questa funzionalità, i risultati dell'API sono disponibili per 24 ore dal momento in cui la richiesta viene inserita e la risposta indica questa disponibilità. Dopo questo periodo di tempo, i risultati vengono rimossi e non sono più disponibili per il recupero.
Ottenere risultati di riepilogo del testo
Quando si ottengono risultati dal rilevamento della lingua, è possibile trasmettere i risultati a un'applicazione o salvare l'output in un file nel sistema locale.
L'esempio seguente mostra il contenuto che è possibile inviare per il riepilogo. Il contenuto viene estratto dall'articolo Microsoft blog Una rappresentazione olistica verso l'intelligenza artificiale integrata. Questo articolo è solo un esempio. L'API può accettare testo di input più lungo. Per altre informazioni, vedereLimiti dei dati e dei servizi.
"Microsoft sta cercando di sviluppare l'IA oltre le tecniche esistenti, adottando un approccio all'apprendimento e alla comprensione più olistico e incentrato sull'uomo. Come Chief Technology Officer of Foundry Tools, ho lavorato con un team di scienziati e ingegneri incredibili per trasformare questa ricerca in una realtà. Nel mio ruolo, godo di una prospettiva unica nella visualizzazione della relazione tra tre attributi della conoscenza umana: testo monolingua (X), segnali sensoriali audiovisivi (Y) e multilingue (Z). All'intersezione di tutti e tre, avviene la magia, ovvero quello che chiamiamo codice XYZ come illustrato nella figura 1: una rappresentazione congiunta per creare un'intelligenza artificiale più potente in grado di parlare, ascoltare, vedere e comprendere meglio gli esseri umani. Crediamo che il codice XYZ ci consentirà di soddisfare la nostra visione a lungo termine: apprendimento induttivo tra domini, modalità di spanning e linguaggi. L'obiettivo è quello di avere modelli con training preliminare in grado di apprendere congiuntamente le rappresentazioni per supportare un'ampia gamma di attività di IA a valle, analogamente a come gli esseri umani fanno oggi. Negli ultimi cinque anni, abbiamo ottenuto prestazioni umane sui benchmark nel riconoscimento vocale conversazionale, traduzione automatica, risposte alle domande conversazionali, comprensione della lettura automatica e didascalia delle immagini. Queste cinque innovazioni ci hanno fornito segnali forti verso le nostre aspirazioni più ambiziose di produrre un salto nelle capacità di IA, ottenendo apprendimento multisensoriale e multilingue più vicino in linea con il modo in cui gli esseri umani imparano e comprendono. Credo che il codice XYZ congiunto sia una componente fondamentale di questa aspirazione, se basato su fonti di conoscenza esterne nelle attività di IA a valle."
La richiesta API di riepilogo del testo viene elaborata al ricevimento della richiesta creando un processo per il back-end dell'API. Se il processo ha avuto esito positivo, viene restituito l'output dell'API. L'output è disponibile per il recupero per 24 ore. Al termine di questo intervallo di tempo, l'output viene eliminato. A causa del supporto multilingue ed emoji, la risposta può contenere offset di testo. Per altre informazioni, vederecome elaborare gli offset.
Quando si usa l'esempio precedente, l'API potrebbe restituire queste frasi riepilogate:
Riepilogo estrattivo:
- "In Microsoft, stiamo cercando di promuovere l'IA oltre le tecniche esistenti adottando un approccio più olistico e incentrato sull'uomo per imparare e comprendere".
- Crediamo che XYZ-code ci consentirà di soddisfare la nostra visione a lungo termine: apprendimento di trasferimento tra domini, attraversando modalità e lingue.
- "L'obiettivo è quello di avere modelli con training preliminare in grado di apprendere congiuntamente le rappresentazioni per supportare un'ampia gamma di attività di IA a valle, analogamente a come gli esseri umani fanno oggi".
Riepilogo astrattivo:
- "Microsoft sta adottando un approccio alla comprensione e all'apprendimento più olistico e incentrato sull'uomo. Crediamo che il codice XYZ ci consentirà di soddisfare la nostra visione a lungo termine: apprendimento induttivo tra domini, modalità di spanning e linguaggi. Negli ultimi cinque anni abbiamo ottenuto prestazioni umane sui benchmark chiave".
È possibile usare il riepilogo estrattivo del testo per ottenere riepiloghi di articoli o documenti. Per un esempio, vedere l'articolo della guida di avvio rapido.
Usare il sentenceCount parametro per guidare il numero di frasi restituite, con 3 l'impostazione predefinita. L'intervallo è compreso tra 1 e 20.
Usare il sortby parametro per specificare in quale ordine vengono restituite le frasi estratte, Offset ovvero o Rank, con Offset l'impostazione predefinita.
| Valore del parametro |
Description |
| Rank |
Ordinare le frasi in base alla pertinenza del documento di input, come deciso dal servizio. |
| Offset |
Mantiene l'ordine originale in cui le frasi vengono visualizzate nel documento di input. |
Provare il riepilogo astrattivo del testo
L'esempio seguente illustra come iniziare a usare il riepilogo astrattivo del testo:
- Copiare il comando seguente in un editor di testo. L'esempio BASH usa il carattere di continuazione della riga
\. Se la console o il terminale usa un carattere di continuazione della riga diverso, usare invece questo carattere.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-text/jobs?api-version=2023-04-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Text Abstractive Summarization Task Example",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "en",
"text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Foundry Tools, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there's magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code enables us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pretrained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
}
]
},
"tasks": [
{
"kind": "AbstractiveSummarization",
"taskName": "Text Abstractive Summarization Task 1",
}
]
}
'
Apportare le modifiche seguenti nel comando, se necessario:
- Sostituire il valore
your-language-resource-key con la propria chiave.
- Sostituire la prima parte dell'URL della richiesta
your-language-resource-endpoint con l'URL dell'endpoint.
Aprire una finestra del prompt dei comandi, ad esempio BASH.
Incollare il comando dall'editor di testo nella finestra del prompt dei comandi e quindi eseguire il comando.
Ottenere operation-location dall'intestazione della risposta. Il valore è simile all'URL seguente:
https://<your-language-resource-endpoint>/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2022-10-01-preview
- Per ottenere i risultati della richiesta, usare il comando cURL seguente. Assicurarsi di sostituire
<my-job-id> con il valore ID numerico ricevuto dall'intestazione della risposta operation-location precedente:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-text/jobs/<my-job-id>?api-version=2022-10-01-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"
Risposta JSON di esempio di riepilogo del testo astrattivo
{
"jobId": "cd6418fe-db86-4350-aec1-f0d7c91442a6",
"lastUpdateDateTime": "2022-09-08T16:45:14Z",
"createdDateTime": "2022-09-08T16:44:53Z",
"expirationDateTime": "2022-09-09T16:44:53Z",
"status": "succeeded",
"errors": [],
"displayName": "Text Abstractive Summarization Task Example",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "AbstractiveSummarizationLROResults",
"taskName": "Text Abstractive Summarization Task 1",
"lastUpdateDateTime": "2022-09-08T16:45:14.0717206Z",
"status": "succeeded",
"results": {
"documents": [
{
"summaries": [
{
"text": "Microsoft is taking a more holistic, human-centric approach to AI. We've developed a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We've achieved human performance on benchmarks in conversational speech recognition, machine translation, ...... and image captions.",
"contexts": [
{
"offset": 0,
"length": 247
}
]
}
],
"id": "1"
}
],
"errors": [],
"modelVersion": "latest"
}
}
]
}
}
| Parametro |
Description |
-X POST <endpoint> |
Specifica l'endpoint per l'accesso all'API. |
-H Content-Type: application/json |
Tipo di contenuto per l'invio di dati JSON. |
-H "Ocp-Apim-Subscription-Key:<key> |
Specifica la chiave per l'accesso all'API. |
-d <documents> |
Il codice JSON contenente i documenti da inviare. |
I comandi cURL seguenti vengono eseguiti da una shell BASH. Modificare questi comandi con il nome della risorsa, la chiave di risorsa e i valori JSON.
Riepilogo basato su query
L'API di riepilogo del testo basato su query è un'estensione per l'API di riepilogo del testo esistente.
La differenza principale è un nuovo campo query nel corpo della richiesta (in tasks>parameters>query).
Tip
Il riepilogo basato su query presenta alcune differenze nell'utilizzo del controllo della lunghezza in base al tipo di riepilogo basato su query in uso:
- Il riepilogo estratto basato su query supporta il controllo della lunghezza specificando
sentenceCount.
- La sintesi astrattiva basata su query non supporta il controllo della lunghezza.
Ecco una richiesta di esempio:
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-text/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Text Extractive Summarization Task Example",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "en",
"text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Foundry Tools, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there's magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code enables us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pretrained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
}
]
},
"tasks": [
{
"kind": "AbstractiveSummarization",
"taskName": "Query-based Abstractive Summarization",
"parameters": {
"query": "XYZ-code",
"summaryLength": "short"
}
}, {
"kind": "ExtractiveSummarization",
"taskName": "Query_based Extractive Summarization",
"parameters": {
"query": "XYZ-code"
}
}
]
}
'
Controllo della lunghezza del riepilogo
Uso del parametro summaryLength nel riepilogo astrattivo
Se non si specifica summaryLength, il modello determina la lunghezza di riepilogo.
Per il parametro summaryLength vengono accettati tre valori:
-
oneSentence: genera un riepilogo di gran parte di una frase, con circa 80 token.
-
short: genera un riepilogo di prevalentemente da due a tre frasi, con circa 120 token.
-
medium: genera un riepilogo di prevalentemente da quattro a sei frasi, con circa 170 token.
-
long: genera un riepilogo composto per lo più da più di sette frasi, con circa 210 token.
Ecco una richiesta di esempio:
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-text/jobs?api-version=2023-04-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Text Abstractive Summarization Task Example",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "en",
"text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Foundry Tools, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there's magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code enables us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pretrained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
}
]
},
"tasks": [
{
"kind": "AbstractiveSummarization",
"taskName": "Length controlled Abstractive Summarization",
"parameters": {
"summaryLength": "short"
}
}
]
}
'
Per il sentenceCount parametro immettere un valore compreso tra 1 e 20 per indicare il numero desiderato di frasi di output.
Ecco una richiesta di esempio:
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-text/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Text Extractive Summarization Task Example",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "en",
"text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Foundry Tools, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there's magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code enables us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pretrained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
}
]
},
"tasks": [
{
"kind": "ExtractiveSummarization",
"taskName": "Length controlled Extractive Summarization",
"parameters": {
"sentenceCount": "5"
}
}
]
}
'
Limiti relativi a servizi e dati
Per informazioni sulle dimensioni e sul numero di richieste che è possibile inviare al minuto e al secondo, vedere l'articolo limiti del servizio .
Important
La nostra area di anteprima, Svezia centrale, presenta le nostre tecniche di ottimizzazione LLM più recenti e in continua evoluzione basate su modelli GPT. È possibile provarli con una risorsa linguistica nella regione Sweden Central.
Il riepilogo delle conversazioni è disponibile solo usando:
Aspetti del riepilogo delle conversazioni
Titolo del capitolo e narrazione (conversazione generale) riepilogare una conversazione in titoli dei capitoli e un riepilogo del contenuto della conversazione. Questo aspetto del riepilogo funziona sulle conversazioni con un numero qualsiasi di parti.
Problemi e soluzioni (incentrati sul call center) riepilogare i log delle chat di testo tra i clienti e gli agenti del servizio clienti. Questa funzionalità fornisce sia problemi che soluzioni presenti in questi log, che si verificano tra due parti.
La narrazione riepiloga la narrazione di una conversazione.
Recap condensa riunioni o conversazioni lunghe in un breve riepilogo di un solo paragrafo per fornire una rapida panoramica.
Le attività di completamento riepilogano gli elementi di azione e le attività che si verificano durante una riunione.
Il servizio fornisce i modelli di intelligenza artificiale usati dall'API. È sufficiente inviare contenuto per l'analisi.
Per semplificare la navigazione, ecco i collegamenti alle sezioni corrispondenti per ogni servizio:
Features
L'API di riepilogo conversazioni usa tecniche di elaborazione del linguaggio naturale per riepilogare le conversazioni in riepiloghi più brevi per ogni richiesta. Il riepilogo delle conversazioni può riepilogare i problemi e le risoluzioni discussi in una conversazione in due parti o riepilogare una lunga conversazione in capitoli e una breve narrazione per ogni capitolo.
Un'altra funzionalità di Azure Language in Foundry Tools denominata riepilogo del testo è più adatta per riepilogare i documenti in riepiloghi concisi. Quando si decide tra riepilogo del testo e riepilogo conversazioni, prendere in considerazione i punti seguenti:
- Formato di input: il riepilogo conversazioni può funzionare sia sulle trascrizioni di testo delle chat che sulle trascrizioni vocali, con parlanti e le relative espressioni. Il riepilogo del testo funziona usando formati di testo semplice, Word, PDF o PowerPoint.
- Scopo del riepilogo: ad esempio,
conversation issue and resolution summarization restituisce un motivo e la risoluzione per una chat tra un cliente e un agente del servizio clienti.
Invio di dati
Inviare documenti all'API come stringhe di testo. L'API esegue l'analisi quando riceve la richiesta. Poiché l'API è asincrona, potrebbe verificarsi un ritardo tra l'invio di una richiesta API e la ricezione dei risultati. Per informazioni sulle dimensioni e sul numero di richieste che è possibile inviare al minuto e al secondo, vedere i limiti di dati seguenti.
Quando si usa questa funzionalità, i risultati dell'API sono disponibili per 24 ore dal momento in cui la richiesta è stata inserita e viene indicata nella risposta. Dopo questo periodo di tempo, i risultati vengono rimossi e non sono più disponibili per il recupero.
Quando si inviano dati al riepilogo conversazioni, è consigliabile inviare un log di chat per ogni richiesta, per una migliore latenza.
Ottenere riepiloghi dalle chat di testo
È possibile usare il riepilogo dei problemi di conversazione e della risoluzione per ottenere riepiloghi in caso di necessità. Per un esempio relativo all'uso delle chat di testo, vedere l'articolo di avvio rapido.
Ottenere riepiloghi dalle trascrizioni vocali
conversation issue and resolution summarization Consente anche di ottenere riepiloghi dalle trascrizioni vocali usando la funzionalità di riconoscimento vocale del servizio Voce in testo. L'esempio seguente illustra una breve conversazione che è possibile includere nelle richieste API.
"conversations":[
{
"id":"abcdefgh-1234-1234-1234-1234abcdefgh",
"language":"en",
"modality":"transcript",
"conversationItems":[
{
"modality":"transcript",
"participantId":"speaker",
"id":"12345678-abcd-efgh-1234-abcd123456",
"content":{
"text":"Hi.",
"lexical":"hi",
"itn":"hi",
"maskedItn":"hi",
"audioTimings":[
{
"word":"hi",
"offset":4500000,
"duration":2800000
}
]
}
}
]
}
]
Ottenere i titoli dei capitoli
Il riepilogo del titolo del capitolo della conversazione consente di ottenere i titoli dei capitoli dalle conversazioni di input. Di seguito è riportato uno scenario di esempio guidato:
- Copiare il comando seguente in un editor di testo. L'esempio BASH usa il carattere di continuazione della riga
\. Se la console o il terminale usa un carattere di continuazione riga diverso, usare questo carattere.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-conversations/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Conversation Task Example",
"analysisInput": {
"conversations": [
{
"conversationItems": [
{
"text": "Hello, you're chatting with Rene. How may I help you?",
"id": "1",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "Hi, I tried to set up wifi connection for Smart Brew 300 espresso machine, but it didn't work.",
"id": "2",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "I'm sorry to hear that. Let's see what we can do to fix this issue. Could you please try the following steps for me? First, could you push the wifi connection button, hold for 3 seconds, then let me know if the power light is slowly blinking on and off every second?",
"id": "3",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "Yes, I pushed the wifi connection button, and now the power light is slowly blinking.",
"id": "4",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "Great. Thank you! Now, please check in your Contoso Coffee app. Does it prompt to ask you to connect with the machine? ",
"id": "5",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "No. Nothing happened.",
"id": "6",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "I'm very sorry to hear that. Let me see if there's another way to fix the issue. Please hold on for a minute.",
"id": "7",
"role": "Agent",
"participantId": "Agent_1"
}
],
"modality": "text",
"id": "conversation1",
"language": "en"
}
]
},
"tasks": [
{
"taskName": "Conversation Task 1",
"kind": "ConversationalSummarizationTask",
"parameters": {
"summaryAspects": [
"chapterTitle"
]
}
}
]
}
'
Apportare le modifiche seguenti nel comando, se necessario:
- Sostituire il valore
your-value-language-key con la propria chiave.
- Sostituire la prima parte dell'URL della richiesta
your-language-resource-endpoint con l'URL dell'endpoint.
Aprire una finestra del prompt dei comandi, ad esempio BASH.
Incollare il comando dall'editor di testo nella finestra del prompt dei comandi, quindi eseguire il comando.
Ottenere operation-location dall'intestazione della risposta. Il valore è simile all'URL seguente:
https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
- Per ottenere i risultati della richiesta, usare il comando cURL seguente. Assicurarsi di sostituire
<my-job-id> con il valore GUID ricevuto dall'intestazione della risposta operation-location precedente:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/<my-job-id>?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"
Esempio di risposta JSON di riepilogo del titolo del capitolo:
{
"jobId": "b01af3b7-1870-460a-9e36-09af28d360a1",
"lastUpdatedDateTime": "2023-11-15T18:24:26Z",
"createdDateTime": "2023-11-15T18:24:23Z",
"expirationDateTime": "2023-11-16T18:24:23Z",
"status": "succeeded",
"errors": [],
"displayName": "Conversation Task Example",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "conversationalSummarizationResults",
"taskName": "Conversation Task 1",
"lastUpdateDateTime": "2023-11-15T18:24:26.3433677Z",
"status": "succeeded",
"results": {
"conversations": [
{
"summaries": [
{
"aspect": "chapterTitle",
"text": "\"Discussing the Problem of Smart Blend 300 Espresso Machine's Wi-Fi Connectivity\"",
"contexts": [
{
"conversationItemId": "1",
"offset": 0,
"length": 53
},
{
"conversationItemId": "2",
"offset": 0,
"length": 94
},
{
"conversationItemId": "3",
"offset": 0,
"length": 266
},
{
"conversationItemId": "4",
"offset": 0,
"length": 85
},
{
"conversationItemId": "5",
"offset": 0,
"length": 119
},
{
"conversationItemId": "6",
"offset": 0,
"length": 21
},
{
"conversationItemId": "7",
"offset": 0,
"length": 109
}
]
}
],
"id": "conversation1",
"warnings": []
}
],
"errors": [],
"modelVersion": "latest"
}
}
]
}
}
Per una conversazione lunga, il modello potrebbe segmentarlo in più parti coese e riepilogare ogni segmento. Esiste anche un campo lungo contexts per ogni riepilogo, che indica da quale intervallo della conversazione di input è stato generato il riepilogo.
Ottenere riepiloghi narrativi
Il riepilogo delle conversazioni consente anche di ricavare riepiloghi narrativi a partire dalle conversazioni di input. Viene fornito uno scenario di esempio guidato:
- Copiare il comando seguente in un editor di testo. L'esempio BASH usa il carattere di continuazione della riga
\. Se la console o il terminale usa un carattere di continuazione riga diverso, usare questo carattere.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-conversations/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Conversation Task Example",
"analysisInput": {
"conversations": [
{
"conversationItems": [
{
"text": "Hello, you're chatting with Rene. How may I help you?",
"id": "1",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "Hi, I tried to set up wifi connection for Smart Brew 300 espresso machine, but it didn't work.",
"id": "2",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "I'm sorry to hear that. Let's see what we can do to fix this issue. Could you please try the following steps for me? First, could you push the wifi connection button, hold for 3 seconds, then let me know if the power light is slowly blinking on and off every second?",
"id": "3",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "Yes, I pushed the wifi connection button, and now the power light is slowly blinking.",
"id": "4",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "Great. Thank you! Now, please check in your Contoso Coffee app. Does it prompt to ask you to connect with the machine? ",
"id": "5",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "No. Nothing happened.",
"id": "6",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "I'm very sorry to hear that. Let me see if there's another way to fix the issue. Please hold on for a minute.",
"id": "7",
"role": "Agent",
"participantId": "Agent_1"
}
],
"modality": "text",
"id": "conversation1",
"language": "en"
}
]
},
"tasks": [
{
"taskName": "Conversation Task 1",
"kind": "ConversationalSummarizationTask",
"parameters": {
"summaryAspects": [
"narrative"
]
}
}
]
}
'
Apportare le modifiche seguenti nel comando, se necessario:
- Sostituire il valore
your-language-resource-key con la propria chiave.
- Sostituire la prima parte dell'URL della richiesta
your-language-resource-endpoint con l'URL dell'endpoint.
Aprire una finestra del prompt dei comandi, ad esempio BASH.
Incollare il comando dall'editor di testo nella finestra del prompt dei comandi, quindi eseguire il comando.
Ottenere operation-location dall'intestazione della risposta. Il valore è simile all'URL seguente:
https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
- Per ottenere i risultati di una richiesta, usare il comando cURL seguente. Assicurarsi di sostituire
<my-job-id> con il valore GUID ricevuto dall'intestazione della risposta operation-location precedente:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/<my-job-id>?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"
Esempio di risposta JSON di riepilogo narrativo:
{
"jobId": "d874a98c-bf31-4ac5-8b94-5c236f786754",
"lastUpdatedDateTime": "2022-09-29T17:36:42Z",
"createdDateTime": "2022-09-29T17:36:39Z",
"expirationDateTime": "2022-09-30T17:36:39Z",
"status": "succeeded",
"errors": [],
"displayName": "Conversation Task Example",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "conversationalSummarizationResults",
"taskName": "Conversation Task 1",
"lastUpdateDateTime": "2022-09-29T17:36:42.895694Z",
"status": "succeeded",
"results": {
"conversations": [
{
"summaries": [
{
"aspect": "narrative",
"text": "Agent_1 helps customer to set up wifi connection for Smart Brew 300 espresso machine.",
"contexts": [
{ "conversationItemId": "1", "offset": 0, "length": 53 },
{ "conversationItemId": "2", "offset": 0, "length": 94 },
{ "conversationItemId": "3", "offset": 0, "length": 266 },
{ "conversationItemId": "4", "offset": 0, "length": 85 },
{ "conversationItemId": "5", "offset": 0, "length": 119 },
{ "conversationItemId": "6", "offset": 0, "length": 21 },
{ "conversationItemId": "7", "offset": 0, "length": 109 }
]
}
],
"id": "conversation1",
"warnings": []
}
],
"errors": [],
"modelVersion": "latest"
}
}
]
}
}
Per una conversazione lunga, il modello potrebbe segmentarlo in più parti coese e riepilogare ogni segmento. Esiste anche un campo lungo contexts per ogni riepilogo, che indica da quale intervallo della conversazione di input è stato generato il riepilogo.
Ottenere riassunti e riepiloghi delle attività successive
Il riepilogo delle conversazioni consente anche di ottenere riassunti e attività di completamento dalle conversazioni di input. Viene fornito uno scenario di esempio guidato:
- Copiare il comando seguente in un editor di testo. L'esempio BASH usa il carattere di continuazione della riga
\. Se la console o il terminale usa un carattere di continuazione riga diverso, usare questo carattere.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-conversations/jobs?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Conversation Task Example",
"analysisInput": {
"conversations": [
{
"conversationItems": [
{
"text": "Hello, you're chatting with Rene. How may I help you?",
"id": "1",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "Hi, I tried to set up wifi connection for Smart Brew 300 espresso machine, but it didn't work.",
"id": "2",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "I'm sorry to hear that. Let's see what we can do to fix this issue. Could you please try the following steps for me? First, could you push the wifi connection button, hold for 3 seconds, then let me know if the power light is slowly blinking on and off every second?",
"id": "3",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "Yes, I pushed the wifi connection button, and now the power light is slowly blinking.",
"id": "4",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "Great. Thank you! Now, please check in your Contoso Coffee app. Does it prompt to ask you to connect with the machine? ",
"id": "5",
"role": "Agent",
"participantId": "Agent_1"
},
{
"text": "No. Nothing happened.",
"id": "6",
"role": "Customer",
"participantId": "Customer_1"
},
{
"text": "I'm very sorry to hear that. Let me see if there's another way to fix the issue. Please hold on for a minute.",
"id": "7",
"role": "Agent",
"participantId": "Agent_1"
}
],
"modality": "text",
"id": "conversation1",
"language": "en"
}
]
},
"tasks": [
{
"taskName": "Conversation Task 1",
"kind": "ConversationalSummarizationTask",
"parameters": {
"summaryAspects": [
"recap",
"follow-up tasks"
]
}
}
]
}
'
Apportare le modifiche seguenti nel comando, se necessario:
- Sostituire il valore
your-language-resource-key con la propria chiave.
- Sostituire la prima parte dell'URL della richiesta
your-language-resource-endpoint con l'URL dell'endpoint.
Aprire una finestra del prompt dei comandi, ad esempio BASH.
Incollare il comando dall'editor di testo nella finestra del prompt dei comandi, quindi eseguire il comando.
Ottenere operation-location dall'intestazione della risposta. Il valore è simile all'URL seguente:
https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/12345678-1234-1234-1234-12345678?api-version=2023-11-15-preview
- Per ottenere i risultati di una richiesta, usare il comando cURL seguente. Assicurarsi di sostituire
<my-job-id> con il valore GUID ricevuto dall'intestazione della risposta operation-location precedente:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-conversations/jobs/<my-job-id>?api-version=2023-11-15-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"
Riepilogo di esempio e risposta JSON di riepilogo successiva:
{
"jobId": "e585d097-c19a-466e-8f99-a9646e55b1f5",
"lastUpdatedDateTime": "2023-11-15T18:19:56Z",
"createdDateTime": "2023-11-15T18:19:53Z",
"expirationDateTime": "2023-11-16T18:19:53Z",
"status": "succeeded",
"errors": [],
"displayName": "Conversation Task Example",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "conversationalSummarizationResults",
"taskName": "Conversation Task 1",
"lastUpdateDateTime": "2023-11-15T18:19:56.1801785Z",
"status": "succeeded",
"results": {
"conversations": [
{
"summaries": [
{
"aspect": "recap",
"text": "The customer contacted the service agent, Rene, regarding an issue with setting up a wifi connection for their Smart Brew 300 espresso machine. The agent guided the customer through several steps, including pushing the wifi connection button and checking if the power light was blinking. However, the customer reported that no prompts were received in the Contoso Coffee app to connect with the machine. The agent then decided to look for another solution.",
"contexts": [
{
"conversationItemId": "1",
"offset": 0,
"length": 53
},
{
"conversationItemId": "2",
"offset": 0,
"length": 94
},
{
"conversationItemId": "3",
"offset": 0,
"length": 266
},
{
"conversationItemId": "4",
"offset": 0,
"length": 85
},
{
"conversationItemId": "5",
"offset": 0,
"length": 119
},
{
"conversationItemId": "6",
"offset": 0,
"length": 21
},
{
"conversationItemId": "7",
"offset": 0,
"length": 109
}
]
},
{
"aspect": "Follow-Up Tasks",
"text": "@Agent_1 will ask the customer to push the wifi connection button, hold for 3 seconds, then check if the power light is slowly blinking on and off every second."
},
{
"aspect": "Follow-Up Tasks",
"text": "@Agent_1 will ask the customer to check in the Contoso Coffee app if it prompts to connect with the machine."
},
{
"aspect": "Follow-Up Tasks",
"text": "@Agent_1 will investigate another way to fix the issue."
}
],
"id": "conversation1",
"warnings": []
}
],
"errors": [],
"modelVersion": "latest"
}
}
]
}
}
Per una conversazione lunga, il modello potrebbe segmentarlo in più parti coese e riepilogare ogni segmento. Esiste anche un campo lungo contexts per ogni riepilogo, che indica da quale intervallo della conversazione di input è stato generato il riepilogo.
Ottenere i risultati del riepilogo dei problemi di conversazione e della risoluzione
Il testo seguente è un esempio di contenuto che è possibile inviare per il problema di conversazione e il riepilogo della risoluzione. È solo un esempio. L'API può accettare testo di input più lungo. Per altre informazioni, vedereLimiti dei dati.
Agente: "Ciao, come posso aiutarti?"
Cliente: "Come posso aggiornare la sottoscrizione Contoso? Ho provato tutto il giorno."
Agente: "Premi il pulsante di aggiornamento, quindi accedi e segui le istruzioni."
Il riepilogo viene eseguito al ricevimento della richiesta creando un processo per il back-end dell'API. Se il processo ha avuto esito positivo, viene restituito l'output dell'API. L'output è disponibile per il recupero per 24 ore. Al termine di questo intervallo di tempo, l'output viene eliminato. A causa del supporto multilingue ed emoji, la risposta può contenere offset di testo. Per altre informazioni, vederecome elaborare gli offset.
Nell'esempio precedente, l'API potrebbe restituire questo output di frasi riepilogate:
| Testo riepilogato |
Aspect |
| "Il cliente vuole aggiornare la sottoscrizione. Il cliente non sa come fare." |
problema |
| "Il cliente deve premere il pulsante di aggiornamento ed eseguire l'accesso." |
resolution |
Important
- Le versioni di anteprima pubblica di Azure Language in Foundry Tools offrono l'accesso anticipato alle funzionalità in fase di sviluppo attivo.
- Le funzionalità, gli approcci e i processi possono cambiare prima della disponibilità generale in base al feedback degli utenti.
Il linguaggio è un servizio basato sul cloud che applica le funzionalità NLP (Natural Language Processing) ai dati basati su testo. Il riepilogo dei documenti usa l'elaborazione del linguaggio naturale per generare riepiloghi estrattivi (estrazione di frasi salienti) o astrattivi (estrazione di parole contestuali) per i documenti. Entrambe AbstractiveSummarization le ExtractiveSummarization API supportano l'elaborazione di documenti nativi. 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 per i documenti nativi elimina la necessità di pre-elaborazione del testo prima di usare le funzionalità delle risorse del linguaggio. 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 Archiviazione BLOB di Azure.
Le applicazioni usano formati di file nativi per creare, salvare o aprire documenti nativi. Attualmente le funzionalità di riepilogodelle informazioni personali e dei documenti supportano i formati di documento nativi seguenti:
| Tipo di file |
Estensione del file |
Description |
| Text |
.txt |
Documento di testo non formattato. |
| Adobe PDF |
.pdf |
Documento formattato con file di documento portatile. |
| Microsoft Word |
.docx |
File di documento Microsoft Word. |
Formati di file supportati
| Type |
supporto e limitazioni |
|
PDF |
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 scansionati non sono supportate. |
Dimensioni documento
| Attribute |
Limite di input |
|
Numero totale di documenti per richiesta |
≤ 20 |
|
Dimensioni totali del contenuto per richiesta |
≤ 10 MB |
Includere documenti nativi con una richiesta HTTP
Iniziamo:
Per questo progetto viene usato lo strumento da riga di comando cURL per effettuare chiamate API REST.
Note
Il pacchetto cURL è preinstallato nella maggior parte dei Windows 10 e Windows 11 e nella maggior parte delle distribuzioni macOS e Linux. È possibile controllare la versione del pacchetto con i comandi seguenti: Windows: curl.exe -V macOS curl -V Linux: curl --version
Un account Azure attivo. Se non ne hai uno, puoi creare un account gratuito.
Un account di Archiviazione BLOB di Azure. È anche necessario creare contenitori nell'account 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 linguistica a singolo servizio (non una risorsa Microsoft Foundry multiservizio):
Compila i campi del progetto di risorse linguistiche di Azure e i dettagli dell'istanza 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 lo stesso ciclo di vita, autorizzazioni e criteri.
Regione risorse. 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 all'interno di 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 Verifica e crea.
Esaminare le condizioni del servizio e selezionare Crea per distribuire la risorsa.
Dopo che la risorsa è stata distribuita con successo, selezionare Vai alla risorsa.
Recupera la chiave e l'endpoint del linguaggio
Le richieste al linguaggio di Azure 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 linguistica esistente, vai direttamente alla pagina della risorsa.
Nella barra sinistra, in Gestione risorse, selezionare Chiavi ed endpoint.
È possibile copiare e incollare key e Language instance endpoint negli esempi di codice per autenticare la richiesta nel linguaggio di Azure. Per effettuare una chiamata API è necessaria una sola chiave.
Creare i contenitori di Archiviazione BLOB di Azure
Crea contenitori nel Archiviazione BLOB di Azure account 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).
Authentication
Per poter creare, leggere o eliminare BLOB, è necessario concedere alla risorsa linguistica l'accesso al tuo account di archiviazione. Esistono due metodi principali che è possibile usare per concedere l'accesso ai dati di archiviazione:
Per questo progetto, autentichiamo l'accesso agli URL source location e target location 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 all'elenco.
- Il contenitore o il BLOB di destinazione deve designare l'accesso di scrittura e per elenchi.
L'API di riepilogo estrattivo usa tecniche di elaborazione del linguaggio naturale per individuare frasi chiave in un documento di testo non strutturato. Queste frasi trasmettono collettivamente l'idea principale del documento.
Il riepilogo estrattivo restituisce un punteggio di classificazione come parte della risposta di sistema insieme alle frasi estratte e alla relativa posizione nei documenti originali. Un punteggio di classificazione è un indicatore che attesta in che misura una frase racchiude l'idea principale di un documento. Il modello assegna un punteggio compreso tra 0 e 1 (inclusi) a ogni frase e restituisce le frasi con punteggio più alto per ogni richiesta. Ad esempio, se si richiede un riepilogo a tre frasi, il servizio restituisce le tre frasi con punteggio più alto.
C'è un'altra funzionalità in Linguaggio, estrazione di frasi chiave, che può estrarre informazioni chiave. Per decidere tra estrazione di frasi chiave e riepilogo estrativo, ecco alcune considerazioni utili:
- L'estrazione di frasi chiave restituisce frasi, mentre il riepilogo estrattivo restituisce enunciati.
- Il riepilogo estrattivo restituisce enunciati insieme a un punteggio di classificazione e gli enunciati classificati più in alto verranno restituiti per ogni richiesta.
- Il riepilogo estrattivo restituisce anche le informazioni sulla posizione seguenti:
- Scostamento: posizione iniziale di ogni enunciato estratto.
- Lunghezza: lunghezza di ogni enunciato estratto.
Determinare come elaborare i dati (facoltativo)
Invio di dati
I documenti vengono inviati all'API come stringhe di testo. L'analisi viene eseguita al ricevimento della richiesta. Poiché l'API è asincrona, potrebbe verificarsi un ritardo tra l'invio di una richiesta API e la ricezione dei risultati.
Quando si usa questa funzionalità, i risultati dell'API sono disponibili per 24 ore dal momento in cui la richiesta è stata inserita e viene indicata nella risposta. Dopo questo periodo di tempo, i risultati vengono rimossi e non sono più disponibili per il recupero.
Ottenere risultati di riepilogo del testo
Quando si ottengono risultati dal rilevamento della lingua, è possibile trasmettere i risultati a un'applicazione o salvare l'output in un file nel sistema locale.
Di seguito è riportato un esempio di contenuto che è possibile inviare per il riepilogo, estratto usando l'articolo del blog Microsoft Una rappresentazione olistica verso l'intelligenza artificiale integrata. Questo articolo è solo un esempio. L'API può accettare testo di input più lungo. Per altre informazioni, vedereLimiti dei dati e dei servizi.
"Microsoft sta cercando di sviluppare l'IA oltre le tecniche esistenti, adottando un approccio all'apprendimento e alla comprensione più olistico e incentrato sull'uomo. Come Chief Technology Officer of Foundry Tools, ho lavorato con un team di scienziati e ingegneri incredibili per trasformare questa ricerca in una realtà. Nel mio ruolo, godo di una prospettiva unica nella visualizzazione della relazione tra tre attributi della conoscenza umana: testo monolingua (X), segnali sensoriali audiovisivi (Y) e multilingue (Z). All'intersezione di tutti e tre, avviene la magia, ovvero quello che chiamiamo codice XYZ come illustrato nella figura 1: una rappresentazione congiunta per creare un'intelligenza artificiale più potente in grado di parlare, ascoltare, vedere e comprendere meglio gli esseri umani. Crediamo che il codice XYZ ci consentirà di soddisfare la nostra visione a lungo termine: apprendimento induttivo tra domini, modalità di spanning e linguaggi. L'obiettivo è quello di avere modelli con training preliminare in grado di apprendere congiuntamente le rappresentazioni per supportare un'ampia gamma di attività di IA a valle, analogamente a come gli esseri umani fanno oggi. Negli ultimi cinque anni, abbiamo ottenuto prestazioni umane sui benchmark nel riconoscimento vocale conversazionale, traduzione automatica, risposte alle domande conversazionali, comprensione della lettura automatica e didascalia delle immagini. Queste cinque innovazioni ci hanno fornito segnali incoraggianti verso le nostre aspirazioni più ambiziose: raggiungere un salto nelle capacità di IA, ottenendo un apprendimento multisensoriale e multilingue più vicino al modo in cui gli esseri umani imparano e comprendono. Credo che il codice XYZ congiunto sia una componente fondamentale di questa aspirazione, se basato su fonti di conoscenza esterne nelle attività di IA a valle."
La richiesta API di riepilogo del testo viene elaborata al ricevimento della richiesta creando un processo per il back-end dell'API. Se il processo ha avuto esito positivo, viene restituito l'output dell'API. L'output è disponibile per il recupero per 24 ore. Al termine di questo intervallo di tempo, l'output viene eliminato. A causa del supporto multilingue ed emoji, la risposta può contenere offset di testo. Per altre informazioni, vederecome elaborare gli offset.
Quando si usa l'esempio precedente, l'API potrebbe restituire queste frasi riepilogate:
Riepilogo estrattivo:
- "Microsoft sta cercando di sviluppare l'IA oltre le tecniche esistenti, adottando un approccio all'apprendimento e alla comprensione più olistico e incentrato sull'uomo".
- Crediamo che XYZ-code ci consentirà di soddisfare la nostra visione a lungo termine: apprendimento di trasferimento tra domini, attraversando modalità e lingue.
- "L'obiettivo è quello di avere modelli con training preliminare in grado di apprendere congiuntamente le rappresentazioni per supportare un'ampia gamma di attività di IA a valle, analogamente a come gli esseri umani fanno oggi".
Riepilogo astrattivo:
- "Microsoft sta adottando un approccio alla comprensione e all'apprendimento più olistico e incentrato sull'uomo. Crediamo che il codice XYZ ci consentirà di soddisfare la nostra visione a lungo termine: apprendimento induttivo tra domini, modalità di spanning e linguaggi. Negli ultimi cinque anni abbiamo raggiunto le prestazioni umane sui benchmark."
È possibile usare il riepilogo estrattivo del testo per ottenere riepiloghi di articoli o documenti. Per un esempio, vedere l'articolo della guida di avvio rapido.
È possibile usare il parametro sentenceCount per specificare il numero di frasi restituite, con 3 come impostazione predefinita. L'intervallo è compreso tra 1 e 20.
È anche possibile usare il parametro sortby per specificare in quale ordine verranno restituite le frasi estratte, ovvero Offset o Rank, con Offset come impostazione predefinita.
| Valore del parametro |
Description |
| Rank |
Ordinare le frasi in base alla pertinenza del documento di input, come deciso dal servizio. |
| Offset |
Mantiene l'ordine originale in cui le frasi vengono visualizzate nel documento di input. |
Provare il riepilogo astrattivo del testo
L'esempio seguente consente di iniziare con il riepilogo astrattivo del testo:
- Copiare il comando seguente in un editor di testo. L'esempio BASH usa il carattere di continuazione della riga
\. Se la console o il terminale usa un carattere di continuazione della riga diverso, usare invece questo carattere.
curl -i -X POST https://<your-language-resource-endpoint>/language/analyze-text/jobs?api-version=2023-04-01 \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>" \
-d \
'
{
"displayName": "Text Abstractive Summarization Task Example",
"analysisInput": {
"documents": [
{
"id": "1",
"language": "en",
"text": "At Microsoft, we have been on a quest to advance AI beyond existing techniques, by taking a more holistic, human-centric approach to learning and understanding. As Chief Technology Officer of Foundry Tools, I have been working with a team of amazing scientists and engineers to turn this quest into a reality. In my role, I enjoy a unique perspective in viewing the relationship among three attributes of human cognition: monolingual text (X), audio or visual sensory signals, (Y) and multilingual (Z). At the intersection of all three, there's magic—what we call XYZ-code as illustrated in Figure 1—a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We believe XYZ-code enables us to fulfill our long-term vision: cross-domain transfer learning, spanning modalities and languages. The goal is to have pretrained models that can jointly learn representations to support a broad range of downstream AI tasks, much in the way humans do today. Over the past five years, we have achieved human performance on benchmarks in conversational speech recognition, machine translation, conversational question answering, machine reading comprehension, and image captioning. These five breakthroughs provided us with strong signals toward our more ambitious aspiration to produce a leap in AI capabilities, achieving multi-sensory and multilingual learning that is closer in line with how humans learn and understand. I believe the joint XYZ-code is a foundational component of this aspiration, if grounded with external knowledge sources in the downstream AI tasks."
}
]
},
"tasks": [
{
"kind": "AbstractiveSummarization",
"taskName": "Text Abstractive Summarization Task 1",
}
]
}
'
Apportare le modifiche seguenti nel comando, se necessario:
- Sostituire il valore
your-language-resource-key con la propria chiave.
- Sostituire la prima parte dell'URL della richiesta
your-language-resource-endpoint con l'URL dell'endpoint.
Aprire una finestra del prompt dei comandi, ad esempio BASH.
Incollare il comando dall'editor di testo nella finestra del prompt dei comandi, quindi eseguire il comando.
Ottenere operation-location dall'intestazione della risposta. Il valore è simile all'URL seguente:
https://<your-language-resource-endpoint>/language/analyze-text/jobs/12345678-1234-1234-1234-12345678?api-version=2022-10-01-preview
- Per ottenere i risultati della richiesta, usare il comando cURL seguente. Assicurarsi di sostituire
<my-job-id> con il valore ID numerico ricevuto dall'intestazione della risposta operation-location precedente:
curl -X GET https://<your-language-resource-endpoint>/language/analyze-text/jobs/<my-job-id>?api-version=2022-10-01-preview \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <your-language-resource-key>"
Risposta JSON di esempio di riepilogo del testo astrattivo
{
"jobId": "cd6418fe-db86-4350-aec1-f0d7c91442a6",
"lastUpdateDateTime": "2022-09-08T16:45:14Z",
"createdDateTime": "2022-09-08T16:44:53Z",
"expirationDateTime": "2022-09-09T16:44:53Z",
"status": "succeeded",
"errors": [],
"displayName": "Text Abstractive Summarization Task Example",
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "AbstractiveSummarizationLROResults",
"taskName": "Text Abstractive Summarization Task 1",
"lastUpdateDateTime": "2022-09-08T16:45:14.0717206Z",
"status": "succeeded",
"results": {
"documents": [
{
"summaries": [
{
"text": "Microsoft is taking a more holistic, human-centric approach to AI. We've developed a joint representation to create more powerful AI that can speak, hear, see, and understand humans better. We've achieved human performance on benchmarks in conversational speech recognition, machine translation, ...... and image captions.",
"contexts": [
{
"offset": 0,
"length": 247
}
]
}
],
"id": "1"
}
],
"errors": [],
"modelVersion": "latest"
}
}
]
}
}
| parametro |
Description |
-X POST <endpoint> |
Specifica l'endpoint della risorsa linguistica per accedere all'API. |
--header Content-Type: application/json |
Tipo di contenuto per l'invio di dati JSON. |
--header "Ocp-Apim-Subscription-Key:<key> |
Specifica la chiave di risorsa del linguaggio di Azure 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 della risorsa, la chiave di risorsa e i valori JSON. Prova ad analizzare i documenti nativi selezionando il progetto di esempio di codice Personally Identifiable Information (PII) o Document Summarization.
Documento di esempio di riepilogo
Per questo progetto è necessario caricare un documento di origine nel contenitore di origine. È possibile scaricare il documento di esempio di Microsoft Word o Adobe PDF per questo avvio rapido. 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 document-summarization.json nella directory native-document.
Copiare e incollare l’esempio di richiesta di riepilogo del documento nel file document-summarization.json. Sostituire {your-source-container-SAS-URL} e {your-target-container-SAS-URL} con i valori dell'istanza dei contenitori dell'account di archiviazione del portale di Azure:
Esempio di richiesta
{
"tasks": [
{
"kind": "ExtractiveSummarization",
"parameters": {
"sentenceCount": 6
}
}
],
"analysisInput": {
"documents": [
{
"source": {
"location": "{your-source-blob-SAS-URL}"
},
"targets": {
"location": "{your-target-container-SAS-URL}"
}
}
]
}
}
Eseguire la richiesta POST
Prima di eseguire la richiesta di POST, sostituire {your-language-resource-endpoint} e {your-key} con il valore dell'endpoint dell'istanza della risorsa Lingua del portale di Azure.
Important
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 ulteriori informazioni, vederela sicurezza di Foundry Tools.
PowerShell
cmd /c curl "{your-language-resource-endpoint}/language/analyze-documents/jobs?api-version=2024-11-15-preview" -i -X POST --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@document-summarization.json"
prompt dei comandi/terminale
curl -v -X POST "{your-language-resource-endpoint}/language/analyze-documents/jobs?api-version=2024-11-15-preview" --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}" --data "@document-summarization.json"
Risposta di esempio:
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=2024-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 di sola lettura Operation-Location. 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 della richiesta GET:
GET {cognitive-service-endpoint}/language/analyze-documents/jobs/{jobId}?api-version=2024-11-15-preview
Prima di eseguire il comando, apportare queste modifiche:
Richiesta GET
cmd /c curl "{your-language-resource-endpoint}/language/analyze-documents/jobs/{jobId}?api-version=2024-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=2024-11-15-preview" --header "Content-Type: application/json" --header "Ocp-Apim-Subscription-Key: {your-key}"
Esaminare la risposta
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" ed è necessario chiamare di nuovo l'API, manualmente o tramite uno script. È consigliabile un intervallo di un secondo o più 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": "ExtractiveSummarizationLROResults",
"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/ExtractiveSummarization-0001/input.result.json"
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2023-02-01-preview"
}
}
]
}
}
Al termine dell'operazione:
- I documenti analizzati sono disponibili nel contenitore di destinazione.
- Il metodo POST riuscito restituisce un
202 Accepted codice di risposta che indica che il servizio ha creato la richiesta batch.
- La richiesta POST ha restituito anche intestazioni di risposta, incluse
Operation-Location, che forniscono un valore usato nelle richieste GET successive.
Pulire le risorse
Per pulire e rimuovere una risorsa di Intelligenza artificiale di Azure, è possibile eliminare la singola risorsa o l'intero gruppo di risorse. Se si elimina il gruppo di risorse, vengono eliminate anche tutte le risorse contenute all'interno.