zu erstellen Ich möchte einen Bot mit einer einfachen Absicht programmgesteuert erstellen, leider habe ich eine Fehlermeldung, dass die Ressource (die Absicht) nicht gefunden wurde, obwohl ich die erstellte Absicht sehen kann in der Konsole.Versuchen, Bot mit AWS Java SDK mit Intents
Das ist meinen einfachen Code:
package building;
import java.util.ArrayList;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuilding;
import com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClientBuilder;
import com.amazonaws.services.lexmodelbuilding.model.ContentType;
import com.amazonaws.services.lexmodelbuilding.model.FulfillmentActivity;
import com.amazonaws.services.lexmodelbuilding.model.FulfillmentActivityType;
import com.amazonaws.services.lexmodelbuilding.model.Intent;
import com.amazonaws.services.lexmodelbuilding.model.Message;
import com.amazonaws.services.lexmodelbuilding.model.Prompt;
import com.amazonaws.services.lexmodelbuilding.model.PutBotRequest;
import com.amazonaws.services.lexmodelbuilding.model.PutBotResult;
import com.amazonaws.services.lexmodelbuilding.model.PutIntentRequest;
import com.amazonaws.services.lexmodelbuilding.model.PutIntentResult;
public class ChatBotBuilder {
public static void main(String [] args) {
AmazonLexModelBuilding botBuilder = AmazonLexModelBuildingClientBuilder.standard().withRegion(Regions.EU_WEST_1).build();
ArrayList<Intent> intents = new ArrayList<Intent>();
Intent test = new Intent().withIntentName("Testintent").withIntentVersion("1");
intents.add(test);
PutIntentRequest putIntentRequest = new PutIntentRequest()
.withDescription("das ist ein intenttest")
.withFulfillmentActivity(new FulfillmentActivity().withType(FulfillmentActivityType.ReturnIntent))
.withName("Testintent")
.withSampleUtterances(new String[] {"Ich möchte den Test starten","Gib mir was"});
PutIntentResult intentResult = botBuilder.putIntent(putIntentRequest);
System.out.println(intentResult.getName());
PutBotRequest putBotRequest = new PutBotRequest().withChildDirected(false)
.withClarificationPrompt(new Prompt()
.withMaxAttempts(5)
.withMessages(new Message[] {new Message().withContent("Was genau willst du?").withContentType(ContentType.PlainText), new Message().withContent("Was genau du wollen?").withContentType(ContentType.PlainText)}))
.withDescription("Programmbot")
.withIntents(intents)
.withName("TestBot")
.withLocale("en-US");
PutBotResult result = botBuilder.putBot(putBotRequest);
System.out.println(result.getName());
System.out.println(result.getFailureReason());
}
}
ich der Code erwarten, eine Absicht zu erstellen und dann einen Bot mit dem erstellten Intent.
Was ich tatsächlich bekommen ist:
Exception in thread "main" com.amazonaws.services.lexmodelbuilding.model.BadRequestException: The resource 'Testintent' referenced in resource 'TestBot' was not found. Choose another resource. (Service: AmazonLexModelBuilding; Status Code: 400; Error Code: BadRequestException; Request ID: b42d37ee-d8d7-11e7-ac95-f9876d663323)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1639)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1304)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1056)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
at com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClient.doInvoke(AmazonLexModelBuildingClient.java:2626)
at com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClient.invoke(AmazonLexModelBuildingClient.java:2602)
at com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClient.executePutBot(AmazonLexModelBuildingClient.java:2302)
at com.amazonaws.services.lexmodelbuilding.AmazonLexModelBuildingClient.putBot(AmazonLexModelBuildingClient.java:2278)
at building.ChatBotBuilder.main(ChatBotBuilder.java:51)
die IntentVersion wie $ AKTUELLE statt 1 geben – sid8491