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