В этой инструкции разберём, как развернуть локальную AI-модель через Ollama и Open WebUI, подключить модель для генерации текста, настроить embeddings для базы знаний и проверить RAG на простом примере с прайс-листом серверов.
Такую схему можно использовать как основу для внутреннего AI-ассистента компании: например, чтобы менеджеры быстрее находили информацию по ассортименту, услугам, тарифам или технической документации.
Что понадобится
Для установки потребуется:
Windows
Docker Desktop
WSL2
PowerShell
Ollama container
Open WebUI container
Желательно иметь видеокарту NVIDIA, но для первого теста можно запускать модели и на CPU. GPU сильно ускоряет генерацию ответов, особенно для моделей 7B и 14B.
1. Установка Docker Desktop
Сначала установите Docker Desktop for Windows.
После установки откройте Docker Desktop. В разделе Containers сначала не будет запущенных контейнеров.

2. Создание папки проекта
Откройте PowerShell и создайте папку для локального AI-проекта:
mkdir C:\local-ai
cd C:\local-ai
Создайте файл docker-compose.yml:
notepad docker-compose.yml
Вставьте в файл конфигурацию:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "127.0.0.1:11434:11434"
volumes:
- ollama_data:/root/.ollama
environment:
- OLLAMA_HOST=0.0.0.0:11434
- OLLAMA_KEEP_ALIVE=30m
restart: unless-stopped
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
depends_on:
- ollama
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- WEBUI_SECRET_KEY=change-this-secret-key
volumes:
- open_webui_data:/app/backend/data
restart: unless-stopped
volumes:
ollama_data:
open_webui_data:
Если планируется использовать NVIDIA GPU, можно добавить GPU passthrough в сервис ollama, но для базового теста достаточно конфигурации выше.
3. Запуск Ollama и Open WebUI
Запустите контейнеры:
docker compose up -d
Docker скачает образы:
ollama/ollama:latest
ghcr.io/open-webui/open-webui:main
После завершения проверьте контейнеры:
docker ps
Должны быть запущены два контейнера:
ollama
open-webui

4. Проверка работы Ollama
Проверьте, что Ollama отвечает локально:
curl http://127.0.0.1:11434
Ожидаемый ответ:
Ollama is running

5. Вход в Open WebUI
Откройте в браузере:
http://localhost:3000
При первом запуске Open WebUI предложит создать администратора.
Заполните:
Name
Email
Password
и нажмите Create Admin Account.
После входа откроется основной интерфейс Open WebUI.

6. Загрузка основной модели
Теперь нужно скачать модель, которая будет отвечать на вопросы.
Для теста можно использовать:
docker exec -it ollama ollama pull qwen2.5:7b
Если ресурсов больше, можно использовать модель крупнее:
docker exec -it ollama ollama pull qwen2.5:14b
Проверить список моделей:
docker exec -it ollama ollama list
После этого модель появится в Open WebUI в списке доступных моделей.
7. Загрузка embedding-модели для базы знаний
Для работы с документами и RAG нужна embedding-модель. Она превращает текст документов в векторное представление, чтобы система могла искать релевантные фрагменты.
Скачайте модель:
docker exec -it ollama ollama pull nomic-embed-text
Проверьте:
docker exec -it ollama ollama list
В списке должна быть модель:
nomic-embed-text
8. Настройка embeddings в Open WebUI
В Open WebUI перейдите:
Admin Settings → Documents
В разделе Embedding укажите:
Embedding Model Engine: Ollama
Base URL: http://ollama:11434
Embedding Model: nomic-embed-text
После этого нажмите Save.

Важно: если документы были загружены до изменения embedding-модели, их нужно переиндексировать или загрузить заново.
9. Создание базы знаний
Перейдите в раздел:
Workspace → Knowledge
Создайте новую базу знаний:
New Knowledge
Название для примера:
Server Price List
Эта база будет использоваться как тестовый RAG-источник. В неё можно загрузить прайс-лист серверов, описание услуг, FAQ или внутреннюю инструкцию.

10. Загрузка файла в Knowledge Base
Внутри коллекции нажмите кнопку + и загрузите файл, например:
Server Price List.txt
Пример простого содержимого файла:
Server Price List
GPU Server 1
Server ID: DED-START-GPU
GPU Model: NVIDIA Tesla K80
Monthly Price: $300
GPU Server 2
Server ID: DED-BUSINESS-GPU
GPU Model: NVIDIA Tesla T4
Monthly Price: $1500
После загрузки файл должен появиться внутри коллекции.
Если внутри коллекции написано:
No content found
значит файл ещё не загружен. В таком случае RAG работать не будет.

11. Частая ошибка: No sources found
Если в чате модель отвечает:
No sources found
это означает, что Open WebUI не нашёл подходящие фрагменты в базе знаний.
Основные причины:
– коллекция создана, но внутри нет файла;
– файл загружен, но ещё не проиндексирован;
– после смены embedding-модели не был сделан reindex;
– Knowledge Base не подключена к текущему чату;
– запрос слишком общий или документ плохо структурирован.
В нашем тесте сначала коллекция была создана, но внутри неё не было контента. Поэтому Open WebUI не мог найти источники.
12. Подключение Knowledge Base к чату
Чтобы использовать базу знаний в чате, начните сообщение с # и выберите нужную коллекцию.
Например:
#Server Price List
Use only this knowledge base.
Find all GPU servers. Show server ID, GPU model and monthly price.
Если всё работает правильно, Open WebUI покажет:
Retrieved 1 source
или:
Retrieved 2 sources
Это означает, что RAG нашёл фрагменты из базы знаний и передал их модели.

13. Проверка RAG на примере прайс-листа
Тестовый запрос:
Use only this knowledge base.
Find all GPU servers. Show server ID, GPU model and monthly price.
Пример результата:
Server ID: DED-START-GPU
GPU Model: NVIDIA Tesla K80
Monthly Price: $300
Server ID: DED-BUSINESS-GPU
GPU Model: NVIDIA Tesla T4
Monthly Price: $1500
Если в ответе появились конкретные серверы из загруженного файла, значит RAG работает.

14. Что делать, если RAG находит не тот фрагмент
Иногда база знаний подключена, но модель отвечает не так, как ожидается. Например, Open WebUI показывает Retrieved 1 source, но в найденном фрагменте нет нужной информации.
Это нормальная ситуация для RAG. Качество поиска зависит от структуры документа.
Чтобы улучшить результат:
– делайте понятные заголовки;
– разделяйте разные категории по отдельным файлам;
– не загружайте слишком хаотичные документы;
– используйте точные названия услуг и серверов;
– увеличьте Top K в настройках Documents;
– после изменений делайте reindex.
Например, для серверов можно разделить базу так:
gpu-servers.md
streaming-servers.md
storage-servers.md
database-servers.md
vps-servers.md
Так модели будет проще найти нужный фрагмент.
Итог
В результате мы получили локальный AI-ассистент на базе:
Docker
Ollama
Open WebUI
Qwen
nomic-embed-text
Knowledge Base
RAG
Базовая модель может отвечать на общие вопросы, но настоящая польза появляется после подключения базы знаний. RAG позволяет модели отвечать не только из общих знаний, а на основе конкретных документов компании.
Даже простой пример с прайс-листом серверов показывает, как это можно использовать на практике: загрузить ассортимент, подключить его к чату и получать ответы по конкретным позициям, характеристикам и ценам.