Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Искусственный Интеллект

Материал из Платформа Эра. Документации

Общая информация

Приложение ИИ

В составе платформы Эра, начиная с версии 1.9, доступно приложение ИИ. Данное приложение позволяет использовать большие языковые модели (LLM) в рамках платформы.

На текущий момент, основным применением LLM в рамках платформы являются чат-боты.

Приложение ИИ предоставляет следующий набор возможностей:

  • Подключение различных провайдеров LLM (с форматом API OpenAI и Ollama)
  • Создание ботов, которые взаимодействуют с конкретным провайдером
  • Создание файловых баз знаний для ботов
  • Просмотр диалогов с ботами
Архитектура ИИ

Имеется возможность использовать как облачные решения, так и развернутые во внутреннем контуре модели.

При работе с искусственным интеллектом, платформа использует подход RAG, который позволяет комбинировать информацию, содержащуюся в самой модели (как правило только публичная и общая информация) с инфорамцией из конкретной базы знаний бизнеса. Этот подход позволяет значительно уменьшить количество "расплывчатых" ответов ИИ, а также ограничить его нецелевое использование - пользователям может быть доступен только контекст, определяемый базой знаний.

Все запросы к языковым моделям осуществляются не напрямую из платформы Эра, а через специализированный сервис Era AI Proxy, который предоставляет единый интерфейс для работы с моделями, осуществляя преобразование запросов в необходимый API внутри себя.

В рамках данной статьи будет рассмотрена полная настройка работы приложения ИИ, от разворачивания сервисов до настройки ботов.

Установка сервиса AI Proxy

Сервис AI Proxy работает как docker-контейнер и является отдельным микросервисом, не входящим в контур платформы эра. Соответственно, он не управляется доменным центром платформы, не осуществляется автоматическая миграция и сборка логов. Сервис может быть развернут как на одном из сервером, обслуживающем платформу, так и на отдельном сервере (например, отдельном сервере для LLM с GPU).

Сам по себе AI Proxy не запускает модели, а только лишь преобразует и маршрутизирует запросы к ним.

Установка контейнера сервиса выполняется несколькими простыми командами:

wget https://download.era-platform.ru/ai/era_ai_proxy_1_1_0.tar.gz
docker load -i era_ai_proxy_1_1_0.tar.gz
docker run --name era_ai_proxy \
           --tmpfs /run:rw,noexec,nosuid,size=4096k \
           --publish 32443:443 --publish 32080:8080 \
           -dit \
           --restart unless-stopped \
           era/ai_proxy:1.1.0

После чего он становится доступен на портах 32443 (HTTPS) и 32080 (HTTP).

Установка адреса прокси в параметрах системы

После запуска сервиса, необходимо в вашем основном (не мастер) домене, в приложении Администратор платформы, раздел Параметры -> Система, задать значение параметра ai.service.address (пример на скриншоте).

На этом настройка прокси заканчивается и можно переходить к установке и подключению моделей.

Подготовка сервера для LLM

Необходимо понимать, что для работы больших моделей требуется достаточно мощный сервер с графическим ускорителем. Для исполнения LLM важными параметрами сервера являются ядра CPU, количество оперативной памяти, архитектура GPU и объем видеопамяти.

Для установки сервисов LLM необходимо использовать отдельный сервер.

Количество необходимой видеопамяти варьируется в зависимости от конкретной модели и её версии. Так, например, для корректной работы модели DeepSeek-R1-Distill-Qwen-32B требуется минимум 56гб видеопамяти, а для DeepSeek-R1-Distill-Qwen-1.5B - 4гб. Каждая из моделей обеспечивает различное качество ответов, а от мощности оборудования напрямую зависит скорость ответов и допустимая параллельная нагрузка.

Пример конфигурации оборудования:

  • Видеокарта Nvidia RTX 4000 SFF ADA 20 GB
  • Intel Core i5-13500
  • 64 GB RAM

Пример скорости работы на оборудовании:

  • LLM: 7 GB, 230/5 токенов – 0.3 сек
  • LLM+RAG: 7+5 GB, 1700/100 токенов – 3 сек
  • TTS: 4 GB, RTF 0.16 (1 сек. для 6 сек.)
  • ASR: 11 GB, RTF 0.16 (до 150 часов в сутки)

Конкретные требования к серверу сформировать очень сложно, так как постоянно выходят новые модели и их версии, выпускаются новые поколения оборудования. Желательно опираться на требования той модели, которая планируется к использованию.

Перед установкой любых контейнеров, использующих видеокарты, как правило, необходимо:

  • обновить ядро Linux
  • установить драйвер NVidia
  • установить nvidia-container-toolkit
  • проверить доступность видеокарт утилитой nvidia-smi

Обновление любого контейнера - это удаление и установка:

docker stop container_name

docker rm container_name

docker run --name container_name ...

Установка языковых моделей

Так как платформа Эра использует подход RAG, в каждой инсталляции присутствует как минимум две модели - RAG (embedding) и LLM (сама языковая модель).

Embedding-модель позволяет трансформировать текстовые данные (например, данные из базы знаний) в понятные для ИИ эмбеддинги, которые уже будут использоваться при обращении к языковой модели.

Далее, рассмотрим два примера установки локальных моделей.

Установка LocalAI

LocalAI - это проект с открытым исходным кодом, который предоставляет возможность локального развёртывания большого числа моделей и предоставляет для использования OpenAI-like API. Также он поддерживает загрузку моделей через web-интерфейс. Контейнер загружается из сети Интернет и при первом запуске автоматически скачивает модели по умолчанию).

Работает на GPU.

Установка выполняется одной командой:

docker run --gpus all --name era_ai_llm_localai --publish 32081:8080 -dit --restart unless-stopped localai/localai:latest-aio-gpu-nvidia-cuda-12
Подключение LocalAI

Модели, используемые по умолчанию:

  • LLM: hermes-2-pro-mistral (alias gpt-4)
  • embedding (RAG): all-MiniLM-L6-v2 (alias text-embedding-ada-002)

Для установки новых моделей используется web-интерфейс http://server_address:32081

После установки контейнера, необходимо добавить новый сервис в приложении ИИ (в разделе Сервисы GPT). Пример настройки представлен на скриншоте.

Установка Ollama

Ollama это ещё один открытый проект для удобного запуска локальных LLM, поддерживающий различные модели и их версии.

В отличии от LocalAI, установка моделей работает через командную строку (хотя есть и GUI-версия для desktop-установки).

Установка также выполняется с помощью docker-контейнера:

docker load -i era_ai_llm_ollama_1_0_0.tar.gz

docker run --name era_ai_llm_ollama \
           --gpus=all \
           -v ollama:/root/.ollama \
           --publish 32082:11434 \
           -dit \
           --restart unless-stopped \
           era/ai_llm_ollama:1.0.0

По умолчанию, установлены следующие модели:

  • LLM: llama3.1, hermes3, deepseek-llm
  • embedding (RAG): nomic-embed-text, zylonai/multilingual-e5-large
Подключение к Ollama

Для установки новых моделей, необходимо выполнить команду внутри контейнера:

docker exec -it era_ai_llm_ollama bash
ollama pull <name>

Каталог доступных моделей доступен на официальном сайте

URL для API: http://server_address:32082

При добавлении сервиса в приложение ИИ, необходимо выбрать тип API - Ollama (пример на скриншоте).

Настройка и использование ботов

Боты создаются в приложении ИИ, и используются в функционале чатов. В рамках платформы может быть создано неограниченное количество ботов, каждый из которых может консультировать по особенному типу вопросов, области знаний, или используя различные модели.

Настройки ИИ-бота

Поведение бота определяется следующим набором параметров:

Параметры бота
Параметр Комментарий
Сервис GPT Сервис-поставщик LLM, определяющий доступные для использования модели.

Установка различных сервисов LLM была рассмотрена выше в рамках данной статьи.

База знаний Файловая база знаний, определяющая контекст информации, по которой бот будет осуществлять поиск. Позволяет дополнить публичную языковую модель специфичной бизнес-информацией
Систмный промпт Инструкция для языковой модели, определяющая её поведение. Самый важный параметр бота, он определяет всё от стиля общения, до ограничений в использовании бота клиентом (например, можно запретить боту отвечать на запросы, не связанные с конкретной бизнес-областью)
Модель Если сервис GPT предоставляет несколько моделей для использования, позволяет задать конкретную модель
Температура Значение от 0 до 1, определяющее "случайность" генерируемых ответов. Более низкая температура делает ответы более предсказуемыми и консервативными, в то время как более высокая температура способствует большей креативности и разнообразию ответов, но также может увеличить вероятность появления "шума" или "галлюцинаций".

Использование бота во внутренних чатах

Кнопка создания чата с ИИ

Если бот является публичным (значение настройки Публичный=true), то пользователи могут использовать его в разделе Внутренние чаты своего рабочего места (оператора или супервизора).

Для того, чтобы создать чат с ботом, необходимо нажать на соответствующую кнопку в списке внутренних чатов (пример на скриншоте).

Создание ИИ-ассистента

После нажатия на кнопку, появится диалоговое окно, позволяющее задать ассистенту имя и выбрать бота, из списка доступных (публичных)

Использование бота в сценариях чатов

В сценариях чатов доступны для использования 3 новых компонента, позволяющих использовать ИИ-бота в рамках сценария:

ИИ-компоненты сценария чата
  • ИИ-ассистент старт - создает новый диалог с ИИ ботом и передает в него первый вопрос
  • ИИ-ассистент продолжение - продолжает существующий диалог с ИИ и передает в него новый вопрос
  • Ответ на вопрос - разовый запрос к ИИ-боту, не предусматривающий ведение дальнейшего диалога

Концепция использования ИИ-ботов в сценариях чата не предусматривает полноценный "перевод" чата на бота, как на сотрудника. Вместо этого, подразумевается встраивание отдельных запросов к боту в рамках алгоритма сценария чата. Такой подход позволяет создавать как сценарии для полноценного диалогового общения с ботом (используя компоненты взаимодействия с ботом в цикле), так и для разовых запросов, для получения какой-либо информации (или, например, валидации данных).

Пример сценария чата с ИИ

Компонент ИИ-ассистент старт создаст новый диалог и сохранит его идентфикатор в переменную, а так же вернет ответ бота. Если необходимо этот диалог продолжить, то необходимо использовать компонент ИИ-ассистент продолжение с сохраненным идентификатором диалога.