Перейти к основному содержимому

Управление платформой

Создание pods (Требует админского токена авторизации)

Читает содержимое config.yaml и создает автоматический compose файл

curl -X 'POST' 'http://localhost:8080/create-pods/'

Deploy Pods (Требует админского токена авторизации)

Читает содержимое config.yaml и отправляет запросы на развертывание моделей

curl -X 'POST' 'http://localhost:8080/deploy-pods/'

Запуск автотестов (Требует пользовательского токена авторизации)

В зависимости от развернутых моделей запускает набор автотестов

curl -X 'POST' 'http://localhost:8080/test/'

Запуск Performance тестов (Требует пользовательского токена авторизации)

GET /v1/performance/

Получить информацию о запущенном тесте (если есть) или указание о том что тест завершен и результат сохранен.

Пример:

curl -X 'GET' 'http://localhost:8080/v1/performance/?pod_id=0'

Схема ответа если тест в процессе:

{"model":"Compressa-LLM","job":{"id":"b83cb091-5acd-4254-84b5-e1141ec01711","name":"performance TEST","status":"RUNNING","started_at":"2025-08-03T10:07:30.818815","exception_details":null,"retry":0},"message":null}

Схема ответа если тест завершен

{"model":"Compressa-LLM","job":{"id":"b83cb091-5acd-4254-84b5-e1141ec01711","name":"performance TEST","status":"FINISHED","started_at":"2025-08-03T10:07:30.818815","exception_details":null,"retry":0},"message":"Results are available in /app/resources/performance_results"}

POST /v1/performance/

Запуск теста. В запросе передаются параметры теста, такие как число примеров, число потоков, формат формирования отчетов.

Пример

import requests


response = requests.post(
url="http://localhost:8080/v1/performance",
headers={
"accept": "application/json",
"Content-Type": "application/json"
},
json={
"pod_id": "0",
"payload": {
"report_mode": "pdf",
"num_tasks": 500,
"num_runners": 10,
"generate_prompts": False,
"num_prompts": 0,
"prompt_length": 0,
"max_tokens": 1000,
"report_file": "experiment",
"experiment_name": "Perfomance Test"
}
}
)

Схема ответа:

{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"status": "RUNNING",
"started_at": "2024-03-21T10:10:07.521Z"
}

По окончании тестирования отчеты сохраняются в выбранном формате (pdf, md или csv) в смонтированную ранее папку RESOURCES_PATH

POST /v1/performance/interrupt/

Прерывание запущенного теста.

Пример:

curl -X 'POST' \
'http://localhost:8080/v1/performance/interrupt/?pod_id=0' \
-H 'accept: application/json' \
-d ''

Схема ответа:

{"id":"6be69577-ebe8-4062-a5cb-ad8085c11393","name":"performance TEST","status":"INTERRUPTED","started_at":"2025-08-03T10:18:00.368896","exception_details":null,"retry":0}

Запуск тестов качества (Требует пользовательского токена авторизации)

GET /v1/metrics/

GET /v1/metrics/status

Получить информацию о запущенном тесте или результат теста если тест завершен.

Пример:

curl -X 'GET' \
'http://localhost:8080/v1/metrics/'

Схема ответа если тест в процессе:

{"model":"Compressa-LLM","message":null,"job":{"id":"26908ef2-60b4-4211-9e7f-3a649c200419","name":"QUALITY TEST","status":"RUNNING","started_at":"2025-08-03T10:30:18.573467","exception_details":null,"retry":0}}

Схема ответа если тест завершен

{"model":"Compressa-LLM","job":{"id":"b83cb091-5acd-4254-84b5-e1141ec01711","name":"observability TEST","status":"FINISHED","started_at":"2025-08-03T10:07:30.818815","exception_details":null,"retry":0},"message":"Results are available in /app/resources/quality_tests"}

POST /v1/metrics/

Запуск теста. В запросе передаются параметры теста, такие как датасет (стандартный или пользовательский) и число случайно выбранных примеров (по умолчанию - 10, если указать -1 - все)

Запрос для стандартного датасета

curl -X 'POST' 'http://localhost:8080/v1/metrics/?dataset=medical&num_examples=5'

Список доступных стандартных датасетов

Запрос для пользовательского датасета

import requests

url = 'http://localhost:8080/v1/metrics/?dataset=custom'
payload = {
"question": [
"Что важно при сварке титана и его сплавов?",
"Для чего нужна борная кислота в теплоносителе реактора?",
"В каком году затонула АПЛ Комсомолец?",
],
"answers": [
"Обеспечить инертную атмосферу в зоне сварки, не допустить окисления титана",
"Борная кислота используется как жидкий поглотитель для управления цепной реакцией деления",
"В 1989 году",
]
}

response = requests.post(
url,
headers={
"accept": "application/json",
"Content-Type": "application/json"
},
json=payload
)

Схема ответа:

{
{"id":"ce79eaee-4541-4341-ac21-b79d9bb7f9bb","name":"QUALITY TEST","status":"RUNNING","started_at":"2025-08-03T10:34:09.113636","exception_details":null,"retry":0}
}

По окончании тестирования отчеты сохраняются в pdf, csv и json формате в смонтированную ранее папку RESOURCES_PATH

POST /v1/metrics/interrupt/

Прерывание запущенного теста.

Пример:

curl -X 'POST' \
'http://localhost:8080/v1/metrics/interrupt/' \
-H 'accept: application/json' \
-d ''

Схема ответа:

{"id":"ce79eaee-4541-4341-ac21-b79d9bb7f9bb","name":"QUALITY TEST","status":"INTERRUPTED","started_at":"2025-08-03T10:34:09.113636","exception_details":null,"retry":0}