Class: Fal::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/fal/client.rb

Overview

Main client facade providing public API.

Examples:

client = Fal.client
result = client.run("fal-ai/flux/dev", { prompt: "a cat" })

Instance Method Summary collapse

Constructor Details

#initialize(config:, connection: nil) ⇒ Client

Returns a new instance of Client.



10
11
12
13
# File 'lib/fal/client.rb', line 10

def initialize(config:, connection: nil)
  @config = config
  @connection = connection || Connection.new(config: config)
end

Instance Method Details

#queueObject



26
27
28
# File 'lib/fal/client.rb', line 26

def queue
  @queue ||= Queue.new(connection: @connection, config: @config)
end

#run(app_id, input) ⇒ Object



15
16
17
18
19
# File 'lib/fal/client.rb', line 15

def run(app_id, input)
  endpoint = Endpoints::Run.new(app_id: app_id, base_url: @config.run_url)
  response = @connection.post(endpoint, body: input)
  response.data
end

#subscribe(app_id, input, &on_queue_update) ⇒ Object



21
22
23
24
# File 'lib/fal/client.rb', line 21

def subscribe(app_id, input, &on_queue_update)
  request_id = queue.submit(app_id, input)
  subscriber.wait_for_completion(app_id, request_id, &on_queue_update)
end