Genai
OpenAI-compatible chat completions for Ruby.
Installation
Add the gem to your Gemfile:
gem "genai-rb"
Install dependencies:
bundle install
Or install it directly:
gem install genai-rb
Setup
Set your API key:
export OPENAI_API_KEY="api_key"
By default, requests go to:
https://api.openai.com/v1
For another OpenAI-compatible provider, set OPENAI_BASE_URL with /v1 included:
export OPENAI_BASE_URL="https://api.example.com/v1"
For Gemini's OpenAI-compatible endpoint:
export OPENAI_API_KEY="gemini_api_key"
export OPENAI_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai"
You can also pass values in Ruby:
require "genai"
client = Genai.new(
api_key: "api_key",
base_url: "https://api.openai.com/v1"
)
Quick Start
require "genai"
client = Genai.new
response = client.generate_content(contents: "Hello, how are you?")
puts response
The default model is gpt-5.5.
Run the included example:
ruby example.rb
Edit the variables at the top of example.rb to change providers:
api_key = "your_api_key"
base_url = "https://api.openai.com/v1"
model = "gpt-5.5"
For Gemini's OpenAI-compatible endpoint:
api_key = "your_gemini_api_key"
base_url = "https://generativelanguage.googleapis.com/v1beta/openai"
model = "gemini-2.5-flash"
Choosing A Model
response = client.generate_content(
model: "gpt-5.5",
contents: "Explain quantum computing."
)
puts response
Configuration
Pass OpenAI chat completion options with config:
response = client.generate_content(
contents: "Write a short story about a robot learning to paint.",
config: {
temperature: 0.8,
max_tokens: 1000
}
)
max_output_tokens is accepted as an alias for max_tokens.
Messages
Use OpenAI-style messages when you need system or multi-turn context:
response = client.generate_content(
contents: [
{ role: "system", content: "Answer briefly." },
{ role: "user", content: "0.1 + 0.2 == 0.3? Explain." }
]
)
puts response
Chat Sessions
chat = client.chats.create(model: "gpt-5.5")
puts chat.("a = 231018")
puts chat.("What is a?")
Supported APIs
- OpenAI Chat Completions API
- OpenAI-compatible
/v1/chat/completionsproviders
License
Open source under the MIT License.