Utilizzo di un'applicazione Java per interagire con un bot Amazon Lex V2 - Amazon Lex

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

Utilizzo di un'applicazione Java per interagire con un bot Amazon Lex V2

La AWS SDK for Javaversione 2.0 fornisce un'interfaccia che puoi utilizzare dalle tue applicazioni Java per interagire con i tuoi bot. Utilizza SDK for Java per creare applicazioni client per gli utenti.

La seguente applicazione interagisce con il OrderFlowers bot che hai creato inEsercizio 1: Creare un bot da un esempio. Utilizza il fileLexRuntimeV2Client dall'SDK for Java per chiamare l'RecognizeTextoperazione per condurre una conversazione con il bot.

L'output della conversazione ha il seguente aspetto:

User : I would like to order flowers Bot : What type of flowers would you like to order? User : 1 dozen roses Bot : What day do you want the dozen roses to be picked up? User : Next Monday Bot : At what time do you want the dozen roses to be picked up? User : 5 in the evening Bot : Okay, your dozen roses will be ready for pickup by 17:00 on 2021-01-04. Does this sound okay? User : Yes Bot : Thanks.

Per le strutture JSON inviate tra l'applicazione client e il bot Amazon Lex V2, consultaEsercizio 2: Rivedi il flusso della conversazione.

Per eseguire l'applicazione, è necessario fornire le informazioni riportate di seguito:

  • botId: l'identificativo assegnato al bot al momento della creazione. Puoi vedere l'ID del bot nella console Amazon Lex V2 nella pagina Impostazioni del bot.

  • botAliasId — L'identificativo assegnato all'alias del bot al momento della creazione. Puoi vedere l'ID alias del bot nella console Amazon Lex V2 nella pagina Alias. Se non riesci a vedere l'alias ID nell'elenco, scegli l'icona a forma di ingranaggio in alto a destra e attiva Alias ID.

  • localeID: l'identificatore della lingua che hai usato per il tuo bot. Per un elenco delle impostazioni locali, consultaLingue e impostazioni locali supportate da Amazon Lex V2.

  • accessKey e secretKey: le chiavi di autenticazione per il tuo account. Se non si dispone di un set di chiavi, è necessario crearli utilizzando laAWS Identity and Access Management console.

  • sessionId: un identificatore per la sessione con il bot Amazon Lex V2. In questo caso, il codice utilizza un UUID casuale.

  • regione se il tuo bot nella regione Stati Uniti orientali (Virginia settentrionale), settentrionale), settentrionale), settentrionale), settentrionale), se il tuo bot nella regione Stati Uniti orientali (Virginia settentrionale), settentrionale), settentrionale), settentrionale), settentrionale

Le applicazioni utilizzano una funzione chiamatagetRecognizeTextRequest per creare richieste individuali al bot. La funzione crea una richiesta con i parametri richiesti da inviare ad Amazon Lex V2.

package com.lex.recognizetext.sample; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.lexruntimev2.LexRuntimeV2Client; import software.amazon.awssdk.services.lexruntimev2.model.RecognizeTextRequest; import software.amazon.awssdk.services.lexruntimev2.model.RecognizeTextResponse; import java.net.URISyntaxException; import java.util.UUID; /** * This is a sample application to interact with a bot using RecognizeText API. */ public class OrderFlowersSampleApplication { public static void main(String[] args) throws URISyntaxException, InterruptedException { String botId = ""; String botAliasId = ""; String localeId = "en_US"; String accessKey = ""; String secretKey = ""; String sessionId = UUID.randomUUID().toString(); Region region = Region.US_EAST_1; // pick an appropriate region AwsBasicCredentials awsCreds = AwsBasicCredentials.create(accessKey, secretKey); AwsCredentialsProvider awsCredentialsProvider = StaticCredentialsProvider.create(awsCreds); LexRuntimeV2Client lexV2Client = LexRuntimeV2Client .builder() .credentialsProvider(awsCredentialsProvider) .region(region) .build(); // utterance 1 String userInput = "I would like to order flowers"; RecognizeTextRequest recognizeTextRequest = getRecognizeTextRequest(botId, botAliasId, localeId, sessionId, userInput); RecognizeTextResponse recognizeTextResponse = lexV2Client.recognizeText(recognizeTextRequest); System.out.println("User : " + userInput); recognizeTextResponse.messages().forEach(message -> { System.out.println("Bot : " + message.content()); }); // utterance 2 userInput = "1 dozen roses"; recognizeTextRequest = getRecognizeTextRequest(botId, botAliasId, localeId, sessionId, userInput); recognizeTextResponse = lexV2Client.recognizeText(recognizeTextRequest); System.out.println("User : " + userInput); recognizeTextResponse.messages().forEach(message -> { System.out.println("Bot : " + message.content()); }); // utterance 3 userInput = "next monday"; recognizeTextRequest = getRecognizeTextRequest(botId, botAliasId, localeId, sessionId, userInput); recognizeTextResponse = lexV2Client.recognizeText(recognizeTextRequest); System.out.println("User : " + userInput); recognizeTextResponse.messages().forEach(message -> { System.out.println("Bot : " + message.content()); }); // utterance 4 userInput = "5 in evening"; recognizeTextRequest = getRecognizeTextRequest(botId, botAliasId, localeId, sessionId, userInput); recognizeTextResponse = lexV2Client.recognizeText(recognizeTextRequest); System.out.println("User : " + userInput); recognizeTextResponse.messages().forEach(message -> { System.out.println("Bot : " + message.content()); }); // utterance 5 userInput = "Yes"; recognizeTextRequest = getRecognizeTextRequest(botId, botAliasId, localeId, sessionId, userInput); recognizeTextResponse = lexV2Client.recognizeText(recognizeTextRequest); System.out.println("User : " + userInput); recognizeTextResponse.messages().forEach(message -> { System.out.println("Bot : " + message.content()); }); } private static RecognizeTextRequest getRecognizeTextRequest(String botId, String botAliasId, String localeId, String sessionId, String userInput) { RecognizeTextRequest recognizeTextRequest = RecognizeTextRequest.builder() .botAliasId(botAliasId) .botId(botId) .localeId(localeId) .sessionId(sessionId) .text(userInput) .build(); return recognizeTextRequest; } }