Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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