概要
RubyLLM は、主要なAIプロバイダーに対応した 統一Rubyフレームワーク。 チャットボットやAIエージェント、RAGアプリなど 多様なAIワークフロー を簡単構築。 Faraday、Zeitwerk、Marcel の3依存のみで、シンプルな導入。 Rails との統合やストリーミング応答など、豊富な機能を提供。 OpenAI、Anthropic、Gemini 等の幅広いプロバイダーに対応。
RubyLLMとは
- 主要AIプロバイダーを 単一インターフェース で利用可能なRubyフレームワーク
- チャットボット、AIエージェント、RAGアプリ、コンテンツ生成など多様なAIアプリ開発
- API仕様・レスポンス形式の違い を吸収し、開発効率向上
- GPT、Claude、Ollama など、同じコードで切り替え可能
- 依存ライブラリ はFaraday、Zeitwerk、Marcelのみ
特徴と主な機能
- RubyLLM.chat による会話AIの構築
- 例:chat.ask "What's the best way to learn Ruby?"
- 画像・動画・音声・PDF等 のファイル解析
- 例:chat.ask "What's in this image?", with: "ruby_conf.jpg"
- 複数ファイル同時解析 や ストリーミング応答 対応
- 画像生成 :RubyLLM.paint "a sunset over mountains in watercolor style"
- 埋め込み生成 :RubyLLM.embed "Ruby is elegant and expressive"
- 音声→テキスト変換 :RubyLLM.transcribe "meeting.wav"
- コンテンツモデレーション :RubyLLM.moderate "Check if this text is safe"
- ツール連携 :AIがRubyメソッドを呼び出す(例:天気取得API連携)
- AIエージェント定義 :指示+ツールを組み合わせた再利用可能なアシスタント作成
- 構造化出力 :JSONスキーマによるデータ抽出
- ActiveRecord統合 :acts_as_chatでRailsモデルと連携
- Fiberベースの非同期処理 対応
- 800以上のモデル管理、機能検出・価格情報付き
- プロバイダー対応 :OpenAI、xAI、Anthropic、Gemini、VertexAI、Bedrock、DeepSeek、Mistral、Ollama、OpenRouter、Perplexity、GPUStack、OpenAI互換API
導入・セットアップ
- Gemfileに追加
- gem 'ruby_llm'
- インストール
- bundle install
- APIキー設定
- config/initializers/ruby_llm.rbにてRubyLLM.configureでAPIキー指定
- Rails統合
- bin/rails generate ruby_llm:install
- bin/rails db:migrate
- bin/rails ruby_llm:load_models
- チャットUI追加(任意):bin/rails generate ruby_llm:chat_ui
- acts_as_chatを使ったモデル定義例
- class Chat < ApplicationRecord acts_as_chat end
使い方例
- チャット作成と質問
- chat = RubyLLM.chat
- chat.ask "What's the best way to learn Ruby?"
- ファイル解析
- chat.ask "Summarize this document", with: "contract.pdf"
- ストリーミング応答
- chat.ask "Tell me a story about Ruby" do |chunk| print chunk.content end
- 画像生成
- RubyLLM.paint "a sunset over mountains in watercolor style"
- ツール連携・エージェント定義
- WeatherクラスやWeatherAssistantクラスの定義・利用
利用シーン
- 社内AIチャットや AIエージェント の開発
- 音声・画像・動画・ドキュメント のAI解析
- Railsアプリ へのAI組み込み、チャットUIの即時利用
- 多プロバイダー対応 のAIワークフロー構築
まとめ
- RubyLLM はRuby開発者向けの オールインワンAIフレームワーク
- シンプル導入・多機能・高拡張性 で、AI開発の効率化を実現
- 主要AIプロバイダー を1つのインターフェースで自在に活用可能