Я пытаюсь отсоединить свой пользовательский слот от намерения Lex с помощью .NET SDK, передав нулевое значение параметру slots.Но это все еще показывает место в намерении.Ниже приведен код, который я использую для добавления и удаления слота из намерения.
List<Slot> slots = new List<Slot>();
if (intentGuide.Slots != null)
{
slots = intentGuide.Slots
.Select(x => new Amazon.LexModelBuildingService.Model.Slot
{
Name = x.Name,
Description = "",
SlotType = slotTypes.FirstOrDefault(z=>z.SlotTypeId == x.SlotTypeId).Name,
SlotTypeVersion = "$LATEST",
SlotConstraint = x.IsRequired == true ? "Required" : "Optional",
ValueElicitationPrompt = new Prompt
{
MaxAttempts = 1,
Messages = new List<Amazon.LexModelBuildingService.Model.Message> {
new Amazon.LexModelBuildingService.Model.Message {
Content = x.Prompt,
ContentType = "PlainText"
},
}
}
}).ToList();
}
PutIntentRequest request = new PutIntentRequest
{
Name = intentGuide.Name,
Checksum = AmazonLexService.GetIntentCheckSum(intentGuide.Name),
ConclusionStatement = new Statement
{
Messages = responseMessages,
},
Description = "",
FulfillmentActivity = new FulfillmentActivity { Type = "ReturnIntent" },
SampleUtterances = intentGuide.Utterances.Select(x => x.Text).ToList(),
Slots = slots
};
return AmazonLexService.PutIntentHelper(request, out ErrorMessage);