我正在使用与LUIS集成的BotFramework版本(v4)。在里面
配置服务(IServiceCollection服务)
方法
创业。反恐精英
我在中间件中分配存储和LUIS的文件。下面是示例代码。
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton(configuration);
services.AddBot<ChoiceBot>(options =>
{
options.CredentialProvider = new ConfigurationCredentialProvider(configuration);
var (luisModelId, luisSubscriptionKey, luisUri) = GetLuisConfiguration(configuration, "TestBot_Dispatch");//
var luisModel = new LuisModel(luisModelId, luisSubscriptionKey, luisUri);
var luisOptions = new LuisRequest { Verbose = true };
options.Middleware.Add(new LuisRecognizerMiddleware(luisModel, luisOptions: luisOptions));
//azure storage emulater
//options.Middleware.Add(new ConversationState<Dictionary<string, object>>(new AzureTableStorage("UseDevelopmentStorage=true", "conversationstatetable")));
IStorage dataStore = new AzureTableStorage("DefaultEndpointsProtocol=https;AccountName=chxxxxxx;AccountKey=xxxxxxxxx;EndpointSuffix=core.windows.net", "TableName");
options.Middleware.Add(new ConversationState<Dictionary<string,object>>(new MemoryStorage()));
options.Middleware.Add(new UserState<UserStateStorage>(dataStore));
}
}
我的机器人将收到来自不同角色的用户的请求,例如(管理员、销售人员等)。
我想根据从传入请求中提取的角色更改传递给中间件的表存储连接字符串
.我将通过从传入请求的当前TurnContext对象中提取的用户名查询DB来获取用户角色。我可以在家里做这件事
安图恩
方法,但由于它们已经在中间件中声明,我想在中间件本身初始化时更改它们。