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内容のみに基づいています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト