LLM 통합의 핵심 기능
LLM 통합은 크게 세 가지 핵심 기능으로 구성됩니다.
-
Chat Completion API: OpenAI, Anthropic 등 LLM 제공업체의 턴 기반 API를 래핑하는 기능입니다. 텍스트, 이미지 등 다양한 입력과 모델 선택 옵션을 제공하며, 구조화된 데이터 추출 및 응답 스트리밍 기능이 중요합니다. MCP(Model Context Protocol)는 애플리케이션 외부에 존재하는 함수를 의미합니다.
-
Tool/Function Calls: 애플리케이션 내부에 존재하는 함수로, LLM에 특정 도메인 지식이나 외부 API 접근 권한을 부여합니다. 날씨 서비스와 같은 고전적인 예시를 통해 LLM이 필요한 인수를 요청하고 데이터를 반환받는 방식으로 작동합니다.
-
Agents: Chat Completion API와 Tool을 결합하여 특정 작업을 수행하는 주체입니다. 연구 에이전트와 같이 URL fetch, 임베딩 생성, 요약 등의 작업을 순차적으로 수행하며 복잡한 워크플로우를 구축할 수 있습니다.
Ruby AI Gem 비교 분석
강연자는 세 가지 주요 Ruby AI Gem을 소개하며 각 Gem의 특징과 구현 방식을 비교합니다.
1. Ray
-
가장 Rails 의존도가 낮은 프레임워크 독립적인 Gem입니다. Active Record에 대한 이해가 없어 데이터베이스 저장 로직을 직접 구현해야 하는 유연성을 제공합니다.
-
Obie Fernandez가 Olympia 비즈니스에서 개발한 추상화 계층으로, 페르소나 기반의 지능형 챗 어시스턴트 구축에 활용되었습니다.
-
Ray::ChatCompletion을 통해 API 호출을 래핑하고,Ray::FunctionDispatch로 툴 호출을 정의하며,Ray::PromptDecoration으로 프롬프트 스택 및 복합 기능을 구현합니다.
2. Ruby LLM
-
최근 인기가 급증한 Gem으로, Rails에 특화되어 모델(Chat, Message, ToolCall) 생성을 위한 제너레이터를 제공합니다.
-
acts_as_chat등의 DSL을 통해 API 호출을ask메서드로 래핑하며, 메시지 엔트리를 데이터베이스에 자동으로 생성합니다. -
Hotwire를 활용한 스트리밍 응답 처리를 쉽게 구현할 수 있으며, 툴 호출은 별도의 클래스와 데이터베이스 모델로 관리됩니다. 에이전트 구축을 위한 명시적인 API는 없으나, 툴을 활용한 워크플로우 구현을 권장합니다.
3. Rafe
-
가장 Rails 의존도가 높은 Rails Engine으로, 모델, 뷰, 컨트롤러, 라우트, 제너레이터, 어드민 UI 등을 제공하여 많은 기능을 ‘무료로’ 제공합니다.
-
Cultivate Labs의 Arc Analysis 제품에서 파생되었으며, 연구 어시스턴트와 같은 복잡한 워크플로우에 적합합니다.
-
명명 규칙에 크게 의존하며, 상태 머신 플로우를 통해 비동기 처리 및 스트리밍 응답을 지원합니다. 툴 호출은 전용 뷰 파셜을 통해 위젯과 같은 풍부한 UI를 생성할 수 있으며,
triggers_observation_to_model설정을 통해 응답 로깅을 제어합니다.
향후 탐색할 라이브러리
-
Active Agents: Action Mailer와 유사한 패턴으로, 에이전트 클래스가 액션 메서드를 구현하고 해당 템플릿 파일이 프롬프트 역할을 합니다.
-
Leva: 프롬프트 모델 평가 프레임워크로, 프로덕션 데이터를 활용하여 다양한 프롬프트, 모델, 제공업체를 테스트하고 감성 분석을 수행할 수 있습니다.