Language Understanding Frequently Asked Questions (FAQ)
This article contains answers to frequently asked questions about Language Understanding (LUIS).
Learn more about what's new in Language Understanding.
What are the LUIS best practices?
What is the best way to start building my app in LUIS?
The best way to build your app is through an incremental process.
What is a good practice to model the intents of my app? Should I create more specific or more generic intents?
Choose intents that are not so general as to be overlapping, but not so specific that it makes it difficult for LUIS to distinguish between similar intents. Creating discriminative specific intents is one of the best practices for LUIS modeling.
Is it important to train the None intent?
Yes, it is good to train your None intent with more utterances as you add more labels to other intents. A good ratio is 1 or 2 labels added to None for every 10 labels added to an intent. This ratio boosts the discriminative power of LUIS.
How can I correct spelling mistakes in utterances?
See the Bing Spell Check API V7 tutorial. LUIS enforces limits imposed by Bing Spell Check API V7.
How do I edit my LUIS app programmatically?
To edit your LUIS app programmatically, use the Authoring API. See Call LUIS authoring API and Build a LUIS app programmatically using Node.js for examples of how to call the Authoring API. The Authoring API requires that you use an authoring key rather than an endpoint key. Programmatic authoring allows up to 1,000,000 calls per month and five transactions per second. For more info on the keys you use with LUIS, see Manage keys.
Where is the Pattern feature that provided regular expression matching?
The previous Pattern feature is currently deprecated, replaced by Patterns.
How do I use an entity to pull out the correct data?
Should variations of an example utterance include punctuation?
Either add the different variations as example utterances to the intent or add the pattern of the example utterance with the syntax to ignore the punctuation.
Does LUIS currently support Cortana?
Cortana prebuilt apps were deprecated in 2017. They are no longer supported.
How do I transfer ownership of a LUIS app?
To transfer a LUIS app to a different Azure subscription, export the LUIS app and import it using a new account. Update the LUIS app ID in the client application that calls it. The new app may return slightly different LUIS scores from the original app.
A prebuilt entity is tagged in an example utterance instead of my custom entity. How do I fix this?
I tried to import an app or version file but I got an error, what happened?
How do I give collaborators access to LUIS with Azure Active Directory (Azure AD) or Role-based access control (RBAC)?
My endpoint query returned unexpected results. What should I do?
Unexpected query prediction results are based on the state of the published model. To correct the model, you may need to change the model, train, and publish again.
Correcting the model starts with active learning.
You can remove non-deterministic training by updating the application version settings API in order to use all training data.
Review the best practices for other tips.
Why does LUIS add spaces to the query around or in the middle of words?
How do I create and assign a LUIS endpoint key?
Create the endpoint key in Azure for your service level. Assign the key on the Keys and endpoints page. There is no corresponding API for this action. Then you must change the HTTP request to the endpoint to use the new endpoint key.
How do I interpret LUIS scores?
Your system should use the highest scoring intent regardless of its value. For example, a score below 0.5 (less than 50%) does not necessarily mean that LUIS has low confidence. Providing more training data can help increase the score of the most-likely intent.
Why don't I see my endpoint hits in my app's Dashboard?
The total endpoint hits in your app's Dashboard are updated periodically, but the metrics associated with your LUIS endpoint key in the Azure portal are updated more frequently.
If you don't see updated endpoint hits in the Dashboard, sign in to the Azure portal, and find the resource associated with your LUIS endpoint key, and open Metrics to select the Total Calls metric. If the endpoint key is used for more than one LUIS app, the metric in the Azure portal shows the aggregate number of calls from all LUIS apps that use it.
Is there a PowerShell command get to the endpoint quota?
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install Azure PowerShell.
You can use a PowerShell command to see the endpoint quota:
Get-AzCognitiveServicesAccountUsage -ResourceGroupName <your-resource-group> -Name <your-resource-name>
My LUIS app was working yesterday but today I'm getting 403 errors. I didn't change the app. How do I fix it?
How do I secure my LUIS endpoint?
Working within LUIS limits
What is the maximum number of intents and entities that a LUIS app can support?
See the boundaries reference.
I want to build a LUIS app with more than the maximum number of intents. What should I do?
I want to build an app in LUIS with more than the maximum number of entities. What should I do?
What are the limits on the number and size of phrase lists?
What are the limits on example utterances?
See the boundaries reference.
Testing and training
I see some errors in the batch testing pane for some of the models in my app. How can I address this problem?
The errors indicate that there is some discrepancy between your labels and the predictions from your models. To address the problem, do one or both of the following tasks:
- To help LUIS improve discrimination among intents, add more labels.
- To help LUIS learn faster, add phrase-list features that introduce domain-specific vocabulary.
See the Batch testing tutorial.
When an app is exported then reimported into a new app (with a new app ID), the LUIS prediction scores are different. Why does this happen?
Some utterances go to the wrong intent after I made changes to my app. The issue seems to disappear at random. How do I fix it?
See Train with all data.
What is the tenant ID in the "Add a key to your app" window?
In Azure, a tenant represents the client or organization that is associated with a service. Find your tenant ID in the Azure portal in the Directory ID box by selecting Azure Active Directory > Manage > Properties.
Why are there more endpoint keys assigned to my app than I assigned?
Each LUIS app has the authoring/starter key in the endpoint list as a convenience. This key allows only a few endpoint hits so you can try out LUIS.
If your app existed before LUIS was generally available (GA), LUIS endpoint keys in your subscription are assigned automatically. This was done to make GA migration easier. Any new LUIS endpoint keys in the Azure portal are not automatically assigned to LUIS.
How do I know what key I need, where I get it, and what I do with it?
See Authoring and query prediction endpoint keys in LUIS to learn about the differences between the authoring key and the endpoint prediction key.
I got an error about being out of quota. How do I fix it?
See, Fix HTTP status code 403 and 429 to learn more.
I need to handle more endpoint queries. How do I do that?
See, Fix HTTP status code 403 and 429 to learn more.
How do I download a log of user utterances?
By default, your LUIS app logs utterances from users. To download a log of utterances that users send to your LUIS app, go to My Apps, and select the app. In the contextual toolbar, select Export Endpoint Logs. The log is formatted as a comma-separated value (CSV) file.
How can I disable the logging of utterances?
You can turn off the logging of user utterances by setting
log=false in the Endpoint URL that your client application uses to query LUIS. However, turning off logging disables your LUIS app's ability to suggest utterances or improve performance that's based on active learning. If you set
log=false because of data-privacy concerns, you can't download a record of those user utterances from LUIS or use those utterances to improve your app.
Logging is the only storage of utterances.
Why don't I want all my endpoint utterances logged?
If you are using your log for prediction analysis, do not capture test utterances in your log.
Can I delete data from LUIS?
- You can always delete example utterances used for training LUIS. If you delete an example utterance from your LUIS app, it is removed from the LUIS web service and is unavailable for export.
- You can delete utterances from the list of user utterances that LUIS suggests in the Review endpoint utterances page. Deleting utterances from this list prevents them from being suggested, but doesn't delete them from logs.
- If you delete an account, all apps are deleted, along with their example utterances and logs. The data is retained on the servers for 60 days before it is deleted permanently.
How does Microsoft manage data I send to LUIS?
The Trust Center explains our commitments and your options for data management and access in Azure Services.
Language and translation support
I have an app in one language and want to create a parallel app in another language. What is the easiest way to do so?
- Export your app.
- Translate the labeled utterances in the JSON file of the exported app to the target language.
- You might need to change the names of the intents and entities or leave them as they are.
- Finally, import the app to have a LUIS app in the target language.
Why did I get an email saying I'm almost out of quota?
Your authoring/starter key is only allowed 1000 endpoint queries a month. Create a LUIS endpoint key (free or paid) and use that key when making endpoint queries. If you are making endpoint queries from a bot or another client application, you need to change the LUIS endpoint key there.
My LUIS bot isn't working. What do I do?
The first issue is to isolate if the issue is related to LUIS or happens outside the LUIS middleware.
Resolve issue in LUIS
Pass the same utterance to LUIS from the LUIS endpoint. If you receive an error, resolve the issue in LUIS until the error is no longer returned. Common errors include:
Out of call volume quota. Quota will be replenished in <time>.- This issue indicates you either need to change from an authoring key to an endpoint key or you need to change service tiers.
Resolve issue in Azure Bot Service
If you are using the Azure Bot Service and the issue is that the Test in Web Chat returns
Sorry, my bot code is having an issue, check your logs:
- In the Azure portal, for your bot, from the Bot management section, select Build.
- Open the online code editor.
- In the top, blue navigation bar, select the bot name (the second item to the right).
- In the resulting drop-down list, select Open Kudu Console.
- Select LogFiles, then select Application. Review all log files. If you don't see the error in the application folder, review all log files under LogFiles.
- Remember to rebuild your project if you are using a compiled language such as C#.
The console can also install packages.
Resolve issue while debugging on local machine with Bot Framework.
To learn more about local debugging of a bot, see Debug a bot.
Where is my LUIS app created during the Azure web app bot subscription process?
If you select a LUIS template, and select the Select button in the template pane, the left-side pane changes to include the template type, and asks in what region to create the LUIS template. The web app bot process doesn't create a LUIS subscription though.
What LUIS regions support Bot Framework speech priming?
Speech priming is only supported for LUIS apps in the central (US) instance.
API Programming Strategies
How do I programmatically get the LUIS region of a resource?
Use the LUIS sample to find region programmatically using C# or Node.Js.
Is Language Understanding (LUIS) available on-premises or in private cloud?
Yes, you can use the LUIS container for these scenarios if you have the necessary connectivity to meter usage.
Migrating to the next version
How do I migrate to preview V3 API?
Build 2019 Conference announcements
The following features were released at the Build 2019 Conference:
- Preview of V3 API migration guide
- Improved analytics dashboard
- Improved prebuilt domains
- Dynamic list entities
- External entities
To learn more about LUIS, see the following resources: