Перейти к основному содержанию

Как сделать базу знаний компании с поиском по ИИ на своём сервере: Dify и Ollama

Базу знаний, которая отвечает сотрудникам по вашим регламентам, можно поднять на одном VPS: Dify 1.18 в Docker плюс Ollama с двумя открытыми моделями — qwen2.5:3b отвечает, bge-m3 ищет нужный кусок документа. Документы и вопросы не уходят ни к какому внешнему сервису.

База знаний компании на своём сервере: Dify ищет нужный фрагмент документа, локальная модель в Ollama отвечает по нему.

Короткий ответ: что взять и сколько это стоит

Базу знаний, которая отвечает сотрудникам по вашим регламентам, можно поднять на одном VPS: Dify 1.18 в Docker плюс Ollama с двумя открытыми моделями — qwen2.5:3b отвечает, bge-m3 ищет нужный кусок документа. Документы и вопросы не уходят ни к какому внешнему сервису. Нужен сервер с 4 ядрами и 8 ГБ памяти: AdminVPS Start — 1 289 ₽/мес при оплате за месяц, Timeweb Cloud MSK 80 — 7 000 ₽/мес при оплате за месяц. На стенде 23.10 такая связка ответила верно на 10 вопросов из 10 по выдуманному регламенту, на процессоре без видеокарты — за 17–29 секунд на ответ.

Как это работает: поиск по фрагментам, а не «обучение» на документах

Модель ничего не запоминает о вашей компании. Dify режет документ на фрагменты, а модель эмбеддингов (у нас bge-m3) превращает каждый фрагмент в вектор. Вопрос сотрудника превращается в вектор тем же способом, находятся три ближайших фрагмента, и только их чат-модель получает вместе с вопросом. Такой способ называют RAG — поиск с дополнением ответа.

Отсюда два практических следствия. Обновить базу — значит заменить документ, переобучать ничего не надо. А качество ответа упирается в поиск: если нужный фрагмент не нашёлся, даже большая модель ответит мимо. Поэтому при проверке мы считали две вещи отдельно — нашёл ли поиск нужный кусок и верен ли ответ.

Четыре шага поиска по базе знаний: фрагменты документа, векторы bge-m3, три ближайших фрагмента, ответ модели
Модель не учится на документах: каждый раз она получает три найденных фрагмента и отвечает только по ним.

Какой сервер взять

Документация Dify называет минимум для самой платформы: 2 ядра и 4 ГиБ памяти, Docker 19.03+ и Docker Compose 2.24.0+. Это без локальных моделей. На стенде память распределилась так:

Что запущеноЗанято памяти из 7,9 ГБ
Dify 1.18.0 после запуска, 16 служб 2,8 ГБ
Dify и Ollama с двумя моделями 5,1 ГБ
Во время ответов на вопросы 5,4 ГБ (из них Ollama — 2,95 ГБ)

То есть в 4 ГБ связка не помещается, а в 8 ГБ остаётся около 2,5 ГБ запаса. Диска ушло 25 ГБ: образы Dify весят 11,35 ГБ, модели — 3,1 ГБ.

  • AdminVPS Start (линейка «Стандартные 3,6 ГГц») — 4 ядра, 8 ГБ, 80 ГБ NVMe: 1 289 ₽/мес при оплате за месяц, сверено на странице провайдера 23.10.2026.
  • Timeweb Cloud MSK 80 — 4 ядра 3,3 ГГц, 8 ГБ, 80 ГБ NVMe: 7 000 ₽/мес при оплате за месяц, списание почасовое. Цена сверена на странице провайдера 23.10.2026, после подорожания тарифов VPS в тот же день.

Видеокарта для такой базы не обязательна: модель на 3 миллиарда параметров отвечает и на процессоре, только медленнее. Если ответ за 20 секунд для вас слишком долгий, смотрите в сторону серверов с видеокартой.

Реклама · ООО «Админвпс»

AdminVPS

Start за 1 289 ₽/мес при оплате за месяц: 4 ядра 3,6 ГГц, 8 ГБ RAM, 80 ГБ NVMe — хватает Dify и Ollama с моделью на 3B.

Промокод EASYLINK — скидка 60 % на первый месяц при оплате за 1 месяц, кроме тарифов Lite.

Выбрать VPS

Реклама · АО «ТаймВэб»

Timeweb Cloud

Cloud MSK 80: 4 ядра 3,3 ГГц, 8 ГБ, 80 ГБ NVMe — 7 000 ₽/мес при оплате за месяц, списание почасовое.

Смотреть тариф

Как мы проверяли

Стенд 23.10.2026: сервер Timeweb Cloud на час — 4 ядра 2,0 ГГц, 8 ГБ, 77 ГБ, площадка в Новосибирске, Ubuntu 24.04. Команды ниже — те, что выполнялись там, в том же порядке; из них убраны только служебные строки, засекавшие время. Документом был выдуманный «Регламент ООО „Пример-Сервис“» на 424 слова: отпуск, пароли, удалёнка, питание, командировки, резервные копии, поддержка, приём на работу. К нему — 10 вопросов с заранее известным ответом, один из них про то, чего в регламенте нет.

Чего такая проверка не показывает: работу через веб-интерфейс (первый вход, модели и приложение мы настраивали через API консоли Dify — это те же действия, что кнопки мастера), большие документы и десятки одновременных пользователей, другие модели и процессоры, работу с видеокартой, многодневную работу и HTTPS с доменом.

Шаг 1. Docker из репозитория Docker

Dify требует Docker Compose 2.24.0 или новее, поэтому Docker ставим из репозитория самого Docker, как в его документации. Команды — от root:

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" > /etc/apt/sources.list.d/docker.list
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin git jq
docker compose version

На стенде установка заняла 32 секунды, встали Docker 29.9.2 и Compose v5.6.1.

Шаг 2. Dify: свои секреты до первого запуска

Берём ровно выпуск 1.18.0, а не текущую ветку, — так установка повторяется. В .env.example лежат образцы секретов, их надо заменить своими. INIT_PASSWORD закрывает страницу первой установки: пока администратор не создан, без этого пароля чужой человек, открывший адрес сервера, не заберёт себе вашу базу.

cd /root
git clone --depth 1 --branch 1.18.0 https://github.com/langgenius/dify.git
cd /root/dify/docker
cp .env.example .env
sed -i "s|^SECRET_KEY=.*|SECRET_KEY=$(openssl rand -base64 42 | tr -d '\n/+=' | head -c 50)|" .env
sed -i "s|^INIT_PASSWORD=.*|INIT_PASSWORD=$(openssl rand -hex 12)|" .env
sed -i "s|^DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN=.*|DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN=$(openssl rand -hex 24)|" .env
grep '^INIT_PASSWORD=' .env
docker compose pull
docker compose up -d

Третья строка с sed — шаг из документации Dify на docs.dify.ai: без токена песочницы две службы агентов не стартуют. В README репозитория этого шага нет — мы шли по README и поймали падение (подробно — в разделе «Что ломается»). Запишите INIT_PASSWORD, он понадобится при первом входе.

На стенде docker compose pull скачивал 16 служб 269 секунд, а консоль Dify ответила через 355 секунд от начала скачивания.

Шаг 3. Закрыть порт отладки плагинов

Dify публикует наружу не только сайт (80 и 443), но и порт 5003 — для отладки плагинов. На стенде он был открыт из интернета, и ufw deny 5003 это не исправил: Docker публикует порты в обход ufw. Помогла привязка порта к локальному адресу в docker-compose.yaml:

cd /root/dify/docker
sed -i 's|- "${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:|- "127.0.0.1:${EXPOSE_PLUGIN_DEBUGGING_PORT:-5003}:|' docker-compose.yaml
docker compose up -d
ss -ltn | grep ':5003'

Последняя команда должна показать 127.0.0.1:5003. После правки снаружи порт закрыт, а сайт Dify отвечает как раньше. Остальную защиту сервера — SSH по ключу, fail2ban — разбираем в чеклисте безопасности VPS.

Порт отладки плагинов Dify 5003: правило ufw его не закрывает, привязка к 127.0.0.1 закрывает
Проверено на стенде 23.10.2026: после ufw deny 5003 порт снаружи открыт, после привязки к 127.0.0.1 — закрыт.

Шаг 4. Ollama и две модели

Ollama ставим отдельным контейнером в ту же сеть Docker, что и Dify (docker_default), — тогда Dify обращается к ней по имени ollama, а наружу порт 11434 не публикуется вовсе.

docker run -d --name ollama --network docker_default --restart unless-stopped -v ollama:/root/.ollama ollama/ollama
docker exec ollama ollama pull qwen2.5:3b
docker exec ollama ollama pull bge-m3
docker exec ollama ollama list

На стенде встала Ollama 0.40.9; qwen2.5:3b (1,9 ГБ) скачалась за 176 секунд, bge-m3 (1,2 ГБ) — за 106. qwen2.5 мы взяли потому, что она отвечает по-русски, а размер 3B — потому, что помещается в 8 ГБ вместе с Dify. Как подбирать модели под память, мы разбирали в статье про свой ChatGPT на VPS.

Шаг 5. Первый вход, плагин Ollama и модели

Откройте http://АДРЕС_СЕРВЕРА/install, введите INIT_PASSWORD из шага 2 и создайте администратора. Дальше три действия в настройках:

  1. Установить плагин Ollama из маркетплейса Dify. Серверу нужен выход на marketplace.dify.ai: со стенда в Новосибирске он ответил, установка плагина заняла 12 секунд.
  2. Добавить модель qwen2.5:3b как языковую модель, адрес — http://ollama:11434.
  3. Добавить bge-m3 как модель эмбеддингов с тем же адресом и сделать обе моделями по умолчанию.

После этого обе модели активны, память сервера — 5,1 ГБ из 7,9.

Dify умеет подключать и облачные модели, но тогда фрагменты ваших документов уходят к поставщику модели. Если внешний API всё же нужен, оплатить его в рублях можно у российских сервисов — разбор в статье про API нейросетей в рублях.

Шаг 6. Документ в базу знаний и приложение-чат

Создайте базу знаний, загрузите документ и выберите индексацию «высокое качество» с моделью bge-m3. Мы загрузили регламент открытым API баз знаний Dify: 424 слова разбились на 9 фрагментов, индексация заняла 13 секунд.

Затем создайте приложение типа «Чат», подключите к нему базу знаний и задайте модель qwen2.5:3b. Мы поставили температуру 0,1 (чтобы модель не сочиняла), три фрагмента на вопрос и такую инструкцию:

Ты помощник сотрудников. Отвечай только по фрагментам документов из контекста, коротко и по-русски. Если в контексте нет ответа, так и скажи: в документах этого нет.

Последняя фраза инструкции — для вопросов, ответа на которые в документах нет: на стенде модель на такой вопрос так и ответила.

Шаг 7. Проверить на вопросах с известным ответом

Не верьте базе знаний, пока не задали ей вопросы, ответ на которые вы знаете. Так выглядел прогон на стенде 23.10.2026 (Ollama на 4 ядрах 2,0 ГГц, без видеокарты):

ВопросОтвет моделиВремя
За сколько дней до отпуска подать заявление? Не позднее чем за 14 календарных дней 17 с
Как часто менять пароль? Каждые 90 дней 28 с
Минимальная длина пароля? 12 символов 29 с
Сколько дней в неделю можно работать удалённо? Два дня в неделю 24 с
Сколько компенсируют за питание? 350 за каждый рабочий день в офисе 26 с
Суточные по России? 1 200 за сутки командировки 24 с
Сколько хранятся копии сервера бухгалтерии? 30 дней 26 с
Срок реакции на обычную заявку? 4 рабочих часа 23 с
Что пройти для доступа к CRM? Инструктаж по информационной безопасности 23 с
Премия за работу в выходные? «О премиях за работу в выходные нет информации» 19 с

Поиск нашёл нужный фрагмент в 9 случаях из 9, верных ответов — 10 из 10, включая честное «нет информации» на последний вопрос. Тот же вопрос про копии, заданный позже ещё раз, занял 12 секунд.

Задать вопрос можно и из своей программы — открытым API приложения. Ключ API создаётся в настройках приложения; эту команду мы выполнили на стенде:

curl -s -X POST http://localhost/v1/chat-messages -H "Authorization: Bearer КЛЮЧ_ПРИЛОЖЕНИЯ" -H 'Content-Type: application/json' -d '{"inputs":{},"query":"Сколько дней хранятся резервные копии сервера бухгалтерии?","response_mode":"blocking","user":"stend"}'

Что ломается

  • Две службы падают по кругу сразу после установки. agent_backend и local_sandbox перезапускались с ошибкой «local_sandbox_auth_token is required»: в .env.example выпуска 1.18.0 строка DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN пустая, а README про неё молчит — шаг есть только в документации на docs.dify.ai. Базе знаний и чату это не мешало, но после случайного значения и docker compose up -d обе службы работают. Поэтому эта строка уже стоит в шаге 2.
  • Порт 5003 открыт в интернет, и ufw его не закрывает. Docker пишет свои правила в обход ufw — проверено на стенде: после ufw deny 5003 порт снаружи оставался открытым. Закрывает только привязка к 127.0.0.1 из шага 3.
  • Страница /install открыта, пока нет администратора. Её защищает только INIT_PASSWORD; не оставляйте пустой и создайте администратора сразу после запуска.
  • Плагину Ollama нужен выход в интернет. Плагины берутся из маркетплейса Dify; установку на сервер, закрытый от интернета, мы не проверяли.
  • Ответ на процессоре — десятки секунд. 17–29 секунд на нашем стенде. Как связка держит много одновременных вопросов, мы не проверяли.
  • Если пишете в API консоли сами, пароль при входе — в Base64. Без этого Dify 1.18.0 отвечает «Invalid encrypted data»; в веб-интерфейсе это делает страница сама.

Документы, данные и лицензия

Если в регламентах есть персональные данные сотрудников или клиентов, обязанности оператора по 152-ФЗ остаются на компании, где бы ни стоял сервер. Часть 5 статьи 18 закона не допускает запись и хранение персональных данных граждан России в базах данных за пределами страны, кроме случаев, названных в самом законе, — площадку сервера выбирайте с этим в голове. Свой сервер с локальной моделью снимает одну частую проблему: фрагменты документов не уходят внешнему поставщику модели.

Dify распространяется по изменённой лицензии Apache 2.0. Пользоваться им в своей компании, в том числе коммерчески, можно. Без письменного разрешения разработчика нельзя две вещи: держать на нём многоарендный сервис (один арендатор — одно рабочее пространство) и убирать логотип и копирайт Dify из консоли и приложений.

Сколько стоит в месяц

ЧтоСколько
Сервер AdminVPS Start, 4 ядра, 8 ГБ, 80 ГБ NVMe 1 289 ₽/мес при оплате за месяц
Сервер Timeweb Cloud MSK 80, 4 ядра, 8 ГБ, 80 ГБ NVMe 7 000 ₽/мес при оплате за месяц
Dify, Ollama, qwen2.5:3b, bge-m3 ничего не платите: открытые программы и модели

Платите вы только за сервер. Если в ваших документах нет ничего, кроме текстов, а нужен просто чат с моделью на своём сервере, проще взять Open WebUI — разбор здесь. Если нужна не справка, а действия — разослать письмо, завести задачу, — смотрите ИИ-агента на n8n и Ollama.

Коротко

  • База знаний с ИИ на своём сервере — это Dify и Ollama в Docker на VPS с 4 ядрами и 8 ГБ памяти.
  • Сервер: AdminVPS Start — 1 289 ₽/мес при оплате за месяц, Timeweb Cloud MSK 80 — 7 000 ₽/мес при оплате за месяц; программы и модели бесплатны.
  • До первого запуска задайте свои секреты, закройте порт 5003 привязкой к 127.0.0.1 — ufw его не закрывает.
  • На стенде 23.10.2026: 10 верных ответов из 10, 17–29 секунд на ответ без видеокарты.
  • Проверяйте базу вопросами с известным ответом, прежде чем отдавать её сотрудникам.

Плюсы и минусы

Преимущества

  • Документы и вопросы остаются на вашем сервере, модели открытые и бесплатные.
  • Все команды выполнены на чистой Ubuntu 24.04, с двумя найденными поломками и их исправлением.
  • Проверка вопросами с известным ответом, а не «на глаз».

Недостатки

  • Ответ на процессоре идёт десятки секунд.
  • Проверены один документ и одна модель на 3B; большие базы и нагрузку мы не проверяли.
  • Веб-интерфейс Dify описан по шагам, но на стенде те же действия выполнялись через API консоли.

Реклама · ООО «Админвпс»

AdminVPS

Start за 1 289 ₽/мес при оплате за месяц: 4 ядра 3,6 ГГц, 8 ГБ RAM, 80 ГБ NVMe — хватает Dify и Ollama с моделью на 3B.

Промокод EASYLINK — скидка 60 % на первый месяц при оплате за 1 месяц, кроме тарифов Lite.

Выбрать VPS

Реклама · АО «ТаймВэб»

Timeweb Cloud

Cloud MSK 80: 4 ядра 3,3 ГГц, 8 ГБ, 80 ГБ NVMe — 7 000 ₽/мес при оплате за месяц, списание почасовое.

Смотреть тариф

Частые вопросы

Сколько памяти нужно серверу для базы знаний на Dify и Ollama?

8 ГБ. Сама Dify, по её документации, требует минимум 4 ГиБ, но это без локальной модели. На нашем стенде 23.10.2026 Dify с Ollama и моделями qwen2.5:3b и bge-m3 заняли 5,4 ГБ во время ответов. В 4 ГБ связка не помещается; диска нужно около 25 ГБ.

Нужна ли видеокарта для базы знаний с ИИ?

Нет, для модели на 3 миллиарда параметров хватает процессора. На стенде с 4 ядрами 2,0 ГГц ответ занимал 17–29 секунд, повторный вопрос — 12 секунд. Работу с видеокартой и одновременные вопросы многих сотрудников мы не проверяли.

Уходят ли документы во внешний сервис?

Нет, если модели локальные. В нашей схеме и поиск (bge-m3), и ответ (qwen2.5:3b) работают в Ollama на том же сервере, порт Ollama наружу не открыт. Если подключить к Dify облачную модель, фрагменты документов будут уходить её поставщику.

Насколько точно отвечает маленькая модель?

На нашем выдуманном регламенте из 424 слов — 10 верных ответов из 10, включая честное «нет информации» на вопрос, ответа на который в документе нет. Это проверка на одном документе и одной модели: на больших и запутанных документах точность придётся проверять своими вопросами.

Можно ли пользоваться Dify в компании бесплатно?

Да, лицензия разрешает использовать Dify в своей компании, в том числе коммерчески. Без письменного разрешения разработчика нельзя держать многоарендный сервис и убирать логотип и копирайт Dify из интерфейса. Платить придётся только за сервер.

Почему после установки Dify перезапускаются службы agent_backend и local_sandbox?

В .env.example выпуска 1.18.0 пустая строка DIFY_AGENT_LOCAL_SANDBOX_AUTH_TOKEN, и обе службы падают с ошибкой «local_sandbox_auth_token is required». Документация Dify велит задать этот токен, README — нет. Задайте случайное значение командой sed из шага 2 и выполните docker compose up -d — на стенде обе службы после этого заработали.

Подобрать сервер под задачу

Смотреть тарифы

Реклама · ООО «Админвпс»

Ссылки на провайдеров в этом материале партнёрские: если вы оформите услугу, мы получим комиссию. На цену для вас это не влияет. Подробнее

Об авторе

Логотип EasyLinkLife

Редакция EasyLinkLife

Редакция EasyLinkLife сверяет цены, состав тарифов и условия оплаты российских хостинг-провайдеров по их первоисточникам.

Проверено: Редакция EasyLinkLife | Обновлено: 24 октября 2026 г.

Полезные материалы