Verwenden einer Java-Anwendung zur Interaktion mit einem Amazon Lex V2-Bot - Amazon Lex

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden einer Java-Anwendung zur Interaktion mit einem Amazon Lex V2-Bot

Die AWS SDK for Java2.0 bietet eine Schnittstelle, die Sie von Ihren Java-Anwendungen aus verwenden können, um mit Ihren Bots zu interagieren. Verwenden Sie das SDK for Java, um Client-Anwendungen für Benutzer zu erstellen.

Die folgende Anwendung interagiert mit dem OrderFlowers Bot, in dem Sie erstellt habenÜbung 1: Einen Bot anhand eines Beispiels erstellen. Es verwendet dasLexRuntimeV2Client aus dem SDK for Java, um die RecognizeTextOperation aufzurufen, um eine Konversation mit dem Bot zu führen.

Das

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.

Informationen zu den JSON-Strukturen, die zwischen der Client-Anwendung und dem Amazon Lex V2-Bot gesendet werden, finden Sie unterÜbung 2: Überprüfen des Gesprächsablaufs.

Um die Anwendung ausführen, müssen Sie die folgenden Informationen angeben:

  • BotId — Die Kennung, die dem Bot bei der Erstellung zugewiesen wurde. Sie können die Bot-ID in der Amazon Lex V2-Konsole auf der Seite mit den Bot-Einstellungen sehen.

  • botAliasId — Die Kennung, die dem Bot-Alias bei der Erstellung zugewiesen wurde. Sie können die Bot-Alias-ID in der Amazon Lex V2-Konsole auf der Seite Aliase sehen. Wenn Sie die Alias-ID in der Liste nicht sehen können, wählen Sie das Zahnradsymbol oben rechts und aktivieren Sie die Alias-ID.

  • localeID — Die Kennung des Gebietsschemas, das Sie für Ihren Bot verwendet haben. Eine Liste der Gebietsschemas finden Sie unterVon Amazon Lex V2 unterstützte Sprachen und Gebietsschemas.

  • accessKey und secretKey — Die Authentifizierungsschlüssel für Ihr Konto. Wenn Sie keinen Satz von Schlüsseln haben, erstellen Sie sie mithilfe derAWS Identity and Access Management Konsole.

  • sessionId — Eine Kennung für die Sitzung mit dem Amazon Lex V2-Bot. In diesem Fall verwendet der Code eine zufällige UUID.

  • Region befindet, stellen Sie sicher, dass Sie die Region USA Ost (Nord-Virginia) -Region befindet, stellen Sie sicher, dass Sie die Region USA Ost (Nord-Virginia) -Region befindet, stellen Sie sicher, dass Sie die Region USA Ost

Die Anwendung verwendet eine Funktion, die aufgerufen wirdgetRecognizeTextRequest, um individuelle Anfragen an den Bot zu erstellen. Die Funktion erstellt eine Anfrage mit den erforderlichen Parametern, um sie an Amazon Lex V2 zu senden.

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; } }