OlympiaAI/raix
Ruby AI eXtensions
해결하는 문제
Raix는 기존 Ruby 애플리케이션에 분리된 AI 컴포넌트를 통합하기 위한 Ruby 라이브러리입니다. 개발자가 복잡한 API 상호작용이나 대화 트랜스크립션을 수동으로 관리할 필요 없이, 챗 완성, 도구 사용, 프롬프트 체인과 같은 LLM 기능을 쉽게 추가할 수 있도록 합니다.
작동 방식
Raix는 어떤 Ruby 클래스에도 추가할 수 있는 세 가지 믹스인 모듈을 제공합니다.
- ChatCompletion: 대화 트랜스크립션을 관리하고 RubyLLM(OpenAI, Anthropic, Google Gemini, OpenRouter 지원)을 통해 LLM과 상호작용하는 메서드를 제공하는 핵심 모듈입니다.
- FunctionDispatch: AI가 호출할 수 있는 도구 함수를 선언적으로 정의하는 DSL입니다. 이 모듈은 함수를 자동으로 실행하고 결과를 트랜스크립션에 추가한 후, 최종 텍스트 응답이 생성될 때까지 대화 루프를 계속합니다.
- PromptDeclarations: "프롬프트 체인"을 생성하기 위한 DSL로, 개발자가 프롬프트의 시퀀스 또는 호출 가능한 프롬프트 객체를 순서대로 실행할 수 있도록 합니다.
대상 사용자
Olympia AI 플랫폼에서 검증된 패턴을 기반으로 한 구조적이고 모듈식 접근 방식을 사용하여 애플리케이션에 LLM 기능을 추가하고자 하는 Ruby 개발자(비-Rails 앱 포함).
주요 특징
- 통합 제공자 접근: RubyLLM 및 OpenRouter를 통해 여러 LLM 제공자를 지원합니다.
- 자동 도구 루프: 함수 호출을 시ーム리스하게 실행하고 결과를 AI에 자동으로 피드백하여 수동 개입이 필요 없습니다.
- 유연한 훅:
before_completion훅 시스템(전역, 클래스, 인스턴스 레벨)을 통해 동적 매개변수 해석, PII 마스킹, 로깅이 가능합니다. - JSON 모드: 구조화된 JSON 응답을 내장으로 지원하며, JSON 응답 형식을 네이티브로 지원하지 않는 모델에 대한 백업 메커니즘도 제공합니다.
- 프롬프트 캐싱: 대용량 텍스트 본문의 지연 및 비용을 줄이기 위한 Anthropic 스타일의 프롬프트 캐싱을 지원합니다.
- 사용자 정의 디스패치: ActiveSupport를 활용한 캐싱 또는 사용자 정의 에러 처리를 추가할 수 있도록 함수 디스패치 로직을 오버라이드할 수 있습니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트