Проблема: файлы, а не текст
Знания лежат в PDF-регламентах, DOCX-инструкциях, EPUB-стандартах, XLSX-таблицах и на HTML-страницах. Пока они в этих форматах, их нельзя ни вставить в контекст, ни нормально проиндексировать:
- контекст модели ограничен — PDF на 200 страниц в него не влезет;
- извлечённый из PDF текст содержит колонтитулы, разрывы, «стр. 5 из 40»;
- таблицы превращаются в набор строк без колонок;
- картинки и формулы не передаются вовсе.
Что даёт конвертация в Markdown
- Заголовки → иерархия, по которой режется контекст.
- Списки → инструкции читаются как шаги.
- Таблицы → pipe-таблица, модель видит колонки.
- Один формат для всех источников → одинаковый пайплайн.
- Файл диффится в git → история изменений корпуса видна построчно.
Как выглядит пайплайн
- Сбор: документы складываются в одну папку по типам.
- Конвертация: по файлу — веб-интерфейс или
POST /api/convert. - Чистка: убрать колонтитулы и навигацию, поправить уровни заголовков.
- Нарезка: по
##или по смыслу, с перекрытием. - Индексация: эмбеддинги плюс метаданные источника.
- Обновление: при изменении документа конвертировать заново и переиндексировать.
Через API
curl -s -X POST https://llmfiles.com/api/convert \
-H "X-License-Key: LLMF-PRO-XXXX-XXXX-XXXX" \
-F "[email protected]" \
| jq -r .markdown > reglament.md
Ответ — JSON с полями filename, title, markdown, size. Без ключа: 25 файлов в сутки с одного IP.
Какие форматы поддерживаются
| Группа | Форматы |
|---|---|
| Документы | PDF, DOCX, RTF, EPUB, MSG |
| Презентации | PPTX |
| Таблицы | XLSX, XLS, CSV |
| Веб | HTML/HTM, SVG |
| Данные | JSON, YAML/YML, TOML, XML/XSD, INI/CFG, ENV |
| Код | 40+ языков, логи, Jupyter (.ipynb) |
| Медиа | MP3, WAV, FLAC (транскрипция в текст) |
| Прочее | ZIP, Dockerfile, Makefile |
Чего конвертер не делает
- не распознаёт текст со сканов (нужен OCR до конвертации);
- не восстанавливает формулы в LaTeX;
- не извлекает изображения и диаграммы;
- не снимает DRM с книг;
- не выпрямляет сложную журнальную вёрстку.