Nano Hash - криптовалюты, майнинг, программирование

Использование хранилища таблиц Azure Tablelogger.cs

Привет, ребята, я следую этому руководству о том, как использовать и регистрировать журнал бесед с помощью tablelogger.cs

Он использует этот код в файле global.asax для записи истории разговоров с помощью реализации табличного регистратора.

var tableName = ConfigurationManager.AppSettings["TableName"].ToString();
    var account = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);

    //Azure StateData
    Conversation.UpdateContainer(
        builder =>
        {
            //azure botdata
            builder.RegisterModule(new AzureModule(Assembly.GetExecutingAssembly()));
            var store = new TableBotDataStore(ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString);
            builder.Register(c => store)
               .Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
               .AsSelf()
               .SingleInstance();
            //azure conversation history
            account.CreateCloudTableClient().GetTableReference(tableName).DeleteIfExists();
            builder.RegisterModule(new TableLoggerModule(account, tableName));
        });

Он отлично работает, однако я заметил, что он удалит всю таблицу диалогов, когда я попытаюсь запустить и отладить свой код на VS. Это тот, который вызывает падение таблицы?

account.CreateCloudTableClient().GetTableReference(tableName).DeleteIfExists();

если да, то как я могу предотвратить его падение? могу ли я просто удалить метод deleteifexist()? я беспокоюсь, что таблица будет удалена, пока другие пользователи все еще разговаривают с ботом.


  • Разве вы не хотите CreateIfNotExists вместо DeleteIfExists? 26.01.2018
  • я, честно говоря, не знаю, почему такое условие было вставлено в первую очередь, я просто следую его руководству, так как я новичок в этой лазурной таблице, 26.01.2018
  • Согласитесь, это немного странно. Вы можете связаться с автором, так как это, вероятно, ошибка с его стороны. 26.01.2018
  • но при ближайшем рассмотрении в методе загрузки реализации tablelogger.cs уже есть метод createifnotexists. 26.01.2018
  • Я предполагаю, что автор хотел с чистого листа каждый раз, когда вы запускаете приложение / настраиваете DI-контейнер. 26.01.2018

Ответы:


1

Если вы посмотрите на «официальный» образец на GitHub для хранилища таблиц, вы увидите, что указанная вами строка не нужна: https://github.com/Microsoft/BotBuilder-Azure/blob/master/CSharp/Samples/AzureTable/Global.asax.cs

Чтобы установить хранилище данных:

var store = new TableBotDataStore(CloudStorageAccount.DevelopmentStorageAccount);
builder.Register(c => store)
    .Keyed<IBotDataStore<BotData>>(AzureModule.Key_DataStore)
    .AsSelf()
    .SingleInstance();

Чтобы установить TableLogger:

builder.RegisterModule(new TableLoggerModule(account, tableName));

Как сказано в комментариях, это должно быть особой потребностью человека, который сделал учебник, который вы использовали, вы должны удалить его.

Похоже, строка об удалении исходит из тестов: https://github.com/Microsoft/BotBuilder-Azure/blob/master/CSharp/Tests/Microsoft.Bot.Builder.Azure.Tests/LoggerTests.cs

26.01.2018
  • эй, чувак, спасибо за ответ еще раз, на самом деле я в порядке с лазурной частью таблицы (той, которая сохраняет данные бота), меня беспокоит реализация tablelogger.cs, я хочу сохранить историю разговоров между ботом и пользователем как ну, поэтому я последовал его руководству, которое записывает историю разговоров, добавляя эти две строки в часть global.asax. 26.01.2018
  • // история бесед Azure account.CreateCloudTableClient().GetTableReference(tableName).DeleteIfExists(); builder.RegisterModule (новый TableLoggerModule (учетная запись, tableName)); 26.01.2018
  • Извините за смесь. Вам просто нужна последняя строка, чтобы зарегистрировать вас в TableLogger. Я отредактировал ответ, позже постараюсь добавить источник в официальную информацию 26.01.2018
  • Похоже, ошибка добавления этой строки может исходить из того теста, где она также используется: github.com/Microsoft/BotBuilder-Azure/blob/master/CSharp/Tests/ 26.01.2018
  • спасибо, чувак, мне также удалить или очистить историю чата? скажем, через x дней? 28.01.2018
  • Это зависит от вас и ваших потребностей в этой истории! 28.01.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..