Ссылка на родственную заявку
[1] Данная заявка является национальной фазой РФ международной заявки №PCT/CN2023/094536, поданной 16 мая 2023 года, которая испрашивает приоритет по заявке на патент Китая №202210529988.5, поданной 16 мая 2022 года, содержание которых полностью включено в настоящий документ посредством ссылки.
Область техники, к которой относится настоящее изобретение
[2] Настоящее изобретение относится к технической области компьютерной обработки данных, в частности, к способу, устройству и электронному устройству для управления виртуальными роботами, носителю данных и программному продукту.
Предшествующий уровень техники настоящего изобретения
[3] Виртуальные роботы часто используются для имитации поведения пользователей в различных бизнес-сценариях, таких как игровые сражения и стресс-тесты. По этой причине технический персонал должен разрабатывать наборы кодов для виртуальных роботов под конкретные бизнес-сценарии, поддерживать эти коды и расширять паттерны поведения виртуальных роботов.
Краткое раскрытие настоящего изобретения
[4] Настоящим изобретением предложен способ, устройство и электронное устройство для управления виртуальными роботами, а также носитель данных и программный продукт.
[5] Согласно некоторым вариантам осуществления настоящего изобретения предложен способ управления виртуальными роботами. Этот способ предусматривает:
[6] запуск множества виртуальных роботов, созданных с использованием конечного автомата, причем виртуальные роботы выполнены с возможностью имитации поведения пользователя по управлению приложением во множестве циклов, а конечный автомат предусматривает наличие множества состояний, множества событий, происходящих во множестве состояний, и действий, запускаемых множеством событий;
[7] определение в каждом цикле представления, в котором находятся виртуальные роботы в приложении, и определение данного представления в качестве состояния;
[8] имитацию в каждом цикле поведения пользователя по выбору услуги в представлении и определение выбранной услуги в качестве события; и
[9] приведение в действие виртуальных роботов в каждом цикле с целью выполнения в конкретном представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определение этой операции пользователя в качестве действия.
[10] Согласно некоторым вариантам осуществления настоящего изобретения предложено устройство для управления виртуальными роботами. Это устройство для управления виртуальными роботами включает в себя:
[11] модуль запуска виртуальных роботов, выполненный с возможностью запуска множества виртуальных роботов, созданных с использованием конечного автомата, причем виртуальные роботы выполнены с возможностью имитации поведения пользователя по управлению приложением во множестве циклов, а конечный автомат предусматривает наличие множества состояний, множества событий, происходящих во множестве состояний, и действий, запускаемых множеством событий;
[12] модуль определения состояний, выполненный с возможностью определения в каждом цикле - представления, в котором находятся виртуальные роботы в приложении, и определения данного представления в качестве состояния;
[13] модуль выбора событий, выполненный с возможностью имитации в каждом цикле - поведения пользователя по выбору услуги в представлении и определения выбранной услуги в качестве события; и
[14] модуль выполнения действий, выполненный с возможностью приведения в действие виртуальных роботов в каждом цикле с целью выполнения в конкретном представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определения этой операции пользователя в качестве действия.
[15] Согласно некоторым вариантам осуществления настоящего изобретения предложено электронное устройство для управления виртуальными роботами. Это электронное устройство для управления виртуальными роботами включает в себя:
[16] по меньшей мере, один процессор; и
[17] память, находящуюся в коммуникационном соединении, по меньшей мере, с одним процессором, при этом:
[18] в памяти хранится одна или несколько компьютерных программ, выполняемых, по меньшей мере, одним процессором, причем одна или несколько компьютерных программ при их выполнении, по меньшей мере, одним процессором инициируют реализацию, по меньшей мере, одним процессором способа управления виртуальными роботами согласно любому из вариантов осуществления настоящего изобретения.
[19] Согласно некоторым вариантам осуществления настоящего изобретения предложен энергонезависимый машиночитаемый носитель данных, на котором хранится одна или несколько компьютерных программ. Одна или несколько компьютерных программ при их выполнении процессором инициируют реализацию этим процессором способа управления виртуальными роботами согласно любому из вариантов осуществления настоящего изобретения.
[20] Согласно некоторым вариантам осуществления настоящего изобретения предложен компьютерный программный продукт, включающий в себя одну или несколько компьютерных программ. Одна или несколько компьютерных программ при их выполнении процессором инициируют реализацию этим процессором способа управления виртуальными роботами согласно любому из вариантов осуществления настоящего изобретения.
Краткое описание чертежей
[21] На фиг. 1 представлена блок-схема, иллюстрирующая способ управления виртуальными роботами согласно первому варианту осуществления настоящего изобретения;
[22] На фиг. 2 схематически проиллюстрировано применение виртуального робота согласно первому варианту осуществления настоящего изобретения;
[23] На фиг. 3 схематически показан один из примеров представления согласно первому варианту осуществления настоящего изобретения;
[24] На фиг. 4 показана иллюстративная схема операции пользователя согласно первому варианту осуществления настоящего изобретения;
[25] На фиг. 5 представлена блок-схема, иллюстрирующая способ управления виртуальными роботами согласно второму варианту осуществления настоящего изобретения;
[26] На фиг. 6 показана структурная схема устройства для управления виртуальными роботами согласно третьему варианту осуществления настоящего изобретения;и
[27] На фиг. 7 показана структурная схема электронного устройства для управления виртуальными роботами, которое реализует способ управления виртуальными роботами согласно некоторым вариантам осуществления настоящего изобретения.
Подробное раскрытие настоящего изобретения
[28] Технические решения, реализованные в вариантах осуществления настоящего изобретения, описаны далее по тексту в привязке к чертежам, прилагаемым к этим вариантам осуществления заявленного изобретения, а раскрытые варианты осуществления настоящего изобретения представляют собой лишь некоторые, а не все возможные варианты осуществления настоящего изобретения.
[29] Такие термины, как «первый», «второй» и тому подобные, встречающиеся в описании и формуле настоящего изобретения, а также на указанных прилагаемых чертежах, используются для проведения различия между схожими объектами, и они не должны рассматриваться как описывающие конкретный порядок следования или последовательность. При соответствующих условиях используемые данные являются взаимозаменяемыми, благодаря чему варианты осуществления заявленного изобретения, описанные в настоящем документе, могут быть реализованы в порядке, отличном от того, который описан или проиллюстрирован в настоящем документе. Кроме того, предполагается, что термины «содержит», «включает в себя» и «снабжен чем-либо», а также любые производные этих терминов, носят неисключительный характер. Например, процессы, способы, системы, продукты или устройства, которые включают в себя ряд стадий или блоков, не обязательно ограничены перечисленными стадиями или блоками, а могут включать в себя и другие стадии или блоки, которые не были перечислены, или которые характерны для этих процессов, способов, продуктов или устройств.
[30] При стресс-тестирования прямой трансляции можно создать виртуального робота, адаптированного к размерам области прямой трансляции, причем этот виртуальный робот запускает задачи через регулярные промежутки времени и завершает свою работу по окончании прямой трансляции.
[31] Такие виртуальные роботы применимы лишь к одному конкретному бизнес-сценарию, а их разработка и поддержка требуют использования всего набора кодов для виртуальных роботов, что приводит к большой рабочей нагрузке и относительно высоким затратам. Соответственно, вариантами осуществления настоящего изобретения предложен способ, устройство и электронное устройство для управления виртуальными роботами, носитель данных и программный продукт для устранения проблемы высокой стоимости разработки и поддержки виртуальных роботов.
[32] Первый вариант осуществления настоящего изобретения
[33] На фиг. 1 представлена блок-схема, иллюстрирующая способ управления виртуальными роботами согласно первому варианту осуществления настоящего изобретения. Этот вариант осуществления настоящего изобретения применим в тех случаях, когда имитирующий виртуальный робот создается на основе конечного автомата. Предложенный способ применим к устройству для управления виртуальными роботами. Устройство для управления виртуальными роботами реализовано в виде аппаратных и/или программных средств, и устройство для управления виртуальными роботами сконфигурировано в электронном устройстве для управления виртуальными роботами. Как показано на фиг. 1, предложенный способ предусматривает выполнение стадий, описанных ниже.
[34] На стадии 101 осуществляется запуск множества виртуальных роботов, созданных с использованием конечного автомата.
[35] В этом варианте осуществления настоящего изобретения конечный автомат (FSM) выполнен с возможностью создания виртуальных роботов. Эти виртуальные роботы представляют собой компьютерные программы, и они выполнены с возможностью имитации поведения пользователя по управлению приложением во множестве циклов.
[36] Конечный автомат, также называемый машиной состояний, представляет собой математическую модель, абстрагированную от правил управления реальными объектами.
[37] В некоторых случаях конечный автомат предусматривает следующие концепты:
[38] 1. Множество состояний. Этот концепт относится к формам, в которых выражается объект. Количество состояний описываемого объекта конечно, и один автомат обычно предусматривает, по меньшей мере, два состояния.
[39] 2. Множество событий, происходящих в состояниях. Этот концепт относится к условию запуска или паролю для выполнения операции.
[40] 3. Действия, запускаемые событиями. Этот концепт относится к операциям, выполняемым при возникновении событий. Одно действие обычно соответствует одной функции при программировании.
[41] Воспроизведение поведения пользователя виртуальными роботами при работе с приложением означает, что виртуальные роботы имитируют поведение пользователя и управляют работой приложения на основе поведенческих привычек пользователя.
[42] Этот вариант осуществления настоящего изобретения предоставляет платформу для запуска виртуальных роботов. Эта платформа применима к различным бизнес-сценариям. Например, виртуальные роботы выполнены с возможностью имитации борьбы различных пользователей с реальным пользователем в тренировочном режиме игры (приложения), благодаря чему обеспечивается боевой контакт разных уровней (например, легкий, средний и полный); виртуальные роботы выполнены с возможностью имитации поведения пользователей по управлению приложением с высокой частотой при прохождении стресс-теста, чтобы проверить возможные ошибки в приложении; и виртуальные роботы выполнены с возможностью имитации поведения пользователей-зрителей, смотрящих прямую трансляцию и взаимодействующих с пользователем-ведущим в области прямой трансляции (приложении), для имитации реальной среды просмотра, отслеживания различных показателей сервера и клиента и предоставления данных для оптимизации функций.
[43] В различных бизнес-сценариях в платформу добавляются приложения, применимые к этим сценариям, например, мессенджер, приложение для коротких видеороликов, приложение для прямых трансляций, новостное приложение, игры и тому подобное.
[44] В различных бизнес-сценариях для имитации поведения пользователя в платформу добавляется информация о пользователе, применимая к этим сценариям, например, идентификатор пользователя, псевдоним пользователя, изображение профиля пользователя, уровень пользователя и регион, в котором находится пользователь.
[45] В случае запуска виртуальных роботов информация о пользователе конфигурируется случайным образом с учетом определенных ограничений (например, возраст пользователя не может быть меньше определенного значения) или иным образом;
либо информация о пользователе заменяется во время работы случайным образом с учетом определенных ограничений или иным образом в том случае, если виртуальные роботы удовлетворяют некоторым условиям (например, виртуальные роботы подключаются к области прямой трансляции) и т.п., т.е. каждый из виртуальных роботов имитирует либо поведение одного пользователя, либо поведение нескольких пользователей, что не носит ограничительного характера в этом варианте осуществления настоящего изобретения.
[46] Разные приложения предоставляют разные функции. Соответственно, операции, выполняемые пользователями и имитируемые виртуальными роботами, также будут различаться. Эти операции, как правило, связаны с требованиями бизнес-сценариев, при этом приложения не обязательно поддерживают все операции, а только их часть. Например, применительно к приложению для прямой трансляции предъявляемые к нему требования заключаются в предоставлении ссылок для оптимизации функций области прямой трансляции. Таким образом, операции пользователей, имитируемые виртуальными роботами, включают в себя вход на домашнюю страницу, вход в область прямой трансляции, размещение всплывающих сообщений в области прямой трансляции, проставление лайков в области прямой трансляции и вручение виртуального подарка пользователю-ведущему в области прямой трансляции, а операции пользователей, не имитируемые виртуальными роботами, включают в себя совместное использование области прямой трансляции, поиск ключевых слов и т.п.
[47] Как показано на фиг. 2, в этом бизнес-сценарии развертывается множество независимых друг от друга виртуальных роботов, таких как виртуальный робот 1, виртуальный робот 2, … и виртуальный робот n, для формирования кластера виртуальных роботов. Независимость виртуальных роботов друг от друга означает, что они реализованы с использованием независимых виртуальных машин, независимых потоков или иных подобных технологий. Между виртуальными роботами нет корреляции, а это означает, что виртуальные роботы запускаются и имитируются независимо друг от друга, и они не влияют друг на друга.
[48] К примеру, по каждому виртуальному роботу выполняется хешированное сегментирование, т.е. экземпляр каждого виртуального робота обрабатывает действия нескольких виртуальных роботов, что улучшает масштабируемость виртуальных роботов.
[49] Стратегии запуска виртуальных роботов (например, время работы каждого виртуального робота и количество виртуальных роботов, работающих в определенный период времени) настраиваются заранее под конкретный бизнес-сценарий, так что соответствующие виртуальные роботы запускаются на основе стратегий запуска.
Например, для имитации большего количества пользователей, подключающихся к области прямой трансляции вечером, используется большее количество виртуальных роботов, а для имитации меньшего количества пользователей, подключающихся к области прямой трансляции рано утром, используется меньшее количество виртуальных роботов.
[50] Кроме того, при отказоустойчивости и в случае перезапуска после сбоя виртуальные роботы перезапускаются для возобновления исходного бизнес-сценария.
[51] Для каждого виртуального робота задается очередь задач, сконфигурированная с возможностью сохранения задач. На основе бизнес-требований бизнес-сценариев устанавливаются стратегии распределения задач (например, период времени распределения), и на основе этих стратегий между виртуальными роботами распределяются задачи, после чего виртуальные роботы выполняют эти задачи и имитируют поведение пользователя по управлению приложением. Операция пользователя, однажды сымитированная виртуальными роботами, один раз прогоняется через конечный автомат, и этот процесс называется циклом тиков. С точки зрения пользователя реальный пользователь обычно выполняет различные операции с приложением, а с точки зрения приложения в пространстве (например, в области прямой трансляции и сценарии игры), общедоступном для пользователей, одновременно с этим выполняются операции множества пользователей. Следовательно, чтобы имитировать эти сценарии, виртуальные роботы имитируют во множестве циклах тиков поведение одного и того же пользователя или разных пользователей по управлению приложением.
[52] На стадии 102 для каждого цикла определяется представление, в котором находятся виртуальные роботы в приложении, и это представление определяется в качестве состояния.
[53] Как показано на фиг. 2, конечный автомат предусматривает множество состояний, таких как состояния 0-6. В каждом цикле тиков идентифицируется представление, в котором в данный момент времени находятся виртуальные роботы в приложении, и это представление является состоянием в конечном автомате в соответствии с принципом действия конечного автомата.
[54] Виртуальные роботы не обязательно загружают пользовательский интерфейс (UI) приложения, а заранее устанавливают флажок-признак для каждого представления и используют этот флажок-признак для отображения представления, в котором виртуальные роботы в настоящее время находятся в приложении, предотвращая тем самым выполнение операции по загрузке пользовательского интерфейса и снижая энергопотребление виртуальных роботов.
[55] Представление является базовым классом пространства в операционной системе, такой как Android. Общим базовым классом для всех представлений является сам класс «Представление», независимо от того, является ли это простым текстовым представлением или кнопкой, или сложным линейным представлением в виде макета и списка.
[56] Представление является абстракцией элемента управления интерфейсного слоя, а это означает, что оно является элементом управления. Представление может также отображаться в виде группы элементов управления, т.е. группы представлений. При этом группа представлений также наследует класс «Представление», а это означает, что представление может быть как одиночным элементом управления, так и группой элементов управления, состоящей из множества элементов.
[57] Для таких бизнес-сценариев, как стресс-тестирование, и с учетом бизнес-требований к бизнес-сценариям загружается пользовательский интерфейс (UI) приложения, чтобы запросить представление, в котором находится фокус в текущем пользовательском интерфейсе, что не носит ограничительного характера в вариантах осуществления настоящего изобретения.
[58] Представления, предусматриваемые различными приложениями, отличаются друг от друга. В ходе выполнения процесса, в котором виртуальные роботы имитируют действия пользователя в приложении, все представления приложения задаются в качестве состояний в конечном автомате на основе бизнес-требований, или же в качестве состояний в конечном автомате задаются только некоторые представления приложения, а некоторые представления приложения игнорируются.
[59] Например, в приложении для прямых трансляций, как это показано на фиг. 3, предусмотрены такие представления, как домашняя страница, личная страница, игра в области прямой трансляции, прямое сообщение и лотерея. Если виртуальные роботы находятся на домашней странице, они могут имитировать пользователя, выбирающего личную страницу, игру в области прямой трансляции, прямое сообщение или лотерею, или же они могут принять решение остаться на домашней странице.
[60] В вариантах осуществления настоящего изобретения представление является состоянием в конечном автомате, вследствие чего повышается охват операций, выполняемых пользователем в приложении, и улучшается полнота имитаций, выполняемых виртуальными роботами.
[61] Для виртуальных роботов заранее конфигурируется база данных. Эта база данных конфигурируется с возможностью хранения состояний всех виртуальных роботов (представленных такими идентификаторами, как ID) в конечном автомате, которые сохраняются в хронологическом порядке на основе цикла; т.е. в базе данных хранится представление виртуального робота, в котором каждый виртуальный робот находится в прикладной программе.
[62] К примеру, состояние виртуальных роботов с идентификатором 123456789 сохраняется в структуре хэш-данных как robot_123456789_status.
[63] В первом цикле после запуска виртуального робота состояние в конечном автомате, сохраненное для виртуальных роботов в последнем цикле, считывается из предварительно заданной базы данных на основе идентификаторов, таких как ID.
[64] В случае успешного считывания состояния, т.е. если для виртуальных роботов ранее уже было сохранено определенное состояние, это состояние настраивается для виртуальных роботов с возобновлением представления в приложении, благодаря чему каждый виртуальный робот может возобновить свое собственное состояние.
[65] В случае неудачного считывания, т.е. если для виртуальных роботов ранее не было сохранено определенное состояние, определяется, что виртуальные роботы находятся в приложении в представлении по умолчанию, таком как домашняя страница приложения, и это представление по умолчанию определяется в качестве состояния в конечном автомате.
[66] В некоторых бизнес-сценариях предусмотрено, что в случае возникновения таких ситуаций, как отказоустойчивость и перезапуск при сбое, виртуальные роботы перезапускаются. В исходном бизнес-сценарии эти виртуальные роботы непрерывно имитировали действия пользователя (а именно, операции, выполняемые пользователем) и были распределены по различным представлениям. При отказоустойчивости и в случае перезапуска при сбое состояние виртуальных роботов прерывается, а восстановление состояния виртуальных роботов при перезапуске может предотвратить концентрацию виртуальных роботов в некоторых представлениях по умолчанию, что делает бизнес-сценарии более естественными и реалистичными.
[67] В случае непервого запуска виртуальные роботы считывают состояние, в котором они находились в последнем цикле тиков, из области памяти.
[68] На стадии 103 в каждом цикле имитируется поведение пользователя, выбирающего в представлении услугу для виртуальных роботов, а выбранная услуга определяется в качестве события.
[69] Разные представления обеспечивают разные услуги в разных приложениях. Например, в области прямой трансляции предоставляется услуга просмотра прямой трансляции, услуга размещения всплывающей информации, услуга представления виртуального элемента пользователю-ведущему и услуга проставления лайков.
[70] Как показано на фиг. 2, в каждом цикле тиков имитируется поведенческая привычка пользователя, выбирающего в текущем представлении одну из услуг для виртуального робота, после чего пользователь инициирует операцию пользователя, чтобы получить эту услугу. Услуга является событием (таким как событие 1-событие п), происходящим в определенном состоянии в конечном автомате в соответствии с принципом действия конечного автомата.
[71] В вариантах осуществления настоящего изобретения стадия 103 включает в себя подстадии, описанные ниже.
[72] На подстадии 1031 в каждом цикле производится загрузка первого файла, сконфигурированного для представления.
[73] На подстадии 1032 из первого файла считываются услуги, отображаемые в представлении, и правило скрининга.
[74] Этот вариант осуществления настоящего изобретения обеспечивает платформу для запуска виртуальных роботов, при этом для разных бизнес-сценариев технический персонал, исходя из спецификации платформы, заранее конфигурирует первый файл для множества представлений в приложении. Формат первого файла включает в себя расширяемый язык разметки (XML), библиотеку динамических связей (DLL) и тому подобное, при этом первый файл реализуется в виде конфигурационного файла, плагина, скрипта и тому подобного. В первый файл записываются услуги, предоставляемые каждым из представлений, и правило скрининга, т.е. спецификация, используемая для скрининга каждой из услуг и соответствующая поведенческой привычке пользователя.
[75] В каждом цикле тиков первый файл, сконфигурированный для текущего представления, загружается в память для последующего выполнения, вследствие чего из первого файла может быть считано множество услуг, предоставляемых текущим представлением, и соответствующее правило скрининга.
[76] На подстадии 1033 имитируется поведение пользователя по выбору одной из услуг на основе правила скрининга, и выбранная услуга определяется в качестве события, происходящего в данном состоянии в конечном автомате.
[77] Сначала анализируется правило скрининга, после чего спецификация, записанная в правиле скрининга, исполняется таким образом, что имитируется поведение пользователя по выбору одной из услуг из числа всех услуг, которая определяется в качестве события, происходящего в данном состоянии в конечном автомате.
[78] В некоторых вариантах осуществления настоящего изобретения в правиле скрининга записывается соотношение соответствия между каждой из услуг и вероятностью, при этом соотношение соответствия отображает вероятность выбора каждой из услуг на основе поведенческой привычки пользователя.
[79] В этом варианте осуществления настоящего изобретения из правила скрининга считывается вероятность выбора каждой из услуг для пользователя.
[80] Исходя из этой вероятности, для виртуальных роботов выбирается одна из услуг, которая определяется в качестве события, происходящего в данном состоянии в конечном автомате.
[81] Услуги включают в себя режим ожидания. Режим ожидания относится к случаю, когда пользователь просматривает и/или прослушивает информацию (например, прямые трансляции, новости, романы) в представлении, при этом пользователь не находится напротив представления или в ином положении подобного рода, и не выполняет в представлении какие-либо операции как действительный пользователь.
[82] В этом варианте осуществления настоящего изобретения вероятность режима ожидания превышает вероятность любой другой услуги, отличной от режима ожидания; т.е. услуга режима ожидания будет выбрана с высокой долей вероятности, имитируя реализацию случая, когда пользователь не часто выполняет в представлении приложения какие-либо операции как действительный пользователь.
[83] Если в качестве примера взять приложение для прямой трансляции, как это показано на фиг. 4, то в случае, когда виртуальный робот находится в области (состоянии) прямой трансляции, предоставляемые услуги включают в себя режим ожидания, отладку, размещение всплывающей информации, предоставление виртуального элемента и проставление лайков, при этом вероятность выбора пользователем режима ожидания (например, 90%) превышает вероятность выбора пользователем отладки (например, 4%), вероятность размещения всплывающей информации (например, 5%), вероятность предоставления виртуального элемента (например, 0,4%) или вероятность проставления лайков (например, 0,6%).
[84] В других вариантах осуществления настоящего изобретения стадия 103 включает в себя подстадии, описанные ниже.
[85] На подстадии 1034 в представлении выявляется ошибка.
[86] На подстадии 1035 по факту выявления ошибки имитируется поведение пользователя по выбору режима ожидания в представлении, при этом режим ожидания определяется в качестве события, происходящего в данном состоянии в конечном автомате.
[87] В этом варианте осуществления настоящего изобретения услуги, отображаемые в представлении, включают в себя режим ожидания.
[88] В некоторых случаях, таких как несоответствие данных, что не дает текущему состоянию возможность выполнить определенное действие, в состоянии (т.е. в представлении) виртуальных роботов может возникнуть ошибка. Например, виртуальные роботы не могут выполнить цикл в соответствии с логикой прямой трансляции после прекращения прямой трансляции пользователем-ведущим в области прямой трансляции. В этом случае ранее установленное правило скрининга игнорируется, и в качестве события, происходящего в данном состоянии в конечном автомате, принудительно выбирается режим ожидания, после чего ожидается его повторный запуск в следующем цикле тиков. Режим ожидания предотвращает некорректные действия пользователя, что обеспечивает достоверность имитации действий пользователя.
[89] На стадии 104 в каждом цикле приводятся в действие виртуальные роботы с целью выполнения в конкретном представлении определенной операции пользователя, сконфигурированной с возможностью запуска услуги, при этом операция пользователя определяется в качестве действия.
[90] Как показано на фиг. 2, в каждом цикле тиков виртуальный робот приводится в действие для выполнения в конкретном представлении определенной операции пользователя, сконфигурированной с возможностью запуска услуги, при этом операция пользователя представляет собой действие (такое как действие 1-действие п), запускаемое событием в конечном автомате в соответствии с принципом действия конечного автомата. В этом случае виртуальные роботы возвращаются в очередь задач и ожидают следующей задачи или следующего цикла тиков.
[91] В вариантах осуществления настоящего изобретения стадия 104 включает в себя подстадии, описанные ниже.
[92] На подстадии 1041 в каждом цикле осуществляется загрузка второго файла, сконфигурированного для представления.
[93] На подстадии 1042 из второго файла считывается правило имитации, сконфигурированное для услуги.
[94] Этот вариант осуществления настоящего изобретения обеспечивает платформу для запуска виртуальных роботов, при этом для разных бизнес-сценариев технический персонал, исходя из спецификации платформы, заранее конфигурирует второй файл для множества представлений в приложении. Формат второго файла включает в себя XML, DLL и тому подобное, при этом второй файл реализуется в виде конфигурационного файла, плагина, скрипта и тому подобного. Во второй файл записывается правило имитации для множества услуг, т.е. спецификация, сконфигурированная с возможностью запуска операции пользователя с целью реализации множества услуг.
[95] Первый файл и второй файл представляют собой один и тот же файл или разные файлы, что не носит ограничительного характера в этом варианте осуществления настоящего изобретения.
[96] В каждом цикле тиков второй файл, сконфигурированный для текущего представления, загружается в память для последующего запуска, после чего из второго файла считывается правило имитации для конфигурации выбранной услуги.
[97] На подстадии 1043 приводятся в действие виртуальные роботы с целью выполнения в конкретном представлении определенной операции пользователя на основе правила имитации, при этом операция пользователя определяется в качестве действия, запускаемого событием в конечном автомате.
[98] Сначала анализируется правило имитации, после чего спецификация, записанная в правиле имитации, исполняется таким образом, что приводятся в действие виртуальные роботы, выполняющие в представлении соответствующую операцию пользователя на основе правила имитации, которая определяется в качестве действия, запускаемого событием в конечном автомате.
[99] В вариантах осуществления настоящего изобретения предусмотрено, что в отношении операции пользователя, локально выполняемой приложением, эта операция пользователя выполняется в приложении напрямую локально.
[100] Для операции пользователя, взаимодействующей с сервером, приложение предоставляет множество спецификаций интерфейса API (интерфейса прикладного программирования) для реализации этой операции пользователя. Обычно, когда пользователь выполняет операцию пользователя на пользовательском интерфейсе (UI) приложения, это приложение инкапсулирует соответствующий запрос пользователя в соответствии с элементом, активированным на UI, и отправляет запрос пользователя на сервер. Однако в этом варианте осуществления настоящего изобретения спецификации интерфейса записываются в правиле имитации, и спецификация интерфейса считывается из правила имитации для выполнения операции пользователя.
[101] Виртуальные роботы не обязательно загружают пользовательский интерфейс приложения, а напрямую генерируют запрос пользователя, исходя из спецификации интерфейса, для отображения процесса выполнения операции пользователя в представлении, при этом виртуальные роботы приводятся в действие для отправки запроса пользователя на сервер, что определяется в качестве действия, запускаемого событием в конечном автомате.
[102] Например, как показано на фиг. 4, при выборе такой услуги, как «Отладка» или «Проставление лайков», соответствующий запрос пользователя инкапсулируется на основе спецификаций интерфейса, вследствие чего серверу отправляется запрос на отладку области прямой трансляции или проставление лайка области прямой трансляции.
[103] Этот вариант осуществления настоящего изобретения напрямую инкапсулирует запрос пользователя для реализации операции пользователя и предотвращения операции по загрузке UI, что приводит к уменьшению энергопотребления виртуальных роботов.
[104] Для таких бизнес-сценариев, как стресс-тестирование, и с учетом бизнес-требований к бизнес-сценариям пользовательский интерфейс приложения загружается для имитации таких операций пользователя, как клики и долгое нажатие в текущем пользовательском интерфейсе, что не носит ограничительного характера в вариантах осуществления настоящего изобретения.
[105] Способ выполнения операции пользователя предусматривает сбор контекстной информации, записываемой виртуальными роботами в процессе имитации поведения пользователя по управлению приложением, при этом контекстная информация сконфигурирована с возможностью содействия запуску операции пользователя, и контекстная информация записывается в базу данных.
[106] Поскольку операции считывания и записи контекста являются частыми и многопоточными, в качестве базы данных выбирается база данных типа ключ-значение (KV), такая как Redis и MemCache.
[107] Для разных бизнес-сценариев операции пользователя, исполняемые в приложении, будут отличаться друг от друга, и сохраняемая контекстная информация также будет разной, что не носит ограничительного характера в вариантах осуществления настоящего изобретения.
[108] Если в качестве примера взять прямую трансляцию, то сохраняемая контекстная информация будет иметь следующий вид:
[109] В этом способе, который показан на фиг. 2, контекстная информация, записываемая виртуальными роботами в процессе имитации поведения пользователя по управлению приложением, извлекается из предварительно заданной базы данных.
[110] Из контекстной информации считывается первая информация о среде, от которой зависит текущая услуга, что осуществляется на основе правила имитации. Указанная зависимость означает соотношение использования, существующее между операцией пользователя по реализации услуги и первой информацией о среде. Первая информация о среде влияет на операцию пользователя по реализации услуги, а с другой стороны, первая информация о среде необходима для содействия запуску операции пользователя по реализации услуги.
[111] На основе правила имитации определяется компонент, от которого зависит услуга (например, сеть принятия решений о высказываниях третьей стороны, представленная таким идентификатором, как ID или путь), и в этот компонент вводится первая информация о среде для его вызова с целью генерирования целевой информации, применимой к первой информации о среде, такой как текстовая информация и выражения, после чего приводятся в действие виртуальные роботы для размещения целевой информации в представлении, что определяется как действие, инициированное событием в конечном автомате.
[112] В некоторых бизнес-сценариях пользователи размещают информацию в приложении; например, как это показано на фиг. 4, они размещают всплывающую информацию в области прямой трансляции и публикуют комментарии к новостям. Большинство пользователей размещает информацию для конкретного бизнес-объекта (например, программы прямой трансляции и новостей), и эта информация отражает взгляды пользователей на этот бизнес-объект, а не является бессмысленной информацией. Соответственно, указанный компонент напрямую анализирует семантику бизнес-объекта (контекстную информацию) с использованием технологии машинного зрения, вследствие чего генерируется целевая информация, используемая для выражения семантики посредством обработки естественного языка (NLP). Кроме того, сложно быстро проанализировать семантику бизнес-объекта в таком формате, как видеоданные, а информация, размещенная другими пользователями для бизнес-объекта (т.е. контекстная информация, такая как всплывающая информация, размещенная другими пользователями в области прямой трансляции), отражает взгляды других пользователей на бизнес-объект; таким образом, компонент анализирует (посредством NLP) семантику информации, размещенной другими пользователями для бизнес-объекта, с целью генерирования целевой информации (например, всплывающей информации), совпадающей с указанной семантикой или схожей с ней, после чего осуществляется размещение целевой информации (например, всплывающей информации).
[113] В другом способе выполнения операции пользователя, как это показано на фиг. 2, контекстная информация, записываемая виртуальными роботами в процессе имитации поведения пользователя по управлению приложением, извлекается из предварительно заданной базы данных, и на основе правила имитации из этой контекстной информации считывается вторая информация о среде, которая ограничивает услугу.
[114] Согласно одному из аспектов настоящего изобретения такие ограничения означают, что когда реальный пользователь при фактическом выполнении им определенных действий в приложении подвержен естественным человеческим ограничениям, таким как способности, интересы и другие физиологические ограничения, маловероятно, что он будет часто или бессмысленно совершать определенные действия. В случае выхода за эти ограничения вероятность подлинности данных пользователя уменьшается. Например, пользователи чаще всего размещают всплывающую информацию в области прямой трансляции с перерывами, и непрерывно размещать всплывающую информацию они будут с меньшей долей вероятности, а пользователи старшего подросткового возраста с меньшей долей вероятности будут непрерывно смотреть мультфильмы для детей младшего возраста и комментировать их.
[115] Согласно другому аспекту настоящего изобретения такие ограничения относятся к случаю, когда операция пользователя, предоставляемая приложением, ограничена услугой сервера, и эта операция пользователя с высокой долей вероятности не выходит за пределы бизнес-ограничений. Например, в случае блокировки области прямой трансляции ни один пользователь из пользовательской аудитории не может размещать какую-либо информацию; а в другом примере, который приведен на фиг. 4, предусмотрено, что если количество определенных виртуальных элементов задано как число m в области прямой трансляции, то количество виртуальных элементов, предоставляемых пользователями из пользовательской аудитории, не может превышать заданное число m, и в случае, если это количество не превышает число m, то пользователь из пользовательской аудитории может предоставить виртуальный элемент пользователю-ведущему.
[116] Условия, ограничивающие услугу, определяются на основе правила имитации. Эти условия представляют собой физиологические ограничения со стороны пользователя или бизнес-ограничения со стороны сервера, например, количество представленных виртуальных элементов в области прямой трансляции, временной интервал для размещения всплывающей информации в области прямой трансляции и количество размещенной всплывающей информации в области прямой трансляции.
[117] С этими условиями сравнивается вторая информация о среде, соответствующая одной и той же услуге.
[118] Если вторая информация о среде не удовлетворяет условиям, то виртуальные роботы могут быть приведены в действие для выполнения операции пользователя в представлении в соответствии с правилом имитации, что определяется в качестве действия, запускаемого событием в конечном автомате.
[119] Если вторая информация о среде удовлетворяет условиям, то виртуальные роботы не могут быть приведены в действие для выполнения операции пользователя в представлении в соответствии с правилом имитации, что определяется в качестве действия, запускаемого событием в конечном автомате.
[120] В других вариантах осуществления настоящего изобретения стадия 104 включает в себя подстадии, описанные ниже.
[121] На подстадии 1044 в каждом цикле определяется, что операция пользователя, сконфигурированная с возможностью запуска услуги, является нулевой в случае, если услугой служит режим ожидания.
[122] На подстадии 1045 по факту выполнения операции пользователя виртуальные роботы переводятся в состояние ожидания в представлении, что определяется в качестве действия, запускаемого событием в конечном автомате.
[123] В каждом цикле тиков определяется тип услуги. Если типом услуги является режим ожидания, то операция пользователя, сконфигурированная с возможностью запуска услуги, устанавливается на ноль.
[124] В этом случае виртуальные роботы переводятся в состояние ожидания в текущем представлении, и они временно не выполняют операцию действительного пользователя, а ожидание является действием, которое запускается событием в конечном автомате в соответствии с принципом действия конечного автомата.
[125] В этом варианте осуществления настоящего изобретения запускается множество виртуальных роботов, созданных с использованием конечного автомата. Виртуальные роботы выполнены с возможностью имитации поведения пользователя по управлению приложением в каждом цикле. В каждом цикле определяется представление, в котором находятся виртуальные роботы в приложении, и это представление определяется в качестве состояния в конечном автомате. В каждом цикле имитируется поведение пользователя по выбору услуги для виртуальных роботов в представлении, что определяется в качестве события, происходящего в данном состоянии в конечном автомате. В каждом цикле виртуальные роботы приводятся в действие для выполнения операции пользователя, сконфигурированной с возможностью запуска услуги, что определяется как действие, запускаемое событием в конечном автомате.
[126] Согласно этому варианту осуществления настоящего изобретения виртуальные роботы создаются с использованием конечного автомата, который предоставляет платформу для запуска виртуальных роботов в соответствии со спецификацией конечного автомата, облегчает интеграцию этой платформы в модули различных бизнес-сценариев, записывает логику бизнес-сценариев; и, таким образом, обладает высокой универсальностью и расширяемостью.
[127] Например, когда виртуальные роботы подключены к целой системе, и когда сторонние инструменты, такие как инструмент для стресс-тестирования и инструмент для тестирования ячеек, предоставляют интерфейсы для виртуальных роботов, эти интерфейсы интегрируются в платформу для виртуальных роботов, что облегчает подключение виртуальных роботов к сторонним инструментам и позволяет удовлетворять такие бизнес-требования, как требования к стресс-тестированию и тестированию ячеек.
[128] Платформа для виртуальных роботов, разработанная с использованием конечного автомата, обладает высокой ремонтопригодностью. На этапе разработки и обслуживания бизнес-персоналу не нужно беспокоиться о нижнем уровне платформы конечного автомата, равно как и о состоянии и функционировании верхнего уровня. Таким образом, бизнес-коды могут быть разделены в зависимости от состояния, т.е. все бизнес-коды, как правило, полностью отделены друг от друга, реализуя сильную связь и обладая слабой взаимной связностью, что значительно снижает трудозатраты во время разработки и обслуживания и, таким образом, значительно снижает затраты. Более того, при этом облегчается расширение и обогащение поведенческих паттернов виртуальных роботов, что позволяет имитировать действия пользователя с высокой степенью свободы, а также повышает достоверность имитации поведения пользователя виртуальными роботами.
[129] Объем информации, хранимый виртуальными роботами, невелик, и нагрузка на хранилище данных очень мала. Кроме того, виртуальные роботы имитируют поведение реального пользователя, редко совершающего различные действиями, при этом в случае активации определенного действия они занимают, главным образом, такие ресурсы, как процессор, и обладают высокой масштабируемостью, а при отказоустойчивости и в случае перезапуска может быть выполнено горизонтальное масштабирование.
[130] Второй вариант осуществления настоящего изобретения [131] На фиг. 5 представлена блок-схема, иллюстрирующая способ управления виртуальными роботами согласно второму варианту осуществления настоящего изобретения. На основе вариантов осуществления, описанных выше, в этот вариант осуществления добавлены операции по сохранению контекстной информации и смене состояний в конечном автомате. Как показано на фиг. 5, предложенный способ предусматривает выполнение стадий, описанных ниже.
[132] На стадии 501 запускается множество виртуальных роботов, созданных с использованием конечного автомата.
[133] Виртуальные роботы выполнены с возможностью имитации во множестве циклов поведения пользователя по работе с приложением. Конечный автомат включает в себя множество состояний, множество событий, происходящих в этих состояниях, и действия, запускаемые событиями.
[134] На стадии 502 в каждом цикле определяется представление, в котором находятся виртуальные роботы в приложении, и которое определяется в качестве состояния.
[135] На стадии 503 в каждом цикле имитируется поведение пользователя по выбору услуги в представлении, которая определяется в качестве события.
[136] На стадии 504 в каждом цикле приводятся в действие виртуальные роботы с целью выполнения в конкретном представлении операции пользователя, сконфигурированной с возможностью запуска услуги, которая определяется пользователя в качестве действия.
[137] На стадии 505 обеспечивается получение контекстной информации, отображаемой в представлении, в случае завершения операции пользователя.
[138] На стадии 506 выполняется сохранение контекстной информации в предварительно заданной базе данных, и в этой базе данных устанавливается ассоциативное соотношение между виртуальными роботами и контекстной информацией.
[139] Как показано на фиг. 2, в случае завершения выполнения операции пользователя виртуальными роботами обеспечивается извлечение контекстной информации из множества представлений приложения на основе бизнес-требований к бизнес-сценариям, причем контекстная информация записывается в формате типа ключ-значение.
[140] Виртуальные роботы (представленные идентификаторами, такими как ID) используются в качестве индексов, и в базе данных устанавливается ассоциативное соотношение между виртуальными роботами и контекстной информацией таким образом, что соответствующая контекстная информация впоследствии запрашивается в базе данных с виртуальными роботами в качестве условий, что способствует выполнению последующих операций пользователя.
[141] В общем, в случае разрушения виртуальных роботов высвобождается, по меньшей мере, часть контекстной информации, вследствие чего в базе данных остается меньше занятого пространства памяти.
[142] На стадии 507 определяется представление, в котором находятся виртуальные роботы в приложении, в случае завершения выполнения операции пользователя.
[143] На стадии 508 после выполнения операции пользователя осуществляется обновление состояния в конечном автомате в соответствии с представлением, что определяется в качестве перехода.
[144] В некоторых случаях, как это показано на фиг. 2, конечный автомат включает в себя следующие концепты:
[145] Состояние;
[146] Событие;
[147] Действие; и
[148] Переход, отображающий изменение состояния, что означает смену одного состояния на другое.
[149] В некоторых случаях предусмотрено, что если виртуальными роботами выполняется операция пользователя, то в приложении происходит переход из одного представления в другое. В этом случае запрашивается новое представление, в котором находятся виртуальные роботы в приложении; на основе нового представления обновляется состояние в конечном автомате; и это состояние в данном случае сохраняется в базе данных. Согласно принципу действия конечного автомата этот процесс является переходом в конечном автомате, что обеспечивает нормальную работу конечного автомата и, следовательно, нормальную работу виртуальных роботов.
[150] Например, как это показано на фиг. 4, в случае завершения виртуальными роботами действия, соответствующего отладке, происходит переход из области (состояния) прямой трансляции на домашнюю страницу (состояние).
[151] В некоторых случаях, например, предусмотрено, что если услугой является режим ожидания, то после выполнения операции пользователя виртуальными роботами приложение сохраняет текущее представление без изменений. В этом случае состояние в конечном автомате сохраняется и не обновляется.
[152] Например, как это показано на фиг. 4, в случае завершения выполнения действия виртуальными роботами, соответствующего режиму ожидания, размещению всплывающей информации, представления виртуального элемента или проставлению лайков, область (состояние) прямой трансляции сохраняется без изменений.
[153] Третий вариант осуществления настоящего изобретения
[154] На фиг. 6 показана структурная схема устройства для управления виртуальными роботами согласно третьему варианту осуществления настоящего изобретения. Как показано на фиг. 6, это устройство включает в себя:
[155] модуль 601 запуска виртуальных роботов, выполненный с возможностью запуска множества виртуальных роботов, созданных с использованием конечного автомата, причем виртуальные роботы выполнены с возможностью имитации поведения пользователя по управлению приложением во множестве циклов, а конечный автомат предусматривает наличие множества состояний, множества событий, происходящих во множестве состояний, и действий, запускаемых множеством событий;
[156] модуль 602 определения состояний, выполненный с возможностью определения в каждом цикле представления, в котором находятся виртуальные роботы в приложении, и определения данного представления в качестве состояния;
[157] модуль 603 выбора событий, выполненный с возможностью имитации - в каждом цикле поведения пользователя по выбору услуги в представлении и определения выбранной услуги в качестве события; и
[158] модуль 604 выполнения действий, выполненный с возможностью приведения в действие виртуальных роботов в каждом цикле с целью выполнения в конкретном представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определения этой операции пользователя в качестве действия.
[159] В вариантах осуществления настоящего изобретения модуль 602 определения состояний включает в себя:
[160] модуль считывания состояния, выполненный с возможностью считывания из предварительно заданной базы данных - в первом цикле - состояния в конечном автомате, сохраненного для виртуальных роботов в последнем цикле;
[161] модуль возобновления состояния, выполненный с возможностью конфигурирования состояния виртуальных роботов в случае успешного считывания с целью возобновления представления в приложении; и
[162] модуль установки по умолчанию, выполненный с возможностью определения в случае неудачного считывания того факта, что виртуальные роботы находятся в приложении в представлении по умолчанию, и определения представления по умолчанию в качестве состояния.
[163] В вариантах осуществления настоящего изобретения модуль 603 выбора событий включает в себя:
[164] модуль загрузки первого файла, выполненный с возможностью загрузки в каждом цикле первого файла, сконфигурированного для данного представления;
[165] модуль считывания правила скрининга, выполненный с возможностью считывания из первого файла услуг, отображаемых в представлении, и правила скрининга; и
[166] модуль скрининга правила, выполненный с возможностью имитации поведения пользователя по выбору одной из услуг на основе правила скрининга и определения выбранной услуги в качестве события.
[167] В вариантах осуществления настоящего изобретения модуль скрининга правила включает в себя:
[168] модуль считывания вероятности, выполненный с возможностью считывания из правила скрининга вероятности выбора каждой из услуг для пользователя; и
[169] модуль выбора по вероятности, выполненный с возможностью выбора одной из услуг для виртуальных роботов на основе вероятности, что определяется в качестве события.
[170] Услуги включают в себя режим ожидания, а вероятность режима ожидания превышает вероятность любой другой услуги, отличной от режима ожидания.
[171] В вариантах осуществления настоящего изобретения модуль 603 выбора событий выполнен с дополнительной возможностью:
[172] выявления ошибки в представлении, причем услуги, отображаемые в представлении, включают в себя, по меньшей мере, такую услугу, как режим ожидания; и
[173] имитации поведения пользователя по выбору режима ожидания в представлении по факту выявления ошибки и определения режима ожидания в качестве события.
[174] В вариантах осуществления настоящего изобретения модуль 604 выполнения действий включает в себя:
[175] модуль загрузки второго файла, выполненный с возможностью загрузки в каждом цикле второго файла, сконфигурированного для представления;
[176] модуль считывания правила имитации, выполненный с возможностью считывания из второго файла правила имитации, сконфигурированного для услуг; и
[177] модуль выполнения правила имитации, выполненный с возможностью приведения в действие виртуальных роботов для выполнения операции пользователя в представлении на основе правила имитации, что определяется в качестве действия.
[178] В вариантах осуществления настоящего изобретения модуль выполнения правила имитации выполнен с возможностью:
[179] считывания спецификации интерфейса из правила имитации для выполнения операции пользователя;
[180] генерирования на основе спецификации интерфейса запроса пользователя, сконфигурированного с возможностью отображения выполнения операции пользователя в представлении; и
[181] приведения в действие виртуальных роботов для отправки запроса пользователя на сервер, что определяется в качестве действия.
[182] В вариантах осуществления настоящего изобретения модуль выполнения правила имитации выполнен с возможностью:
[183] получения из предварительно заданной базы данных контекстной информации, записанной виртуальными роботами в процессе имитации поведения пользователя по управлению приложением;
[184] считывания из контекстной информации первой информации о среде, от которой зависит услуга, на основе правила имитации;
[185] определения компонента, от которого зависит услуга, на основе правила имитации;
[186] вызова компонента для генерирования целевой информации, применимой к первой информации о среде; и
[187] приведения в действие виртуальных роботов для размещения целевой информации в представлении, что определяется в качестве действия.
[188] В вариантах осуществления настоящего изобретения модуль выполнения правила имитации выполнен с возможностью:
[189] получения из предварительно заданной базы данных контекстной информации, записанной виртуальными роботами в процессе имитации поведения пользователя по управлению приложением;
[190] считывания из контекстной информации второй информации о среде, которая ограничивает услугу, исходя из правила имитации;
[191] определения условий, которые ограничивают услугу, исходя из правила имитации; при этом:
[192] если вторая информация о среде не удовлетворяет условиям, то виртуальные роботы могут быть приведены в действие для выполнения операции пользователя в представлении на основе правила имитации, что определяется как действие; а
[193] если вторая информация о среде удовлетворяет условиям, то виртуальные роботы не могут быть приведены в действие для выполнения операции пользователя в представлении на основе правила имитации, что определяется как действие.
[194] В других вариантах осуществления настоящего изобретения модуль 604 выполнения действий включает в себя:
[195] модуль определения нулевой операции, выполненный с возможностью определения в каждом цикле того факта, что операция пользователя, сконфигурированная с возможностью запуска услуги, является нулевой в том случае, если эта услуга представляет собой режим ожидания; и
[196] модуль ожидания, выполненный с возможностью перевода виртуальных роботов в состояние ожидания по факту выполнения операции пользователя, что определяется как действие.
[197] В вариантах осуществления настоящего изобретения модуль выполнения действий дополнительно включает в себя:
[198] модуль получения контекстной информации, выполненный с возможностью получения контекстной информации, отображаемой в представлении, в случае завершения операции пользователя; и
[199] модуль сохранения контекстной информации, выполненный с возможностью сохранения контекстной информации в предварительно заданной базе данных и установления ассоциативного соотношения между виртуальными роботами и контекстной информацией в базе данных.
[200] В вариантах осуществления настоящего изобретения конечный автомат дополнительно содержит переход, отображающий изменение состояния, а предложенное устройство дополнительно включает в себя:
[201] модуль определения нового представления, выполненный с возможностью определения представления, в котором находятся виртуальные роботы в приложении, в случае завершения выполнения операции пользователя; и
[202] модуль изменения состояния, выполненный с возможностью обновления состояния в конечном автомате на основе представления после выполнения операции пользователя, что определяется как переход.
[203] Устройство для управления виртуальными роботами согласно вариантам осуществления настоящего изобретения выполнено с возможностью реализации способа управления виртуальными роботами согласно любому из вариантов осуществления настоящего изобретения, при этом оно характеризуется наличием соответствующих функциональных модулей и эффектов, обеспечивающих выполнение способа управления виртуальными роботами.
[204] Четвертый вариант осуществления настоящего изобретения
[205] На фиг. 7 показана структурная схема электронного устройства 10 для управления виртуальными роботами, которое может быть использовано для реализации вариантов осуществления настоящего изобретения.
[206] Как показано на фиг. 7, электронное устройство 10 для управления виртуальными роботами включает в себя, по меньшей мере, один процессор 11 и память, такую как постоянное запоминающее устройство (ROM) 12 и оперативное запоминающее устройство (RAM) 13, коммуникативно связанную, по меньшей мере, с одним процессором 11. В памяти хранится одна или несколько компьютерных программ, выполняемых, по меньшей мере, одним процессором; и в соответствии с одной или несколькими компьютерными программами, хранящимися в ROM 12, или в соответствии с одной или несколькими компьютерными программами, загружаемыми из элемента 18 памяти в RAM 13, приводится в действие процессор 11 для выполнения им различных операций и процессов. В RAM 13 также хранятся различные программы и данные, необходимые для обеспечения работы электронного устройства 10 для управления виртуальными роботами. Процессор 11, ROM 12 и RAM 13 соединены между собой посредством шины 14. К шине 14 также подключен интерфейс 15 ввода/вывода (I/O).
[207] К интерфейсу I/O подключено множество компонентов, предусмотренных в электронном устройстве 10 для управления виртуальными роботами, в том числе: блок 16 ввода, такой как клавиатура или мышь; блок 17 вывода, такой как дисплей или динамики различных типов; элемент 18 памяти, такой как магнитный диск или оптический диск; и блок 19 связи, такой как сетевая карта, модем или приемопередатчик беспроводной связи. Блок 19 связи позволяет электронному устройству 10 для управления виртуальными роботами обмениваться информацией/данными с другими устройствами по компьютерной сети, такой как сеть Интернет и/или различные иные телекоммуникационные сети.
[208] Процессором 11 могут служить различные универсальные и/или специализированные компоненты обработки данных, обладающие возможностями по обработке и вычислению данных. Некоторые примеры реализации процессора 11 включают в себя центральный процессор (CPU); графический процессор (GPU);
различные специализированные микросхемы искусственного интеллекта (AI); различные процессоры, выполняющие алгоритмы модели машинного обучения; цифровой сигнальный процессор (DSP); любой подходящий процессор, контроллер или микроконтроллер; и тому подобное. Процессор 11 выполняет множество описанных выше способов и их стадий, например, способ управления виртуальными роботами.
[209] В некоторых вариантах осуществления настоящего изобретения способ управления виртуальными роботами выполняется в виде одной или нескольких компьютерных программ, которые материально реализованы в машиночитаемом носителе данных, таком как элемент 18 памяти. В некоторых вариантах осуществления настоящего изобретения все компьютерные программы или их часть загружается и/или инсталлируется в электронное устройство 10 для управления виртуальными роботами через ROM 12 и/или блок 19 связи. Процессор 11 при выполнении им компьютерных программ, загруженных в RAM 13, инициирует выполнение одной или нескольких стадий способа управления виртуальными роботами, описанного выше. В других вариантах осуществления настоящего изобретения в качестве альтернативы процессор 11 выполнен с возможностью реализации способа управления виртуальными роботами любым иным подходящим образом (например, с помощью программно-аппаратных средств).
[210] Пятый вариант осуществления настоящего изобретения
[211] Вариантами осуществления настоящего изобретения дополнительно предложен компьютерный программный продукт, включающий в себя одну или несколько компьютерных программ. Одна или несколько компьютерных программ при их выполнении процессором инициируют реализацию этим процессором способа управления виртуальными роботами согласно любому из вариантов осуществления настоящего изобретения.
[212] В процессе реализации компьютерного программного продукта компьютерные программные коды, используемые для выполнения операций согласно настоящему изобретению, записываются на одном или нескольких языках программирования в любой комбинации, включая объектно-ориентированные языки программирования, такие как Java, Smalltalk и С++, а также стандартные процедурные языки программирования, такие как язык «С» или иные схожие языки программирования. Программные коды выполняются полностью на компьютере пользователя, частично на компьютере пользователя в виде автономного программного пакета, частично на компьютере пользователя и частично на удаленном компьютере, или полностью на удаленном компьютере или сервере. В случае использования удаленного компьютера этот удаленный компьютер подключается к компьютеру пользователя по сети любого типа, включая локальную сеть (LAN) или глобальную сеть (WAN), или же он подключается к внешнему компьютеру (например, по сети Интернет с использованием поставщика услуг Интернет).
[213] Вариантами осуществления настоящего изобретения дополнительно предложен носитель данных, на котором хранится одна или несколько исполняемых компьютером команд. Одна или несколько исполняемых компьютером команд при их исполнении процессором компьютера инициируют реализацию этим процессором компьютера способа управления виртуальными роботами согласно вариантам осуществления настоящего изобретения. Носителем данных может служить энергонезависимый носитель данных.
[214] Используются различные формы приведенных выше блок-схем, где стадии могут меняться местами, добавляться или удаляться. Например, множество стадий, описанных в рамках раскрытия настоящего изобретения, выполняется параллельно, последовательно или в ином порядке, что не носит ограничительного характера в настоящем документе при условии, что при этом может быть достигнут желаемый результат реализации технических решений настоящего изобретения.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ ПРОГРАММИРОВАНИЯ ПОСРЕДСТВОМ РЕПЕТИЦИИ | 2006 |
|
RU2429536C2 |
РЕКОМЕНДАЦИИ ПО КОНТЕНТУ НА ОСНОВАНИИ ПРОСМОТРОВОЙ ИНФОРМАЦИИ | 2009 |
|
RU2541191C2 |
ДИНАМИЧЕСКИЙ ОПЫТ ПОЛЬЗОВАТЕЛЯ ПОСРЕДСТВОМ СЕМАНТИЧЕСКИ БОГАТЫХ ОБЪЕКТОВ | 2006 |
|
RU2417408C2 |
ИСПОЛЬЗОВАНИЕ КОНТЕКСТНОЙ ИНФОРМАЦИИ ДЛЯ ОБЛЕГЧЕНИЯ ОБРАБОТКИ КОМАНД В ВИРТУАЛЬНОМ ПОМОЩНИКЕ | 2012 |
|
RU2542937C2 |
СИСТЕМА И СПОСОБ ВИРТУАЛИЗАЦИИ ФУНКЦИИ МОБИЛЬНОЙ СЕТИ | 2014 |
|
RU2643451C2 |
ЕДИНЫЙ МУЛЬТИМЕДИЙНЫЙ ИНСТРУМЕНТ, СИСТЕМА И СПОСОБ ДЛЯ ИССЛЕДОВАНИЯ И ИЗУЧЕНИЯ ВИРТУАЛЬНОГО ЧЕЛОВЕЧЕСКОГО ТЕЛА | 2013 |
|
RU2634734C2 |
СПОСОБЫ И СИСТЕМЫ ДЛЯ ПОИСКА ПРИКЛАДНЫХ ПРОГРАММ | 2014 |
|
RU2598988C2 |
СПОСОБЫ И СИСТЕМЫ ДЛЯ ОБРАБОТКИ ДИАЛОГА С РОБОТОМ | 2015 |
|
RU2668062C2 |
АРХИТЕКТУРА ДЛЯ ПОДКЛЮЧЕНИЯ УДАЛЕННОГО КЛИЕНТА К РАБОЧЕМУ СТОЛУ ЛОКАЛЬНОГО КЛИЕНТА | 2004 |
|
RU2368945C2 |
СПОСОБ ВЕДЕНИЯ БАЗЫ ДАННЫХ И СООТВЕТСТВУЮЩИЙ СЕРВЕР | 2015 |
|
RU2698776C2 |
Изобретение относится к области компьютерной обработки данных. Техническим результатом является управление виртуальными роботами, используемыми для множества бизнес-сценариев. Способ предусматривает запуск множества виртуальных роботов, созданных с использованием конечного автомата, причем виртуальные роботы выполнены с возможностью имитации - во множестве циклов - действий пользователя по управлению приложением, а конечный автомат предусматривает наличие множества состояний, множества событий, происходящих во множестве состояний, и действий, запускаемых множеством событий; определение в каждом цикле представления, в котором находятся виртуальные роботы в приложении, и определение представления в качестве состояния; имитацию в каждом цикле поведения пользователя по выбору услуги в приложении и определение выбранной услуги в качестве события; и приведение в действие виртуальных роботов в каждом цикле для выполнения в представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определение операции пользователя в качестве действия. 4 н. и 10 з.п. ф-лы, 7 ил.
1. Способ управления виртуальными роботами, предусматривающий:
запуск множества виртуальных роботов, созданных с использованием конечного автомата, причем виртуальные роботы выполнены с возможностью имитации поведения пользователя по управлению приложением во множестве циклов, а конечный автомат предусматривает наличие множества состояний, множества событий, происходящих во множестве состояний, и действий, запускаемых множеством событий;
определение – в каждом цикле – представления, в котором находятся виртуальные роботы в приложении, и определение этого представления в качестве состояния;
имитацию – в каждом цикле – поведения пользователя по выбору услуги в представлении и определение выбранной услуги в качестве события; и
приведение в действие виртуальных роботов в каждом цикле с целью выполнения в конкретном представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определение этой операции пользователя в качестве действия;
при этом имитация – в каждом цикле – поведения пользователя по выбору услуги в представлении и определение выбранной услуги в качестве события предусматривает:
загрузку в каждом цикле первого файла, сконфигурированного для представления;
считывание из первого файла услуг, отображаемых в представлении, и правила скрининга; и
имитацию поведения пользователя по выбору одной из услуг на основе правила скрининга и определение выбранной услуги в качестве события;
при этом имитация поведения пользователя по выбору одной из услуг на основе правила скрининга и определение выбранной услуги в качестве события предусматривает:
считывание вероятности выбора каждой из услуг для пользователя из правила скрининга; и
выбор одной из услуг для виртуальных роботов на основе вероятности и определение выбранной услуги в качестве события.
2. Способ по п. 1, в котором определение – в каждом цикле – представления, в котором находятся виртуальные роботы в приложении, и определение представления в качестве состояния предусматривает:
считывание в первом цикле состояния в конечном автомате, сохраненного для виртуальных роботов в последнем цикле, из предварительно заданной базы данных;
конфигурирование считанного состояния для виртуальных роботов в случае успешного считывания с целью возобновления представления в приложении; и
определение в случае неудачного считывания того факта, что в приложении виртуальные роботы находятся в представлении по умолчанию, и определение представления по умолчанию в качестве состояния.
3. Способ по п. 1, в котором имитация поведения пользователя по выбору одной из услуг на основе правила скрининга и определение выбранной услуги в качестве события предусматривает, что услуги включают в себя режим ожидания, а вероятность режима ожидания превышает вероятность любой другой услуги, отличной от режима ожидания.
4. Способ по п. 1, в котором имитация – в каждом цикле – поведения пользователя по выбору услуги в представлении и определение выбранной услуги в качестве события дополнительно предусматривает:
выявление ошибки в представлении, причем услуги, отображаемые в представлении, включают в себя такую услугу, как режим ожидания; и
имитацию поведения пользователя по выбору режима ожидания в представлении по факту выявления ошибки и определение режима ожидания в качестве события.
5. Способ по п. 1, в котором приведение в действие виртуальных роботов в каждом цикле для выполнения в представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определение этой операции пользователя в качестве действия предусматривает:
загрузку в каждом цикле второго файла, сконфигурированного для представления;
считывание из второго файла правила имитации, сконфигурированного для услуги; и
приведение в действие виртуальных роботов для выполнения операции пользователя в представлении на основе правила имитации и определение этой операции пользователя в качестве действия.
6. Способ по п. 5, в котором приведение в действие виртуальных роботов для выполнения операции пользователя в представлении на основе правила имитации и определение этой операции пользователя в качестве действия предусматривает:
считывание спецификации интерфейса из правила имитации для выполнения операции пользователя;
генерирование – на основе спецификации интерфейса – запроса пользователя, сконфигурированного с возможностью отображения выполнения операции пользователя в представлении; и
приведение в действие виртуальных роботов для отправки запроса пользователя на сервер, что определяется в качестве действия.
7. Способ по п. 5, в котором приведение в действие виртуальных роботов для выполнения операции пользователя в представлении на основе правила имитации и определение этой операции пользователя в качестве действия предусматривает:
извлечение из предварительно заданной базы данных контекстной информации, записанной виртуальными роботами в процессе имитации поведения пользователя по управлению приложением;
считывание из контекстной информации первой информации о среде, от которой зависит услуга, на основе правила имитации;
определение компонента, от которого зависит услуга, на основе правила имитации;
вызов компонента для генерирования целевой информации, применимой к первой информации о среде; и
приведение в действие виртуальных роботов для размещения целевой информации в представлении, что определяется в качестве действия.
8. Способ по п. 5, в котором приведение в действие виртуальных роботов для выполнения операции пользователя в представлении на основе правила имитации и определение этой операции пользователя в качестве действия предусматривает:
извлечение из предварительно заданной базы данных контекстной информации, записанной виртуальными роботами в процессе имитации поведения пользователя по управлению приложением;
считывание из контекстной информации второй информации о среде, которая ограничивает услугу, исходя из правила имитации;
определение условий, которые ограничивают услугу, исходя из правила имитации;
разрешение приведения в действие виртуальных роботов для выполнения операции пользователя в представлении на основе правила имитации, если вторая информация о среде не удовлетворяет условиям, что определяется как действие; и
блокирование приведения в действие виртуальных роботов для выполнения операции пользователя в представлении на основе правила имитации, если вторая информация о среде удовлетворяет условиям, что определяется как действие.
9. Способ по п. 1, в котором приведение в действие виртуальных роботов в каждом цикле для выполнения в представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определение этой операции пользователя в качестве действия предусматривает:
определение в каждом цикле того факта, что операция пользователя, сконфигурированная с возможностью запуска услуги, является нулевой в случае, если услугой служит режим ожидания; и
перевод виртуальных роботов в состояние ожидания в представлении по факту выполнения операции пользователя, что определяется в качестве действия.
10. Способ по любому из пп. 1-9, дополнительно предусматривающий:
получение контекстной информации, отображаемой в представлении, в случае завершения операции пользователя; и
сохранение контекстной информации в предварительно заданной базе данных и установление ассоциативного соотношения между виртуальными роботами и контекстной информацией в базе данных.
11. Способ по любому из пп. 1-9, в котором конечный автомат дополнительно содержит переход, отображающий изменение состояния, причем этот способ дополнительно предусматривает:
определение представления, в котором находятся виртуальные роботы в приложении, в случае завершения операции пользователя; и
обновление состояния на основе представления после выполнения операции пользователя, что определяется в качестве перехода.
12. Устройство для управления виртуальными роботами, содержащее:
модуль запуска виртуальных роботов, выполненный с возможностью запуска множества виртуальных роботов, созданных с использованием конечного автомата, причем виртуальные роботы выполнены с возможностью имитации поведения пользователя по управлению приложением во множестве циклов, а конечный автомат предусматривает наличие множества состояний, множества событий, происходящих во множестве состояний, и действий, запускаемых множеством событий;
модуль определения состояний, выполненный с возможностью определения – в каждом цикле – представления, в котором находятся виртуальные роботы в приложении, и определения данного представления в качестве состояния;
модуль выбора событий, выполненный с возможностью имитации – в каждом цикле – поведения пользователя по выбору услуги в представлении и определения выбранной услуги в качестве события; и
модуль выполнения действий, выполненный с возможностью приведения в действие виртуальных роботов в каждом цикле с целью выполнения в конкретном представлении операции пользователя, сконфигурированной с возможностью запуска услуги, и определения этой операции пользователя в качестве действия;
при этом модуль выбора событий содержит:
модуль загрузки первого файла, выполненный с возможностью загрузки в каждом цикле первого файла, сконфигурированного для представления;
модуль считывания правила скрининга, выполненный с возможностью считывания из первого файла услуг, отображаемых в представлении, и правила скрининга; и
модуль скрининга правила, выполненный с возможностью имитации поведения пользователя по выбору одной из услуг на основе правила скрининга и определения выбранной услуги в качестве события;
при этом модуль скрининга правила содержит:
модуль считывания вероятности, выполненный с возможностью считывания из правила скрининга вероятности выбора каждой из услуг для пользователя; и
модуль выбора по вероятности, выполненный с возможностью выбора одной из услуг для виртуальных роботов на основе вероятности, что определяется в качестве события.
13. Электронное устройство для управления виртуальными роботами, содержащее:
по меньшей мере один процессор; и
память, находящуюся в коммуникационном соединении по меньшей мере с одним процессором; при этом:
в памяти хранится одна или несколько компьютерных программ, выполняемых по меньшей мере одним процессором, причем одна или несколько компьютерных программ при их выполнении по меньшей мере одним процессором инициируют реализацию по меньшей мере одним процессором способа управления виртуальными роботами по любому из пп. 1-11.
14. Энергонезависимый машиночитаемый носитель данных для управления виртуальными роботами, причем на энергонезависимом машиночитаемом носителе данных хранится одна или несколько компьютерных программ, причем одна или несколько компьютерных программ при их выполнении процессором инициируют выполнение этим процессором способа управления виртуальными роботами по любому из пп. 1-11.
CN 111045931 A, 21.04.2020 | |||
CN 107197384 B, 02.08.2019 | |||
CN 110871813 A, 10.03.2020 | |||
US 20190235843 A1, 01.08.2019 | |||
СПОСОБ УПРАВЛЕНИЯ ДИАЛОГОМ И СИСТЕМА ПОНИМАНИЯ ЕСТЕСТВЕННОГО ЯЗЫКА В ПЛАТФОРМЕ ВИРТУАЛЬНЫХ АССИСТЕНТОВ | 2020 |
|
RU2759090C1 |
Авторы
Даты
2025-04-30—Публикация
2023-05-16—Подача