프로젝트 소개

# One API 표준 OpenAI API 형식으로 모든 대규모 언어 모델에 접근하세요. 바로 사용할 수 있습니다. ## 지원 모델 및 채널 - OpenAI ChatGPT 시리즈 (Azure OpenAI 포함) - Anthropic Claude 시리즈 (AWS Claude 포함) - Google PaLM2 / Gemini 시리즈 - Mistral 시리즈 - 바이트댄스豆包 (화산엔진) - 백도 문심일언 - 알리 퉁의천문 -訊飞 성화 - 지푸 ChatGLM - 360 지뇌 - 텐센트 혼원 - Moonshot AI, 바다천문, MINIMAX, DeepSeek - Groq, Ollama, 영일이만물, 계약성천, Coze - Cohere, Cloudflare Workers AI, together.ai, novita.ai - 규기 흐름 SiliconCloud, xAI, DeepL 등 ## 핵심 기능 1. **통일 API 적응**: 모든 채널은 OpenAI 호환 형식으로 인터페이스를 제공하여 호출측이 코드를 수정하지 않고도 모델을 전환할 수 있습니다. 2. **부하 분산**: 복수 채널 라우팅을 지원하며, 그룹 배율에 따라 요청을 자동으로 배분합니다. 3. **토큰 관리**: 각 접근 토큰에 대해 만료 시간, 한도 상한, 허용 IP 범위 및 모델 목록을 설정할 수 있습니다. 4. **채널 관리**: 다수 하위 채널 일괄 생성 및 관리를 지원하며, 모델 목록을 각각 구성할 수 있습니다. 5. **사용자 그룹**: 서로 다른 사용자 그룹에 서로 다른 배율과 권한을 설정할 수 있습니다. 6. **교환 코드**: 계정에 충전하기 위해 교환 코드를 일괄 생성하고 내보냅니다. 7. **실패 자동 재시도**: 상위 채널 실패 시 자동으로 다른 사용 가능한 채널로 전환합니다. 8. **그림 인터페이스**: 이미지 생성 인터페이스 중계를 지원합니다. 9. **초대 보상**: 사용자 초대 방식을 지원합니다. 10. **다중 머신 배포**: master/slave 구조의 분산 배포를 지원하며 Redis와 함께 캐시 동기화를 실현합니다. 11. **커스터마이징**: 시스템 이름, 로고, 발췌, 홈 페이지 및 소개 페이지 커스터마이징을 지원합니다. 12. **로그인 방식**: 이메일 등록, 플링크 권한 부여, GitHub 권한 부여, 위챗 공식 계정 권한 부여를 지원합니다. 13. **Cloudflare AI Gateway**: Cloudflare AI Gateway에 직접 연결할 수 있습니다. 14. **테마 전환**: UI 테마 교체를 지원합니다. ## 배포 방식 ### Docker 배포 (권장) ```shell # 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 ``` 초기 계정: 사용자명 `root`, 비밀번호 `123456`. ### Docker Compose 배포 ```shell docker-compose up -d ``` 데이터는 `./data/mysql` 디렉터리에 저장됩니다. ### 수동 배포 ```shell 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 ./one-api --port 3000 --log-dir ./logs ``` ### 제3자 플랫폼 Sealos, Zeabur, Render 등 원클릭 배포를 지원하며 버타오 패널과도 호환됩니다. ## 사용 방법 1. 「채널」 페이지에서 각 모델의 API Key를 추가합니다. 2. 「토큰」 페이지에서 특정 사용자에게 접근 토큰을 생성합니다. 3. 클라이언트에서 API Base를 One API 주소 (예: `https://your-domain/v1`) 로 설정하고 API Key를 생성된 토큰으로 설정합니다. 채널 지정은 토큰 뒤에 `-CHANNEL_ID` 를 추가하여 구현할 수 있습니다. 예: `Authorization: Bearer ONE_API_KEY-1`. ## 환경변수 참고 | 변수 | 설명 | |---|---| | `REDIS_CONN_STRING` | Redis 캐시 활성화 | | `SESSION_SECRET` | 고정 세션 키, 재시작 후 로그인 상태 유지 | | `SQL_DSN` | SQLite 대신 MySQL/PostgreSQL 사용 | | `SYNC_FREQUENCY` | 캐시 동기화 빈도 (초), 다중 머신 배포 권장 설정 | | `NODE_TYPE` | `master` 또는 `slave`, 다중 머신 배포용 | | `FRONTEND_BASE_URL` | 서버에서 프론트엔드 요청 리디렉션 | | `INITIAL_ROOT_TOKEN` | 첫 번째 시작 시 root 토큰 자동 생성 | ## 오픈 소스 라이선스 MIT 라이선스, 페이지 하단에 출처 표기 및 본 프로젝트에 대한 링크 유지를 요구합니다.