Module: RailsAiGateway

Defined in:
lib/rails_ai_gateway.rb,
lib/rails_ai_gateway/proxy.rb,
lib/rails_ai_gateway/engine.rb,
lib/rails_ai_gateway/version.rb,
lib/rails_ai_gateway/model_helper.rb,
lib/rails_ai_gateway/configuration.rb,
lib/generators/rails_ai_gateway/install_generator.rb

Defined Under Namespace

Modules: ModelHelper Classes: Configuration, Engine, InstallGenerator, Proxy

Constant Summary collapse

ENDPOINT =

Default OpenAI-compatible API path created by the install generator.

Host applications using a custom engine mount path should derive their URL from that route instead.

"/ai/v1"
VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.configuration ⇒ Configuration

Returns global gateway configuration.

Returns:



17
18
19
# File 'lib/rails_ai_gateway.rb', line 17

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|config| ... } ⇒ Configuration

Configures gateway runtime and security policy.

Yield Parameters:

Returns:



25
26
27
28
# File 'lib/rails_ai_gateway.rb', line 25

def self.configure
  yield configuration
  configuration.validate!
end

.model(name) ⇒ Hash?

Finds one active public model by ID.

Parameters:

  • name (String)

Returns:

  • (Hash, nil)


45
46
47
# File 'lib/rails_ai_gateway.rb', line 45

def self.model(name)
  ModelHelper.model(name)
end

.models(**filters) ⇒ Array<Hash>

Lists active public models and their routes.

Examples:

Find vision models

RailsAIGateway.models(capabilities: %w[vision text])

Parameters:

  • capabilities (Array<String>, String, nil) —

    capabilities every result must support

  • provider (Provider, String, nil) —

    provider record or provider name

Returns:

  • (Array<Hash>) —

    model metadata without provider credentials



37
38
39
# File 'lib/rails_ai_gateway.rb', line 37

def self.models(**filters)
  ModelHelper.models(**filters)
end

.route_for(model:, query:, capabilities: []) ⇒ Hash?

Selects route proxy would use for query and required capabilities.

Literal query-keyword matches rank before generic fallback routes.

Examples:

Select coding route

RailsAIGateway.route_for(
  model: "fast-chat",
  query: "Review this Ruby code",
  capabilities: %w[text tools]
)

Parameters:

  • model (String) —

    public model ID

  • query (String) —

    text used for keyword routing

  • capabilities (Array<String>, String) (defaults to: []) —

    required route capabilities

Returns:

  • (Hash, nil) —

    safe route metadata without system prompt or API key



63
64
65
# File 'lib/rails_ai_gateway.rb', line 63

def self.route_for(model:, query:, capabilities: [])
  ModelHelper.route_for(model: model, query: query, capabilities: capabilities)
end