Действия

SEE. Руководство пользователя: различия между версиями

Материал из Флора AI

Нет описания правки
 
(не показано 14 промежуточных версий 3 участников)
Строка 5: Строка 5:


===== '''Термины и определения''' =====
===== '''Термины и определения''' =====
Simple Entity Extractor (SEE) - сервис извлечения именованных сущностей.
Simple Entity Extractor (SEE) сервис извлечения именованных сущностей.


Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.
Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.
Строка 11: Строка 11:
Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.
Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.


Swagger UI – интерактивная  веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису SEE.
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SEE.
 




Строка 19: Строка 20:
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок <code>"accept: application/json"</code>
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок <code>"accept: application/json"</code>


Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки. Модель может содержать постобработчик. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.
Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки.  
 
Модель может содержать '''постобработчик'''. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.


Пример пустой функции:
Пример пустой функции, которая просто повторяет на выходе результат:


<code>def handler(entities=[],text=""):</code>
<code>def handler(entities=[],text=""):</code>
Строка 28: Строка 31:


На вход подается результат работы модели, а также начальный текст.
На вход подается результат работы модели, а также начальный текст.
{| class="wikitable" style="width: 110%"
 
|+
 
!style="color:blue;width: 15%"|'''GET/see/'''
{| class="wikitable" style="width: 110%"
!colspan="3" style="width: 85%"|Вывод списка моделей
|+''Описание методов API''
! style="color:blue;width: 15%" |'''GET/see/'''
! colspan="3" style="width: 85%" |<small>Вывод списка моделей.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |<small>Входные параметры отсутствуют</small>
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |<small><code>{ models: [model1,...,modelN] }</code></small>
|-
|-
!style="color:blue;width: 15%"|'''GET/see/confusion/{id}/{type}'''
! style="color:blue;width: 15%" |'''GET/see/confusion/{id}/{type}'''
!colspan="3" style="width: 85%"|Получение изображения матрицы ошибок
! colspan="3" style="width: 85%" |<small>Получение изображения матрицы ошибок.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* <small>'''id''' — идентификатор модели</small>
* <small>'''type''' — тип данных для построения матрицы.</small>
| colspan="2" style="width: 50%" |<small>Возвращает PNG-изображение с матрицей ошибок.</small>
|-
|-
!style="color:blue;width: 15%"|'''DELETE/see/data/{id}'''
! style="color:red;width: 15%" |'''DELETE/see/data/{id}'''
!colspan="3" style="width: 85%"|text
! colspan="3" style="width: 85%" |<small>Удаление модели.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* <small>'''id''' — идентификатор модели.</small>
| colspan="2" style="width: 50%" |<small><code>{ error: INT, message: DESCRIPTION }</code></small>
|-
|-
!style="color:blue;width: 15%"|'''GET/see/data/{id}'''
! style="color:blue;width: 15%" |'''GET/see/data/{id}'''
!colspan="3" style="width: 85%"|text
! colspan="3" style="width: 85%" |<small>Получение архива модели.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* <small>'''id''' — идентификатор модели.</small>
| colspan="2" style="width: 50%" |<small>Возвращает zip-файл с моделью.</small>
|-
|-
!style="color:blue;width: 15%"|'''POST/see/data/{id}'''
! style="color:green;width: 15%" |'''POST/see/data/{id}'''
!colspan="3" style="width: 85%"|text
! colspan="3" style="width: 85%" |<small>Добавление модели.</small> <small>Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* <small>'''id''' — идентификатор модели;</small>
* <small>'''zip-model''' — zip-архив с файлами модели; или</small>
* <small>'''from-existing-model''' — название модели, которое должно быть переименовано в id; или</small>
* <small>'''csv''' — текстовый файл для обучения модели, со строками СУЩНОСТЬ<TAB>ФРАЗА;</small>
* <small>'''noise''' — уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 2.</small>
| colspan="2" style="width: 50%" |<small><code>{ error: INT, message: DESCRIPTION }</code></small>
|-
|-
!style="color:blue;width: 15%"|'''GET/see/entities/{id}'''
! style="color:blue;width: 15%" |'''GET/see/entities/{id}'''
!colspan="3" style="width: 85%"|text
! colspan="3" style="width: 85%" |<small>Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* <small>id — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.</small>
* <small>text — текст для анализа.</small>
* <small>similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.</small>
| colspan="2" style="width: 50%" |<small><code>{</code></small>  <small><code>ID-модели: [</code></small>
 
<small><code>{</code></small>
 
<small><code>position: 0, # позиция слова начала фрагмента, определяющего сущность</code></small>
 
<small><code>confidence: 1, #вероятность правильного определения сущности</code></small>
 
<small><code>text: текст сущности,</code></small>
 
<small><code>calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели</code></small>
 
<small><code>}, {...}</code></small>
 
<small><code>]</code></small>
 
<small><code>}</code></small>
|-
|-
!style="color:blue;width: 15%"|'''GET/see/errors/{id}'''
! style="color:blue;width: 15%" |'''GET/see/errors/{id}'''
!colspan="3" style="width: 85%"|text
! colspan="3" style="width: 85%" |<small>Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось — ошибки после обучения.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* '''<small>id</small>''' <small>— идентификатор модели.</small>
| colspan="2" style="width: 50%" |<small>текстовый файл со строками вида:</small>
<small>ИСТИНА<TAB>ОПРЕДЕЛЕНО<TAB>ФРАЗА</small>
|-
|-
!style="color:blue;width: 15%"|'''DELETE/see/handler/{id}'''
! style="color:red;width: 15%" |'''DELETE/see/handler/{id}'''
!colspan="3" style="width: 85%"|text
! colspan="3" style="width: 85%" |<small>Удаление постобработчика.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* '''<small>id</small>''' <small>— идентификатор модели.</small>
| colspan="2" style="width: 50%" |<small><code>{ error: INT, message: DESCRIPTION }</code></small>
|-
|-
!style="color:blue;width: 15%"|'''GET'''
! style="color:blue;width: 15%" |'''GET/see/handler/{id}'''
!colspan="3" style="width: 85%"|text
! colspan="3" style="width: 85%" |<small>Получение файла-постобработчика.</small>
|-
|-
|colspan="2" style="width: 50%"|text
| colspan="2" style="width: 50%" |
|colspan="2" style="width: 50%"|text
* '''<small>id</small>''' <small>— идентификатор модели.</small>
|}
| colspan="2" style="width: 50%" |<small>Файл handler.py</small>
{| class="wikitable"
|+
!Метод
!Тип
!Описание
!Входные параметры
!Ответ
|-
|-
|/see/
! style="color:green;width: 15%" |'''POST/see/handler/{id}'''
|GET
! colspan="3" style="width: 85%" |<small>Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.</small>  
|Вывод списка моделей
| -
|<code>{ models: [model1,...,modelN] }</code>
|-
|-
|/see/confusion/{id}/{type}
| colspan="2" style="width: 50%" |
|GET
* '''<small>id</small>''' <small>— идентификатор модели.</small>
|Получение изображения матрицы ошибок
| colspan="2" style="width: 50%" |<small><code>{ error: INT, message: DESCRIPTION }</code></small>
|'''id''' - идентификатор модели
'''type''' - тип данных для построения матрицы, только train.
|Возвращает PNG изображение с матрицей ошибок
|-
|-
|/see/data/{id}
! style="color:blue;width: 15%" |'''GET/see/info/{id}'''
|DELETE
! colspan="3" style="width: 85%" |<small>Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.</small>
|Удаление модели
|'''id''' - идентификатор модели
|<code>{ error: INT, message: DESCRIPTION }</code>
|-
|-
|/see/data/{id}
| colspan="2" style="width: 50%" |
|POST
* '''<small>id</small>''' <small>— идентификатор модели.</small>
|Добавление модели. Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}. Модель может быть добавлена следующими способами:
| colspan="2" style="width: 50%" |
 
* <small>id идентификатор</small>
* файл архива модели
* <small>status — статус</small>
* переименование существующей модели если указана переменная '''from-existing-model'''. В данном случае происходит переименование модели на сервере '''from-existing-model -> id'''
* <small>classes — список сущностей в модели</small>
* создание новой модели из обучающего корпуса, текстового файла со строками СУЩНОСТЬ<TAB>ФРАЗА в переменной '''csv'''
* <small>entityMaxWords — максимальная длина сущности в корпусе обучения</small>
|
* <small>sequenceLength — максимальная длина последовательности при обучении</small>
* '''id''' - идентификатор модели
* <small>noiseLevel — уровень шума, использованный при обучении модели</small>
* '''zip-model''' - zip-архив с файлами модели
* <small>trainCorpusName — название файла, использованного при обучении</small>
* '''from-existing-model''' - название модели, которое должно быть переименовано в '''id'''
* <small>trainAccuracy — точность обучения и тестирования</small>
* '''csv-file''' - текстовый файл для обучения модели
* <small>testCorpusLength — размер тестового корпуса</small>
* '''noise''' - уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 2.
* <small>trainCorpusLength — размер обучающего корпуса</small>
|<code>{ error: INT, message: DESCRIPTION }</code>
* <small>trainConfusionMatrix — матрица ошибок обучения</small>
* <small>testConfusionMatrix — матрица ошибок тестирования.</small>
|-
|-
|/see/data/{id}
! style="color:blue;width: 15%" |'''GET/see/log/{id}'''
|GET
! colspan="3" style="width: 85%" |<small>Лог всех действий во время обучения/тестирования модели.</small>
|Получение архива модели
|'''id''' - идентификатор модели
|<code>ZIP-файл с моделью, либо { error: 1, message: DESCRIPTION }</code>
|-
|-
|/see/entities/{id}
| colspan="2" style="width: 50%" |
|GET
* '''<small>id</small>''' <small>— идентификатор модели.</small>
|Поиск сущностей
| colspan="2" style="width: 50%" |<small>Лог содержится в переменной log в виде списка.</small>
|
* '''id''' - идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями
* '''text''' - текст для анализа
* '''similarity''' - порог похожести найденной сущности на эталонные, %. По умолчанию 70.
|Вернется массив со всеми моделями, в которых были найдены сущности.(модели для поиска указываются в поле id) Каждая переменная с названием модели будет содержать список всех найденных сущностей.
<code>{</code><code>ID-модели: [</code>
 
<code>{</code>
 
<code>position: 0,</code>
 
<code>confidence: 1,</code>


<code>text: текст сущности,</code>
<small><code>{</code></small>


<code>calculated: vaktsinatsiya</code>
<small><code>  "log": [</code></small>


<code>}, {...}</code>
<small><code>    "training",</code></small>


<code>]</code>
<small><code>    "macroEpoch: 1, microEpoch: 1 loss: 1.23790...",</code></small>


<code>}</code>
<small><code>    ...</code></small>
 
'''position''' - позиция слова начала фрагмента, определяющего сущность
 
'''confidence''' - вероятность правильного определения сущности
 
'''calculated''' - поле, содержащее значение сущности либо код сущности, использованный при обучении модели
|-
|/see/errors/{id}
|GET
|Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось - ошибки после обучения.
|'''id''' - идентификатор модели
|текстовый файл со строками вида:
ИСТИНА<TAB>ОПРЕДЕЛЕНО<TAB>ФРАЗА
|-
|/see/handler/{id}
|DELETE
|Удаление постобработчика
|'''id''' - идентификатор модели
|<code>{ error: INT, message: DESCRIPTION }</code>
|-
|/see/handler/{id}
|POST
|Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.
|
* '''id''' - идентификатор модели
* '''handler''' - файл, содержащий программный код python постобработчика
|<code>{ error: INT, message: DESCRIPTION }</code>
|-
|/see/handler/{id}
|GET
|Получение файла-постобработчика
|'''id''' - идентификатор модели
|Файл handler.py
|-
|/see/info/{id}
|GET
|Получение информации о модели.
|'''id''' - идентификатор модели
|В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.
 
* '''id''' - идентификатор
* '''status''' - статус
* '''classes''' - список сущностей в модели
* '''entityMaxWords''' - максимальная длина сущности в корпусе обучения
* '''sequenceLength''' - максимальная длина последовательности при обучении
* '''noiseLevel''' - уровень шума использованный при обучении модели
* '''trainCorpusName''' - название файла, использованного при обучении
* '''trainAccuracy''' - точность обучения и тестирования
* '''testCorpusLength''' - размер тестового корпуса
* '''trainCorpusLength''' - размер обучающего корпуса
* '''trainConfusionMatrix''' - матрица ошибок обучения
* '''testConfusionMatrix''' - матрица ошибок тестирования
|-
|/see/log/{id}
|GET
|Лог всех действий во время обучения/тестирования модели.
|'''id''' - идентификатор модели
|Лог содержится в переменной log в виде списка.
<code>{</code>
  <<"log": [
    "training",
    "macroEpoch: 1, microEpoch: 1 loss: 1.23790...",


    <code>...</code>
<small><code>  ]</code></small>


  <code>]</code>
<small><code>}</code></small>  
<code>}</code>
|}
|}

Текущая версия от 08:59, 3 июля 2025

Общее описание

Сервис Simple Entity Extractor предназначен для извлечения именованных сущностей из текстовых фрагментов (фраз естественной речи). Принимает на вход текстовую строку и возвращает структурированные данные в формате JSON.


Термины и определения

Simple Entity Extractor (SEE) — сервис извлечения именованных сущностей.

Модель — предварительно подготовленная специализированная модель распознавания и извлечения именованных сущностей из коротких фраз.

Именованная сущность — слово или словосочетание, выделяющее определенный предмет или явление из ряда однотипных предметов или явлений. Например, это названия городов, стран, валют, имен.

Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SEE.


Описание методов API SEE

Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SEE. По умолчанию используется порт 6184/tcp.

Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок "accept: application/json"

Ответ сервиса SEE представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6184 будет отображен интерфейс swagger со всеми методами с возможностью их проверки.

Модель может содержать постобработчик. Это стандартный файл на языке Python, который выполняет произвольные действия с результатом работы модели. Обязательным условием является наличие функции handler, которая должна возвращать данные такого же вида, как и метод GET /see/entities/{id}.

Пример пустой функции, которая просто повторяет на выходе результат:

def handler(entities=[],text=""):

  returns entities

На вход подается результат работы модели, а также начальный текст.


Описание методов API
GET/see/ Вывод списка моделей.
Входные параметры отсутствуют { models: [model1,...,modelN] }
GET/see/confusion/{id}/{type} Получение изображения матрицы ошибок.
  • id — идентификатор модели
  • type — тип данных для построения матрицы.
Возвращает PNG-изображение с матрицей ошибок.
DELETE/see/data/{id} Удаление модели.
  • id — идентификатор модели.
{ error: INT, message: DESCRIPTION }
GET/see/data/{id} Получение архива модели.
  • id — идентификатор модели.
Возвращает zip-файл с моделью.
POST/see/data/{id} Добавление модели. Метод асинхронный. Окончание работы проверяется через метод /see/info/{id}.
  • id — идентификатор модели;
  • zip-model — zip-архив с файлами модели; или
  • from-existing-model — название модели, которое должно быть переименовано в id; или
  • csv — текстовый файл для обучения модели, со строками СУЩНОСТЬ<TAB>ФРАЗА;
  • noise — уровень шума для генерации синтезированных данных для обучения модели, от 1 до 5, по умолчанию 2.
{ error: INT, message: DESCRIPTION }
GET/see/entities/{id} Поиск сущностей. Вернется массив со всеми моделями, в которых были найдены сущности (модели для поиска указываются в поле id). Каждая переменная с названием модели будет содержать список всех найденных сущностей.
  • id — идентификатор[ы] модели. Может быть указано несколько через запятую, тогда запрос будет обработан всеми указанными моделями.
  • text — текст для анализа.
  • similarity — порог похожести найденной сущности на эталонные, %. По умолчанию 70.
{ ID-модели: [

{

position: 0, # позиция слова начала фрагмента, определяющего сущность

confidence: 1, #вероятность правильного определения сущности

text: текст сущности,

calculated: vaktsinatsiya # поле, содержащее значение сущности, использованный при обучении модели

}, {...}

]

}

GET/see/errors/{id} Получение файла с ошибками модели. В случае, если производилось тестирование модели, то файл содержит ошибки тестирования. Если не производилось — ошибки после обучения.
  • id — идентификатор модели.
текстовый файл со строками вида:

ИСТИНА<TAB>ОПРЕДЕЛЕНО<TAB>ФРАЗА

DELETE/see/handler/{id} Удаление постобработчика.
  • id — идентификатор модели.
{ error: INT, message: DESCRIPTION }
GET/see/handler/{id} Получение файла-постобработчика.
  • id — идентификатор модели.
Файл handler.py
POST/see/handler/{id} Отправка файла-постобработчика в указанную модель. Становится активным сразу после успешной отправки.
  • id — идентификатор модели.
{ error: INT, message: DESCRIPTION }
GET/see/info/{id} Получение информации о модели. В результате выполнения будет возвращен массив с данными о модели. Матрица ошибок отдельно содержат классы, определяющие столбцы и строки матрицы, их количество может быть меньше, т.к. в матрицы попадают только те классы, по которым были ошибки.
  • id — идентификатор модели.
  • id — идентификатор
  • status — статус
  • classes — список сущностей в модели
  • entityMaxWords — максимальная длина сущности в корпусе обучения
  • sequenceLength — максимальная длина последовательности при обучении
  • noiseLevel — уровень шума, использованный при обучении модели
  • trainCorpusName — название файла, использованного при обучении
  • trainAccuracy — точность обучения и тестирования
  • testCorpusLength — размер тестового корпуса
  • trainCorpusLength — размер обучающего корпуса
  • trainConfusionMatrix — матрица ошибок обучения
  • testConfusionMatrix — матрица ошибок тестирования.
GET/see/log/{id} Лог всех действий во время обучения/тестирования модели.
  • id — идентификатор модели.
Лог содержится в переменной log в виде списка.

{

  "log": [

    "training",

    "macroEpoch: 1, microEpoch: 1 loss: 1.23790...",

    ...

  ]

}