Дополнительные действия
AZykov (обсуждение | вклад) |
AZykov (обсуждение | вклад) |
||
| Строка 21: | Строка 21: | ||
= Установка сервиса AI Proxy = | = Установка сервиса AI Proxy = | ||
Сервис AI Proxy работает как docker-контейнер и является отдельным микросервисом, не входящим в контур платформы эра. Соответственно, он не управляется доменным центром | Сервис AI Proxy работает как docker-контейнер и является отдельным микросервисом, не входящим в контур платформы эра. Соответственно, он не управляется доменным центром платформы, не осуществляется автоматическая миграция и сборка логов. Сервис может быть развернут как на одном из сервером, обслуживающем платформу, так и на отдельном сервере (например, отдельном сервере для LLM с GPU). | ||
Установка контейнера сервиса выполняется несколькими простыми командами:<syntaxhighlight lang="bash"> | Установка контейнера сервиса выполняется несколькими простыми командами:<syntaxhighlight lang="bash"> | ||
Версия от 12:45, 14 июля 2025
Общая информация

В составе платформы Эра, начиная с версии 1.9, доступно приложение ИИ. Данное приложение позволяет использовать большие языковые модели (LLM) в рамках платформы.
На текущий момент, основным применением LLM в рамках платформы являются чат-боты.
Приложение ИИ предоставляет следующий набор возможностей:
- Подключение различных провайдеров LLM (с форматом API OpenAI и Ollama)
- Создание ботов, которые взаимодействуют с конкретным провайдером
- Создание файловых баз знаний для ботов
- Просмотр диалогов с ботами

Имеется возможность использовать как облачные решения, так и развернутые во внутреннем контуре модели.
При работе с искусственным интеллектом, платформа использует подход RAG, который позволяет комбинировать информацию, содержащуюся в самой модели (как правило только публичная и общая информация) с инфорамцией из конкретной базы знаний бизнеса. Этот подход позволяет значительно уменьшить количество "расплывчатых" ответов ИИ, а также ограничить его нецелевое использование - пользователям может быть доступен только контекст, определяемый базой знаний.
Все запросы к языковым моделям осуществляются не напрямую из платформы Эра, а через специализированный сервис Era AI Proxy, который предоставляет единый интерфейс для работы с моделями, осуществляя преобразование запросов в необходимый API внутри себя.
В рамках данной статьи будет рассмотрена полная настройка работы приложения ИИ, от разворачивания сервисов до настройки ботов.
Установка сервиса AI Proxy
Сервис AI Proxy работает как docker-контейнер и является отдельным микросервисом, не входящим в контур платформы эра. Соответственно, он не управляется доменным центром платформы, не осуществляется автоматическая миграция и сборка логов. Сервис может быть развернут как на одном из сервером, обслуживающем платформу, так и на отдельном сервере (например, отдельном сервере для LLM с GPU).
Установка контейнера сервиса выполняется несколькими простыми командами:
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 требуется минимум 32гб видеопамяти, а для DeepSeek-R1-Distill-Qwen-1.5B - 2гб. Каждая из моделей обеспечивает различное качество ответов, а от мощности оборудования напрямую зависит скорость ответов и допустимая параллельная нагрузка.
Пример конфигурации оборудования:
- Видеокарта 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

Модели, используемые по умолчанию:
- 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

Для установки новых моделей, необходимо выполнить команду внутри контейнера:
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 новых компонента, позволяющих использовать ИИ-бота в рамках сценария:

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

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