openai/openai-ruby

Official Ruby SDK for the OpenAI API

openai/openai‑ruby – OpenAI API公式Rubyクライアント

概要

  • OpenAI REST APIをラップするRuby gemで、Ruby 3.3以降のアプリケーションからGPT‑4、Whisper、DALL‑E、および新しいRealtimeおよびAgentsエンドポイントなどのモデルを呼び出せます。
  • 型付きのリクエスト/レスポンスオブジェクト、Yardドキュメント、Sorbet用のRBS/RBIファイル、組み込みのページネーション、ストリーミング、ファイルアップロードヘルパーを提供します。

主な機能

  • Chat & completion – シンプルなclient.chat.completions.create呼び出し。
  • ストリーミング – インクリメンタルなトークン出力のためのServer‑Sent Events (SSE)。
  • Agents(ベータ版) – 長時間実行エージェントセッションを作成し、最終的な構造化結果を取得し、生成されたアーティファクトをダウンロードします。
  • Realtime WebSockets – ブロックスコープのテキスト、文字起こし、音声、WebRTC呼び出し制御。
  • Responses WebSocket – 永続的な多重化レスポンス作成。
  • ファイル処理 – アップロード、処理のポーリング、ホスト環境用のファイルステージング、アーティファクトのダウンロード。
  • カスタムHTTPトランスポート – 独自クライアントをプラグインできます(例:接続プーリング、mTLS、特別なプロキシロジック)。
  • プロバイダー統合 – Azure OpenAI、Amazon Bedrock、ワークロードID認証がサポートされています。

典型的なユースケース

  • RubyのWebサービスやバックグラウンドサービスでのチャットボット、アシスタント、LLMを活用した機能の構築。
  • Rubyコードから直接、画像、音声、文字起こしの生成。
  • 状態を持つ対話とファイルI/Oを必要とする長時間実行エージェントのワークフロー。
  • Realtime WebSocket APIを使用したリアルタイム音声またはテキストアプリケーション。
  • コードを変更せずにAzure OpenAIやAWS Bedrockとの統合。

インストール

# Gemfile内
"gem "openai", "~> 0.103.0""

bundle installを実行します。このgemはRuby 3.3以降で動作します。

クイックスタート

require "bundler/setup"
require "openai"

client = OpenAI::Client.new(api_key: ENV["OPENAI_API_KEY"]) # env varが設定されていればkeyは省略可能

# シンプルなチャット補完
resp = client.chat.completions.create(
  model: "gpt-4o-mini",
  messages: [{role: "user", content: "Say this is a test"}]
)
puts resp

ストリーミング例

stream = client.responses.stream(input: "Write a haiku about OpenAI.", model: "gpt-4o-mini")
stream.each { |event| puts event.type }

Agent (ベータ) 例

stream = client.beta.agents.sessions.create_streaming(
  agent: {model: "gpt-4o-mini", instructions: "Summarize the policy clearly."},
  environment: {type: :none},
  input: "Explain this policy: ..."
)
result = stream.get_final_result
puts result.output_text

高度な機能

  • OpenAI::BaseModelサブクラスを使用して構造化出力タイプを宣言し、自動解析を取得します。
  • client.files.createでローカルファイルをアップロードするか、client.beta.agents.environments.files.prepareでエージェント環境用にステージングします。
  • クライアント証明書を使用してカスタムOpenAI::NetHTTPClientを構築し、OpenAI::Clientに渡すことでmutual TLSを有効にします。
  • プロバイダーを切り替える:
    client = OpenAI::Client.new(provider: OpenAI::Providers.azure(endpoint: ENV["AZURE_OPENAI_ENDPOINT"], api_key: ENV["AZURE_OPENAI_API_KEY"]))
    

成熟度とサポート

  • OpenAI(公式リポジトリ)によって積極的にメンテナンスされています。
  • RubyDocとOpenAIプラットフォームドキュメントに関する包括的なドキュメント。
  • ベータフラグ付きで最新のOpenAI機能(Agents、Realtime、ベクターストアなど)をサポート。

ライセンス

  • MITライセンスのもとで配布されています(リポジトリのLICENSEファイルを参照)。

この要約はopenai/openai‑rubyリポジトリのREADME内容のみに基づいています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト