UPS. Описание API: различия между версиями
Материал из Флора AI
Нет описания правки |
Нет описания правки |
||
| Строка 65: | Строка 65: | ||
!Пояснения | !Пояснения | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/get/addresses/{servicetype} | <small>/get/addresses/{servicetype}</small> | ||
|Предназначен для вывода информации о сервера, обслуживающих данный сервис, а также настроеных параметров обращения к данным серверам | |<small>Предназначен для вывода информации о сервера, обслуживающих данный сервис, а также настроеных параметров обращения к данным серверам</small> | ||
| | | | ||
* '''servicetype''' - тип сервиса | * <small>'''servicetype''' - тип сервиса</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code> "trainer": "<nowiki>http://127.0.0.1:6181</nowiki>",</code> | <code><small> "trainer": "<nowiki>http://127.0.0.1:6181</nowiki>",</small></code> | ||
<code> "cluster": [</code> | <code><small> "cluster": [</small></code> | ||
<code> "<nowiki>http://127.0.0.1:6181</nowiki>"</code> | <code><small> "<nowiki>http://127.0.0.1:6181</nowiki>"</small></code> | ||
<code> ],</code> | <code><small> ],</small></code> | ||
<code> "timers": {</code> | <code><small> "timers": {</small></code> | ||
<code> "connect": 0.5,</code> | <code><small> "connect": 0.5,</small></code> | ||
<code> "read": 1,</code> | <code><small> "read": 1,</small></code> | ||
<code> "failed": 600,</code> | <code><small> "failed": 600,</small></code> | ||
<code> "install": 60,</code> | <code><small> "install": 60,</small></code> | ||
<code> "info": 3</code> | <code><small> "info": 3</small></code> | ||
<code> },</code> | <code><small> },</small></code> | ||
<code> "counter": 0,</code> | <code><small> "counter": 0,</small></code> | ||
<code> "current": 0,</code> | <code><small> "current": 0,</small></code> | ||
<code> "fail": {</code> | <code><small> "fail": {</small></code> | ||
<code>"<nowiki>http://127.0.0.1:6181</nowiki>":1686295678</code> | <code><small>"<nowiki>http://127.0.0.1:6181</nowiki>":1686295678</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| | | | ||
* '''trainer''' - сервер обучения | * <small>'''trainer''' - сервер обучения</small> | ||
* '''cluster''' - рабочие серверы | * <small>'''cluster''' - рабочие серверы</small> | ||
* '''connect''' - время на подключение | * <small>'''connect''' - время на подключение</small> | ||
* '''read''' - время на ответ | * <small>'''read''' - время на ответ</small> | ||
* '''failed''' - время пребывание в сбойных | * <small>'''failed''' - время пребывание в сбойных</small> | ||
* '''install''' - время на установку модели | * <small>'''install''' - время на установку модели</small> | ||
* '''info''' - время на получение информации о модели | * <small>'''info''' - время на получение информации о модели</small> | ||
* '''counter''' - счетчик запросов | * <small>'''counter''' - счетчик запросов</small> | ||
* '''current''' - индекс последнего опрошенного cluster-сервера | * <small>'''current''' - индекс последнего опрошенного cluster-сервера</small> | ||
* '''fail''' - массив сбойных серверов со временем постановки в сбой | * <small>'''fail''' - массив сбойных серверов со временем постановки в сбой</small> | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/get/models/{servicetype}/{servertype} | <small>/get/models/{servicetype}/{servertype}</small> | ||
|Предназначен для вывода информации о моделях указанного сервиса на каждом сервере указанного типа | |<small>Предназначен для вывода информации о моделях указанного сервиса на каждом сервере указанного типа</small> | ||
| | | | ||
* '''servicetype''' - тип сервиса | * <small>'''servicetype''' - тип сервиса</small> | ||
* '''servertype''' - тип серверов | * <small>'''servertype''' - тип серверов</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code> "<nowiki>http://127.0.0.1:6181</nowiki>": [</code> | <code><small> "<nowiki>http://127.0.0.1:6181</nowiki>": [</small></code> | ||
<code> "model1",</code> | <code><small> "model1",</small></code> | ||
<code> ...</code> | <code><small> ...</small></code> | ||
<code> "modelN"</code> | <code><small> "modelN"</small></code> | ||
<code> ],</code> | <code><small> ],</small></code> | ||
<code> ...</code> | <code><small> ...</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
|Вывод представляет собой массив url серверов, для каждого из которых указан список моделей | |<small>Вывод представляет собой массив url серверов, для каждого из которых указан список моделей</small> | ||
|} | |} | ||
| Строка 149: | Строка 149: | ||
!Пояснения | !Пояснения | ||
|- | |- | ||
|POST | |<small>POST</small> | ||
/add/{servicetype}/{model} | <small>/add/{servicetype}/{model}</small> | ||
|Предназначен для создания пустой модели в указанном сервисе. | |<small>Предназначен для создания пустой модели в указанном сервисе.</small> | ||
Доступно для следующих сервисов: smc, see, spr. | <small>Доступно для следующих сервисов: smc, see, spr.</small> | ||
| | | | ||
* '''servicetype''' - тип сервиса | * <small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code>"error":0,</code> | <code><small>"error":0,</small></code> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|POST | |<small>POST</small> | ||
/install/{servicetype}/{model} | <small>/install/{servicetype}/{model}</small> | ||
|Предназначен для установки импортированной или обученной модели на рабочих серверах. | |<small>Предназначен для установки импортированной или обученной модели на рабочих серверах.</small> | ||
Доступно для следующих сервисов: smc, see, spr. | <small>Доступно для следующих сервисов: smc, see, spr.</small> | ||
| | | | ||
* '''servicetype''' - тип сервиса | * <small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code>"error":0,</code> | <code><small>"error":0,</small></code> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|POST | |<small>POST</small> | ||
/apply/{servicetype}/{model} | <small>/apply/{servicetype}/{model}</small> | ||
|Предназначен для применения установленной на рабочих серверах модели. После применения модель становится доступна для штатного режима работы. | |<small>Предназначен для применения установленной на рабочих серверах модели. После применения модель становится доступна для штатного режима работы.</small> | ||
Доступно для следующих сервисов: smc, see, spr. | <small>Доступно для следующих сервисов: smc, see, spr.</small> | ||
| | | | ||
* '''servicetype''' - тип сервиса | * <small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code>"error":0,</code> | <code><small>"error":0,</small></code> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|POST | |<small>POST</small> | ||
/restore/{servicetype}/{model} | <small>/restore/{servicetype}/{model}</small> | ||
|Откат модели. Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так: | |<small>Откат модели. Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:</small> | ||
* '''<small>current -> future</small>''' | |||
* '''current -> future''' | * '''<small>previous -> current</small>''' | ||
* '''previous -> current''' | * '''<small>null -> previous</small>''' | ||
* '''null -> previous''' | |||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|<code>{</code><code>"error":0,</code> | |<small><code>{</code><code>"error":0,</code></small> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|DELETE | |<small>DELETE</small> | ||
/delete/{servicetype}/{model} | <small>/delete/{servicetype}/{model}</small> | ||
|Полностью удаляет модель из системы и со всех управляемых серверов. | |<small>Полностью удаляет модель из системы и со всех управляемых серверов.</small> | ||
Доступно для следующих сервисов: smc, see, spr. | <small>Доступно для следующих сервисов: smc, see, spr.</small> | ||
| | | | ||
* '''servicetype''' - тип сервиса | * <small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code>"error":0,</code> | <code><small>"error":0,</small></code> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/errors/{servicetype}/{model}/{modeltype} | <small>/errors/{servicetype}/{model}/{modeltype}</small> | ||
|Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc | |<small>Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
* '''modeltype''' - тип модели | * <small>'''modeltype''' - тип модели</small> | ||
|<code>[</code> <code>[true, predicted, phrase],</code> | |<small><code>[</code> <code>[true, predicted, phrase],</code></small> | ||
<code>...</code> | <small><code>...</code> | ||
<code>]</code> | <code>]</code></small> | ||
|содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза) | |<small>содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза)</small> | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/export/{servicetype}/{model}/{modeltype} | <small>/export/{servicetype}/{model}/{modeltype}</small> | ||
|Экспортирует модель в виде zip-архива | |<small>Экспортирует модель в виде zip-архива</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
* '''modeltype''' - тип модели | * <small>'''modeltype''' - тип модели</small> | ||
|файл model.zip, где model - название модели | |<small>файл model.zip, где model - название модели</small> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|POST | |<small>POST</small> | ||
/import/{servicetype}/{model} | <small>/import/{servicetype}/{model}</small> | ||
|Импортирует модель в черновик (modeltype=future). | |<small>Импортирует модель в черновик (modeltype=future).</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
* '''zip-model''' - zip с файлами модели | * <small>'''zip-model''' - zip с файлами модели</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code>"error":0,</code> | <code><small>"error":0,</small></code> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/info/{servicetype}/{model} | <small>/info/{servicetype}/{model}</small> | ||
|Получение информации о каждом типе (modeltype) указанной модели. | |<small>Получение информации о каждом типе (modeltype) указанной модели.</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code> "previous": null,</code> | <code><small> "previous": null,</small></code> | ||
<code> "current": {</code> | <code><small> "current": {</small></code> | ||
<code> "status": "trained",</code> | <code><small> "status": "trained",</small></code> | ||
<code> ...</code> | <code><small> ...</small></code> | ||
<code> },</code> | <code><small> },</small></code> | ||
<code> "future": {</code> | <code><small> "future": {</small></code> | ||
<code> "status": "trained",</code> | <code><small> "status": "trained",</small></code> | ||
<code> ...</code> | <code><small> ...</small></code> | ||
<code> }</code> | <code><small> }</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
|Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели, более подробно о которой можно прочитать в руководствах пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]]. | |<small>Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели, более подробно о которой можно прочитать в руководствах пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].</small> | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/info/{servicetype} | <small>/info/{servicetype}</small> | ||
|Получение информации о всех моделях указанного сервиса. Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях. | |<small>Получение информации о всех моделях указанного сервиса. Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях.</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
|<code>{</code> | |<code><small>{</small></code> | ||
<code> "model1": {</code> | <code><small> "model1": {</small></code> | ||
<code> "previous": null,</code> | <code><small> "previous": null,</small></code> | ||
<code> "current": null,</code> | <code><small> "current": null,</small></code> | ||
<code> "future": {</code> | <code><small> "future": {</small></code> | ||
<code> "status": "empty",</code> | <code><small> "status": "empty",</small></code> | ||
<code> ...</code> | <code><small> ...</small></code> | ||
<code> }</code> | <code><small> }</small></code> | ||
<code> },</code> | <code><small> },</small></code> | ||
<code> ...</code> | <code><small> ...</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/log/{servicetype}/{model}/{modeltype} | <small>/log/{servicetype}/{model}/{modeltype}</small> | ||
|Выводит лог обучения и тестирования модели. Доступно для следующих сервисов: smc, see. | |<small>Выводит лог обучения и тестирования модели. Доступно для следующих сервисов: smc, see.</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
* '''modeltype''' - тип модели | * <small>'''modeltype''' - тип модели</small> | ||
|<code>[</code> | |<code><small>[</small></code> | ||
<code> "training",</code> | <code><small> "training",</small></code> | ||
<code> "preparing data",</code> | <code><small> "preparing data",</small></code> | ||
<code> "tokenizing",</code> | <code><small> "tokenizing",</small></code> | ||
<code> ...</code> | <code><small> ...</small></code> | ||
<code>]</code> | <code><small>]</small></code> | ||
| - | | <small>-</small> | ||
|- | |- | ||
|GET | |<small>GET</small> | ||
/handler/{servicetype}/{model} | <small>/handler/{servicetype}/{model}</small> | ||
|Получение файла-постобработчика из модели типа future. | |<small>Получение файла-постобработчика из модели типа future.</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|Файл handler.py | |<small>Файл handler.py</small> | ||
|более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]]. | |<small>более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].</small> | ||
|- | |- | ||
|POST | |<small>POST</small> | ||
/handler/{servicetype}/{model} | <small>/handler/{servicetype}/{model}</small> | ||
|Отправка файла-постобработчика в указанную модель типа future. Становится активным сразу после успешной отправки. | |<small>Отправка файла-постобработчика в указанную модель типа future. Становится активным сразу после успешной отправки.</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
* '''handler''' - файл, содержащий программный код python постобработчика | * <small>'''handler''' - файл, содержащий программный код python постобработчика</small> | ||
|<code>{</code><code>"error":0,</code> | |<small><code>{</code><code>"error":0,</code></small> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
|более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]]. | |<small>более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].</small> | ||
|- | |- | ||
|DELETE | |<small>DELETE</small> | ||
/handler/{servicetype}/{model} | <small>/handler/{servicetype}/{model}</small> | ||
|Удаление постобработчика из модели типа future. | |<small>Удаление постобработчика из модели типа future.</small> | ||
| | | | ||
*'''servicetype''' - тип сервиса | *<small>'''servicetype''' - тип сервиса</small> | ||
* '''model''' - название модели | * <small>'''model''' - название модели</small> | ||
|<code>{</code><code>"error":0,</code> | |<small><code>{</code><code>"error":0,</code></small> | ||
<code>"message":"success"</code> | <code><small>"message":"success"</small></code> | ||
<code>}</code> | <code><small>}</small></code> | ||
|более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]]. | |<small>более подробно об обработчике см. руководства пользователя [[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].</small> | ||
|} | |} | ||
Версия от 12:32, 9 июня 2023
Описание часто используемых параметров
| Параметр | Тип | Описание |
|---|---|---|
| servicetype | запрос | Тип сервиса. Возможные значения: spr, smc, see, sbs, tts |
| servertype | запрос | Тип группы серверов. Возможные значения: trainer (серверы обучения), cluster (рабочие серверы) |
| model | запрос | Название модели |
| modeltype | запрос | Тип модели. Возможные значения: future - планируемая/черновик, current - текущая/рабочая, previous - архивная. |
| error | ответ | Флаг ошибки |
| message | ответ | Информационное сообщение |
/lang: методы мультиязычности
| Метод | Описание | Входные параметры | Ответ | Пояснения |
|---|---|---|---|---|
| GET
/ |
Предназначен для вывода информации о переводе элементов интерфейса на текущий язык | - | {
|
- |
/server: получение информации о серверах
| Метод | Описание | Входные параметры | Ответ | Пояснения |
|---|---|---|---|---|
| GET
/get/addresses/{servicetype} |
Предназначен для вывода информации о сервера, обслуживающих данный сервис, а также настроеных параметров обращения к данным серверам |
|
{
|
|
| GET
/get/models/{servicetype}/{servertype} |
Предназначен для вывода информации о моделях указанного сервиса на каждом сервере указанного типа |
|
{
|
Вывод представляет собой массив url серверов, для каждого из которых указан список моделей |
/model: методы работы с моделями
| Метод | Описание | Входные параметры | Ответ | Пояснения |
|---|---|---|---|---|
| POST
/add/{servicetype}/{model} |
Предназначен для создания пустой модели в указанном сервисе.
Доступно для следующих сервисов: smc, see, spr. |
|
{
|
- |
| POST
/install/{servicetype}/{model} |
Предназначен для установки импортированной или обученной модели на рабочих серверах.
Доступно для следующих сервисов: smc, see, spr. |
|
{
|
- |
| POST
/apply/{servicetype}/{model} |
Предназначен для применения установленной на рабочих серверах модели. После применения модель становится доступна для штатного режима работы.
Доступно для следующих сервисов: smc, see, spr. |
|
{
|
- |
| POST
/restore/{servicetype}/{model} |
Откат модели. Делает текущую рабочую модель черновиком (future), рабочие серверы после выполнения данного метода продолжают уже с возвращенной моделью. Схематично действия над modeltype в результате выполнения данного метода можно представить так:
|
|
{"error":0,
|
- |
| DELETE
/delete/{servicetype}/{model} |
Полностью удаляет модель из системы и со всех управляемых серверов.
Доступно для следующих сервисов: smc, see, spr. |
|
{
|
- |
| GET
/errors/{servicetype}/{model}/{modeltype} |
Запрос на получение списка ошибок модели после тестирования. Если тестирования не было, то содержит ошибки проверки на обучающем корпусе. Доступен для сервисов see и smc |
|
[ [true, predicted, phrase],
|
содержит список вложенных списков. В каждом три значения: правильное значение, предсказанное моделью значение и начальные данные (фраза) |
| GET
/export/{servicetype}/{model}/{modeltype} |
Экспортирует модель в виде zip-архива |
|
файл model.zip, где model - название модели | - |
| POST
/import/{servicetype}/{model} |
Импортирует модель в черновик (modeltype=future). |
|
{
|
- |
| GET
/info/{servicetype}/{model} |
Получение информации о каждом типе (modeltype) указанной модели. |
|
{
|
Итоговый массив содержит переменные типа modeltype, в каждой из который содержится информация о модели, более подробно о которой можно прочитать в руководствах пользователя smc и see. |
| GET
/info/{servicetype} |
Получение информации о всех моделях указанного сервиса. Аналогичен методу GET /info/{servicetype}/{model}, но выводит информацию обо всех моделях. |
|
{
|
- |
| GET
/log/{servicetype}/{model}/{modeltype} |
Выводит лог обучения и тестирования модели. Доступно для следующих сервисов: smc, see. |
|
[
|
- |
| GET
/handler/{servicetype}/{model} |
Получение файла-постобработчика из модели типа future. |
|
Файл handler.py | более подробно об обработчике см. руководства пользователя smc и see. |
| POST
/handler/{servicetype}/{model} |
Отправка файла-постобработчика в указанную модель типа future. Становится активным сразу после успешной отправки. |
|
{"error":0,
|
более подробно об обработчике см. руководства пользователя smc и see. |
| DELETE
/handler/{servicetype}/{model} |
Удаление постобработчика из модели типа future. |
|
{"error":0,
|
более подробно об обработчике см. руководства пользователя smc и see. |