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. Проверка импорта

  1. Запусти приложение (клиент + бэкенд).
  2. Открой любую базу знаний.
  3. Загрузи 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 — интеллектуальный импорт документов.