Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS SDK for Java 2.0
Aplikasi berikut berinteraksi dengan OrderFlowers bot yang Anda buat. Latihan 1: Buat bot dari contoh Ini menggunakan LexRuntimeV2Client
dari SDK for Java untuk memanggil RecognizeTextoperasi untuk melakukan percakapan dengan bot.
Output dari percakapan terlihat seperti ini:
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.
Untuk struktur JSON yang dikirim antara aplikasi klien dan bot Amazon Lex V2, lihatLatihan 2: Tinjau alur percakapan.
Untuk menjalankan aplikasi, Anda harus memberikan informasi berikut:
-
BotID — Pengidentifikasi yang ditetapkan ke bot saat Anda membuatnya. Anda dapat melihat ID bot di konsol Amazon Lex V2 di halaman Pengaturan bot.
-
botAliasId — Pengenal yang ditetapkan ke alias bot saat Anda membuatnya. Anda dapat melihat ID alias bot di konsol Amazon Lex V2 di halaman Alias. Jika Anda tidak dapat melihat ID alias dalam daftar, pilih ikon roda gigi di kanan atas dan nyalakan ID Alias.
-
LocaleID — Pengenal lokal yang Anda gunakan untuk bot Anda. Untuk daftar lokal, lihatBahasa dan lokal yang didukung oleh Amazon Lex V2.
-
AccessKey dan SecretKey — Kunci otentikasi untuk akun Anda. Jika Anda tidak memiliki satu set kunci, buat mereka menggunakan AWS Identity and Access Management konsol.
-
SessionID — Pengenal untuk sesi dengan bot Amazon Lex V2. Dalam hal ini, kode menggunakan UUID acak.
-
Jika bot Anda tidak berada di Wilayah AS Timur (Virginia N.), pastikan Anda mengubah Wilayah.
Aplikasi menggunakan fungsi yang dipanggil getRecognizeTextRequest
untuk membuat permintaan individual ke bot. Fungsi ini membangun permintaan dengan parameter yang diperlukan untuk dikirim ke 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;
}
}