나는 LuisDialog
을 사용하고 있으며, LuisResult
을 사용하여 작업, 매개 변수를 감지하고 사용자에게 누락 된 매개 변수를 묻는 방법을 알고 싶습니다. LuisResult
에는 이미 조치 및 매개 변수가 들어 있지만, 사용자에게 프롬프트를 표시하는 가장 좋은 방법은 무엇인지 알지 못하며, contextId
을 사용하여 LUIS로 정보를 보내는 방법을 알지 못합니다. 나는이 주제에 관한 예제를 BotBuilder SDK 또는 웹 전반에서 찾을 수 없었습니다.LUIS 동작을 내 봇에 통합하여 사용자에게 자세한 정보를 묻는 방법은 무엇입니까?
1
A
답변
1
내 거친 접근 방식이 될 것입니다. 예를 들어, LuisResult
의 일부 엔티티가 필요합니다. 누락 된 경우 사용자에게 메시지를 표시하려고합니다.
먼저 누락 된 항목을 확인합니다. 누락 된 것이 있으면 사용자에게 프롬프트하고 새 데이터를 처리 할 다른 방법으로 응답을 리디렉션하십시오. 이미받은 LuisResult는 먼저 ConversationData
에 저장해야합니다.
var requiredEntities = new List<string>()
{
"builtin.places.place_name",
"builtin.places.place_type"
};
string askForMore = null;
foreach(var entity in requiredEntities)
{
EntityRecommendation temp;
var found = result.TryFindEntity(entity, temp);
if (!found)
{
//Prompt the user for more information
askForMore = entity;
}
}
if (askForMore != null)
{
//TODO: store values from existing LuisResult for later use
//For example, use ConversationData for storage.
context.PostAsync("Please enter value for entity " + askForMore);
context.Wait(AdditionalUserInputReceived);
}
else
{
//do normal stuff
}
이것은 미만 유연성
안녕과 함께하는
LuisDialog
와FormFlow
를 결합하여 좀 더 자동화가있을 수 가정, 완전 수동 방법입니다! 그래서, 제가 지금 이런 상황을 처리하고있는 방법입니다. 이 코드는 LUIS 작업 (프롬프트 및 매개 변수)을 완전히 무시하기 때문에 LUIS 동작을 직접 구현하는 방법이 있는지 궁금합니다. 나는이 코드가 일을 완수한다는 것을 안다. (고마워.)하지만 LUIS가 제공 한 프롬프트와 매개 변수 이름을 사용할 수있는 더 나은 대안이 있는지 궁금하다. – artieLuis Action을 사용하려면 Luis Preview 모드를 사용하십시오. – Satheesh