

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à.

# Strutture comuni in una AWS Lambda funzione per Amazon Lex V2
<a name="lambda-common-structures"></a>

All'interno della risposta Lambda, ci sono diverse strutture che si ripetono. I dettagli su queste strutture comuni sono forniti in questa sezione.

## Intento
<a name="lambda-intent"></a>

```
"intent": {
    "confirmationState": "Confirmed | Denied | None",
    "name": string,
    "slots": {
        // see Slot for details about the structure
    },
    "state": "Failed | Fulfilled | FulfillmentInProgress | InProgress | ReadyForFulfillment | Waiting",
    "kendraResponse": {
        // Only present when intent is KendraSearchIntent. For details, see
// https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax       }
}
```

Il `intent` campo è mappato su un oggetto con i seguenti campi:

### Stato di conferma
<a name="lambda-intent-confirmationstate"></a>

Indica se l'utente ha confermato gli slot per l'intento e l'intento è pronto per l'adempimento. I valori possibili sono i seguenti:

`Confirmed`— L'utente conferma che i valori degli slot sono corretti.

`Denied`— L'utente indica che i valori dello slot non sono corretti.

`None`— L'utente non ha ancora raggiunto la fase di conferma.

### nome
<a name="lambda-intent-name"></a>

Il nome dell'intento.

### slots
<a name="lambda-intent-slots"></a>

Informazioni sugli slot necessari per soddisfare l'intento. Vedi [Slot](#lambda-slot) per i dettagli sulla struttura.

### stato
<a name="lambda-intent-state"></a>

Indica lo stato di adempimento dell'intento. I valori possibili sono i seguenti:

`Failed`— Il bot non è riuscito a soddisfare l'intento.

`Fulfilled`— Il bot ha completato l'adempimento dell'intento.

`FulfillmentInProgress`— Il bot è nel bel mezzo del raggiungimento dell'intento.

`InProgress`— Il bot sta cercando di ottenere i valori dello slot necessari per soddisfare l'intento.

`ReadyForFulfillment`— Il bot ha ottenuto tutti i valori dello slot per l'intento ed è pronto a soddisfare l'intento.

`Waiting`— Il bot è in attesa di una risposta dall'utente (limitata alle conversazioni in streaming).

### kendraResponse
<a name="lambda-intent-kendraresponse"></a>

Contiene informazioni sui risultati della query di ricerca di Kendra. Questo campo viene visualizzato solo se l'intento è un. `KendraSearchIntent` Per ulteriori informazioni, consulta [la sintassi della risposta nella chiamata all'API Query per Kendra](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax).

## Slot
<a name="lambda-slot"></a>

Il `slots` campo esiste all'interno di una `intent` struttura ed è mappato su una struttura le cui chiavi sono i nomi degli slot relativi a tale scopo. Se lo slot non è uno slot multivalore (vedi [Utilizzo di più valori in uno slot](multi-valued-slots.md) per maggiori dettagli), viene mappato su una struttura con il seguente formato. Nota che lo è. `shape` `Scalar`

```
{
    slot name: {
        "shape": "Scalar",
        "value": {
            "originalValue": string,
            "interpretedValue": string,
            "resolvedValues": [
                string,
                ...
            ]
        }
    }
}
```

Se lo slot è uno slot multivalore, l'oggetto a cui è mappato contiene un altro campo chiamato`values`, che è mappato su un elenco di strutture, ciascuna contenente informazioni su uno slot che costituisce lo slot multivalore. Il formato di ogni oggetto nell'elenco corrisponde a quello dell'oggetto a cui è mappato uno slot normale. Nota che lo `shape` è`List`, ma lo `values` è `Scalar` lo slot `shape` dei componenti sottostanti.

```
{
    slot name: {
    "shape": "List",
    "value": {
        "originalValue": string,
        "interpretedValue": string,
        "resolvedValues": [
            string,
            ...
        ]
    },
    "values": [
        {
            "shape": "Scalar",
            "value": {
                "originalValue": string,
                "interpretedValue": string,
                "resolvedValues": [
                    string,
                    ...
                ]
            }
        },
        {
            "shape": "Scalar",
            "value": {
                "originalValue": string,
                "interpretedValue": string,
                "resolvedValues": [
                    string,
                    ...
                ]
            }
        },
        ...
    ]
}
```

I campi dell'oggetto slot sono descritti di seguito:

### shape
<a name="lambda-slots-shape"></a>

La forma dello slot. Questo valore è `List` se ci sono più valori nello slot (vedi [Utilizzo di più valori in uno slot](multi-valued-slots.md) per maggiori dettagli) e non lo `Scalar` è.

### value
<a name="lambda-slots-value"></a>

Un oggetto contenente informazioni sul valore fornito dall'utente per uno slot e sull'interpretazione di Amazon Lex V2, nel seguente formato:

```
{
    "originalValue": string,
    "interpretedValue": string,
    "resolvedValues": [
        string,
        ...
    ]
}
```

I campi sono descritti di seguito.
+ **OriginalValue**: la parte della risposta dell'utente all'elicitazione dello slot che Amazon Lex V2 determina è rilevante per il valore dello slot.
+ **InterpretedValue**: il valore che Amazon Lex V2 determina per lo slot, in base all'input dell'utente.
+ **ResolvedValues**: un elenco di valori che Amazon Lex V2 determina come possibili risoluzioni per l'input dell'utente.

### values
<a name="lambda-slots-values"></a>

Un elenco di oggetti contenente informazioni sugli slot che compongono lo slot multivalore. Il formato di ogni oggetto corrisponde a quello di uno slot normale, con i `value` campi `shape` e descritti sopra. `values`appare solo se lo slot è composto da più valori (vedi [Utilizzo di più valori in uno slot](multi-valued-slots.md) per maggiori dettagli). Il seguente oggetto JSON mostra due slot componenti:

```
"values": [
    {
        "shape": "Scalar",
        "value": {
            "originalValue": string,
            "interpretedValue": string,
            "resolvedValues": [
                string,
                ...
            ]
        }
    },
    {
        "shape": "Scalar",
        "value": {
            "originalValue": string,
            "interpretedValue": string,
            "resolvedValues": [
                string,
                ...
            ]
        }
    },
    ...
]
```

## Stato della sessione
<a name="lambda-session-state"></a>

Il `sessionState` campo è mappato su un oggetto contenente informazioni sullo stato della conversazione con l'utente. I campi effettivi che appaiono nell'oggetto dipendono dal tipo di azione di dialogo. Vedi [Campi obbligatori nella risposta](lambda-response-format.md#lambda-response-required) i campi obbligatori in una risposta Lambda. Il formato dell'`sessionState`oggetto è il seguente:

```
"sessionState": {
    "activeContexts": [
        {
            "name": string,
            "contextAttributes": {
                string: string
            },
            "timeToLive": {
                "timeToLiveInSeconds": number,
                "turnsToLive": number
            }
        },
        ...
    ],
    "sessionAttributes": {
        string: string,
        ...
    },
    "runtimeHints": {
        "slotHints": {
            intent name: {
                slot name: {
                    "runtimeHintValues": [
                        {
                            "phrase": string
                        },
                        ...
                    ]
                },
                ...
            },
            ...
        }
    },
    "dialogAction": {
        "slotElicitationStyle": "Default | SpellByLetter | SpellByWord",
        "slotToElicit": string,
        "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot"
    },
    "intent": {
        // see Intento for details about the structure
    },
    "originatingRequestId": string
}
```

I campi sono descritti di seguito.

### Contesti attivi
<a name="lambda-active-contexts"></a>

Un elenco di oggetti contenenti informazioni su un contesto utilizzato da un utente in una sessione. Utilizza i contesti per facilitare e controllare il riconoscimento degli intenti. Per ulteriori informazioni sui contesti, vedere. [Impostazione del contesto degli intenti per il tuo bot Lex V2](context-mgmt-active-context.md) Ogni oggetto è formattato come segue:

```
{
    "name": string,
    "contextAttributes": {
        string: string
    },
    "timeToLive": {
        "timeToLiveInSeconds": number,
        "turnsToLive": number
    }
}
```

I campi sono descritti di seguito.
+ **name** — Il nome del contesto.
+ **contextAttributes** — Un oggetto contenente i nomi degli attributi per il contesto e i valori a cui sono mappati.
+ **timeToLive**— Un oggetto che specifica per quanto tempo il contesto rimane attivo. Questo oggetto può contenere uno o entrambi i seguenti campi:
  + **timeToLiveInSeconds**— Il numero di secondi in cui il contesto rimane attivo.
  + **turnsToLive**— Il numero di turni in cui il contesto rimane attivo.

### sessionAttributes
<a name="lambda-session-attributes"></a>

Una mappa di key/value coppie che rappresentano informazioni di contesto specifiche della sessione. Per ulteriori informazioni, consulta [Impostazione degli attributi di sessione per il tuo bot Lex V2](context-mgmt-session-attribs.md). L'oggetto è formattato come segue:

```
{
    string: string,
    ...
}
```

### RuntimeHints
<a name="lambda-runtime-hints"></a>

Fornisce suggerimenti sulle frasi che un cliente probabilmente utilizzerà per uno slot per migliorare il riconoscimento audio. I valori forniti nei suggerimenti aumentano il riconoscimento audio di tali valori rispetto a parole dal suono simile. Il formato dell'`runtimeHints`oggetto è il seguente:

```
{
    "slotHints": {
        intent name: {
            slot name: {
                "runtimeHintValues": [
                    {
                        "phrase": string
                    },
                    ...
                ]
            },
            ...
        },
        ...
    }
}
```

Il `slotHints` campo è mappato su un oggetto i cui campi sono i nomi degli intenti nel bot. Ogni nome di intento è mappato a un oggetto i cui campi sono i nomi degli slot per quell'intento. Ogni nome di slot è mappato a una struttura con un singolo campo`runtimeHintValues`, che è un elenco di oggetti. Ogni oggetto contiene un `phrase` campo che corrisponde a un suggerimento.

### dialogAction
<a name="lambda-dialog-action"></a>

Determina l'azione successiva da intraprendere per Amazon Lex V2. Il formato dell'oggetto è il seguente:

```
{
    "slotElicitationStyle": "Default | SpellByLetter | SpellByWord",
    "slotToElicit": string,
    "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot"
}
```

I campi sono descritti di seguito.
+  **slotElicitationStyle**— Determina il modo in cui Amazon Lex V2 interpreta l'input audio dell'utente, se l'`type`o è. `dialogAction` `ElicitSlot` Per ulteriori informazioni, consulta [Acquisizione dei valori degli slot con stili ortografici durante la conversazione](spelling-styles.md). I valori possibili sono i seguenti:

  `Default`— Amazon Lex V2 interpreta l'ingresso audio nel modo predefinito per soddisfare uno slot.

  `SpellByLetter`— Amazon Lex V2 ascolta l'ortografia del valore dello slot da parte dell'utente.

  `SpellByWord`— Amazon Lex V2 ascolta l'ortografia del valore dello slot da parte dell'utente utilizzando parole associate a ciascuna lettera (ad esempio, «a as in apple»).
+  **slotToElicit**— Definisce lo slot da richiedere all'utente se l'of è. `type` `dialogAction` `ElicitSlot` 
+ **tipo** — Definisce l'azione che il bot deve eseguire. I valori possibili sono i seguenti:

  `Delegate`— Consente ad Amazon Lex V2 di determinare il passaggio successivo.

  `ElicitIntent`— Richiede al cliente di esprimere un'intenzione.

  `ConfirmIntent`— Conferma i valori degli slot assegnati al cliente e se l'intento è pronto per l'adempimento.

  `ElicitSlot`— Richiede al cliente di fornire un valore di slot per un intento.

  `Close`— Termina il processo di adempimento degli intenti.

### intent
<a name="lambda-sessionstate-intent"></a>

Vedi [Intento](#lambda-intent) la struttura del campo. `intent`

### originatingRequestId
<a name="lambda-originating-request-id"></a>

Un identificatore univoco per la richiesta. Questo campo è facoltativo per la risposta Lambda.