Мы уже рассказывали про 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. Попробуйте применить знания на практике и запустите еще две демо-модели по нашим подсказкам.
- Модель Transporters Moving in Free Space
- Модель Bass Diffusion
Кроме Python, у “Клауда” есть API на Java и JavaScript. Как они работают – показываем на примерах в справочном руководстве.