'DS2API' 깃허브 트렌딩… DeepSeek 웹 대화를 OpenAI/Claude/Gemini API로 변환, Go 백엔드·React 콘솔, 누적 1,283스타·하루 37스타
개발자 CJackHwang가 공개한 오픈소스 프로젝트 'DS2API'가 깃허브 트렌딩에 올랐다. 누적 1,283스타, 하루 37스타를 기록하며, DeepSeek 웹 대화 능력을 OpenAI·Claude·Gemini 호환 API로 변환해주는 게이트웨이를 표방한다. 백엔드는 Go 전량 구현, 프론트엔드는 React WebUI 관리 콘솔로 구성되며 빌드 산출물은 static/admin에 자동 생성된다.
프로젝트 README는 본 저장소가 학습·연구·개인 실험·내부 검증 용도로만 제공되며 어떠한 형태의 상업 라이선스나 적합성·결과 보장도 제공하지 않는다고 명시한다. 사용·수정·배포·의존으로 인한 직간접 손실, 계정 정지, 데이터 유실, 법적 위험에 대해 작성자와 유지보수자가 책임지지 않으며, 서비스 약관·법규·플랫폼 규칙을 위반하는 용도로의 사용을 금지한다고 면책 조항을 달았다.
통합된 OpenAI 코어 위에 OpenAI(/v1/*)·Claude(/anthropic/* 및 /v1/messages)·Gemini(/v1beta/models/* 및 /v1/models/*) 어댑터가 동일 게이트웨이에서 작동한다. 라우터는 chi Router에 RequestID·RealIP·Logger·Recoverer·CORS 미들웨어가 결합된 구조이며, Admin API(/admin/*)와 WebUI(/admin)도 한 인스턴스에 통합돼 단일 프로세스로 호스팅된다.
런타임 핵심에는 다중 프로토콜과 OpenAI 사이 변환을 담당하는 'CLIProxy 변환 브리지', 통일된 도구 호출·스트리밍 시맨틱을 제공하는 'OpenAI ChatCompletions' 엔진, API 키·bearer·x-goog-api-key를 처리하는 Auth Resolver, 동시성 슬롯과 대기열을 관리하는 Account Pool + Queue, 세션·인증·HTTP를 다루는 DeepSeek Client가 자리한다.
DeepSeek의 PoW(작업 증명)는 'DeepSeekHashV1'을 순수 Go로 구현해 밀리초 단위 응답을 낸다고 README가 적시했다. Tool Calling 측면에서는 비코드 블록의 고신뢰 특성 식별, delta.tool_calls 조기 발사, 구조화 증분 출력을 통해 누출 방지 처리를 한다고 밝혔다. 이메일·휴대전화 양방향 로그인을 지원하는 다중 계정 풀과 자동 토큰 갱신, 계정별 in-flight 상한 + 대기열 기반 동시성 제어도 포함된다.
노출되는 모델은 deepseek-chat·deepseek-reasoner와 search 변형, expert·vision 그룹까지 총 12종이다. 클라이언트는 gpt-5·gpt-5-mini·gpt-5-codex·gpt-4.1·o3·claude-opus-4-6·claude-sonnet-4-5·gemini-2.5-pro·gemini-2.5-flash 등 일반 alias 입력도 받지만, /v1/models가 반환하는 ID는 정규화된 DeepSeek 원생 모델 ID라고 안내한다.
P0 호환 클라이언트로 Codex CLI/SDK(wire_api=chat·responses), OpenAI SDK(JS/Python, chat + responses), Vercel AI SDK(openai-compatible), Anthropic SDK(messages), Google Gemini SDK(generateContent)가 전부 동작 표기 '✅'로 명시됐다. P1 단계에서는 LangChain·LlamaIndex·OpenWebUI까지 OpenAI 호환 접속 방식으로 지원이 확인됐다.
배포 옵션은 Release 빌드 다운로드, Docker/GHCR 이미지, Vercel Serverless, 로컬 컴파일을 지원하며 docker-compose는 호스트 6011 포트를 컨테이너 5001에 매핑한다. 운영 프로브로 GET /healthz와 /readyz를 제공하고, 사전 요구 사항은 Go 1.26+, WebUI 빌드 시 Node.js 20.19+ 또는 22.12+이다. 설정은 config.json 단일 소스를 기준으로 본 운영, Docker, Vercel 환경 모두에서 재사용한다.