doublewordai/control-layer
요약
Doubleword Control Layer(dwctl)는 LiteLLM 대비 오버헤드가 450배 적은 초고속 AI 모델 게이트웨이입니다. 오픈 소스 및 독점 모델을 위한 단일 인터페이스를 제공하며, 라우팅, 관리, 보안 및 모니터링 기능을 지원합니다.
핵심 포인트
- LiteLLM 대비 450배 적은 오버헤드 제공
- 모델 간 원활한 전환 및 프로덕션용 API 변환
- 중앙 집중식 추론 활동 관리 및 감사 기능
- Docker Compose 및 Docker Run을 통한 간편한 설치
공지 (Announcement) | 벤치마킹 (Benchmarking) | 기술 블로그 (Technical Blog) | 문서 (Documentation)
Doubleword Control Layer (dwctl)는 세계에서 가장 빠른 AI 모델 게이트웨이입니다 (LiteLLM보다 오버헤드가 450배 적음). 이는 오픈 소스(open-source) 및 독점(proprietary) 모델 제공자, 사용자 및 배포 전반에 걸쳐 추론 (inference)을 라우팅, 관리 및 보안을 위한 단일 고성능 인터페이스를 제공합니다.
- 모델 간의 원활한 전환
- 모든 모델(자체 호스팅 또는 호스팅 모델)을 완전한 인증 (auth) 및 사용자 제어 기능을 갖춘 프로덕션 준비 완료된 API로 변환
- 모든 추론 (inference) 활동을 중앙에서 관리, 모니터링 및 감사 (audit)
Control Layer가 어떻게 작동하는지 파악하려면 대화형 데모를 방문하세요.
Doubleword Control Layer를 사용하려면 Docker가 설치되어 있어야 합니다. Docker 시작 방법에 대한 정보는 여기의 문서 (docs)를 참조하세요.
Control Layer를 설정하는 방법에는 두 가지가 있습니다:
Docker Compose - 사전 구성된 Postgres 및 dwctl이 포함된 올인원 (all-in-one) 설정입니다. 이 방법은 기본 자격 증명이 포함된 컨테이너화된 Postgres 데이터베이스를 자동으로 프로비저닝하고 이를 Control Layer에 연결합니다.
Docker Run - 사용자가 직접 데이터베이스를 가져오는 (Bring-your-own-database) 설정입니다. 이 방법을 사용하여 Control Layer를 원하는 기존 Postgres 인스턴스에 연결하십시오.
docker compose가 설치되어 있으면 아래 명령어를 통해 Control Layer를 시작할 수 있습니다.
wget https://raw.githubusercontent.com/doublewordai/control-layer/refs/heads/main/docker-compose.yml
docker compose -f docker-compose.yml up -d
시작하려면 http://localhost:3001로 이동하세요. 로그인 페이지에 도달하면 사용자 이름과 비밀번호로 로그인하라는 메시지가 표시됩니다. 관리자 사용자를 설정하는 방법은 아래의 구성 (configuration) 섹션을 참조하십시오. 그 후 여기의 문서 (documentation)를 참조하여 Control Layer 기능을 사용해 볼 수 있습니다.
새로운 버전의 Control Layer가 출시될 때 업그레이드하려면 동일한 디렉토리에서 다음을 실행하십시오:
docker compose pull
docker compose up -d
Doubleword Control Layer를 실행하려면 PostgreSQL 데이터베이스가 필요합니다. Postgres 로컬 버전을 시작하는 방법은 [여기]의 문서를 참조하십시오. 이 작업을 완료한 후, 또는 이미 데이터베이스를 보유하고 있다면 (예: 클라우드 제공업체를 통해), 다음을 실행하십시오:
docker run -p 3001:3001 \
-e DATABASE_URL=<여기에 postgres 연결 문자열 입력> \
-e DWCTL_SECRET_KEY="mysupersecretkey" \
...
DATABASE_URL은 다음과 같은 명명 규칙 postgres://username:password@localhost:5432/database_name과 일치해야 합니다.
프로덕션(Production) 환경에서는 반드시 비밀 키(secret key)를 보안이 강화된 무작위 값으로 교체하십시오.
시작하려면 http://localhost:3001로 이동하십시오. 로그인 페이지에 도달하면 사용자 이름과 비밀번호로 로그인하라는 메시지가 표시됩니다. 관리자 사용자(admin user)를 설정하는 방법은 아래의 설정(configuration) 섹션을 참조하십시오. 그 후 [여기]의 문서를 참조하여 Control Layer 기능을 살펴보며 테스트해 볼 수 있습니다.
Control Layer는 config.yaml 파일로 설정할 수 있습니다. 설정 파일을 제공하려면 다음과 같이 컨테이너의 /app/config.yaml 경로에 마운트(mount)하십시오:
docker run -p 3001:3001 \
-e DATABASE_URL=<여기에 postgres 연결 문자열 입력> \
-e SECRET_KEY="mysupersecretkey" \
...
docker-compose.yml 파일과 함께 config.yaml 파일을 두면, docker compose 파일이 해당 위치에 config.yaml을 마운트합니다.
전체 기본 설정(default config)은 아래와 같습니다.
자신만의 설정 파일을 제공하거나, DWCTL_ 접두사가 붙은 환경 변수(environment variables)를 제공함으로써 이러한 설정 중 어떤 것이든 재정의(override)할 수 있습니다. (자신만의 설정 파일을 제공하는 경우, 해당 파일은 기본 설정과 병합됩니다.)
설정의 중첩된 섹션(Nested sections)은 키(key)를 이중 언더스코어(__)로 연결하여 지정할 수 있습니다. 예를 들어, 네이티브 인증(native authentication)을 비활성화하려면 DWCTL_AUTH__NATIVE__ENABLED=false로 설정하십시오.
# dwctl configuration
# JWT 서명을 위한 비밀 키(Secret key).
# TODO: 프로덕션 환경에서 반드시 설정해야 합니다! 네이티브 인증이 활성화되었을 때 필요합니다.
...
Control Layer에는 사용자에게 예산을 할당하고 모델에 가격을 책정할 수 있는 크레딧 시스템 (credit system)이 있습니다. config.yaml에서 일반 사용자에게 부여되는 초기 지급액을 설정할 수 있습니다.
:
credits:
initial_credits_for_standard_users: 50
- 프로덕션급 Postgres 데이터베이스를 설정하고,
DATABASE_URL환경 변수를 통해 Control Layer가 해당 데이터베이스를 가리키도록 설정하세요. - 비밀 키 (secret key)가 안전한 무작위 값으로 설정되었는지 확인하세요. 예를 들어,
openssl rand -base64 32를 실행하여 안전한 무작위 키를 생성할 수 있습니다. - 요구 사항에 따라 사용자 등록 (user registration) 활성화 여부를 확인하세요.
- 프론트엔드에 맞는 CORS 설정이 올바른지 확인하세요.
- 네이티브 인증 (native auth)을 사용하는 경우, 비밀번호 재설정을 위한 SMTP 이메일 전송 (SMTP email transport)을 구성하세요 (기본값인
file전송 방식은 개발/테스트용으로만 적합합니다).email.type을smtp로 업데이트하고 SMTP 자격 증명을 제공하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기