시스템 개요
OpenModex는 애플리케이션과 AI 모델 제공업체 사이에 위치합니다. 모든 요청은 최적의 제공업체에 도달하기 전에 지능형 미들웨어 파이프라인을 거칩니다.요청 흐름
1
인증
API 키가 검증되고 계정, 팀 및 요청 제한에 매핑됩니다.
2
요청 제한
요청이 티어의 요청 제한(키별, 분별)에 대해 확인됩니다. Redis 정렬 집합을 사용하여 정밀한 슬라이딩 윈도우 적용을 수행합니다.
3
캐시 확인
프롬프트 캐싱이 활성화된 경우, OpenModex가 정확히 일치하는 캐시 응답을 확인합니다. 캐시 히트 시 제공업체 비용 없이 즉시 반환됩니다.
4
라우팅 결정
라우팅 엔진이 전략(비용, 지연 시간 또는 품질), 현재 제공업체 상태 및 폴백 구성에 따라 최적의 제공업체를 선택합니다.
5
제공업체 요청
요청이 대상 제공업체의 형식으로 변환되어 전달됩니다. OpenModex는 실시간 SSE 스트리밍 패스스루를 지원합니다.
6
응답 + 메타데이터
제공업체 응답이 OpenAI 형식으로 정규화되고, OpenModex 메타데이터(라우팅 정보, 비용, 지연 시간)가 추가되어 앱에 반환됩니다.
핵심 구성 요소
API 게이트웨이
- OpenAI 호환 REST API — OpenAI API의 드롭인 대체
- SSE 스트리밍 — 실시간 토큰별 전달
- 멱등성 —
Idempotency-Key헤더로 안전한 재시도 (24시간 TTL)
라우팅 엔진
라우팅 엔진은 제공업체 상태와 성능의 실시간 뷰를 유지합니다:서킷 브레이커
제공업체 상태는 자동으로 모니터링됩니다:- Closed — 요청이 정상적으로 라우팅됨
- Half-Open — 연속 실패 후 트래픽이 제한됨
- Open — 제공업체가 라우팅 풀에서 일시적으로 제거됨
- Recovery — 주기적 상태 프로브가 제공업체를 복원
제공업체 어댑터
각 AI 제공업체는 다음을 처리하는 표준화된 어댑터로 래핑됩니다:- 요청 형식 변환 (OpenAI 형식 → 제공업체 고유 형식)
- 응답 정규화 (제공업체 고유 → OpenAI 형식)
- 일관된 오류 코드로의 오류 매핑
- 스트리밍 프로토콜 변환
캐싱 레이어
- 정확 일치 캐싱 — (모델 + 메시지 + 파라미터)의 해시
- 설정 가능한 TTL — 요청당 60초에서 24시간
- Redis 기반 — 서브밀리초 캐시 조회
- 비용 절감 — 캐시 응답은 입력 비용의 약 50%로 청구, 출력 비용 없음
결제 파이프라인
- 모든 요청이 Kafka에 결제 이벤트를 발행
- 이벤트가 비동기적으로 소비되고 영속화
- 계정 잔액이 Redis Lua 스크립트를 통해 원자적으로 업데이트
- 분석 데이터가 대시보드 및 보고를 위해 Apache Doris에 플러시
인프라
보안
- API 키는 저장 시 해싱됨; 조회를 위해 접두사만 저장
- BYOK 제공업체 키는 AWS KMS 봉투 암호화로 암호화
- 요청 제한은 경쟁 조건을 방지하기 위해 원자적 Redis 연산 사용
- 모든 트래픽은 TLS 1.3으로 암호화
- 비밀번호는 Argon2id로 해싱