Huomautus
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Often when working with developers, they (should) ask how they can use the LuisDialog from the C# BotBuilder SDK without hard coding their subscription key and model id. I've seen this asked online too in a few places on StackOverflow and Github eg: here and here: So here's a simple extract which shows how you can pull the keys from ConfigurationManager or the Environment variables in C#
Passing in an instantiated ILuisService into the base class constructor:
[Serializable]
public class RootDialog : LuisDialog<object>
{
public RootDialog() : base(new LuisService(new LuisModelAttribute(ConfigurationManager.AppSettings.Get("LuisModelId"), ConfigurationManager.AppSettings.Get("LuisSubscriptionId"))))
{
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, IAwaitable<IMessageActivity> message, LuisResult result)
{
// Didn't understand the LUIS request
var msg = await message;
await context.PostAsync($"I'm not a human");
}
If you want to use Environment variables, simply change ConfigurationManager.AppSettings with Environment.GetEnvironmentVariable eg:
public RootDialog() : base(new LuisService(new LuisModelAttribute(Environment.GetEnvironmentVariable("LuisModelId",EnvironmentVariableTarget.Machine), Environment.GetEnvironmentVariable("LuisSubscriptionId", EnvironmentVariableTarget.Machine))))
{
}
And ensure your machine environment has those values from the command line using setx eg:
setx -m LuisModelId your-model-id
setx -m LuisSubscriptionId your-subscription-id
HTH