class AnndbApi::ImageDataset

Public Class Methods

new(server_addr, rpc_metadata) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 10
def initialize(server_addr, rpc_metadata)
    @rpc_metadata = rpc_metadata
    @stub = AnndbApiPb::ImageDataset::Stub.new(server_addr, GRPC::Core::ChannelCredentials.new())
end

Public Instance Methods

insert(image, metadata = {}) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 15
def insert(image, metadata = {})
    format_dataset_op_result_single @stub.insert(AnndbApiPb::ImageDatasetRequest.new(items: [
        AnndbApiPb::ImageItem.new(
            image: image_proto(image),
            metadata: format_req_metadata(metadata)
            )
        ]), { metadata: @rpc_metadata })
end
insert_batch(items) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 24
def insert_batch(items)
    format_dataset_op_result @stub.insert(AnndbApiPb::ImageDatasetRequest.new(items: items.map { |item|
        AnndbApiPb::ImageItem.new(
            image: image_proto(item[:image]),
            metadata: format_req_metadata(item.fetch(:metadata, {}))
            )
        }), { metadata: @rpc_metadata })
end
search_image(query, n) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 53
def search_image(query, n)
    format_search_result @stub.search_image(AnndbApiPb::ImageSearchImageRequest.new(
        query: image_proto(query),
        n: n.to_i
        ), { metadata: @rpc_metadata })
end
search_text(query, n) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 60
def search_text(query, n)
    format_search_result @stub.search_text(AnndbApiPb::ImageSearchTextRequest.new(
        query: query.to_s,
        n: n.to_i
        ), { metadata: @rpc_metadata })
end
update(id, image, metadata = {}) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 33
def update(id, image, metadata = {})
    format_dataset_op_result_single @stub.update(AnndbApiPb::ImageDatasetRequest.new(items: [
        AnndbApiPb::ImageItem.new(
            id: AnndbApiPb::UUID.new(data: AnndbApi::Util.uuid_string_to_bytes(id)),
            image: image_proto(image),
            metadata: format_req_metadata(metadata)
            )
        ]), { metadata: @rpc_metadata })
end
update_batch(items) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 43
def update_batch(items)
    format_dataset_op_result @stub.update(AnndbApiPb::ImageDatasetRequest.new(items: items.map { |item|
        AnndbApiPb::ImageItem.new(
            id: AnndbApiPb::UUID.new(data: AnndbApi::Util.uuid_string_to_bytes(item[:id])),
            image: image_proto(item[:image]),
            metadata: format_req_metadata(item.fetch(:metadata, {}))
            )
        }), { metadata: @rpc_metadata })
end

Private Instance Methods

image_proto(img) click to toggle source
# File lib/anndb_api/image_dataset.rb, line 69
def image_proto(img)
    if !img.match(/^http/).nil?
        return AnndbApiPb::Image.new(url: img)
    else
        return AnndbApiPb::Image.new(data: img)
    end
    
    raise TypeError.new('Image has to be either an array or a string')
end