예제 #1
0
        static async Task EnsureUtterance(this LUISAuthoringClient client, ApplicationInfoResponse app, string intent, string utterance, List <string> entitiesFound)
        {
            var elos = new List <EntityLabelObject>();

            var effectiveUtterance = utterance;

            while (true)
            {
                var entityInfoCaptured = entityInfoRegex.Match(effectiveUtterance);
                if (!entityInfoCaptured.Success)
                {
                    break;
                }

                var entityInfo  = entityInfoCaptured.Groups["entityInfo"].Value.Split(':');
                var entityValue = entityInfo[0];
                var entityName  = entityInfo[1];
                if (!entitiesFound.Contains(entityName))
                {
                    // brute force insert (throws ex if exists)
                    try
                    {
                        await client.Model.AddEntityAsync(app.Id.Value, app.ActiveVersion, new ModelCreateObject
                        {
                            Name = entityName
                        });
                    }
                    catch (Exception ex)
                    {
                    }
                    finally
                    {
                        entitiesFound.Add(entityName);
                    }
                }

                var elo = new EntityLabelObject
                {
                    EntityName     = entityName,
                    StartCharIndex = entityInfoCaptured.Index,
                    EndCharIndex   = entityInfoCaptured.Index + entityValue.Length - 1
                };
                elos.Add(elo);

                effectiveUtterance = effectiveUtterance.Replace(entityInfoCaptured.Groups[0].Value, entityValue);
            }

            await client.Examples.AddAsync(app.Id.Value, app.ActiveVersion, new ExampleLabelObject
            {
                Text         = effectiveUtterance,
                IntentName   = intent,
                EntityLabels = elos
            });
        }
예제 #2
0
        static void Main(string[] args)
        {
            // authoring Key found in LUIS portal under user settings
            var cogServicesAllInOneKey = "<YOUR-AUTHORING-KEY>";
            var credentials            = new ApiKeyServiceClientCredentials(cogServicesAllInOneKey);

            // set parameters for app
            var resourceRegion = "westus";
            var culture        = "en-us";
            var appName        = "myEnglishApp";
            var description    = "app made with .Net SDK";
            var versionId      = "0.1";

            // create client object
            var authoringClient = new LUISAuthoringClient(credentials, new System.Net.Http.DelegatingHandler[] { });

            authoringClient.Endpoint = "https://westus.api.cognitive.microsoft.com/";

            // create app
            var appId = CreateApp(authoringClient, resourceRegion, appName, versionId, culture, description);

            // create intent
            var intent   = "FindForm";
            var intentID = CreateIntent(authoringClient, resourceRegion, appId, versionId, intent);

            // create entity `HRF-number regular express
            var entityRegEx          = "hrf-[0-9]{6}";
            var entityName           = "HRF-number";
            var regularExpressEntity = new RegexModelCreateObject(entityRegEx, entityName);
            var entityId             = CreateRegularExpressionEntity(authoringClient, resourceRegion, appId, versionId, regularExpressEntity);

            // add example utterance with 1 entity to intent
            var entity             = "HRF-number";
            var utterance          = "When was hrf-123456 published?";
            var taggedEntity       = new EntityLabelObject(entity, 9, 18);
            var exampleUtteranceId = AddExampleUtterance(authoringClient, appId, versionId, intent, utterance, taggedEntity);
        }
예제 #3
0
        static int AddExampleUtterance(LUISAuthoringClient client, Guid appId, string versionId, string intent, string utterance, EntityLabelObject taggedEntity)
        {
            try
            {
                // creating list and adding 1 item
                var taggedEntities = new List <EntityLabelObject>();
                taggedEntities.Add(taggedEntity);

                // create example object
                var exampleLabelObject = new ExampleLabelObject(utterance, taggedEntities, intent);

                // create example
                var response = client.Examples.AddAsync(appId, versionId, exampleLabelObject, CancellationToken.None).Result;

                if (response.ExampleId == null)
                {
                    return(default(int));
                }
                else
                {
                    return(response.ExampleId.Value);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.InnerException);
                throw ex;
            }
        }