zhiyu1998/Gemi2Api-Server
HanaokaYuzu / Gemini-API 的服务端简单实现,仓库自动更新上游,支持gemini-3.8-flash、gemini-3.5-flash-lite 等
Gemi2Api‑Server – Google Gemini 웹 UI를 OpenAI 호환 API로 변환하는 가벼운 래퍼
무엇인가요
- 일반 브라우저 세션에서 내보낸 쿠키(
__Secure-1PSID및__Secure-1PSIDTS)를 사용해 Google Gemini에 로그인하는 작은 FastAPI 서비스입니다. - 이후 챗 완성 요청을 Gemini의 비공개 웹 API로 전달하고, OpenAI의
/v1/chat/completions엔드포인트와 동일한 형식으로 응답을 반환합니다. - 선택 사항인 관리 패널(
/admin)을 통해 연결 상태 확인, 쿠키 편집, 인증에 사용되는 API 키 변경, 모델 실시간 테스트가 가능합니다.
왜 존재하는가
- Google은 현재 공개된 유료 Gemini 엔드포인트를 제공하지 않습니다(README 작성 시점 기준). 이 프로젝트는 OpenAI 스타일 REST API를 기대하는 도구에서 Gemini를 호출할 수 있도록 하는 자체 호스팅 브리지입니다.
- 또한 YAML 파일을 통해 사용자 정의 모델 정의를 추가하고,
/v1/models목록을 통해 노출할 수 있습니다.
실행 방법
- Gemini 쿠키 확보 – 인코그니토 창에서 https://gemini.google.com에 로그인하고 개발자 도구를 열어
__Secure-1PSID와__Secure-1PSIDTS의 값을 복사합니다. .env파일 생성 –.env.example을 복사하여 두 쿠키 값과 관리 UI에 접근하기 위한API_KEY를 붙여넣습니다.- 배포 – 다음 중 하나로 실행 가능:
- Python 종속성(
fastapi,uvicorn,gemini-webapi,httpx,h2)을 설치한 후uvicorn main:app --reload로 로컬 실행. - 제공된 Docker-Compose 설정(
docker-compose up -d) 사용. - "Deploy to Render" 또는 "Duplicate on HuggingFace" 배지 클릭으로 호스팅 인스턴스 빠르게 배포.
- Python 종속성(
- 선택 사항: 사용자 정의 모델 –
custom_models.yaml을 추가하여 Gemini 내부 API에 필요한x-goog-ext-…헤더 값을 친숙한 이름(예:gemini-3.5-flash)으로 매핑합니다. 파일은 핫 리로드되므로 재시작 없이 편집 가능합니다.
주요 설정 옵션
| 변수 | 목적 |
|---|---|
SECURE_1PSID / SECURE_1PSIDTS |
Gemini 인증용 쿠키(필수). |
API_KEY |
/admin 접근 및 공개 API 보호에 필요한 단순 토큰. |
TEMPORARY_CHAT |
true일 경우 Gemini의 "임시 대화" 모드를 사용하며, 이미지 생성 및 사고 체인 추론 기능이 비활성화됩니다. |
AUTO_DELETE_CHAT |
true일 경우 응답 후 Gemini에 대화를 삭제하도록 지시하여 웹 계정을 깨끗하게 유지합니다. |
PUBLIC_BASE_URL |
생성된 이미지를 프록시할 때 사용되는 기본 URL; 리버스 프록시 뒤에서 실행할 경우 필요합니다. |
CUSTOM_MODELS_FILE |
모델 정의를 추가하거나 오버라이드하는 YAML/JSON 파일의 경로. |
DISABLE_BUILTIN_MODELS |
설정 시, /v1/models에서 공개되는 모델은 CUSTOM_MODELS_FILE에 나열된 모델만입니다. |
API로 할 수 있는 일
GET /v1/models– 서버가 알고 있는 모델 ID 목록을 반환합니다.POST /v1/chat/completions– OpenAI의 챗 API와 동일한 JSON 페이로드를 전송합니다. 서버는 이를 Gemini에 전달하고 응답을 스트리밍으로 반환합니다.GET /gemini-proxy/image– Gemini가 생성한 이미지 URL을 반환할 때 사용되는 작은 이미지 프록시 엔드포인트입니다. 이미지를 서버 호스트에서 가져올 수 있도록 URL을 재작성합니다.GET /admin– 상태 모니터링, 쿠키 편집, 채팅 테스트를 위한 웹 UI입니다.
누가 사용할 수 있나요
- 노트북, LangChain, 또는 이미 OpenAI 스타일 엔드포인트를 지원하는 다른 프레임워크에서 Gemini를 실험하고 싶은 개발자.
- 상용 Gemini API 비용을 지불하고 싶지 않은 소규모 팀으로, 상용 API가 출시될 경우 빠르게 자체 호스팅 브리지가 필요할 때.
- Render, HuggingFace Spaces, 또는 자체 VPS에서 개인용 "Gemini-as-a-service" 인스턴스를 운영하고 싶은 애호가.
제한 사항 및 주의사항
- 비공식 내부 Gemini 웹 API에 의존하고 있습니다. Google은 언제든지 쿠키 형식이나 요청 헤더를 변경할 수 있으며, 이로 인해 브리지가 작동하지 않을 수 있습니다.
- 유효하고 만료되지 않은 Gemini 로그인이 필요합니다. 자주 발생하는 500 에러는 쿠키가 만료되었거나 IP가 차단되었을 가능성이 큽니다.
- 보안은 최소한입니다. 보호는 설정한
API_KEY하나뿐입니다. 이 서버를 신뢰할 수 있는 내부 구성 요소로 취급하고, 공개 인터넷 서비스로 취급하지 마세요.
자세한 정보 찾기
- 원본 상류 프로젝트는 HanaokaYuzu / Gemini‑API입니다. Gemi2Api‑Server는 이 라이브러리 위에 구축된 경량 서버 래퍼입니다.
- README에 문제 해결 및 트러블슈팅 팁이 링크되어 있습니다(예: 500 에러 처리).
위의 모든 세부 정보는 리포지토리의 README에서 직접 가져온 것이며, 외부 추측은 전혀 포함되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트