도입
Ruby AI eXtensions(Raix) 라이브러리의 주요 업데이트인 Raix 2.0이 출시되었습니다. 이번 릴리스는 RubyLLM을 통합 백엔드로 채택하여 다중 LLM 제공업체 지원을 강화하고, 강력한 `before_completion` 훅 시스템을 도입하여 프로덕션 AI 애플리케이션 개발에 새로운 가능성을 열었습니다. Raix는 과거 가장 큰 Ruby 기반 AI 채팅 애플리케이션 중 하나였던 Olympia 프로젝트에서 파생된 라이브러리로, 간단한 채팅 완성부터 복잡한 다단계 에이전트까지 AI 기반 컴포넌트를 구축하기 위한 Rails와 유사한 DSL을 제공합니다.
Raix 2.0은 두 가지 핵심적인 변경 사항을 포함합니다.
1. RubyLLM을 통한 통합 LLM 백엔드기존의 개별 OpenRouter 및 OpenAI 클라이언트 대신 RubyLLM으로 전환하여 다중 LLM 제공업체 지원을 통합했습니다. 이는 다음을 제공합니다.
- 단일 설정: OpenAI, Anthropic, Google Gemini, OpenRouter 등 다양한 LLM에 대한 통합 설정.
- 일관된 API: 모델에 관계없이 동일한 API 인터페이스 사용.
- 자동 라우팅: 모델 이름 기반 자동 제공업체 선택.간소화된 설정은 다음과 같습니다.
rubyRubyLLM.configure do |config| config.openrouter_api_key = ENV["OPENROUTER_API_KEY"] config.openai_api_key = ENV["OPENAI_API_KEY"]end### 2. before_completion 훅 시스템새로운 훅 시스템은 AI 제공업체로 요청이 전송되기 전에 채팅 완성 요청을 가로채고 수정하는 기능을 제공합니다. 이는 데이터베이스 기반 동적 파라미터 구성 등 실제 애플리케이션 요구사항을 해결하기 위해 도입되었습니다.훅은 CompletionContext를 통해 요청 파라미터와 메시지에 접근하여 PII 비식별화, 요청 로깅, A/B 테스트, 시스템 프롬프트 주입과 같은 강력한 활용 사례를 가능하게 합니다. 훅은 전역, 클래스, 인스턴스 레벨에서 설정 가능합니다.
1.x 버전에서 업그레이드주요 변경점은 설정 방식입니다. 기존 OpenRouter::Client 및 OpenAI::Client 직접 설정 대신 RubyLLM.configure를 사용하여 API 키를 설정해야 합니다. 그 외 ChatCompletion 모듈 등 핵심 기능은 이전과 동일하게 작동합니다.
결론
Raix 2.0은 Ruby 개발자가 AI 애플리케이션을 구축하는 방식을 크게 개선하는 중요한 업데이트입니다. RubyLLM을 통한 통합 LLM 백엔드는 다양한 AI 모델에 대한 접근을 간소화하고, `before_completion` 훅 시스템은 요청 처리 과정에 전례 없는 유연성과 제어 기능을 부여합니다. 이는 동적 설정, 보안 강화, 실험적 기능 구현 등 프로덕션 환경에서 AI 애플리케이션의 견고성과 확장성을 높이는 데 기여합니다. Raix는 현재 활발히 개발되고 있으며 상업 프로젝트에서도 활용 중이므로, Ruby로 AI 애플리케이션 개발에 관심 있는 개발자들에게 강력한 도구가 될 것입니다.