Skip to content
2.12.0

Paleograph ​

Сервис извлечения текста: один файл на входе, Markdown на выходе. Разбирает Office, PDF, HTML и картинки, при необходимости распознаёт сканы и описывает изображения.

Paleograph не хранит индекс и не ходит в другие сервисы. Его вызывает модель в EVA, KnowledgeBase через коннектор или любой клиент MCP и REST. Порт 8802: REST, веб-интерфейс очереди и MCP /mcp.

Форматы ​

КлассФорматыКак извлекается
Всегда текстtxt, md, html, htm, xlsxБез моделей
Гибридныеdocx, pptx, pdfРежим на формат: text, ocr или auto
Всегда OCRpng, jpg, jpeg, tif, tiff, bmp, webpТолько распознавание
toml
[default.extraction_modes]
docx = "text"
pptx = "text"
pdf = "auto"
  • text: текст и таблицы из документа, у PDF текстовый слой. Скан без слоя завершится ошибкой с подсказкой включить OCR.
  • ocr: разметка страницы и распознавание.
  • auto: сначала текст, а если текста в файле нет совсем, то OCR.

OCR ​

Сам сервис моделей не держит. Распознавание идёт через ModelsGate или через OpenAI-совместимую vision-модель.

ДвижокЧто делает
paddleРазметка и распознавание через ModelsGate
suryaРазметка и распознавание через ModelsGate
easyТолько распознавание, нужен paddle или surya
openaiVision-модель: страница целиком в Markdown

Таблицы на сканах находит сам сервис, ячейки распознаёт основной движок. Если движки настроены неверно, задание ждёт в очереди с причиной, а не падает.

Описание картинок ​

OCR читает только текст. С image_description = true vision-модель добавляет перед текстом картинки её описание:

text
Описание изображения: Скриншот формы «Реестр заявок», красной рамкой выделена кнопка «Провести».

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

Отпечатки настроек ​

GET /api/v1/capabilities отдаёт для каждого формата хэш настроек извлечения. Меняете режим docx или включаете описание картинок, меняется отпечаток только затронутых форматов. KnowledgeBase по нему переиндексирует ровно те документы, на которые повлияла правка.

MCP ​

ИнструментЧто делает
parse_document(filename)Создаёт задание и сразу отдаёт jobId и uploadUrl для загрузки файла
get_parse_status(jobId)Статус. Когда готово, отдаёт downloadUrl и имя файла Markdown

Статусы задания: pending, running, done, failed. Ошибка одного файла не останавливает очередь.

REST ​

МетодПуть
POST/api/v1/jobsФайл multipart, ответ job_id
GET/api/v1/jobs/{id}, /wait, /resultСтатус, долгое ожидание, результат
GET/api/v1/capabilitiesФорматы, режимы, отпечатки
GET/api/v1/health, /api/v1/statsЗдоровье и статистика

Настройки ​

Переменные с префиксом PALEOGRAPH_.

КлючСмысл
HTTP_PORTПорт сервиса
MAX_PARALLEL_JOBSСколько файлов разбирать одновременно
PUBLIC_BASE_URLАдрес для ссылок, если EVA не прислала X-Public-Base-Url
EXTRACTION_MODES__DOCX и другиеРежим для гибридного формата
OCR_ENGINES__PADDLE и другиеВключение движков OCR
MODELSGATE_URL, MODELSGATE_API_KEYModelsGate
OPENAI_URL, OPENAI_KEY, MODEL_NAMEVision-модель для движка openai
IMAGE_DESCRIPTION, DESCRIBE_*Описание картинок и его модель
EPHEMERAL_TTL_SECONDS, RESULT_TTL_SECONDSВремя жизни ссылок и результатов

Большие PDF разбираются в памяти процесса: закладывайте несколько гигабайт памяти на контейнер.

Документация экосистемы EVA 2.1