RubyLLM:すべての主要 AI プロバイダーに対応する Ruby フレームワーク

2026/06/24 23:41

RubyLLM:すべての主要 AI プロバイダーに対応する Ruby フレームワーク

RSS: https://news.ycombinator.com/rss

要約

日本語翻訳:

RubyLLM は、OpenAI、xAI、Anthropic、Gemini、Ollama を含むローカルモデルに至るまで主要なすべての AI プロバイダーをサポートする統一された Ruby フレームワークです。多様な API とレスポンス形式を単一のインターフェースに統合することで開発を簡素化するのがその主たる価値であり、このことでチームはチャットボット、AI エージェント、RAG システム、コンテンツ生成器、および様々な AI ワークフローを構築できます。インストールは簡単です:Gemfile に RubyLLM を追加し、

config/initializers/ruby_llm.rb
で API キーを設定し、必要であれば generator コマンドで Rails と統合し、
localhost:3000/chats
でローカルチャット UI を起動できます。開発者は RAG システムやコンテンツ生成器などの複雑なアプリケーションをわずか 2 分で構築でき、Ruby エコシステム内でこの機能を拡張しています。JPG(画像)、MP4(ビデオ)、WAV(音声)、PDF(文書)、RB(コード)を含む広範なファイル解析をサポートしており、
RubyLLM.paint
を介した画像生成、
RubyLLM.embed
を介した埋め込み生成、
RubyLLM.transcribe
を介した音声書き起こしが可能となります。また、
RubyLLM.moderate
を用いたコンテンツモデレーション機能も含まれており、テキストの安全性を確認できます。ユーザーは
.with_tool
を使用して AI エージェントが特定の指示に基づいて実行するカスタム Ruby クラスツールを定義でき、
RubyLLM::Agent
を用いて特定の指示、モデル、ツールの関連付けを持つエージェントを作成できます。さらに、このフレームワークは
RubyLLM::Schema
で定義されたスキーマによる構造化 JSON 出力をサポートし、
.ask
メソッドに渡されるブロックを通じてストリーミングレスポンスを提供します。このアプローチにより、高度なモデルを使用して複雑なタスクを実行する洗練されたエージェントの迅速なデプロイが可能となり、ネイティブ Ruby 環境内で堅牢な人工知能ソリューションの作成が著しく加速されます。

本文

RubyLLM:単一フレームワークで全ての AI プロバイダーを統合

Ruby で開発する際、AI チャンネルを開通させたい場合の解決策です。全ての主要な AI プロバイダーに対応し、チャットボットや RAG アプリケーションなどのあらゆる workflow を簡単に構築できます。

✅ 検証済み実績

  • 完全なプライベート環境での業務用 AI 導入対応
  • Ruby で動作する AI チャットアプリをわずか 2 分で作成可能
  • RubyLLM をご活用の方の事例共有も歓迎いたします(お話しは 5 分以内)

🚀 なぜ RubyLLM か?

各 AI プロバイダーは肥大化したクライアント、異なる API 仕様、レスポンス形式を求められて疲弊させがちです。RubyLLM はそれらを抽象化した単一の美しいフレームワークを提供します。

  • GPT、Claude、Ollama などを問わず、同一インターフェースで利用可能
  • 必要な依存関係はたった 3 つ
    Faraday
    ,
    Zeitwerk
    ,
    Marcel
    で完結

💻 コードサンプル

🔹 基本的なチャットと多様な処理

ファイルアップロードやストリーミング対応、画像生成など多彩な機能を

chat.ask
や簡潔なメソッドで呼び出せます。

chat = RubyLLM.chat

# 単なる質問
chat.ask "Ruby を学ぶ最良の方法は何ですか?"

# ファイル分析(画像・ビデオ・音声・ドキュメント・コード)
chat.ask "この画像には何がありますか?", with: "ruby_conf.jpg"
chat.ask "この会議について教えてください", with: "meeting.wav"
chat.ask "この文書要約してください", with: "contract.pdf"

# 複数ファイルの同時分析
chat.ask "これらのファイルを分析してください", with: ["diagram.png", "report.pdf"]

# レスポンスストリーミング出力(リアルタイム表示)
chat.ask "Ruby の物語を語ってください" do |chunk|
  print chunk.content
end

# その他の機能呼び出し
RubyLLM.paint "水彩画風の夕暮れの山々"          # 画像生成
RubyLLM.embed "Ruby はエレガントです"            # エンベッディング
RubyLLM.transcribe "meeting.wav"                 # 音声認識
RubyLLM.moderate "テキストの安全性を確認する"    # コンテンツ調整

🔹 AI に Ruby コードを実行させる(ツール)

自分の Ruby メソッドを AI が利用可能なツールとして提供します。

class Weather < RubyLLM::Tool
  desc "現在の天気を取得する"

  def execute(latitude:, longitude:)
    url = "https://api.open-meteo.com/v1/forecast?latitude=#{latitude}&longitude=#{longitude}&current=temperature_2m,wind_speed_10m"
    JSON.parse(Faraday.get(url).body)
  end
end

chat.with_tool(Weather).ask "ベルリンの天気はどうですか?"

🔹 指示(System Prompt)とツールでエージェントを定義

再利用可能な AI エージェントを簡単に作成できます。

class WeatherAssistant < RubyLLM::Agent
  model "gpt-5-nano"
  instructions "簡潔になり、常に天気に関するツールを利用してください。"
  tools Weather
end

WeatherAssistant.new.ask "ベルリンの天気はどうですか?"

🔹 構造化された出力(JSON スキーマ)

ただスキーマを定義すれば、AI は自動的に JSON フォーマットで応答してくれます。

class ProductSchema < RubyLLM::Schema
  string :name
  number :price
  array :features do
    string
  end
end

response = chat.with_schema(ProductSchema).ask "製品を分析してください", with: "product.txt"
# response.data -> JSON オブジェクトが返されます

📜 機能一覧

  • チャット:
    RubyLLM.chat
    で即時対話可能
  • ビジョン: 画像とビデオの視覚解析
  • オーディオ: 音声トランスクリプションと理解 (
    transcribe
    )
  • ドキュメント: PDF, CSV, JSON などあらゆる形式からの情報抽出
  • 画像生成: AI による画像作成 (
    paint
    )
  • エンベッディング: ベクトル表現の生成 (
    embed
    )
  • モデレーション: コンテンツ安全性の調整 (
    moderate
    )
  • ツール: AI が外部 Ruby メソッドを呼び出せる仕組み
  • エージェント:
    RubyLLM::Agent
    でカスタムアシスタント作成
  • 構造化出力: JSON スキーマを定義するだけで動作
  • ストリーミング: ブロック処理でリアルタイムレスポンス取得
  • Rails 統合:
    acts_as_chat
    を使った ActiveRecord インタグリゼーション
  • 非同期処理: Fiber ベースの並列実行対応
  • モデルレジストリ: 800 以上のモデル検出と価格情報提示
  • 拡張思考(Chain of Thought)制御: 検討プロセスの保存・監視可能
  • プロバイダー対応: OpenAI, xAI, Anthropic, Gemini, Ollama など全主要 API 対応

📦 インストール

Gemfile
に以下のライブラリを追加してください:

gem 'ruby_llm'

その後、依存関係をインストールします:

bundle install

🔑 API キーの設定

config/initializers/ruby_llm.rb
のようなファイルに設定を行います。

RubyLLM.configure do |config|
  config.openai_api_key = ENV['OPENAI_API_KEY']
end

🚄 Rails への統合

インストール手順

bin/rails generate ruby_llm:install
bin/rails db:migrate
# v1.13 以降
bin/rails ruby_llm:load_models 

チャット UI の追加(オプション)

Web インターフェースを迅速に追加したい場合:

bin/rails generate ruby_llm:chat_ui

モデル定義と動作確認

class Chat < ApplicationRecord
  acts_as_chat
end

以下のコードを実行すると、データベース内にチャットスレッドが作成されます:

chat = Chat.create! model: "claude-sonnet-4"
chat.ask "このファイルには何がありますか?", with: "report.pdf"

最後にブラウザから

http://localhost:3000/chats
を訪れ、すぐに使えるチャット UI を確認してください!

同じ日のほかのニュース

一覧に戻る →

2026/06/25 2:47

OpenAI、ブロードコムによる初自有チップを発表

## Japanese Translation: 要約: OpenAI は、Nvidia ハードウェアへの依存を減らすという戦略的な動きとして、Broadcom と共同で開発した最初の独自の AI 推論チップ「Jalapeño」を発表しました。このチップの主な優位点は、既存の選択肢を上回る卓越したワットあたりの性能であり、これは OpenAI の大規模言語モデルが直接、チップおよび全体の基盤スタック(アーキテクチャ、カーネル、メモリスистем、ネットワーク、デプロイメントシステムなど)の最適化に参加するという独自のプロセスを通じて実現されています。事前学習タスクは既存のシステムで引き続き行われますが、10 月の公式パートナーシップ発表以降およびさらなるテストを経て、推論ワークロードが Jalapeño へ迅速に移転する見込みです。このチップは推論用に特別に設計されており、より高速で信頼性が高くコスト効率の良い AI エクスペリエンスを実現するとともに運用コストを削減することを可能にします。これは OpenAI の財務の底線を改善する方法として強調されており、エージェント型製品(例:Codex)やリアルタイムモデルを取り扱う専用データセンターなどの目的builtアプリケーションを動かすために適しています。

2026/06/25 7:39

PostgreSQL で十分です

## Japanese Translation: 主要な要点は、GitHub Desktop で特定のクローニングタスクが必要なユーザーは、コントリビューター「cpursley」から提供される専用のスクリプトを使用すべきであるということです。Gist の URL—`https://gist.github.com/cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb.js`—はスクリプトを提供しており、ユーザーは GitHub Desktop 内での使用のために「cpursley/c8fb81fe8a7e5df038158bdfe0f06dbb」をローカルに保存するよう指示されています。内容は、背景や今後のアップデートなしに直ちに実装することに焦点を当てています。

2026/06/24 17:50

Bunny DNS を無料にします

## Japanese Translation: Bunny.net は、コアプロダクトである Bunny DNS を単純なクエリツールから、30 万件以上のドメインを管理し、1 ヶ月に約 2000 億回のクエリを処理可能な高度なスマートルーティングエンジンへと進化させました。この重要なアップデートは 119 のグローバル拠点にわたり、リアルタイムのヘルスチェック、レイテンシデータ、JavaScript を利用してトラフィックを動的に誘導し、低遅延のパフォーマンスを実現しています。同プラットフォームは、1 件ごとのクエリ料金や制限のある請求枠を廃止し、使用量課金なしで最大 500 ドメインまでホストできる無料プランを維持しつつ、標準的な月次最少支出額 $1 でアクセス democratizing(民主化)を実現しています。 今や、高価なクエリベースの構造ではなく、シンプルな月次支出を通じてエンタープライズグレードのカラビリティを利用できるようになりました。主な機能には、Pull Zones を通じて CDN への即時デプロイを行う「1-Click Acceleration」、Bunny Shield(エッジでの DDoS 保護)を介して自動的な DDoS 対策を行う「1-Click Security」が含まれます。IPv6 の全面的な採用はデュアルスタック環境でデフォルトでサポートされ、構成不要です。また、ドメイン構造の完全な開示を行わずに検証を提供するために DNSSEC と NSEC Black Lies を提供しています。さらに、プラットフォームは HTTPS、SVCB、TLSA、CDS/CDNSKEY といった高度なレコードタイプをサポートし、レコードを再構築するか、直接 BIND ファイルをアップロードすることで管理を円滑化する自動ゾーンスキャン機能を備えています。