Home
Login

LLM API 관리 및 배포 시스템으로, 다양한 대규모 언어 모델의 통합 인터페이스 관리를 지원합니다.

MITJavaScript 25.9ksongquanpengone-api Last Updated: 2025-02-21

One API - LLM API 관리 및 배포 시스템

프로젝트 개요

One API는 오픈 소스 LLM API 관리 및 배포 시스템으로, OpenAI, Azure, Anthropic Claude, Google Gemini, DeepSeek, ChatGLM 등 주요 모델을 지원하며, API를 통합적으로 어댑팅하여 키 관리 및 2차 배포에 사용할 수 있습니다. 이 프로젝트는 단일 실행 파일과 Docker 이미지를 제공하여 원클릭 배포와 즉시 사용이 가능합니다.

핵심 기능

📋 다중 모델 지원

이 프로젝트는 다음과 같은 주요 대규모 언어 모델 제공업체를 지원합니다.

  • OpenAI 시리즈: ChatGPT 시리즈 모델 (Azure OpenAI API 지원)
  • Anthropic: Claude 시리즈 모델 (AWS Claude 지원)
  • Google: PaLM2/Gemini 시리즈 모델
  • other: 기타 시리즈 모델

🔧 핵심 기능

API 관리 및 배포

  • 미러링 및 다양한 타사 프록시 서비스 구성 지원
  • 로드 밸런싱을 통해 여러 채널에 액세스 지원
  • 스트림 모드 지원, 스트리밍 전송을 통해 타자기 효과 구현 가능
  • 다중 시스템 배포 지원
  • 실패 시 자동 재시도 지원
  • 이미지 생성 인터페이스 지원

사용자 및 권한 관리

  • 토큰 관리: 토큰의 만료 시간, 할당량, 허용된 IP 범위 및 허용된 모델 액세스 설정
  • 교환 코드 관리: 대량 생성 및 내보내기 지원, 교환 코드를 사용하여 계정 충전 가능
  • 사용자 그룹: 사용자 그룹 및 채널 그룹 지원, 그룹별로 다른 배율 설정 지원
  • 채널 관리: 채널 대량 생성, 채널 모델 목록 설정 지원

모니터링 및 통계

  • 할당량 세부 정보 보기 지원
  • 사용자 초대 보상 지원
  • 달러 단위로 할당량 표시 지원
  • Message Pusher와 연동하여 다양한 앱으로 알림 정보 푸시 가능

사용자 정의 기능

  • 공지 게시, 충전 링크 설정, 신규 사용자 초기 할당량 설정 지원
  • 모델 매핑 지원, 사용자 요청 모델 리디렉션
  • 사용자 정의 시스템 이름, 로고 및 바닥글 지원
  • 사용자 정의 홈페이지 및 정보 페이지 지원
  • 시스템 액세스 토큰을 통해 관리 API 호출 지원

🔐 보안 및 인증

다양한 로그인 방식

  • 이메일 로그인 및 등록 (등록 이메일 화이트리스트 지원) 및 이메일을 통한 비밀번호 재설정
  • Feishu 인증 로그인
  • GitHub 인증 로그인
  • WeChat 공식 계정 인증 (WeChat Server 추가 배포 필요)

보안 기능

  • Cloudflare Turnstile 사용자 검증 지원
  • 테마 전환 지원
  • Cloudflare AI Gateway 지원

배포 방식

Docker 배포 (권장)

SQLite 사용

docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

MySQL 사용

docker run --name one-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api

Docker Compose 배포

# 현재 MySQL 시작 지원, 데이터는 ./data/mysql 폴더에 저장
docker-compose up -d

# 배포 상태 확인
docker-compose ps

수동 배포

  1. GitHub Releases에서 실행 파일 다운로드 또는 소스 코드에서 컴파일:
git clone https://github.com/songquanpeng/one-api.git

# 프론트엔드 빌드
cd one-api/web/default
npm install
npm run build

# 백엔드 빌드
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
  1. 실행:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs

클라우드 플랫폼 배포

Zeabur 배포

  • 코드 저장소 포크
  • Zeabur에서 프로젝트 생성, MySQL 서비스 추가
  • 환경 변수 PORT=3000SQL_DSN 구성
  • 배포 및 도메인 구성

Render 배포

  • Docker 이미지 직접 배포
  • 저장소 포크 불필요

구성 설명

환경 변수 구성

데이터베이스 구성

  • SQL_DSN: 데이터베이스 연결 문자열 (MySQL 또는 PostgreSQL 사용 권장)
  • LOG_SQL_DSN: 로그 테이블 독립 데이터베이스 연결

캐시 구성

  • REDIS_CONN_STRING: 캐시용 Redis 연결 문자열
  • MEMORY_CACHE_ENABLED: 메모리 캐시 활성화
  • SYNC_FREQUENCY: 데이터베이스 동기화 빈도 (초)

클러스터 구성

  • SESSION_SECRET: 고정 세션 키
  • NODE_TYPE: 노드 유형 (master/slave)
  • FRONTEND_BASE_URL: 프론트엔드 리디렉션 주소

보안 구성

  • GLOBAL_API_RATE_LIMIT: API 속도 제한
  • GLOBAL_WEB_RATE_LIMIT: Web 속도 제한
  • RELAY_TIMEOUT: 릴레이 타임아웃 설정

명령줄 매개변수

  • --port <port_number>: 포트 번호 지정 (기본값 3000)
  • --log-dir <log_dir>: 로그 폴더 지정
  • --version: 버전 번호 출력
  • --help: 도움말 보기

사용 방법

  1. 초기 로그인: 기본 계정 root, 비밀번호 123456 사용
  2. 채널 구성: 채널 페이지에서 API 키 추가
  3. 토큰 생성: 토큰 페이지에서 액세스 토큰 생성
  4. 클라이언트 구성: API Base를 One API 배포 주소로 설정, API Key를 생성된 토큰으로 설정

API 사용 예시

# OpenAI 공식 라이브러리 구성
OPENAI_API_KEY="sk-xxxxxx"
OPENAI_API_BASE="https://<HOST>:<PORT>/v1"

채널 지정

토큰 뒤에 채널 ID를 추가하여 특정 채널 사용 지정 가능:

Authorization: Bearer ONE_API_KEY-CHANNEL_ID

아키텍처 설계

사용자 → One API → OpenAI/Azure/Claude/Gemini 등 여러 제공업체

One API는 중간 계층으로, 다양한 제공업체의 API 형식을 통합하고 다음을 제공합니다.

  • 로드 밸런싱
  • 요청 릴레이 및 형식 변환
  • 사용자 관리 및 권한 제어
  • 사용량 통계 및 청구

통합 사례

ChatGPT Next Web

docker run --name chat-next-web -d -p 3001:3000 yidadaa/chatgpt-next-web

페이지 설정에서 인터페이스 주소와 API 키를 설정하면 됩니다.

ChatGPT Web

docker run --name chatgpt-web -d -p 3002:3002 -e OPENAI_API_BASE_URL=https://openai.justsong.cn -e OPENAI_API_KEY=sk-xxx chenzhaoyu94/chatgpt-web

라이선스

본 프로젝트는 MIT 라이선스에 따라 오픈 소스로 제공되며, 페이지 하단에 저작자 표시 및 본 프로젝트 링크를 유지해야 합니다.

프로젝트 주소

Star History Chart