Skip to content
This repository has been archived by the owner on Jun 30, 2022. It is now read-only.

Experimental Event Skill #2178

Merged
merged 27 commits into from
Aug 27, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b35a7d8
Add room service dialog files
litofish Aug 8, 2019
9481b61
Add room service luis model
litofish Aug 8, 2019
7c0aeb2
Complete most of room service dialog
litofish Aug 15, 2019
a2a10f5
update menu card
litofish Aug 15, 2019
15892dc
improve luis model
litofish Aug 15, 2019
903e575
final changes
litofish Aug 15, 2019
02d77a5
Merge branch 'next' of https://github.com/microsoft/botframework-solu…
litofish Aug 15, 2019
963f099
Move requested item availability check to hotel service and add adapt…
litofish Aug 15, 2019
cc87ba9
update manifest
litofish Aug 15, 2019
eccb7fc
Adding updated hospitality skill
litofish Aug 16, 2019
a8c0d95
small changes to sample
litofish Aug 16, 2019
7e03a91
restaurant booking fixes
litofish Aug 16, 2019
db838c8
weather skill .lu file update
litofish Aug 16, 2019
fc54b8b
Update skill manifests
litofish Aug 16, 2019
ef2ff6f
Merge branch 'luna/skillfixes' of https://github.com/microsoft/botfra…
litofish Aug 17, 2019
90e7dbf
skills updates
litofish Aug 17, 2019
d30fedf
Merge branch 'next' of https://github.com/microsoft/botframework-solu…
litofish Aug 19, 2019
579d774
Add files for event skill from skill template
litofish Aug 19, 2019
ae543aa
remove other languages
litofish Aug 19, 2019
4f9ad92
Add files for basic find events dialog
litofish Aug 19, 2019
fb473e5
Add Eventbrite service to get event information
litofish Aug 20, 2019
fa6a439
Update Luis model and create adaptive card for events
litofish Aug 21, 2019
a27d13b
Implement populating location state from semantic action
litofish Aug 21, 2019
0d726ee
fix bugs
litofish Aug 21, 2019
02eef3d
Merge branch 'next' of https://github.com/microsoft/botframework-solu…
litofish Aug 21, 2019
fc081cf
Revert visual studio version
litofish Aug 22, 2019
6896d38
Revert visual studio version
litofish Aug 22, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions skills/src/csharp/Skills.sln
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HospitalitySkill", "experim
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MusicSkill", "experimental\musicskill\MusicSkill.csproj", "{A2ECB4BF-FD59-4746-B699-F1C326D561BB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventSkill", "experimental\eventskill\EventSkill.csproj", "{5BF2293A-6E56-464A-8355-EDC8972F7E09}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug - NuGet Packages|Any CPU = Debug - NuGet Packages|Any CPU
Expand Down Expand Up @@ -177,6 +179,14 @@ Global
{A2ECB4BF-FD59-4746-B699-F1C326D561BB}.Documentation|Any CPU.Build.0 = Debug|Any CPU
{A2ECB4BF-FD59-4746-B699-F1C326D561BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2ECB4BF-FD59-4746-B699-F1C326D561BB}.Release|Any CPU.Build.0 = Release|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Debug - NuGet Packages|Any CPU.Build.0 = Debug|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Documentation|Any CPU.ActiveCfg = Debug|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Documentation|Any CPU.Build.0 = Debug|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5BF2293A-6E56-464A-8355-EDC8972F7E09}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -198,6 +208,7 @@ Global
{8CB101FA-B496-4507-80A2-151FAB7E8ED1} = {3665D242-1A88-4860-B148-BAB695B7B5E4}
{0EFEA4F2-DC7E-436E-B951-E9B566AFF7F0} = {3665D242-1A88-4860-B148-BAB695B7B5E4}
{A2ECB4BF-FD59-4746-B699-F1C326D561BB} = {3665D242-1A88-4860-B148-BAB695B7B5E4}
{5BF2293A-6E56-464A-8355-EDC8972F7E09} = {3665D242-1A88-4860-B148-BAB695B7B5E4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7B849B7E-CCF5-4031-91F7-CA835433B457}
Expand Down
15 changes: 15 additions & 0 deletions skills/src/csharp/experimental/eventskill/.filenesting.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"help": "https://go.microsoft.com/fwlink/?linkid=866610",
"dependentFileProviders": {
"add": {
"pathSegment": {
"add": {
".*": [
".json",
".resx"
]
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System.Globalization;
using EventSkill.Responses.Shared;
using EventSkill.Services;
using Microsoft.Bot.Builder;
using Microsoft.Bot.Builder.Azure;
using Microsoft.Bot.Builder.Integration.AspNet.Core;
using Microsoft.Bot.Builder.Solutions.Middleware;
using Microsoft.Bot.Builder.Solutions.Responses;
using Microsoft.Bot.Connector.Authentication;
using Microsoft.Bot.Schema;

namespace EventSkill.Bots
{
public class DefaultAdapter : BotFrameworkHttpAdapter
{
public DefaultAdapter(
BotSettings settings,
ICredentialProvider credentialProvider,
IBotTelemetryClient telemetryClient,
ResponseManager responseManager)
: base(credentialProvider)
{
OnTurnError = async (context, exception) =>
{
CultureInfo.CurrentUICulture = new CultureInfo(context.Activity.Locale);
await context.SendActivityAsync(responseManager.GetResponse(SharedResponses.ErrorMessage));
await context.SendActivityAsync(new Activity(type: ActivityTypes.Trace, text: $"Skill Error: {exception.Message} | {exception.StackTrace}"));
telemetryClient.TrackException(exception);
};

// Uncomment the following line for local development without Azure Storage
// Use(new TranscriptLoggerMiddleware(new MemoryTranscriptStore()));
Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings.BlobStorage.ConnectionString, settings.BlobStorage.Container)));
Use(new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: true));
Use(new ShowTypingMiddleware());
Use(new SetLocaleMiddleware(settings.DefaultLocale ?? "en-us"));
Use(new EventDebuggerMiddleware());
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System.Globalization;
using EventSkill.Responses.Shared;
using EventSkill.Services;
using Microsoft.Bot.Builder;
using Microsoft.Bot.Builder.Azure;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Skills;
using Microsoft.Bot.Builder.Solutions.Middleware;
using Microsoft.Bot.Builder.Solutions.Responses;
using Microsoft.Bot.Schema;

namespace EventSkill.Adapters
{
public class EventSkillAdapter : SkillWebSocketBotAdapter
{
public EventSkillAdapter(
BotSettings settings,
UserState userState,
ConversationState conversationState,
ResponseManager responseManager,
IBotTelemetryClient telemetryClient)
{
OnTurnError = async (context, exception) =>
{
CultureInfo.CurrentUICulture = new CultureInfo(context.Activity.Locale);
await context.SendActivityAsync(responseManager.GetResponse(SharedResponses.ErrorMessage));
await context.SendActivityAsync(new Activity(type: ActivityTypes.Trace, text: $"Skill Error: {exception.Message} | {exception.StackTrace}"));
telemetryClient.TrackException(exception);
};

// Uncomment the following line for local development without Azure Storage
// Use(new TranscriptLoggerMiddleware(new MemoryTranscriptStore()));
Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings.BlobStorage.ConnectionString, settings.BlobStorage.Container)));
Use(new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: true));
Use(new SetLocaleMiddleware(settings.DefaultLocale ?? "en-us"));
Use(new EventDebuggerMiddleware());
Use(new SkillMiddleware(userState, conversationState, conversationState.CreateProperty<DialogState>(nameof(EventSkill))));
}
}
}
46 changes: 46 additions & 0 deletions skills/src/csharp/experimental/eventskill/Bots/DialogBot.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Bot.Builder;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Schema;
using Microsoft.Extensions.DependencyInjection;

namespace EventSkill.Bots
{
public class DialogBot<T> : IBot
where T : Dialog
{
private readonly Dialog _dialog;
private readonly BotState _conversationState;
private readonly BotState _userState;
private readonly IBotTelemetryClient _telemetryClient;

public DialogBot(IServiceProvider serviceProvider, T dialog)
{
_dialog = dialog;
_conversationState = serviceProvider.GetService<ConversationState>();
_userState = serviceProvider.GetService<UserState>();
_telemetryClient = serviceProvider.GetService<IBotTelemetryClient>();
}

public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
// Client notifying this bot took to long to respond (timed out)
if (turnContext.Activity.Code == EndOfConversationCodes.BotTimedOut)
{
_telemetryClient.TrackTrace($"Timeout in {turnContext.Activity.ChannelId} channel: Bot took too long to respond.", Severity.Information, null);
return;
}

await _dialog.RunAsync(turnContext, _conversationState.CreateProperty<DialogState>(nameof(DialogState)), cancellationToken);

// Save any state changes that might have occured during the turn.
await _conversationState.SaveChangesAsync(turnContext, false, cancellationToken);
await _userState.SaveChangesAsync(turnContext, false, cancellationToken);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider",
"Version": "8.13.10627.1",
"GettingStartedDocument": {
"Uri": "https://go.microsoft.com/fwlink/?LinkID=798432"
}
}
96 changes: 96 additions & 0 deletions skills/src/csharp/experimental/eventskill/Content/EventCard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{
"type": "AdaptiveCard",
"id": "EventCard",
"body": [
{
"type": "Container",
"backgroundImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmwAAADVCAIAAABlrTvmAAAACXBIWXMAABYlAAAWJQFJUiTwAAAG0mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDMtMjJUMTc6MDM6NDAtMDc6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTAzLTIyVDE3OjE2OjU2LTA3OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTAzLTIyVDE3OjE2OjU2LTA3OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY0ZGY4YjdiLTM2MTYtNDRkNy04MTI3LTgyNzk4NmUyODk3ZSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmExNDU0NmE3LWZhODMtMjc0Mi1hNWU0LWIxMzYzNjQ2NWU5NyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjhlMDlmYmE5LTE2ZjktNGZiNC05MzdhLThkOTYzMGMxOTQyNiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OGUwOWZiYTktMTZmOS00ZmI0LTkzN2EtOGQ5NjMwYzE5NDI2IiBzdEV2dDp3aGVuPSIyMDE5LTAzLTIyVDE3OjAzOjQwLTA3OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Yzc5ODg2ZTQtZTg3Zi00MmMzLWI5ZjYtN2FkMDg3YTlkOTg4IiBzdEV2dDp3aGVuPSIyMDE5LTAzLTIyVDE3OjE2OjU2LTA3OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NjRkZjhiN2ItMzYxNi00NGQ3LTgxMjctODI3OTg2ZTI4OTdlIiBzdEV2dDp3aGVuPSIyMDE5LTAzLTIyVDE3OjE2OjU2LTA3OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBl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",
"items": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"items": [
{
"type": "Image",
"id": "icon",
"horizontalAlignment": "Center",
"url": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxNiAxMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE2IDRDMTUuODU5NCA0IDE1LjcyOTIgNC4wMjYwNCAxNS42MDk0IDQuMDc4MTJDMTUuNDg5NiA0LjEzMDIxIDE1LjM4MjggNC4yMDMxMiAxNS4yODkxIDQuMjk2ODhDMTUuMjAwNSA0LjM4NTQyIDE1LjEzMDIgNC40ODk1OCAxNS4wNzgxIDQuNjA5MzhDMTUuMDI2IDQuNzI5MTcgMTUgNC44NTkzOCAxNSA1QzE1IDUuMTQwNjIgMTUuMDI2IDUuMjcwODMgMTUuMDc4MSA1LjM5MDYyQzE1LjEzMDIgNS41MTA0MiAxNS4yMDA1IDUuNjE3MTkgMTUuMjg5MSA1LjcxMDk0QzE1LjM4MjggNS43OTk0OCAxNS40ODk2IDUuODY5NzkgMTUuNjA5NCA1LjkyMTg4QzE1LjcyOTIgNS45NzM5NiAxNS44NTk0IDYgMTYgNlYxMEgwVjZDMC4xNDA2MjUgNiAwLjI3MDgzMyA1Ljk3Mzk2IDAuMzkwNjI1IDUuOTIxODhDMC41MTA0MTcgNS44Njk3OSAwLjYxNDU4MyA1Ljc5OTQ4IDAuNzAzMTI1IDUuNzEwOTRDMC43OTY4NzUgNS42MTcxOSAwLjg2OTc5MiA1LjUxMDQyIDAuOTIxODc1IDUuMzkwNjJDMC45NzM5NTggNS4yNzA4MyAxIDUuMTQwNjIgMSA1QzEgNC44NTkzOCAwLjk3Mzk1OCA0LjcyOTE3IDAuOTIxODc1IDQuNjA5MzhDMC44Njk3OTIgNC40ODk1OCAwLjc5Njg3NSA0LjM4NTQyIDAuNzAzMTI1IDQuMjk2ODhDMC42MTQ1ODMgNC4yMDMxMiAwLjUxMDQxNyA0LjEzMDIxIDAuMzkwNjI1IDQuMDc4MTJDMC4yNzA4MzMgNC4wMjYwNCAwLjE0MDYyNSA0IDAgNFYwSDE2VjRaTTE1IDFIMVYzLjI2NTYyQzEuMzEyNSAzLjQ0NzkyIDEuNTU3MjkgMy42OTI3MSAxLjczNDM4IDRDMS45MTE0NiA0LjMwNzI5IDIgNC42NDA2MiAyIDVDMiA1LjM1OTM4IDEuOTExNDYgNS42OTI3MSAxLjczNDM4IDZDMS41NTcyOSA2LjMwNzI5IDEuMzEyNSA2LjU1MjA4IDEgNi43MzQzOFY5SDE1VjYuNzM0MzhDMTQuNjg3NSA2LjU1MjA4IDE0LjQ0MjcgNi4zMDcyOSAxNC4yNjU2IDZDMTQuMDg4NSA1LjY5MjcxIDE0IDUuMzU5MzggMTQgNUMxNCA0LjY0MDYyIDE0LjA4ODUgNC4zMDcyOSAxNC4yNjU2IDRDMTQuNDQyNyAzLjY5MjcxIDE0LjY4NzUgMy40NDc5MiAxNSAzLjI2NTYyVjFaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K",
"size": "Small",
"width": "30px",
"height": "30px"
}
],
"width": "auto"
},
{
"type": "Column",
"verticalContentAlignment": "Center",
"items": [
{
"type": "TextBlock",
"id": "title",
"size": "Large",
"weight": "Bolder",
"color": "Light",
"text": "Local Event"
}
],
"width": "stretch"
}
]
}
]
},
{
"type": "Image",
"url": "{ImageUrl}"
},
{
"type": "TextBlock",
"text": "**{Title}**",
"size": "Medium",
"weight": "Bolder"
},
{
"type": "Container",
"items": [
{
"type": "TextBlock",
"text": "{StartDate}",
"isSubtle": true,
"spacing": "Small"
},
{
"type": "TextBlock",
"text": "{Location}",
"isSubtle": true,
"spacing": "Small"
},
{
"type": "TextBlock",
"text": "{Price}",
"isSubtle": true,
"spacing": "Small"
}
]
},
{
"type": "TextBlock",
"text": "Powered by **Eventbrite**",
"horizontalAlignment": "Right",
"size": "Small"
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "Get Tickets",
"url": "{Url}"
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0",
"speak": "{Speak}"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using Microsoft.AspNetCore.Mvc;
using Microsoft.Bot.Builder;
using Microsoft.Bot.Builder.Integration.AspNet.Core;
using Microsoft.Bot.Builder.Skills;
using Microsoft.Bot.Builder.Solutions;

namespace EventSkill.Controllers
{
[ApiController]
public class BotController : SkillController
{
public BotController(
IBot bot,
BotSettingsBase botSettings,
IBotFrameworkHttpAdapter botFrameworkHttpAdapter,
SkillWebSocketAdapter skillWebSocketAdapter)
: base(bot, botSettings, botFrameworkHttpAdapter, skillWebSocketAdapter)
{
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Wed Aug 21 2019 14:37:19 GMT-0700 (Pacific Daylight Time)

> ! Source LUIS JSON file: stdin

> ! Source QnA TSV file: Not Specified

> ! Source QnA Alterations file: Not Specified


> # Intent definitions

## FindEvents
- are there any events near me
- can you recommend events in the area
- can you recommend things for me to do
- find an event in my area
- find events near me
- find events nearby
- find me something to do
- find me something to do nearby
- get local events
- i want to go to an event nearby
- recommend events in my area
- recommend events nearby
- recommend things to do nearby
- what events are happening nearby
- whats happening in my area
- what's happening nearby


## None
- goodbye
- hello
- hi
- logout


> # Entity definitions


> # PREBUILT Entity definitions


> # Phrase list definitions


> # List entities

> # RegEx entities


Loading