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.
Die AWS SDK for Java2.0
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;
}
}