Обновление в демонстрационной среде Атомкод
Для обновления в полнофункциональной среде демонстрации возможностей Атомкод требуется провести подготовку.
При развертывании в полнофункциональной среде демонстрации возможностей Атомкод все роли объединены на одном сервере (стенде).
Подготовка к обновлению
Убедитесь, что сервер отвечает минимальным системным требованиям, указанным в разделе Аппаратные и программные требования.
Убедитесь, что серверы имеет записи в DNS-сервере, и что на всех серверах стенда, а также на компьютерах пользователей ст енда, используется именно этот DNS-сервер.
При помощи программы для передачи файлов по ssh (например, WinSCP) переместите архив с дистрибутивом Атомкод в директорию /opt.
Перейдите в консоль ssh на сервер с ролью Сервер Приложений.
Повысьте права командой
sudo -i
Перейдите в директорию /opt командой
cd /opt
При распаковке дистрибутива существует возможность внесения изменений в Inventory.
Если в файлах /opt/platform/installer/inventory/<Имя стенда>/group_vars/all.yml и /opt/platform/installer/inventory/<Имя стенда>/hosts.yml содержится важная информация, создайте резервную копию этих файлов.
Распакуйте архив с дистрибутивом
tar xzvf platformmd.*.tar.gz
Перейдите в директорию с docker-образами командой
cd /opt/platform/docker
Импортируйте docker-образы командой
docker load --input platformmd.tar
Перейдите в директорию /opt/platform/scripts/ командой
cd /opt/platform/scripts/
Добавьте права на запуск файлов командой
chmod +x *.sh
После выполнения скрипта переопределите при необходимости пароль для portainer, перейдя по ссылке https://test.pmd.local:9000.
Предустановленные логин и пароль:
логин: admin
пароль: zaq1!QAZxsw2
Выполните скрипт подготовки Inventory-стенда:
Если вы планируете использовать большие языковые модели, вам потребуется предварительно развернуть сервер vLLM.
./make_inventory.sh -s <имя стенда> -t <FQDN стенда> -b <FQDN стенда> -u <пароль пользователя с правами администратора postgres> -l <пароль пользователя сервисов Атомкод в postgres> -v <версия устанавливаемого релиза Атомкод> -a <ветка> -h <git-хост> -r <репозиторий> -m <расположение git>
где:
- имя стенда: имя стенда используется для удобства работы с inventory. Имя директории стенда в inventory совпадает с именем стенда, так что следует избегать символов, недопустимых в имени директорий.
- FQDN стенда: адрес стенда, например, test.pmd.local;
- пароль пользователя с правами администратора postgres: пароль для postgres-пользователя с логином postgres, который обладает правами
superuserвpostgresна сервере; - пароль пользователя сервисов Атомкод в postgres: пароль для postgres-пользователя с логином platform, который будет владельцем баз данных А томкод в postgres на сервере;
- версия устанавливаемого релиза Атомкод: например, 4.1.0;
- ветка: ветка git-репозитория проектов devtools, например, develop;
- git-хост: адрес сервера с git-репозиториями проектов devtools, при выборе локального git в домене по умолчанию
pmd.localзадайте следующее значение:http://devtoolsgit.pmd.local:80/git; - репозиторий: имя репозитория проектов devtools, например локально на стенде по-умолчанию создается
pmd-repo; - расположение git: указание на используемый git-репозиторий, если используется внутренний git-репозиторий стенда, то указывается local, если внешний — external.
Если пароль пользователя сервисов Атомкод в postgres отличается действующего пароля, то действующий пароль требуется самостоятельно изменить в СУБД Postgres.
Изменение параметров установки Атомкод
Чтобы изменить параметры установки Атомкод в файле /opt/platform/installer/group_vars/all.yml руководствуйтесь комментариями в этом файле.
Если для разных стендов необходимы различные значения переменных, укажите их в файле /opt/platform/installer/inventory/ИмяСтенда/group_vars/all.yml. Переменные, указанные в этом файле имеют более высокий приоритет.
Чтобы взаимодействовать на стенде с с языковыми моделями, задайте следующие значения переменных, в зависимости от используемых языковых моделей:
# LLM
llm_default_model_server: "http://<адрес сервера generation non think>:<порт, который слушает vLLM для модели non think>/v1"
llm_default_embedder_server: "http://<адрес сервера embedder>:<порт, который слушает vLLM для модели embedder>/v1"
llm_default_embedder_type: "openai" # в релизе 5.0 только такое значение
llm_default_reasoning_server: "http://<адрес сервера generation think>:<порт, который слушает vLLM для модели think>/v1"
llm_default_voiceai_server: "https://<адрес сервера с VoiceAi>:<порт, который слушает http VoiceAi сервис>"
llm_default_voiceai_socket: "wss://<адрес сервера с VoiceAi>:<порт, который слушает ws VoiceAi сервис>"
llm_rag_embedding_settings_url: "" # пусто, устаревший параметр
llm_langfuse_enabled: "false" # Если используете langfuse, укажите "true"
llm_langfuse_url: "https://langfuse.test.local" # Если используете langfuse, укажите его адрес.
llm_langfuse_environment: "{{ stand_name.split('.')[0] }}" # Можно задать environment для langfuse.
llm_langfuse_public_key: "" # Если используете langfuse, укажите публичный ключ
llm_langfuse_secret_key: "" # Если используете langfuse, укажите секретный ключ
llm_router_model_host_url: "" # пусто, устаревший параметр
llm_router_model: "" # пусто, устаревший параметр
llm_router_api_key: "" # пусто, устаревший параметр
llm_generation_model_host_url: "" # пусто, устаревший параметр
llm_generation_model: "" # пусто, устаревший параметр
llm_generation_api_key: "" # пусто, устаревший параметр
llm_agent_host_url: "http://<адрес сервера generation non think>:<порт, который слушает vLLM для модели non think>/v1"
llm_agent_model: "<Имя non think модели>"
llm_agent_main_api_key: "<API key non think модели>"
llm_fast_model_host_url: "http://<адрес сервера generation non think>:<порт, который слушает vLLM для модели non think>/v1"
llm_fast_model: "<Имя non think модели>"
llm_fast_model_api_key: "<API key non think модели>"
llm_smart_model_host_url: "http://<адрес сервера generation think>:<порт, который слушает vLLM для модели think>/v1"
llm_smart_model: "<Имя think модели>"
llm_smart_model_api_key: "<API key think модели>"
llm_doc_embedder_url: "http://<адрес сервера embedder>:<порт, который слушает vLLM для модели embedder>/v1"
llm_doc_embedder_api_key: "<API key embedding модели>"
Чтобы использовать сервис обработки голосовых данных VoiceAI на сервере с ролью Сервер Приложений, укажите значения следующих переменных:
llm_default_voiceai_socket:wss://voiceai.<внутренний домен стенда>:8765llm_default_voiceai_server:https://<Адрес сервера Приложений>/services/voiceai
В этом случае сервис RagManager будет обращаться к сервису VoiceAi напрямую через внутреннюю Docker-сеть.
Если вы хотите распознавать аудио на стенде Атомкод без доступа в интернет, настройте офлайн-распознавание аудио.
Дополнительные действия при обновлении Атомкод версии 4.x на версию 5.0
При обновлении Атомкод версии 4.2 на версию 5.0 и выше необходимо удалить следующую базу данных — ragmanager_db.
Чтобы удалить базу данных ragmanager_dbвыполните следующие действия:
-
Остановите контейнер
ragmanagerв портейнере либо в ssh-консоли на сервере Приложений командойdocker stop ragmanager -
Удалите базу данных
ragmanagerв Postgres в приложении для управления базами данных, например PGAdmin или DBeaver, или в ssh-консоли на сервере БД командой:docker exec posgresqlplatform psql -U postgres -c "DROP DATABASE IF EXISTS ragmanager_db;"
Если в Атомкод используется LLM, то при обновлении Атомкод версии 4.x на версию 5.0 следует:
- создать на стенде файл
/opt/docker-conts/external-certs/CA-LLM.pem; - поместить в этот файл корневой сертификат, которым подписаны сертификаты, использующиеся на LLM.
Развертывание при обновлении
После выполненной подготовки вы можете приступить к развертыванию обновленной Атомкод в демострационной среде.
Перейдите в директорию /opt/platform/installer инсталлятора командой
cd /opt/platform/installer
Запустите установку Атомкод командами:
cd /opt/platform/scripts/
./run_ansible_playbooks_monostand.sh -s <Имя стенда> -d <Внутренний домен Атомкод>
где:
- Имя стенда: имя стенда, например, test.pmd.local;
- Внутренний домен Атомкод: внутренний домен Атомкод, используемый для межсервисного взаимодействия, например, pmd.local.
Дождитесь завершения установки, это может занять 20-30 минут.
Удаление неактуальных для Атомкод версии 5.0 сервисов
Чтобы удалить неактуальные сервисы выполните следующие действия:
- перейдит е в консоль администрирования Атомкод обновлённого стенда в раздел Services.
- перейдите по очереди в следующие сервисы: cmspublisherservice, staticpublisherservice, cmsservice.
- В каждом сервисе рядом с названием сервиса нажмите кнопку Edit Service.
- В открывшейся форме Edit service нажмите кнопку Delete.