Contesto della sessione dell'agente di controllo - Amazon Bedrock

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

Contesto della sessione dell'agente di controllo

Per un maggiore controllo del contesto della sessione, puoi modificare SessionStateoggetto nel tuo agente. Il SessionStatel'oggetto contiene informazioni che possono essere mantenute a turno (separate) InvokeAgentrichiesta e risposte). È possibile utilizzare queste informazioni per fornire un contesto di conversazione all'agente durante le conversazioni con gli utenti.

Il formato generale del SessionStatel'oggetto è il seguente.

{ "sessionAttributes": { "<attributeName1>": "<attributeValue1>", "<attributeName2>": "<attributeValue2>", ... }, "promptSessionAttributes": { "<attributeName3>": "<attributeValue3>", "<attributeName4>": "<attributeValue4>", ... }, "invocationId": "string", "returnControlInvocationResults": [ ApiResult or FunctionResult, ... ], "knowledgeBases": [ { "knowledgeBaseId": "string", "retrievalConfiguration": { "vectorSearchConfiguration": { "overrideSearchType": "HYBRID | SEMANTIC", "numberOfResults": int, "filter": RetrievalFilter object } } }, ... ] }

Seleziona un argomento per saperne di più sui campi del SessionStateoggetto.

Attributi della sessione e della sessione di prompt

Amazon Bedrock Agents consente di definire i seguenti tipi di attributi contestuali che persistono per alcune parti di una sessione:

È possibile definire gli attributi dello stato della sessione in due passaggi diversi:

  • Quando configuri un gruppo di azioni e scrivi la funzione Lambda, includi sessionAttributes o promptSessionAttributes nell'evento di risposta che viene restituito ad Amazon Bedrock.

  • Durante il runtime, quando invii un InvokeAgentrequest, includi un sessionState oggetto nel corpo della richiesta per modificare dinamicamente gli attributi dello stato della sessione durante la conversazione.

Esempio di attributo di sessione

L'esempio seguente utilizza un attributo di sessione per personalizzare un messaggio per l'utente.

  1. Scrivi il codice dell'applicazione per chiedere all'utente di fornire il proprio nome e la richiesta che desidera fare all'agente e per memorizzare le risposte come variabili <first_name> e <request>.

  2. Scrivi il codice dell'applicazione per inviare un InvokeAgentrichiesta con il seguente corpo:

    { "inputText": "<request>", "sessionState": { "sessionAttributes": { "firstName": "<first_name>" } } }
  3. Quando un utente utilizza l'applicazione e fornisce il proprio nome, il codice invierà il nome come attributo di sessione e l'agente memorizzerà il suo nome per tutta la durata della sessione.

  4. Poiché gli attributi di sessione vengono inviati nell'evento di input Lambda, è possibile fare riferimento a questi attributi di sessione in una funzione Lambda per un gruppo di azioni. Ad esempio, se lo APIschema di azione richiede un nome nel corpo della richiesta, è possibile utilizzare l'attributo firstName session quando si scrive la funzione Lambda per un gruppo di azioni per compilare automaticamente quel campo durante l'invio della richiesta. API

Esempio di attributo di sessione Prompt

L'esempio generale seguente utilizza un attributo di sessione di prompt per fornire un contesto temporale per l'agente.

  1. Scrivete il codice dell'applicazione per memorizzare la richiesta dell'utente in una variabile chiamata <request>.

  2. Scrivi il codice dell'applicazione per recuperare il fuso orario nella posizione dell'utente se l'utente utilizza una parola che indica l'ora relativa (ad esempio «domani») nella <request>e memorizza in una variabile chiamata <timezone>.

  3. Scrivi la tua candidatura per inviare un InvokeAgentrichiesta con il seguente corpo:

    { "inputText": "<request>", "sessionState": { "promptSessionAttributes": { "timeZone": "<timezone>" } } }
  4. Se un utente usa una parola che indica l'ora relativa, il codice invierà l'attributo timeZone prompt session e l'agente lo memorizzerà per tutta la durata del turno.

  5. Ad esempio, se un utente chiedeI need to book a hotel for tomorrow, il codice invia il fuso orario dell'utente all'agente e l'agente può determinare la data esatta a cui si riferisce «domani».

  6. L'attributo prompt session può essere utilizzato nei seguenti passaggi.

Risultati dell'invocazione del gruppo di azioni

Se hai configurato un gruppo di azioni per restituire il controllo in un InvokeAgentrisposta, è possibile inviare i risultati dell'invocazione del gruppo sessionState di azioni in una successiva InvokeAgentrisposta includendo i seguenti campi:

  • invocationId— Questo ID deve corrispondere a quello invocationId restituito nell'ReturnControlPayloadoggetto returnControl nel campo del InvokeAgentrisposta.

  • returnControlInvocationResults— Include i risultati ottenuti dall'invocazione dell'azione. È possibile configurare l'applicazione in modo che passi l'ReturnControlPayloadoggetto per eseguire una API richiesta o chiamare una funzione definita dall'utente. È quindi possibile fornire i risultati di tale azione qui. Ogni membro dell'returnControlInvocationResultselenco è uno dei seguenti:

    • Un ApiResultoggetto contenente l'APIoperazione prevista dall'agente deve essere chiamato in un precedente InvokeAgentsequenza e risultati dell'invocazione dell'azione nei sistemi. Il formato generale è il seguente:

      { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": integer, "responseBody": { "TEXT": { "body": "string" } } }
    • Un FunctionResultoggetto contenente la funzione prevista dall'agente deve essere chiamato in un precedente InvokeAgentsequenza e risultati dell'invocazione dell'azione nei sistemi. Il formato generale è il seguente:

      { "actionGroup": "string", "function": "string", "responseBody": { "TEXT": { "body": "string" } } }

I risultati forniti possono essere utilizzati come contesto per un'ulteriore orchestrazione, inviati alla post-elaborazione per consentire all'agente di formattare una risposta o utilizzati direttamente nella risposta dell'agente all'utente.

Configurazioni di recupero della Knowledge Base

Per modificare la configurazione di recupero delle knowledge base collegate al tuo agente, includi il knowledgeBaseConfigurations campo con un elenco di configurazioni per ogni knowledge base di cui desideri specificare le configurazioni. Specificare il valore di knowledgeBaseId. Nel vectorSearchConfiguration campo, è possibile specificare le seguenti configurazioni di interrogazione (per ulteriori informazioni su queste configurazioni, vedere): Configura e personalizza le interrogazioni e la generazione di risposte

  • Tipo di ricerca: indica se la knowledge base cerca solo gli incorporamenti vettoriali (SEMANTIC) o sia gli incorporamenti vettoriali che il testo non elaborato (). HYBRID Usa il campo. overrideSearchType

  • Numero massimo di risultati recuperati: il numero massimo di risultati del recupero della query da utilizzare nella risposta.

  • Metadati e filtri: filtri che è possibile configurare per filtrare i risultati in base agli attributi dei metadati nei file di origine dati.