2017-12-04 22 views
0

単純なインテントを使ってプログラムでボットを作成したいのですが、悲しいことに、リソース(インテント)が見つかりませんでしたコンソールで私の簡単なコードザッツインテントを使用してAWS Java SDKを使用してボットを作成しようとしています

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()); 

    } 
} 

私は、コードが意図した後、作成した意図でボットを作成することを期待しています。私は実際に何を得る

は次のとおりです。

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) 
+0

は$ LATESTの代わりに、1としてIntentVersionを与えます – sid8491

答えて

0

私はテント間違ったのバージョンを指定しました。作成されたテントのバージョンではない「1」「$ LATEST」であるため

Intent test = new Intent().withIntentName("Testintent").withIntentVersion("1"); 

このテントが見つかりません。

これは正しいです:

Intent test = new Intent().withIntentName("Testintent").withIntentVersion("$LATEST"); 
関連する問題