로브허브의 로브챗 Docker 컨테이너 배포 가이드

로브허브에서 제공하는 로브챗은 강력한 대형 언어 모델 상호작용 기능과 다양한 확장 옵션을 갖춘 지능형 AI 대화 플랫폼입니다. 2023년에는 다중 모델 서비스 지원, 로컬 LLM 실행, 모델 시각적 식별, 음성 대화(TTS & STT), 텍스트 이미지 생성(Text to Image), 플러그인 시스템 등의 핵심 기능이 도입되었으며, 이는 모바일 장치와 PWA(Progressive Web App) 환경에서도 최적화되었습니다. 2024년에는 사고 체인(CoT), 분기 대화, 화이트보드(아티팩트), 파일 업로드 및 지식 관리, 로컬/클라우드 데이터 저장, 인증 시스템 및 멀티 유저 관리 등이 추가되어 개인과 팀 모두에게 필요한 AI 협업 요구사항을 충족합니다.

로브챗의 사용 편의성을 위해 로브허브에서는 Docker 이미지를 제공하고 있으며, 본 문서에서는 이를 통해 로브챗을 Docker 컨테이너로 배포하는 단계를 자세히 설명합니다.

환경 준비: Docker 설치

먼저 Docker가 설치되지 않은 경우, Ubuntu/CentOS 기반 시스템에서 아래 명령어를 실행하여 설치할 수 있습니다.

$ sudo apt install docker.io

Docker가 이미 설치된 경우 해당 단계를 건너뛸 수 있습니다.

Docker Compose 배포 방법

Docker Compose는 구성 파일을 통해 컨테이너 서비스를 통합적으로 관리할 수 있어 고정된 설정으로 배포하기 적합합니다. 아래 단계에 따라 진행하세요.

1. docker-compose.yml 작성

docker-compose.yml 파일을 생성하고 다음 내용을 입력합니다.

version: "3.8"
services:
  lobechat:
    image: xxx.xuanyuan.run/lobehub/lobechat
    container_name: lobechat
    restart: always
    ports:
      - 3210:3210
    environment:
      AZURE_API_KEY: az-xxxx
      API_GATEWAY_URL: https://api-gateway.com/v1
      SECURITY_TOKEN: token123
      PACKAGE_REGISTRY: https://registry.npmmirror.com
      PYTHON_INDEX: https://mirrors.aliyun.com/pypi/simple/
      TRUSTED_HOST: mirrors.aliyun.com
      GOLANG_PROXY: https://goproxy.cn,direct
      YARN_SOURCE: https://registry.npmmirror.com
      HF_API: https://hf-mirror.com

설명:

  • ports: 호스트의 3210 포트를 컨테이너의 3210 포트로 매핑합니다. 필요 시 다른 포트(예: 3211:3210)로 변경 가능합니다.
  • AZURE_API_KEY: 실제 Azure API 키로 대체해야 합니다.
  • SECURITY_TOKEN: 권한 없는 접근 방지를 위해 설정하는 것이 좋습니다.

2. 서비스 시작

위 파일이 있는 디렉토리에서 다음 명령어를 실행하여 서비스를 시작합니다.

$ docker-compose up -d

이는 백그라운드 모드에서 로브챗 컨테이너를 실행합니다.

Docker 명령어를 이용한 간편 배포

복잡한 설정 관리가 필요하지 않은 경우 Docker 명령어로 간단하게 배포할 수 있습니다.

1. 기본 배포

다음 명령어로 로브챗 컨테이너를 실행합니다.

$ docker run -d \
  --name lobechat \
  -e AZURE_API_KEY=az-xxxx \
  -e SECURITY_TOKEN=token123 \
  xxx.xuanyuan.run/lobehub/lobechat

2. 프록시를 통한 배포

프록시를 사용하여 OpenAI 서비스에 접근하려면 다음 명령어를 실행합니다.

$ docker run -d \
  -p 3210:3210 \
  -e AZURE_API_KEY=az-xxxx \
  -e API_GATEWAY_URL=https://api-proxy.com/v1 \
  -e SECURITY_TOKEN=token123 \
  --name lobechat \
  xxx.xuanyuan.run/lobehub/lobechat

선택 사항: 크론 탭 자동 업데이트 스크립트

최신 버전의 로브챗을 유지하기 위해 자동 업데이트 스크립트를 구성할 수 있습니다. 다음 단계를 따르세요.

1. 환경 변수 파일 생성 (선택)

여러 환경 변수를 구성해야 하는 경우 lobechat.env 파일을 작성합니다.

AZURE_API_KEY=az-xxxx
API_GATEWAY_URL=https://api-proxy.com/v1
SECURITY_TOKEN=secure456
MODEL_LIST=-gpt-4,-gpt-4-32k,-gpt-3.5-turbo-16k,gpt-3.5-turbo-1106=gpt-3.5-turbo-16k,gpt-4-0125-preview=gpt-4-turbo,gpt-4-vision-preview=gpt-4-vision

2. 자동 업데이트 스크립트 작성

update-lobechat.sh 스크립트를 생성합니다.

#!/bin/bash
# update-lobechat.sh

# 프록시 설정 (필요 시)
export http_proxy=http://127.0.0.1:7890 https_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890

# 최신 이미지 가져오기
pull_output=$(docker pull lobehub/lobechat:latest 2>&1)

if [ $? -ne 0 ]; then
  exit 1
fi

echo "$pull_output" | grep -q "Image is up to date for lobehub/lobechat:latest"

if [ $? -eq 0 ]; then
  exit 0
fi

echo "로브챗 업데이트 감지됨"

# 기존 컨테이너 제거
docker rm -f Lobechat > /dev/null 2>&1

# 새 컨테이너 실행
docker run -d \
  --network=host \
  --env-file /path/to/lobechat.env \
  --name=Lobechat \
  --restart=always \
  lobehub/lobechat

echo "업데이트 시간: $(date)"
echo "버전: $(docker inspect lobehub/lobechat:latest | grep 'org.opencontainers.image.version' | awk -F'"' '{print $4}')"

# 불필요한 이미지 정리
docker images | grep 'lobehub/lobechat' | grep -v 'latest' | awk '{print $3}' | xargs -r docker rmi > /dev/null 2>&1
echo "구 버전 이미지 삭제 완료."

실행 권한 부여:

chmod +x update-lobechat.sh

3. 크론 탭 설정

crontab -e를 실행하여 5분마다 자동 업데이트를 수행하도록 설정합니다.

*/5 * * * * /path/to/update-lobechat.sh >> /path/to/update-lobechat.log 2>&1

로그 파일 경로를 실제 경로로 대체하세요.

OpenAI API Key 획득 방법

로브챗을 사용하려면 OpenAI API Key가 필요합니다. 다음 두 가지 방법 중 하나를 사용하세요.

공식 OpenAI 채널

  • 국제 전화번호와 비대륙 이메일로 OpenAI 계정을 등록합니다.
  • API Keys 페이지로 이동하여 'Create new secret key'를 클릭하여 API Key를 생성합니다.
  • 신규 계정은 일반적으로 3개월 동안 유효한 $5 무료 크레딧을 제공하며, 이후에는 외화 신용카드가 필요합니다.

태그: docker docker-compose lobehub

5월 31일 03:56에 게시됨