프로젝트 소개
# 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 라이선스, 페이지 하단에 출처 표기 및 본 프로젝트에 대한 링크 유지를 요구합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.