

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Recupero dei passaggi
<a name="searching-retrieve"></a>

È possibile utilizzare l'[https://docs.aws.amazon.com/kendra/latest/APIReference/API_Retrieve.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Retrieve.html)API come retriever per i sistemi RAG (Retrieval Augmented Generation).

I sistemi RAG utilizzano l'intelligenza artificiale generativa per creare applicazioni di risposta a domande. I sistemi RAG sono costituiti da un retriever e da modelli linguistici di grandi dimensioni (LLM). A seguito di una richiesta, il retriever identifica le porzioni di testo più rilevanti da un corpus di documenti e le invia all'LLM per fornire la risposta più utile. Quindi, l'LLM analizza i blocchi o i passaggi di testo pertinenti e genera una risposta completa alla domanda.

L'`Retrieve`API esamina le porzioni di testo o gli estratti denominati passaggi e restituisce *i passaggi principali* più pertinenti alla query.

Come l'[https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html](https://docs.aws.amazon.com/kendra/latest/APIReference/API_Query.html)API, anche l'API cerca le informazioni pertinenti`Retrieve`. Il recupero delle informazioni da parte dell'API Retrieve tiene conto del contesto della query e di tutte le informazioni disponibili dai documenti indicizzati. Tuttavia, per impostazione predefinita, l'`Query`API restituisce solo passaggi estratti contenenti un massimo di 100 parole chiave. Con l'`Retrieve`API, puoi recuperare passaggi più lunghi di un massimo di 200 parole chiave e fino a 100 passaggi semanticamente rilevanti. Questo non include le risposte a domande e risposte di tipo FAQ dal tuo indice. I passaggi, detti anche blocchi, sono estratti di testo che possono essere estratti semanticamente da più documenti e più parti dello stesso documento. L'indice GenAI Enterprise Edition di Kendra offre risultati di recupero ad alta precisione, utilizzando una ricerca ibrida su indici vettoriali e di parole chiave insieme al posizionamento in base a modelli di deep learning.

Con l'API puoi anche fare quanto segue: `Retrieve`
+ Sostituisci il potenziamento a livello di indice
+ Filtra in base ai campi o agli attributi del documento
+ Filtra in base all'accesso dell'utente o del relativo gruppo ai documenti
+ Visualizza il bucket del punteggio di confidenza per un risultato di passaggio recuperato. Il bucket di confidenza fornisce una classificazione relativa che indica quanto Amazon Kendra è sicuro che la risposta sia pertinente alla query.
**Nota**  
I bucket con il punteggio di confidenza sono attualmente disponibili solo per l'inglese.

Puoi anche includere alcuni campi nella risposta che potrebbero fornire utili informazioni aggiuntive.

[Al momento l'`Retrieve`API non supporta le seguenti funzionalità: esecuzione di query utilizzando la [sintassi avanzata delle query](https://docs.aws.amazon.com/kendra/latest/dg/searching-example.html#searching-index-query-syntax), [correzioni ortografiche suggerite](https://docs.aws.amazon.com/kendra/latest/dg/query-spell-check.html) per le query, [faceting](https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-facets), [suggerimenti di query per il completamento automatico delle query](https://docs.aws.amazon.com/kendra/latest/dg/query-suggestions.html) di ricerca e apprendimento incrementale.](https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html) Le eventuali query API di recupero non verranno visualizzate nella dashboard di analisi.

L'`Retrieve`API condivide il numero di [unità di capacità di interrogazione](https://docs.aws.amazon.com/kendra/latest/APIReference/API_CapacityUnitsConfiguration.html) impostate per l'indice. Per ulteriori informazioni su cosa è incluso in una singola unità di capacità e sulla capacità di base predefinita per un indice, vedi [Regolazione della capacità](https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html).

**Nota**  
Non è possibile aggiungere capacità se si utilizza la Amazon Kendra Developer Edition; è possibile aggiungere capacità solo quando si utilizza Amazon Kendra Enterprise Edition. Per ulteriori informazioni su ciò che è incluso nelle edizioni Developer ed Enterprise, consulta [Amazon Kendra Edizioni](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html#kendra-editions).

Di seguito è riportato un esempio di utilizzo dell'`Retrieve`API per recuperare i 100 passaggi più importanti dei documenti in un indice per la query "how does amazon kendra work?"

------
#### [ Python ]

```
import boto3
import pprint

kendra = boto3.client("kendra")

# Provide the index ID
index_id = "index-id"
# Provide the query text
query = "how does amazon kendra work?"
# You can retrieve up to 100 relevant passages
# You can paginate 100 passages across 10 pages, for example
page_size = 10
page_number = 10

result = kendra.retrieve(
        IndexId = index_id,
        QueryText = query,
        PageSize = page_size,
        PageNumber = page_number)

print("\nRetrieved passage results for query: " + query + "\n")        

for retrieve_result in result["ResultItems"]:

    print("-------------------")
    print("Title: " + str(retrieve_result["DocumentTitle"]))
    print("URI: " + str(retrieve_result["DocumentURI"]))
    print("Passage content: " + str(retrieve_result["Content"]))
    print("------------------\n\n")
```

------
#### [ Java ]

```
package com.amazonaws.kendra;

import software.amazon.awssdk.services.kendra.KendraClient;
import software.amazon.awssdk.services.kendra.model.RetrieveRequest;
import software.amazon.awssdk.services.kendra.model.RetrieveResult;
import software.amazon.awssdk.services.kendra.model.RetrieveResultItem;

public class RetrievePassageExample {
    public static void main(String[] args) {
        KendraClient kendra = KendraClient.builder().build();
        
        String indxId = "index-id";
        String query = "how does amazon kendra work?";
        Integer pgSize = 10;
        Integer pgNumber = 10;

        RetrieveRequest retrieveRequest = retrieveRequest
            .builder()
            .indexId(indxId)
            .queryText(query)
            .pageSize(pgSize)
            .pageNumber(pgNumber)
            .build();

        RetrieveResult retrieveResult = kendra.retrieve(retrieveRequest);

        System.out.println(String.format("\nRetrieved passage results for query: %s", query));
        for(RetrieveResultItem item: retrieveResult.resultItems()) {
            System.out.println("----------------------");
            System.out.println(String.format("Title: %s", documentTitle));
            System.out.println(String.format("URI: %s", documentURI));
            System.out.println(String.format("Passage content: %s", content));
            System.out.println("-----------------------\n");
        }
    }
}
```

------