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

AI-чат-бот на собственном сервере

В этой статье

Информация

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, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и APIInvapi.

После перехода по ссылке из тега 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

Для установки моделей через веб-интерфейс выполните следующие шаги:

  1. Определите имя устанавливаемой модели, как написано в данной статье. Имя будет расположено в команде `ollama run <имя_модели>.

  2. Нажмите на название модели в левом верхнем углу окна чат-бота OpenWebUI и в поле Search a model вставьте имя устанавливаемой модели.

  3. Выберите пункт Pull <имя_модели> from Ollama.com.

  4. После успешного скачивания и установки модель появится в выпадающем списке и будет доступна для выбора.

Установка модели через командную строку

Для установки новых моделей необходимо подключиться к серверу по SSH и выполнить соответствующую команду.

Удаление модели

Для удаления моделей из интерфейса OpenWebUI вам необходимо зайти в настройки веб-интерфейса Значок пользователя в правом верхнем углу >> Settings >> Model и в выпадающем списке Delete a model выбрать удаляемую модель и нажать на значок рядом с ней.

Для удаления из командно строки, выполните следующую команду (от root):

ollama rm <имя_модели>

Добавление документов

Опция 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 используйте данную инструкцию.