Class: MoondreamClient::Detect

Inherits:
Object
  • Object
show all
Defined in:
lib/moondream-client/detect.rb

Defined Under Namespace

Classes: BoundingBox

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes, client: MoondreamClient.client) ⇒ Detect

Initialize a new Detect result object.

Parameters:

  • attributes (Hash)

    Raw attributes from the /detect endpoint response.

  • client (MoondreamClient::Client) (defaults to: MoondreamClient.client)


33
34
35
36
# File 'lib/moondream-client/detect.rb', line 33

def initialize(attributes, client: MoondreamClient.client)
  @client = client
  reset_attributes(attributes)
end

Instance Attribute Details

#objectsArray<BoundingBox> (readonly)

Returns The list of detected object bounding boxes.

Returns:

  • (Array<BoundingBox>)

    The list of detected object bounding boxes.



27
28
29
# File 'lib/moondream-client/detect.rb', line 27

def objects
  @objects
end

#request_idString (readonly)

Returns The server-generated request identifier.

Returns:

  • (String)

    The server-generated request identifier.



24
25
26
# File 'lib/moondream-client/detect.rb', line 24

def request_id
  @request_id
end

Class Method Details

.create!(image_url:, object:, client: MoondreamClient.client) ⇒ MoondreamClient::Detect

Detect objects described by object within an image. Corresponds to POST /detect

Parameters:

  • image_url (String)
  • object (String)

    Object description, e.g. "person".

  • client (MoondreamClient::Client) (defaults to: MoondreamClient.client)

Returns:



47
48
49
50
51
52
53
54
55
56
# File 'lib/moondream-client/detect.rb', line 47

def create!(image_url:, object:, client: MoondreamClient.client)
  image_data_url = MoondreamClient::Image.to_data_url(image_url)
  payload = {
    image_url: image_data_url,
    object: object
  }

  attributes = client.post("/detect", payload)
  new(attributes, client: client)
end