Paleograph
Paleograph не хранит индекс и не ходит в другие сервисы. Его вызывает модель в EVA, KnowledgeBase через коннектор или любой клиент MCP и REST. Порт 8802: REST, веб-интерфейс очереди и MCP /mcp.
Форматы
| Класс | Форматы | Как извлекается |
|---|---|---|
| Всегда текст | txt, md, html, htm, xlsx | Без моделей |
| Гибридные | docx, pptx, pdf | Режим на формат: text, ocr или auto |
| Всегда OCR | png, jpg, jpeg, tif, tiff, bmp, webp | Только распознавание |
[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 |
openai | Vision-модель: страница целиком в Markdown |
Таблицы на сканах находит сам сервис, ячейки распознаёт основной движок. Если движки настроены неверно, задание ждёт в очереди с причиной, а не падает.
Описание картинок
OCR читает только текст. С image_description = true vision-модель добавляет перед текстом картинки её описание:
Описание изображения: Скриншот формы «Реестр заявок», красной рамкой выделена кнопка «Провести».Описываются отдельные картинки и изображения внутри документов, которые идут через 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_KEY | ModelsGate |
OPENAI_URL, OPENAI_KEY, MODEL_NAME | Vision-модель для движка openai |
IMAGE_DESCRIPTION, DESCRIBE_* | Описание картинок и его модель |
EPHEMERAL_TTL_SECONDS, RESULT_TTL_SECONDS | Время жизни ссылок и результатов |
Большие PDF разбираются в памяти процесса: закладывайте несколько гигабайт памяти на контейнер.