섹션별 상세
DSL 기반의 명시적 제어 방식을 통해 라우팅, 인증, 요청/응답 매핑을 정의한다. Nginx 스타일의 설정을 사용하여 `req_map`, `resp_map` 등의 지시어로 OpenAI 규격을 Anthropic이나 Gemini 규격으로 변환하는 과정을 투명하게 관리하며, 암시적인 휴리스틱 대신 명시적인 선언을 지향한다.
text
provider "anthropic" {
defaults {
upstream_config { base_url = "https://api.anthropic.com"; }
auth { auth_header_key "x-api-key"; }
request { set_header "anthropic-version" "2023-06-01"; }
}
match api = "chat.completions" stream = true {
request {
req_map openai_chat_to_anthropic_messages;
json_del "$.stream_options";
}
upstream { set_path "/v1/messages"; }
response { sse_parse anthropic_to_openai_chunks; }
}
}OpenAI 규격의 요청을 Anthropic API 규격으로 변환하고 스트리밍 응답을 파싱하는 DSL 설정 예시
SIGHUP 신호를 활용한 무중단 설정 업데이트 기능을 지원한다. 서버 재시작 없이 `onr.yaml`, `keys.yaml`, `models.yaml` 및 프로바이더 DSL 파일을 즉시 리로드할 수 있으며, 옵션으로 파일 감시(File Watch) 기능을 활성화하여 설정 변경 시 자동으로 반영되는 핫 리로드 환경을 구축할 수 있다.
bash
curl -fsSL https://raw.githubusercontent.com/r9s-ai/open-next-router/main/tools/install_onr_service.sh | sudo bash -s -- \
--mode service \
--api-key 'change-me'Linux 환경에서 ONR을 systemd 서비스로 설치하는 원클릭 스크립트
상세한 한 줄 로그를 통해 운영 가시성과 비용 추적 기능을 제공한다. 모든 요청에 대해 지연 시간, 프로바이더 정보, 모델명뿐만 아니라 입력/출력/캐시 토큰 사용량과 추정 비용을 로그로 남겨 멀티 채널 환경에서의 디버깅과 예산 통제를 용이하게 한다.
보안이 강화된 인증 시스템을 구축했다. 표준 Bearer 토큰 외에도 URI 기반 토큰 키를 지원하며, `keys.yaml` 내의 민감한 API 키를 AES-256-GCM 방식으로 암호화하여 저장할 수 있다. 또한 환경 변수를 통한 키 오버라이드 기능을 제공하여 컨테이너 및 CI/CD 환경에 최적화된 키 관리가 가능하다.
고급 라우팅 및 프록시 제어 기능을 포함한다. `models.yaml`을 통해 모델별 라운드 로빈 라우팅을 설정하거나 `x-onr-provider` 헤더로 특정 프로바이더를 강제 선택할 수 있으며, 프로바이더별로 독립적인 HTTP/SOCKS5 아웃바운드 프록시를 설정하여 복잡한 네트워크 환경에 대응한다.
용어 해설
- 도메인 특화 언어(DSL)
- — 특정 도메인이나 문제 영역을 해결하기 위해 설계된 프로그래밍 언어이다. 이 아티클에서는 Nginx 설정과 유사한 문법을 사용하여 LLM 라우팅 및 API 변환 로직을 정의하는 데 사용된다.
- 서버 전송 이벤트(SSE)
- — 서버가 클라이언트에게 실시간으로 데이터를 푸시하는 웹 기술이다. LLM의 스트리밍 응답(Streaming)을 구현할 때 표준으로 사용되며, ONR은 이를 파싱하고 정규화하는 기능을 제공한다.
- 핫 리로드(Hot Reload)
- — 실행 중인 프로세스를 중단하거나 재시작하지 않고 변경된 설정이나 코드를 즉시 반영하는 기술이다. ONR은 SIGHUP 신호를 통해 설정 파일을 실시간으로 다시 읽어들인다.
- AES-256-GCM 암호화(AES-256-GCM)
- — 데이터의 기밀성과 무결성을 동시에 보장하는 현대적인 대칭키 암호화 방식이다. ONR은 keys.yaml에 저장되는 민감한 API 키를 안전하게 보호하기 위해 이 방식을 채택했다.
기술
- Go
- Gin
- DSL
- Docker
- AES-256-GCM
- SOCKS5
활용 사례
- 멀티 프로바이더 LLM 라우팅
- 비표준 LLM API의 OpenAI 규격화
- 실시간 토큰 사용량 및 비용 추적
- API 키 암호화 관리
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 02. 25.수집 2026. 02. 25.출처 타입 RSS
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.