Skip to content

knowledge-base ​

Сервис базы знаний: из чего состоит, какие инструменты предоставляет и что за ним стоит.

Источник сведений

Исходного кода этого сервиса среди переданных репозиториев нет. Описание собрано из двух надёжных источников: список инструментов, полученный обращением к подключённому источнику на стенде, и описания этих инструментов, которые сервис сообщает о себе сам. Они прямо называют внутренние составляющие, поэтому картина получается достоверной.

Назначение ​

Отвечает на вопросы по документам компании. Собирает документы из внешних источников, распознаёт их, извлекает структурированные данные, индексирует и обслуживает поиск по смыслу.

В платформе источник называется Knowledge Base, адрес http://eap-mcp-knowledge-base_eva:8900/mcp, транспорт Streamable HTTP.

Это шлюз, а не один сервис ​

Главное про устройство: сервис не делает работу сам, он проксирует её четырём внутренним сервисам. Это прямо указано в описаниях его инструментов.

Внутренний сервисЧто делает
hippocampusХранение и поиск по векторному представлению документов
paleographРаспознавание и разбор документов в текст и структуру
preprocessorИзвлечение структурированных данных из текста силами языковой модели
conflu-gateВыгрузка страниц и вложений из Confluence

Это объясняет архитектурную схему продукта

На схеме внутри базы знаний нарисованы Hippocampus, Paleograph и Preprocessor. Теперь понятно, почему их не было в коде: это отдельные сервисы за этим шлюзом, а не части переданных репозиториев. Отдельно стоящий сервис OCR, подключённый к платформе под своим именем, тоже использует paleograph, то есть один и тот же разборщик документов используется двумя путями.

Инструменты ​

Девять инструментов, модель видит восемь.

ИнструментНазначение
init_eva_sessionПривязка сессии, вызывает только Runtime
doc_vector_searchПоиск подходящих документов по смыслу запроса
doc_vector_indexЗапуск индексации или переиндексации документов
parseРазбор файла в текст и структуру
download_cflВыгрузка страниц и вложений из Confluence
preprocessИзвлечение структурированных данных из разобранного документа по заданной схеме
convert_semantic_groupsПриведение извлечённых данных к семантическим группам для индексации
extract_metaИзвлечение мета-параметров документов
download_documentsСкачивание документов из базы в файлы текущего чата

Основной инструмент для пользователя. Возвращает подходящие документы. По каждому найденному приходит формат, а если мета-сведения были извлечены при индексации, то ещё название проекта, тип проекта и описание.

parse ​

Разбирает файл в форматы разметки и структурированных данных. Поддерживаются PDF, Word, PowerPoint, Excel, HTML и изображения. Выполняется через paleograph.

download_cfl ​

Выгрузка из Confluence. Область выгрузки задаётся по убыванию точности:

Что переданоЧто выгружается
Идентификатор корневой страницыТолько этот раздел, страница и всё вложенное
Ключ пространстваТолько это пространство
НичегоВсё, что видит используемый токен доступа

preprocess и convert_semantic_groups ​

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

extract_meta ​

Извлекает необязательные мета-параметры: название проекта, описание, тип проекта, ключевые слова. Смотрит и на содержимое документа, и на текст родительских страниц по иерархии, и на путь. Результат передаётся в индексацию.

download_documents ​

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

Конвейер наполнения базы ​

Порядок работы виден из назначения инструментов.

Что за ним стоит ​

СоставляющаяСостояние сведений
Векторное хранилищеНе подтверждено. На схеме продукта указан Milvus, в переданном коде упоминаний нет
Модель построения векторных представленийНе подтверждена. На схеме указана BGE
Языковая модель для извлечения данныхИспользуется, судя по описаниям инструментов. Какая именно, не подтверждено
Модели распознаванияТе же, что в сервисе OCR, поскольку разбор идёт через paleograph

Что нужно уточнить ​

  1. Репозитории внутренних сервисов: hippocampus, preprocessor, conflu-gate.
  2. Какое векторное хранилище используется и где развёрнуто.
  3. Какая модель строит векторные представления.
  4. Какая языковая модель используется для извлечения данных и на каком сервисе.
  5. Ограничения: размер документа, время индексации, время ответа поиска.
  6. Разграничение доступа: одна база на всех или разделение по подразделениям. Это важно и для пользовательской документации.
  7. Список именованных схем извлечения, доступных в preprocess.

Документация платформы EVA