Rfym21/Qwen2API
让 QwenLM 物尽其用
Qwen‑Proxy (Qwen2API)
무엇인가요 – 알리바바의 Qwen 채팅 서비스(https://chat.qwen.ai 및 Qwen CLI)를 OpenAI 호환(일부 Anthropic 호환) HTTP API로 변환하는 자체 호스팅 프록시입니다. OpenAI API를 사용하는 모든 클라이언트(예: ChatGPT‑Next‑Web, LobeChat, LangChain, Claude‑Code 등)는 코드 변경 없이 Qwen 모델을 사용할 수 있습니다.
주요 기능
- OpenAI API 표면 –
/v1/models,/v1/chat/completions,/v1/images/*,/v1/videos, 그리고 Anthropic 스타일의/v1/messages엔드포인트. - 함수 호출 / 도구 – OpenAI
tools및 Anthropictool_use완전 지원, 스트리밍 단계적arguments및 엄격한tool_choice=required처리 포함. - 다중 계정 로테이션 – 여러 Qwen 계정을 설정 가능; 프록시는 라운드로빈 방식으로 전환(각 계정에 개별 외부 프록시 설정 가능)하여 IP 기반 차단을 회피.
- 계정별 외부 프록시 – HTTP, HTTPS, SOCKS5/SOCKS5H 프록시를 개별 계정에 연결 가능.
- 256 K 컨텍스트 CLI 엔드포인트 –
/cli경로는 매우 큰 컨텍스트 창과 도구 지원을 갖춘 Qwen CLI 모델을 노출. - 다중 모달 – 이미지/동영상 생성, 이미지 편집, 동영상 이해가 OpenAI 스타일 엔드포인트를 통해 제공.
- 웹 UI – 계정 추가, 계정별 프록시 설정, 사용량 모니터링, 모델 매핑 편집이 가능한 내장 관리 대시보드.
- 지속성 옵션 – 메모리 내(기본값), JSON 파일, 또는 Redis로 계정 데이터, 설정, 로그 저장.
- Docker 및 바이너리 배포 – 공식 Docker 이미지, Docker‑Compose 파일, 런타임, 백엔드, 프론트엔드, 토크나이저를 통합한 단일 파일 Bun 바이너리 제공.
시작 방법
- Docker(가장 빠름)
docker run -d \ -p 3000:3000 \ -e API_KEY=sk-admin123,sk-user456 \ -e ACCOUNTS=user1@mail.com:pass1|http://proxy:8080 \ -e DATA_SAVE_MODE=none \ -v $(pwd)/caches:/app/caches \ --name qwen2api rfym21/qwen2api:latest - Docker‑Compose – 제공된
docker-compose.yml을 다운로드하고docker compose up -d를 실행. - 로컬 소스 – 리포지토리 복제 후 Bun으로 설치(
bun install --frozen-lockfile),.env.example를.env로 복사, 변수 수정 후bun run start실행. - 스탠드얼론 바이너리 –
bun run build:binary를 실행하여 단일 실행 파일(qwen2api‑windows‑x64.exe,qwen2api‑linux‑x64등) 생성..env파일을 옆에 두고 직접 실행 가능.
설정 요약
| 변수 | 목적 |
|---|---|
API_KEY |
쉼표로 구분된 API 키 목록. 첫 번째 키는 관리자 키(UI 접근용); 나머지는 일반 API 호출용. |
ACCOUNTS |
email:password 형식의 Qwen 계정 목록, 선택적으로 ` |
PROXY_URL |
계정이 자체 프록시를 정의하지 않을 때 사용하는 전역 외부 프록시. |
DATA_SAVE_MODE |
none(기본값), file, redis – 계정 데이터 및 설정의 지속 저장 위치. |
CACHE_MODE |
default(메모리 내) 또는 file – 이미지 캐시 파일 저장 위치. |
QWEN_CHAT_PROXY_URL / QWEN_CLI_PROXY_URL |
자체 미러를 운영하는 경우 상류 Qwen 엔드포인트를 오버라이드 가능. |
AGENT_TURN_MAX_ATTEMPTS |
오류를 반환하기 전 도구 호출 라운드의 최대 재시도 횟수. |
MODELS_CACHE_TTL |
상류 모델 목록 캐시 유효 시간(초), 0은 만료 없음. |
일반적인 사용 예 (OpenAI 호환 클라이언트)
curl -H "Authorization: Bearer sk-admin123" \
-H "Content-Type: application/json" \
-d '{"model":"Qwen3.6-Plus","messages":[{"role":"user","content":"안녕하세요"}],"stream":false}' \
http://localhost:3000/v1/chat/completions
응답은 OpenAI 스키마(id, object, choices, usage)를 따릅니다.
왜 필요할까
- 기존 OpenAI 기반 도구를 재사용하면서 Qwen의 강력한 다중 모달 및 256 K 컨텍스트 모델에 접근.
- 원본 자격 증명을 공개하지 않고 단일 Qwen 구독을 여러 사용자 또는 서비스 간 공유.
- 계정 및 계정별 프록시를 로테이션하여 IP 기반 제한 회피.
- 로컬 또는 컨테이너에서 실행 가능하며, 모든 트래픽을 신뢰할 수 있는 네트워크 내에 유지.
제한 사항 / 참고 사항
- 프록시는 원본 Qwen SDK를 제공하지 않으며, 단지 요청을 전달하고 응답을 변환할 뿐.
- 일부 Anthropic 필드는 부분적으로만 지원됨. 완전한 Anthropic 구현이 아니라 최선의 호환성 목표.
- 지속 저장(파일 또는 Redis)은 선택 사항. 없을 경우 계정 토큰은 메모리에만 유지되며 재시작 시 손실.
- 서비스는 신뢰할 수 있는 환경을 전제로 하며, 프록시 URL은 API 응답에 그대로 반환됨.
TL;DR – Qwen‑Proxy는 Bun 기반 서버로, 어떤 OpenAI 호환 클라이언트도 알리바바의 Qwen 모델과 통신할 수 있게 하며, 함수 호출, 다중 모달 생성, 계정 로테이션, 웹 UI를 지원. Docker, Docker‑Compose 또는 단일 바이너리로 배포하고, Qwen 계정과 API 키를 설정한 후 익숙한 OpenAI 엔드포인트를 사용 시작하세요.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트