AI-чат-бот на собственном сервере¶
В этой статье
- Основные возможности
- Особенности сборки
- Начало работы после развертывания ИИ-чатбота
- Стартовый экран OpenWebUI
- Настройка рабочего пространства OpenWebUI
- Добавление и удаление моделей
- Добавление документов
- Добавление векторной базы документов к существующей модели
- Заказ сервера с Ollama с помощью API
Информация
AI-чат-бот на собственном сервере представляет собой локальное решение, объединяющее несколько компонентов с открытым исходным кодом. Ядром является Ollama - фреймворк для запуска и управления крупными языковыми моделями (LLM) на локальных вычислительных ресурсах. Он обеспечивает загрузку и развертывание выбранной LLM. Для удобного взаимодействия с развернутой моделью используется Open Web UI - веб-приложение с графическим интерфейсом, позволяющее отправлять текстовые запросы и получать сгенерированные LLM ответы. Объединение этих компонентов создает полностью локальное, автономное решение для развертывания современных языковых моделей с открытым исходным кодом при сохранении полного контроля над данными и производительностью.
Основные возможности¶
- Веб-интерфейс: Open Web UI представляет собой интуитивно понятный веб-интерфейс, обеспечивающий централизованное управление и расширенные возможности взаимодействия с локальными моделями ИИ из репозитория Ollama, значительно упрощая процесс использования моделей для пользователей различных уровней подготовки.
- Интеграция с множеством языковых моделей: Ollama предоставляет доступ к множеству свободных языковых моделей, обеспечивая доступ к их усовершенствованным возможностям обработки естественного языка. Вы также можете подключить свои модели.
- Задачи: с помощью LLM пользователи могут вести беседы, получать ответы на вопросы, анализировать данные, выполнять переводы, а также создавать свои чат-боты и приложения с использованием ИИ.
- Открытый исходный код: Ollama является проектом с открытым исходным кодом, что позволяет пользователям настраивать и модифицировать платформу в соответствии со своими потребностями.
- Веб-скрапер и поиск по собственным документам (RAG): Через OpenWebUI вы можете выполнять поиск по различным видам документации: текстовым файлам, PDF-документам, презентациям в формате ppt/pptx, веб-сайтам и видео на YouTube.
Особенности сборки¶
- Возможна установка на Ubuntu 22.04.
- Время на установку 15-30 минут вместе с OS.
- Сервер Ollama загружает и запускает LLM в памяти.
- Open WebUI развертывается как веб-приложение, подключенное к серверу Ollama.
- Пользователи взаимодействуют с LLM через веб-интерфейс Open WebUI, отправляя запросы и получая ответы.
- Все вычисления и обработка данных происходят локально на сервере. Администраторы могут настраивать LLM для специфических задач через инструменты OpenWebUI.
- Системные требования: не менее 16 ГБ оперативной памяти.
После установки необходимо пройти по ссылке: https://<Server_IP_from_Invapi>:3000
.
Начало работы после развертывания AI-чат-бота¶
После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и API — Invapi.
После перехода по ссылке из тега webpanel будет открыто окно авторизации. Здесь следует использовать учетные данные, указанные в во вкладке Info >> Tags.
Данные для авторизации, которые можно найти или во вкладке Info >> Tags панели управления сервером или в присланном e-mail:
- Ссылка для доступа к панели управления Ollama c Open WebUI с веб-интерфейсом: в теге webpanel. Точная ссылка вида
https://<Server_IP_from_Invapi>:3000
приходит в письме, отправляемом при сдаче сервера.
После перехода по ссылке необходимо создать идентификатор пользователя и пароль в Open WebUI:
Внимание
После регистрации первого пользователя, система автоматически присваивает ему роль администратора. Для обеспечения безопасности и контроля над процессом регистрации, все последующие заявки на регистрацию должны быть одобрены администратором с его учетной записи.
Стартовый экран OpenWebUI¶
На стартовом экране представлен интерфейс чата, а также приведены несколько примеров входных запросов (промтов) для того, чтобы продемонстрировать возможности системы. Чтобы начать взаимодействие с чат-ботом, пользователю необходимо выбрать предпочтительную языковую модель из доступных вариантов. В данном случае предлагается использовать модель Llama 3, которая обладает обширными знаниями и возможностями для генерации ответов на различные запросы.
После выбора модели пользователь может ввести свой первый запрос в поле ввода, и система сформирует ответ на основе анализа введенного текста. Примеры промтов, представленные на стартовом экране, демонстрируют разнообразие тем и задач, с которыми может работать чат-бот, помогая пользователю сориентироваться в его возможностях.
Настройка рабочего пространства OpenWebUI¶
Для более детальной настройки чата необходимо перейти во вкладку Workspace >> Modefiles >> Create a modelfile. Там представлены несколько опций для кастомизации:
- Modelfiles - в этом разделе можно выбрать альтернативные языковые модели или загрузить собственные модели для использования в чате.
- Prompts - здесь можно создавать, редактировать и управлять собственными промптами (входными запросами) для более эффективного взаимодействия с чат-ботом.
- Documents - данная опция позволяет загружать документы различных форматов (PDF, текстовые файлы и др.) для их последующего анализа и обсуждения с помощью чат-бота.
- Playground - это область для экспериментов, где можно протестировать различные настройки и функции в безопасной среде перед их применением в основном чате.
Добавление и удаление моделей¶
Ollama предоставляет возможность установки и использования разнообразных языковых моделей, а не только предустановленной по умолчанию. Перед установкой новых моделей следует убедиться, что конфигурация сервера соответствует требованиям выбранной модели по объему памяти и вычислительным ресурсам.
Установка модели через интерфейс OpenWebUI¶
Для установки моделей через веб-интерфейс выполните следующие шаги:
-
Определите имя устанавливаемой модели, как написано в данной статье. Имя будет расположено в команде `ollama run <имя_модели>.
-
Нажмите на название модели в левом верхнем углу окна чат-бота OpenWebUI и в поле Search a model вставьте имя устанавливаемой модели.
-
Выберите пункт Pull <имя_модели> from Ollama.com.
-
После успешного скачивания и установки модель появится в выпадающем списке и будет доступна для выбора.
Установка модели через командную строку¶
Для установки новых моделей необходимо подключиться к серверу по SSH и выполнить соответствующую команду.
Удаление модели¶
Для удаления моделей из интерфейса OpenWebUI вам необходимо зайти в настройки веб-интерфейса Значок пользователя в правом верхнем углу >> Settings >> Model и в выпадающем списке Delete a model выбрать удаляемую модель и нажать на значок рядом с ней.
Для удаления из командно строки, выполните следующую команду (от root
):
Добавление документов¶
Опция Documents позволяет загружать документы различных форматов, такие как PDF, текстовые файлы, документы Word, презентации PowerPoint и другие, для их последующего анализа и обсуждения с помощью чат-бота. Это особенно полезно для изучения и понимания сложных документов, подготовки к презентациям или встречам, анализа данных и отчетов, проверки письменных работ на грамматические ошибки, стиль и логику, работы с юридическими, финансовыми документами, а также исследовательской деятельности в различных областях. Чат-бот может помочь разобраться в содержании документа, сформулировать резюме, выделить ключевые моменты, ответить на вопросы, предоставить дополнительную информацию и рекомендации.
Для управления настройками работы с документами необходимо перейти в Workspace >> Documents >> Documents settings. Это подменю содержит 4 раздела:
- General: в этом разделе можно указать общие настройки для работы с документами. Например, указать директорию, где находятся документы для сканирования и обработки. По умолчанию это
/data/docs
. КнопкаScanпредназначена для сканирования и обработки документов из указанной директории. Также в этом разделе можно выполнить настройки поиска документов и изменить модели для работы с документами. - Chunk Params: данный раздел позволяет настроить параметры разбиения (чанкинга) загруженных документов. Чанкинг - это разделение больших документов на более мелкие части для удобства обработки. Здесь можно задать максимальный размер чанка в символах или словах. В этом разделе также можно включить опцию PDF Extract Images (OCR) - это технология распознавания текста на изображениях. При включении этой опции система будет извлекать изображения из PDF-файлов и применять OCR для распознавания любого текста, содержащегося на этих изображениях.
- Query Params: здесь настраиваются параметры, влияющие на запросы к загруженным документам и способ получения ответов от чат-бота. “Top K” - эта настройка определяет количество лучших результатов поиска, которые будут отображаться. Например, если задать Top K = 5, то в ответе будут показаны 5 наиболее релевантных документов или фрагментов текста. “RAG Template” - RAG (Retrieval Augmented Generation) - это метод, при котором система сначала извлекает релевантные части текста из набора документов, а затем использует их для генерации ответа с помощью языковой модели. RAG Template задает шаблон для формирования запроса к языковой модели при использовании этого метода. Возможность настраивать RAG Template позволяет адаптировать формат запроса к языковой модели для получения более качественных ответов в определенных сценариях использования.
- Web Params: Раздел для настройки параметров, связанных с веб-поиском и извлечением информации из интернет-ресурсов. Здесь можно настроить проверку SSL-сертификатов при загрузке веб-страниц через HTTPS. По умолчанию она отключена (Off) для обеспечения безопасности.
Для добавления нового документа необходимо нажать на кнопку + и выбрать файл на локальном устройстве, затем нажать кнопку Save. Загруженный документ появится в общем списке:
После загрузки документов можно работать с ними в режиме чата. Для этого необходимо в строке чата начать сообщение со знака # и выбрать нужный документ из выпадающего списка. После чего ответ на запрос будет сформирован на основе данных из выбранного документа. Эта функция позволяет получать контекстные ответы, основанные на загруженной информации, и может быть полезна для различных задач, таких как поиск информации, анализ данных и принятие решений на основе документов:
Примечание
С помощью знака # вы можете добавлять в запрос веб-сайты или видео YouTube, чтобы LLM искала по ним также.
Добавление векторной базы документов к существующей модели¶
Вы можете добавить базу документов к вашем LLM модели через Ollama. Для этого установите следующие настройки в разделе General:
- Embedding Model Engine: Ollama
- Hybrid Search: On
- Embedding Model <имя_вашей_модели>
Внимание
Если вы поменяете или измените вашу модель для добавления данных, вам необходимо добавить все документы в базу заново.
Примечание
Подробная информация по основным настройкам Ollama и Open WebUI содержится в документации разработчиков Ollama и в документации разработчиков Open WebUI.
Заказ сервера с Ollama с помощью API¶
Для заказа сервера с нужным ПО с помощью API используйте данную инструкцию.