yym68686/uni-api

This is a project that unifies the management of LLM APIs. It can call multiple backend services through a unified API interface, convert them to the OpenAI format uniformly, and support load balancing. Currently supported backend services include: OpenAI, Anthropic, DeepBricks, OpenRouter, Gemini, Vertex, etc.

uni‑api – 다양한 LLM 제공업체를 위한 통합 자체 호스팅 게이트웨이

개요

  • 표준 OpenAI HTTP 엔드포인트(예: /v1/chat/completions, /v1/images/generations, /v1/embeddings 등)를 노출하지만 요청을 구성 가능한 백엔드 LLM 서비스 목록으로 전달하는 오픈소스 서버입니다.
  • 단일 API 표면을 실행하면서 OpenAI, Anthropic, Gemini, Vertex AI, Azure, AWS Bedrock, Cohere, Groq, Cloudflare Workers AI, OpenRouter 등 다양한 제공업체를 혼합하여 사용할 수 있습니다.
  • 모든 구성은 일반 api.yaml 파일(또는 CONFIG_URL에 제공된 URL)을 통해 이루어지므로 별도의 UI가 필요 없습니다.

주요 기능

  • 제공업체 무관 라우팅 – 모든 OpenAI 스타일 요청을 적절한 백엔드 URL 및 API 키에 매핑합니다.
  • 로드 밸런싱 – 세 가지 모드:
    1. 채널별 가중치 기반 밸런싱.
    2. 채널별 라운드로빈(순차) 밸런싱.
    3. 채널 내 여러 API 키 간 자동 라운드로빈.
  • 자동 재시도 및 쿨링 – 백엔드가 오류를 반환하면 다음 채널에서 요청을 재시도합니다. 실패한 채널은 일시적으로 "쿨링"되어 쿨다운이 만료될 때까지 제외됩니다.
  • 세밀한 타임아웃 – 모델별로 다른 요청 타임아웃을 설정할 수 있습니다.
  • 권한 및 속도 제한 제어 – API 키별 모델 화이트리스트, 와일드카드 패턴, 구성 가능한 요청 상한(예: 2/min, 5/hour).
  • 도구 및 이미지 지원 – 지원하는 제공업체(Anthropic, Gemini, Vertex 등)에 대해 네이티브 도구 호출 및 이미지 생성 엔드포인트를 전달합니다.
  • 모더레이션 – 선택적 OpenAI 스타일 콘텐츠 모더레이션으로 허용되지 않은 사용자 메시지를 백엔드에 도달하기 전에 차단할 수 있습니다.
  • 사용자 정의 요청 조정 – 요청 본문 필드, 헤더 주입, 프록시 설정, 최대 페이로드 크기에 대한 모델별 재정의.

실행 방법

  1. api.yaml 준비 – 제공업체, 기본 URL, API 키, 노출할 모델을 나열합니다. README에는 최소 예제와 매우 상세한 고급 예제가 포함되어 있습니다.
  2. 배포 – 다음 중 하나를 선택:
    • 파일을 Docker 컨테이너에 api.yaml로 마운트하거나,
    • CONFIG_URL을 원격 YAML 파일을 가리키도록 설정합니다. 컨테이너는 시작 시 다운로드합니다.
  3. 컨테이너 시작 – 이미지는 Docker Hub(yym68686/uni-api)에 게시되어 있습니다. 빠른 클라우드 배포를 위한 원클릭 "Deploy to Fugue" 버튼이 제공됩니다.
  4. API 사용 – api_keys 섹션에서 정의한 API 키 중 하나를 사용하여 호스트에서 일반 OpenAI 엔드포인트(예: http://localhost:8000/v1/chat/completions)를 호출합니다.

대상 사용자

  • 맞춤 UI를 구축하지 않고 여러 유료 LLM 서비스를 통합하는 개인 "프록시"를 원하는 개인 또는 소규모 팀.
  • 다양한 제공업체나 폴백 전략을 실험하면서 일관된 OpenAI 호환 인터페이스가 필요한 개발자.
  • 로드 밸런싱, 속도 제한, 모델별 조정을 위한 간단한 YAML 기반 구성을 찾는 모든 사람.

링크


위의 모든 세부 사항은 저장소의 README에서 직접 가져온 것이며 추가 기능은 추론되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트