Azure-Samples / cognitive-services-language-understanding

Samples for the Language Understanding Intelligent Service (LUIS)
MIT License
85 stars 139 forks source link

LUIS SDK azure vs container implementation #28

Open cedrox opened 4 years ago

cedrox commented 4 years ago

Is your feature request related to a problem? Please describe. When using the container version, you need to access web service. SDK Abstraction don't work as sdk URLs differ in webservice endpoints... https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/424#issuecomment-568755331

The problem here is that prediction results are not the same...

Exemple in code : Task pred;

            if (_config.UseLocalServices)
            {
                pred = GetPredictionFromEndpointAsync(_config.LuisAPIKey, _config.LuisContainerUrl, _config.LuisAppId, _config.LuisSlotName, question.ToLowerInvariant());
            }
            else
            {
                IList<DynamicList> dynamicLists = _luisFeedDynamicListService.LuisEntries.Select(e => new DynamicList(e.Key, RequestListExtensions.FromLuisEntries(e.Value))).ToList();
                var predictionRequest = new PredictionRequest(question.ToLowerInvariant(), null, null, dynamicLists);

                pred = _luisClient.Prediction.GetSlotPredictionAsync(
                   Guid.Parse(_config.LuisAppId),
                   slotName: _config.LuisSlotName,
                   predictionRequest,
                   verbose: true,
                   showAllIntents: true,
                   log: true);
            }

Describe the solution you'd like The proper solution would be to change only the enpoint like this: Version Azure _luisClient = new LUISRuntimeClient(new ApiKeyServiceClientCredentials(_config.LuisAPIKey)) { Endpoint = _config.LuisHostRegion };

Version container _luisClient = new LUISRuntimeClient(new MockCredentials()) { Endpoint = "http://localhost:5010" };

How can you have exactly the same result from webservice ?

diberry commented 4 years ago

@cedrox - Did you turn off negative sampling?