Установка и запуск чата Semantic

LLM-chat — инфраструктура для работы с чатом Semantic.

Для запуска проекта установите Docker Compose — см. инструкцию по установке.

Права доступа к Docker

По умолчанию скрипты запускаются через sudo, так как пользователь не добавлен в группу docker. Чтобы снять это требование, добавьте пользователя в группу docker:

sudo usermod -aG docker $USER
newgrp docker

После этого команды можно запускать без sudo. Дальнейшая инструкция использует sudo — если группа добавлена, игнорируйте.

Требования

См. требования к Staffcop Semantic

Установка

  1. Скачайте скрипт обновления:

curl -O https://distr.staffcop.su/llm/llm-chat/chat_update.sh
chmod +x chat_update.sh
  1. Запустите скрипт. Он скачает репозиторий и подготовит файлы:

sudo REPO_URL=https://distr.staffcop.su/llm/llm-chat/ ./chat_update.sh
  1. Создайте файл конфигурации .env из шаблона:

sudo cp .env.default .env
  1. Проверьте и установите переменные в .env. Параметры файла описаны в разделе Конфигурация.

  2. Запустите контейнеры:

sudo bash scripts/chat_start.sh

Конфигурация

Конфигурация LLM-чата хранится в файле /etc/llm-chat/config. Изменения применяются после перезапуска сервиса командой sudo systemctl restart llm-chat. Шаблон конфигурации — /etc/llm-chat/config.template.

Скопируйте .env.default в .env и настройте переменные:

Переменная

По умолчанию

Описание

REPO_URL

https://distr.staffcop.su/llm/llm-chat

URL Git-репозитория для chat_update.sh

POSTGRES_DB

symantic

Имя PostgreSQL базы

POSTGRES_USER

symantic

Пользователь PostgreSQL

POSTGRES_PASSWORD

symantic

Пароль PostgreSQL

POSTGRES_HOST

postgres

Хост PostgreSQL

POSTGRES_PORT

5432

Порт PostgreSQL

AGENT_LLM_BASE_URL

http://ollama:11434/v1

URL OpenAI-совместимого API LLM для AI-агента

AGENT_LLM_API_KEY

ollama

API-ключ LLM

AGENT_LLM_MODEL

qwen3:14b

Модель для AI-агента

AGENT_LLM_TIMEOUT

180

Тайм-аут для ответа LLM (сек)

AGENT_MAX_AGENT_ATTEMTS

2

Максимальное количество попыток построить фильтр в cube_agent

CHAT_SECRET_KEY

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

Секретный ключ для бэкенда чата

NGINX_SERVER_NAME

localhost

Доменное имя для nginx/SSL

SSL_CERT_PATH

/etc/ssl/certs/llm/cert

Путь к SSL сертификату на хосте

SSL_CERT_KEY_PATH

/etc/ssl/certs/llm/key

Путь к SSL ключу на хосте

HTTPS_HOST_PORT

443

Порт HTTPS на хосте

HTTP_HOST_PORT

80

Порт HTTP на хосте

HTTPS_ONLY

false

true — редирект HTTP на HTTPS

CUBE_TIMEZONE

Europe/Moscow

Временная зона для Staffcop Enterprise

CUBE_URL

http://staffcop.local

URL Staffcop Enterprise

CUBE_TIMEOUT

60

Тайм-аут для Staffcop API (сек)

CUBE_BACKEND

clickhouse

Бэкенд для Staffcop API

CUBE_TOKEN

(пусто)

Ключ REST API Staffcop, обязателен

Изменения в .env применяются после перезапуска:

sudo bash scripts/chat_stop.sh && sudo bash scripts/chat_start.sh

Управление сервисами

Команда

Описание

sudo bash scripts/chat_start.sh

Запустить все контейнеры

sudo bash scripts/chat_stop.sh

Остановить все контейнеры

sudo REPO_URL=... ./chat_update.sh

Обновить код и образы

Создание пользователя

Создать пользователя и установить пароль для него:

docker compose exec chat-service useradd <user_name>
docker compose exec chat-service passwd <user_name> <user_password>

Запуск чата

Перейдите по адресу http[s]://<адрес_сервера> и залогиньтесь.

Устранение проблем

Контейнер не запускается

Посмотреть логи:

sudo docker compose -f docker-compose.yaml -f docker-compose.db.yaml logs

Проверить состояние:

sudo docker compose -f docker-compose.yaml -f docker-compose.db.yaml ps

Последнее обновление: 12.11.26