Использование Docker образа агента SOWA#

Сборка образа#

Параметры сборки образа#

Параметр

Тип

Значение по умолчанию

Описание

BASE_IMAGE

ARG

dockerstorage/image:tag...

Путь к базовому образу

PORT

ARG

7860

Порт HTTP-сервера

Для сборки образа с нестандартным базовым образом необходимо выполнить следующую операцию:

docker build --build-arg BASE_IMAGE=<base_image_path> . --rm --no-cache=true --tag <image_name>:<image_tag>

где:

  • <base_image_path> — адрес базового образа ОС;

  • <image_name> — имя собираемого образа;

  • <image_tag> — версия собираемого образа;

Важно

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

Использование образа#

Запуск контейнера#

docker run -it -p <host_port>:7860 <image_name>:<image_tag>

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

curl 127.0.0.1:7860

Запуск в фоне#

docker run -d -p <host_port>:7860 \
    -e OPENAI_API_KEY="<api_key>" \
    -e OPENAI_MODEL="<model_name>" \
    -e EMBEDDING_MODEL="<embedding_model>" \
    -e INTERNAL_API_BASE_URL="<llm_gateway_url>" \
    <image_name>:<image_tag>

Использование в Kubernetes#

apiVersion: apps/v1
kind: Deployment
metadata:
  name: sowa-ai-agent
spec:
  replicas: 1
  selector:
    matchLabels:
      app: sowa-ai-agent
  template:
    metadata:
      labels:
        app: sowa-ai-agent
    spec:
      containers:
      - name: agent
        image: <image_name>:<image_tag>
        ports:
        - containerPort: 7860
        env:
        - name: OPENAI_API_KEY
          valueFrom:
            secretKeyRef:
              name: sowa-ai-secrets
              key: apikey
        - name: OPENAI_MODEL
          value: "deepseek-ai/DeepSeek-V4-Flash"
        - name: EMBEDDING_MODEL
          value: "Qodo/Qodo-Embed-1-1.5B"
        - name: EMBEDDING_SCOPE
          value: "GIGACHAT_API_CORP"
        - name: INTERNAL_API_BASE_URL
          value: "https://llm-gateway.example.com/openai/v1"
        readinessProbe:
          httpGet:
            path: /gradio_api/
            port: 7860
          initialDelaySeconds: 10
          periodSeconds: 30

Описание необходимых переменных окружения приведено в разделе Настройка окружения.