Sha256: 41326b53e5c3f8d075ce2665047bbd627bd37b459cb8086b7732dcdd71429001

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

require "dry-struct"
require "dry-validation"

require "roseflow/pinecone/object"
require "roseflow/pinecone/vectors/sparse_vector"
require "roseflow/pinecone/vectors/common"

module Types
  include Dry.Types()
end

module Roseflow
  module Pinecone
    class Vector
      class Update < PineconeObject
        include Roseflow::Pinecone::Vectors::Common

        class UpdateContract < Dry::Validation::Contract
          params do
            required(:id).filled(:string)
            optional(:namespace).filled(:string)
            optional(:values).filled(:array)
            optional(:sparse_values).filled
            optional(:metadata).filled(:hash)
          end
        end

        contract_object UpdateContract

        attribute :id, Dry::Types['string']
        attribute? :namespace, Dry::Types['string'].optional
        attribute? :values, Dry::Types['array'].of(Dry::Types['float']).optional
        attribute? :sparse_values, SparseVector.optional
        attribute? :metadata, Dry::Types['hash'].optional
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roseflow-pinecone-0.1.0 lib/roseflow/pinecone/vectors/update.rb