Restituire una risposta semantica in Ricerca di intelligenza artificiale di Azure

Quando si richiamano la classificazione semantica e le didascalia, è possibile estrarre il contenuto dai documenti corrispondenti più importanti che "rispondono" direttamente alla query. Una o più risposte possono essere incluse nella risposta, che è quindi possibile eseguire il rendering in una pagina di ricerca per migliorare l'esperienza utente dell'app.

Una risposta semantica è contenuto verbatim nell'indice di ricerca riconosciuto da un modello di comprensione della lettura come risposta alla query posta nella richiesta. Non è una risposta generata. Per indicazioni su un modello di interazione utente in stile chat che usa l'intelligenza artificiale generativa per comporre risposte dal contenuto, vedere Recupero della generazione aumentata (RAG).

Questo articolo illustra come richiedere una risposta semantica, decomprimere la risposta e scoprire quali caratteristiche del contenuto sono più favorevoli alla produzione di risposte di alta qualità.

Prerequisiti

Tutti i prerequisiti che si applicano alle query semantiche si applicano anche alle risposte, incluso il livello di servizio e l'area.

  • La logica di query deve includere i parametri di query semantici "queryType=semantic", oltre al parametro "answers". I parametri obbligatori sono descritti in questo articolo.

  • Le stringhe di query immesse dall'utente devono essere riconoscibili come domanda (cosa, dove, quando, come).

  • I documenti di ricerca nell'indice devono contenere testo con le caratteristiche di una risposta e tale testo deve esistere in uno dei campi elencati nella configurazione semantica. Ad esempio, data una query "what is a hash table", se nessuno dei campi nella configurazione semantica contiene passaggi che includono "Una tabella hash è ...", è improbabile che venga restituita una risposta.

Nota

A partire dalla versione 2021-04-30-Preview, nelle richieste Crea o Aggiorna indice (anteprima) è necessario specificare "semanticConfiguration" i campi di input per la classificazione semantica.

Che cos'è una risposta semantica?

Una risposta semantica è una sottostruttura di una risposta di query semantica. È costituito da uno o più passaggi verbatim da un documento di ricerca, formulati come risposta a una query che ha un aspetto simile a una domanda. Per restituire una risposta, le frasi o le frasi devono esistere in un documento di ricerca con le caratteristiche del linguaggio di una risposta e la query stessa deve essere posta come domanda.

Ricerca di intelligenza artificiale di Azure usa un modello di comprensione della lettura automatica per riconoscere e scegliere la risposta migliore. Il modello produce un set di potenziali risposte dal contenuto disponibile e, quando raggiunge un livello di attendibilità sufficientemente elevato, ne propone uno come risposta.

Le risposte vengono restituite come oggetto indipendente di primo livello nel payload della risposta di query che è possibile scegliere di eseguire il rendering nelle pagine di ricerca, insieme ai risultati della ricerca. Strutturalmente, si tratta di un elemento matrice all'interno della risposta costituita da testo, una chiave del documento e un punteggio di attendibilità.

Formulare una query REST per le "risposte"

Per restituire una risposta semantica"queryType", la query deve avere i parametri semantici , "queryLanguage""semanticConfiguration", e "answers" . La specifica di questi parametri non garantisce una risposta, ma la richiesta deve includerle per l'elaborazione delle risposte.

{
    "search": "how do clouds form",
    "queryType": "semantic",
    "queryLanguage": "en-us",
    "semanticConfiguration": "my-semantic-config",
    "answers": "extractive|count-3",
    "captions": "extractive|highlight-true",
    "count": "true"
}
  • Una stringa di query non deve essere null e deve essere formulata come domanda.

  • "queryType" deve essere impostato su "semantica.

  • "queryLanguage"deve essere uno dei valori dell'elenco di lingue supportate (API REST).

  • Determina "semanticConfiguration" quali campi stringa forniscono token al modello di estrazione. Gli stessi campi che producono didascalia producono anche risposte. Per informazioni dettagliate, vedere Creare una configurazione semantica.

  • Per "answers", la costruzione dei parametri è "answers": "extractive", dove il numero predefinito di risposte restituite è uno. È possibile aumentare il numero di risposte aggiungendo un valore count come illustrato nell'esempio precedente, fino a un massimo di 10. La necessità di più risposte dipende dall'esperienza utente dell'app e dalla modalità di rendering dei risultati.

Decomprimere una "risposta" dalla risposta

Le risposte vengono fornite nella "@search.answers" matrice, che viene visualizzata per prima nella risposta alla query. Ogni risposta nella matrice include:

  • Chiave documento
  • Testo o contenuto della risposta, in testo normale o con formattazione
  • Punteggio di attendibilità

Se una risposta è indeterminato, la risposta viene visualizzata come "@search.answers": []. La matrice di risposte è seguita dalla matrice di valori, ovvero la risposta standard in una query semantica.

Data la query "how do clouds form", l'esempio seguente illustra una risposta:

{
    "@search.answers": [
        {
            "key": "4123",
            "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case),   but not where it is descending (over the river).",
            "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form<em> where air is ascending</em> (over land in this case),   but not where it is<em> descending</em> (over the river).",
            "score": 0.94639826
        }
    ],
    "value": [
        {
            "@search.score": 0.5479723,
            "@search.rerankerScore": 1.0321671911515296,
            "@search.captions": [
                {
                    "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.",
                    "highlights": "Like all<em> clouds</em>, it<em> forms</em> when the air reaches its dew point—the temperature at    which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley<em> fog</em>, which is common in the Pacific Northwest of North America."
                }
            ],
            "title": "Earth Atmosphere",
            "content": "Fog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at  \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
            "locations": [
                "Pacific Northwest",
                "North America",
                "Vancouver"
            ]
        }
    ]
}

Quando si progetta una pagina dei risultati della ricerca che include risposte, assicurarsi di gestire i casi in cui le risposte non vengono trovate.

All'interno di @search.answers:

  • "key" è la chiave o l'ID del documento della corrispondenza. Data una chiave del documento, è possibile usare l'API Ricerca documento per recuperare una o tutte le parti del documento di ricerca da includere nella pagina di ricerca o in una pagina di dettaglio.

  • "text" e "highlights" forniscono contenuto identico, sia in testo normale che con evidenziazioni.

    Per impostazione predefinita, le evidenziazioni sono in stile <em>, che è possibile eseguire l'override usando i parametri highlightPreTag e highlightPostTag esistenti. Come indicato altrove, la sostanza di una risposta è contenuto verbatim da un documento di ricerca. Il modello di estrazione cerca le caratteristiche di una risposta per trovare il contenuto appropriato, ma non compone una nuova lingua nella risposta.

  • "score" è un punteggio di attendibilità che riflette la forza della risposta. Se nella risposta sono presenti più risposte, questo punteggio viene usato per determinare l'ordine. Le risposte principali e i primi didascalia possono essere derivati da documenti di ricerca diversi, in cui la risposta principale ha origine da un documento e la didascalia superiore da un'altra, ma in generale gli stessi documenti vengono visualizzati nelle posizioni principali all'interno di ogni matrice.

Le risposte sono seguite dalla matrice "value", che include sempre punteggi, didascalia e tutti i campi recuperabili per impostazione predefinita. Se è stato specificato il parametro select, la matrice "value" è limitata ai campi specificati. Per informazioni dettagliate, vedere Configurare la classificazione semantica.

Suggerimenti per la produzione di risposte di alta qualità

Per ottenere risultati ottimali, restituire risposte semantiche in un corpus di documenti con le caratteristiche seguenti:

  • "semanticConfiguration" deve includere campi che offrono testo sufficiente in cui è probabile che venga trovata una risposta. I campi con maggiore probabilità di contenere risposte devono essere elencati per primi in "prioritizedContentFields". Solo il testo verbatim di un documento può essere visualizzato come risposta.

  • Le stringhe di query non devono essere null (search=*) e la stringa deve avere le caratteristiche di una domanda, ad esempio "what is" o "how to", anziché una ricerca di parole chiave costituita da termini o frasi in ordine arbitrario. Se la stringa di query non sembra essere una domanda, l'elaborazione delle risposte viene ignorata, anche se la richiesta specifica "risposte" come parametro di query.

  • L'estrazione semantica e il riepilogo hanno limiti sul numero di token per ogni documento che possono essere analizzati in modo tempestivo. In termini pratici, se si hanno documenti di grandi dimensioni che si verificano in centinaia di pagine, provare prima a suddividere il contenuto in documenti più piccoli.

Passaggi successivi