Как использовать API AnyLogic Cloud на Python

Моделирование в горнодобыче

Мы уже рассказывали про API AnyLogic Cloud на JavaScript, а теперь выпустили API AnyLogic Cloud на Python. Python – популярный язык для задач по обработке данных и для машинного обучения. Его можно использовать и для запуска моделей в AnyLogic: для этого нужно подключить к программе библиотеку Pypeline (видео на англ. о том, как это сделать).

API “Клауда” на Python доступен только пользователям коммерческих версий сервиса, но оценить его возможности на демо-модели может каждый. Сегодня мы покажем, как это сделать. Для этого вам понадобится:

  • тестовый ключ для подключения к хосту, с которого загружается API-клиент – e05a6efa-ea5f-4adf-b090-ae0ca7d16c20;
  • установленный менеджер пакетов pip;
  • умение работать в консоли: все действия, включая ввод и вывод данных, выполняются там.

В наших примерах мы будем использовать модель Service System Demo. Она описывает процесс обслуживания: позволяет задать вместимость (Server capacity) и проанализировать средний размер очереди на обслуживание (параметр Mean queue size) и загрузку ресурсов (параметр Server utilization). Модель находится на нашем тестовом аккаунте, именно к ней вы будете подключаться по API. Если готовы, давайте начнем.


Сначала запустим модель в “Клауде” вручную.

Для этого перейдите на страницу модели Service Systems Demo в AnyLogic Cloud. Модель автоматически запускается в режиме виртуального времени. В базовом сценарии вместимость очереди равна 3, при этом загрузка ресурсов составит 0.83, а средний размер очереди на обслуживание будет равен 2.54.

Теперь эту же модель, но с другим значением параметра запустим с помощью API. Ниже мы даем команды для консоли и их описание.

  • Скачайте и установите клиентcкую библиотеку AnyLogic Cloud для Python с помощью менеджера пакетов pip

pip install https://cloud.anylogic.com/files/api-8.5.0/clients/anylogiccloudclient-8.5.0-py3-none-any.whl

  • Выберите эту библиотеку для дальнейшей работы

from anylogiccloudclient.client.cloud_client import CloudClient

  • Создайте объект CloudClient с API-ключом

client = CloudClient("e05a6efa-ea5f-4adf-b090-ae0ca7d16c20")

  • Выберите последнюю версию модели Service System Demo

version = client.get_latest_model_version("Service System Demo")

  • Cоздайте объект Inputs с входными данными

inputs = client.create_inputs_from_experiment(version, "Baseline")

  • Задайте значение вместимости (параметр Server capacity) = 8

inputs.set_input("Server capacity", 8)

  • Создайте объект Simulation с входными данными

simulation = client.create_simulation(inputs)

  • Получите результаты запуска модели

outputs = simulation.get_outputs_and_run_if_absent()

  • Выведите на экран результаты запуска

print("Raw outputs = " + str(outputs.get_raw_outputs()))

print("For Server Capacity = " + str(inputs.get_input("Server capacity")))

print("Mean queue size = " + str(outputs.value("Mean queue size|Mean queue size")))

print("Server utilization = " + str(outputs.value("Utilization|Server utilization")))

 

В результате вы увидите, что, увеличив значения вместимости очереди с 3 до 8, мы снизили средний размер очереди на обслуживание (с 2.54 до 1 человека) и среднюю загрузку ресурсов (с 0.83 до 0.31).


Теперь вы знаете, как запускать облачные модели удаленно с помощью API на Python. Попробуйте применить знания на практике и запустите еще две демо-модели по нашим подсказкам.

Кроме Python, у “Клауда” есть API на Java и JavaScript. Как они работают – показываем на примерах в справочном руководстве.

Похожие материалы