Docling: установка на локальную машину
Краткая инструкция: как поднять Docling у себя и настроить приложение, чтобы импорт PDF и DOCX в базы знаний работал со структурой (заголовки, таблицы, картинки на местах).
1. Что нужно
- Docker и Docker Compose установлены и запущены (Docker Desktop на Windows/Mac или Docker Engine + docker-compose на Linux).
- Репозиторий проекта склонирован, приложение уже поднимается (Postgres, MinIO, бэкенд и т.д.).
2. Запуск Docling
В корне проекта есть файл docker-compose.docling.yml. Запусти контейнер:
# из корня репозитория
docker compose -f docker-compose.docling.yml up -d
Первый запуск может занять 2–5 минут: Docling скачивает ML-модели (~2–4 ГБ). Повторные запуски будут быстрыми.
Проверка, что контейнер работает:
docker ps
# должен быть контейнер docling-serve на порту 5001
Проверка API:
curl http://localhost:5001/health
# ожидается ответ вроде {"status":"ok"} или 200 OK
3. Настройка приложения
В корне проекта в файле .env должны быть заданы переменные для Docling:
DOCLING_API_URL=http://localhost:5001
DOCLING_ENABLED=true
- Если этих строк нет — добавь их.
- Если
DOCLING_ENABLED=false— поменяй наtrue. - Если Docling крутится на другом порту или хосте — измени
DOCLING_API_URLсоответственно (например,http://127.0.0.1:5001).
После изменения .env перезапусти бэкенд (сервер приложения), иначе настройки не подхватятся.
4. Проверка импорта
- Запусти приложение (клиент + бэкенд).
- Открой любую базу знаний.
- Загрузи PDF или DOCX (например, документ с заголовками и таблицами).
Ожидаемое поведение:
- Заголовки отображаются как заголовки, таблицы — таблицами, картинки на своих местах.
- В логах бэкенда при успешном импорте через Docling можно увидеть упоминание Docling/конвертации (зависит от текущего логирования).
Если импорт идёт «плоским» текстом без структуры:
- Убедись, что контейнер Docling запущен:
docker ps | grep docling. - Проверь health:
curl http://localhost:5001/health. - Проверь
.env:DOCLING_API_URL=http://localhost:5001,DOCLING_ENABLED=true. - Перезапусти бэкенд после правок
.env.
5. Полезные команды
# Остановить Docling
docker compose -f docker-compose.docling.yml down
# Посмотреть логи Docling (если что-то не работает)
docker logs docling-serve --tail 100
# Обновить образ и перезапустить
docker compose -f docker-compose.docling.yml pull
docker compose -f docker-compose.docling.yml up -d --force-recreate
6. Если порт 5001 занят
Поменяй порт в docker-compose.docling.yml:
ports:
- "5002:5001" # снаружи 5002, внутри контейнера 5001
И в .env укажи новый порт:
DOCLING_API_URL=http://localhost:5002
После этого выполни:
docker compose -f docker-compose.docling.yml up -d --force-recreate
и перезапусти бэкенд.
Подробнее про параметры Docling и типичные проблемы: Docling — интеллектуальный импорт документов.