Class: DurableHuggingfaceHub::Types::ModelInfo

Inherits:
Struct
  • Object
show all
Includes:
Loadable
Defined in:
lib/durable_huggingface_hub/types/model_info.rb

Overview

Information about a model repository on HuggingFace Hub.

This structure represents metadata about a model, including its ID, tags, files, statistics, and configuration.

Examples:

Creating a ModelInfo from API response

model_info = ModelInfo.from_hash({
  "id" => "bert-base-uncased",
  "sha" => "a1b2c3d4...",
  "tags" => ["transformers", "pytorch"],
  "downloads" => 1000000,
  "likes" => 500
})

Accessing model information

model_info.id          # => "bert-base-uncased"
model_info.tags        # => ["transformers", "pytorch"]
model_info.downloads   # => 1000000

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#authorString? (readonly)

Returns Author/organization name.

Returns:

  • (String, nil)

    Author/organization name



82
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 82

attribute :author, Types::OptionalString.default(nil)

#card_dataHash? (readonly)

Returns Model card metadata.

Returns:

  • (Hash, nil)

    Model card metadata



90
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 90

attribute :card_data, Types::OptionalHash.default(nil)

#configHash? (readonly)

Returns Model configuration data.

Returns:

  • (Hash, nil)

    Model configuration data



78
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 78

attribute :config, Types::OptionalHash.default(nil)

#created_atTime? (readonly)

Returns Repository creation timestamp.

Returns:

  • (Time, nil)

    Repository creation timestamp



86
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 86

attribute :created_at, Types::OptionalTimestamp.default(nil)

#disabledBoolean? (readonly)

Returns Whether the repository is disabled.

Returns:

  • (Boolean, nil)

    Whether the repository is disabled



62
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 62

attribute :disabled, Types::OptionalBool.default(nil)

#downloadsInteger? (readonly)

Returns Total number of downloads.

Returns:

  • (Integer, nil)

    Total number of downloads



66
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 66

attribute :downloads, Types::OptionalInteger.default(nil)

#gatedBoolean, ... (readonly)

Returns Gated access status (false, “auto”, “manual”).

Returns:

  • (Boolean, String, nil)

    Gated access status (false, “auto”, “manual”)



58
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 58

attribute :gated, Types::OptionalGated.default(nil)

#idString (readonly)

Returns Model repository ID (e.g., “bert-base-uncased”).

Returns:

  • (String)

    Model repository ID (e.g., “bert-base-uncased”)



30
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 30

attribute :id, Types::RepoId

#last_modifiedTime? (readonly)

Returns Timestamp of last modification.

Returns:

  • (Time, nil)

    Timestamp of last modification



38
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 38

attribute :last_modified, Types::OptionalTimestamp.default(nil)

#library_nameString? (readonly)

Returns Primary library (e.g., “transformers”, “diffusers”).

Returns:

  • (String, nil)

    Primary library (e.g., “transformers”, “diffusers”)



74
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 74

attribute :library_name, Types::OptionalString.default(nil)

#likesInteger? (readonly)

Returns Number of likes/stars.

Returns:

  • (Integer, nil)

    Number of likes/stars



70
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 70

attribute :likes, Types::OptionalInteger.default(nil)

#pipeline_tagString? (readonly)

Returns Primary pipeline/task tag (e.g., “text-classification”).

Returns:

  • (String, nil)

    Primary pipeline/task tag (e.g., “text-classification”)



46
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 46

attribute :pipeline_tag, Types::OptionalString.default(nil)

#privateBoolean? (readonly)

Returns Whether the repository is private.

Returns:

  • (Boolean, nil)

    Whether the repository is private



54
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 54

attribute :private, Types::OptionalBool.default(nil)

#shaString? (readonly)

Returns Git commit SHA of the current revision.

Returns:

  • (String, nil)

    Git commit SHA of the current revision



34
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 34

attribute :sha, Types::OptionalString.default(nil)

#siblingsArray<Hash>? (readonly)

Returns List of files in the repository.

Returns:

  • (Array<Hash>, nil)

    List of files in the repository



50
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 50

attribute :siblings, Types::OptionalFileSiblings.default(nil)

#tagsArray<String> (readonly)

Returns Tags associated with the model.

Returns:

  • (Array<String>)

    Tags associated with the model



42
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 42

attribute :tags, Types::StringArray.default([].freeze)

Instance Method Details

#disabled?Boolean

Checks if the repository is disabled.

Returns:

  • (Boolean)

    True if disabled



131
132
133
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 131

def disabled?
  disabled == true
end

#file_namesArray<String>

Returns the list of file names in the repository.

Returns:

  • (Array<String>)

    File names



95
96
97
98
99
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 95

def file_names
  return [] if siblings.nil?

  siblings.map { |s| s[:rfilename] || s["rfilename"] }.compact
end

#gated?Boolean

Checks if the repository is gated.

Returns:

  • (Boolean)

    True if gated



119
120
121
122
123
124
125
126
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 119

def gated?
  case gated
  when true, "auto", "manual"
    true
  else
    false
  end
end

#has_tag?(tag) ⇒ Boolean

Checks if the model has a specific tag.

Parameters:

  • tag (String)

    Tag to check for

Returns:

  • (Boolean)

    True if the tag is present



105
106
107
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 105

def has_tag?(tag)
  tags.include?(tag)
end

#inspectString

Returns a detailed inspection string.

Returns:

  • (String)

    Inspection string



148
149
150
151
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 148

def inspect
  "#<#{self.class.name} id=#{id.inspect} sha=#{sha&.[](0, 7).inspect} " \
    "tags=#{tags.size} files=#{siblings&.size || 0}>"
end

#public?Boolean

Checks if the repository is public.

Returns:

  • (Boolean)

    True if public (not private)



112
113
114
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 112

def public?
  !private
end

#to_sString

Returns a short description of the model.

Returns:

  • (String)

    Description string



138
139
140
141
142
143
# File 'lib/durable_huggingface_hub/types/model_info.rb', line 138

def to_s
  parts = [id]
  parts << "(#{pipeline_tag})" if pipeline_tag
  parts << "[#{library_name}]" if library_name
  parts.join(" ")
end