Перейти к основному содержимому

Обновление в демонстрационной среде Атомкод

Для обновления в полнофункциональной среде демонстрации возможностей Атомкод требуется провести подготовку.

к сведению

При развертывании в полнофункциональной среде демонстрации возможностей Атомкод все роли объединены на одном сервере (стенде).

Подготовка к обновлению

предупреждение

Убедитесь, что сервер отвечает минимальным системным требованиям, указанным в разделе Аппаратные и программные требования. Убедитесь, что серверы имеет записи в 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://10.0.10.25:8765_
  • llm_default_voiceai_server: _https://<Адрес сервера Приложений>/services/voiceai_

В этом случае сервис RagManager будет обращаться к сервису VoiceAi напрямую через внутреннюю docker-сеть.

Дополнительные действия при обновлении Атомкод версии 4.x на версию 5.0

При обновлении Атомкод версии 4.x на версию 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 минут.

Дополнительные действия при обновлении Атомкод версии 4.2 на версию 5.0

При обновлении Атомкод версии 4.2 на версию 5.0 и выше можно удалить информацию о неактуальных сервисах и контейнерах.

Удаление неактуальных для Атомкод версии 5.0 сервисов

Чтобы удалить неактуальные сервисы выполните следующие действия:

  • перейдите в консоль администрирования Атомкод обновлённого стенда в раздел Services.
  • перейдите по очереди в следующие сервисы: cmspublisherservice, staticpublisherservice, cmsservice.
  • В каждом сервисе рядом с названием сервиса нажмите кнопку Edit Service.
  • В открывшейся форме Edit service нажмите кнопку Delete.