HfHub.Cards (HfHub v0.2.0)

Copy Markdown View Source

Model and Dataset card parsing and creation.

Cards are structured documentation files (README.md) that contain YAML frontmatter with metadata and markdown content for documentation.

Examples

# Load and parse cards from repositories
{:ok, card} = HfHub.Cards.load_model_card("bert-base-uncased")
card.data.license  # "apache-2.0"

# Parse from content
{:ok, card} = HfHub.Cards.parse_model_card(readme_content)

# Create and render cards
card = HfHub.Cards.create_model_card(%{
  language: "en",
  license: "mit",
  tags: ["text-classification"]
})
markdown = HfHub.Cards.render(card)

Summary

Functions

Creates a dataset card from data.

Creates a model card from data.

Loads a dataset card from a repository.

Loads a model card from a repository.

Parses a dataset card from markdown content.

Parses a model card from markdown content.

Renders a card to markdown string with YAML frontmatter.

Functions

create_dataset_card(data)

@spec create_dataset_card(map() | keyword()) :: HfHub.Cards.DatasetCard.t()

Creates a dataset card from data.

Arguments

  • data - Map or keyword list with card data fields

Examples

card = HfHub.Cards.create_dataset_card(%{
  language: "en",
  license: "cc-by-4.0",
  task_categories: ["question-answering"]
})

create_model_card(data)

@spec create_model_card(map() | keyword()) :: HfHub.Cards.ModelCard.t()

Creates a model card from data.

Arguments

  • data - Map or keyword list with card data fields

Examples

card = HfHub.Cards.create_model_card(%{
  language: "en",
  license: "mit",
  tags: ["text-classification"]
})

load_dataset_card(repo_id, opts \\ [])

@spec load_dataset_card(
  String.t(),
  keyword()
) :: {:ok, HfHub.Cards.DatasetCard.t()} | {:error, term()}

Loads a dataset card from a repository.

Downloads the README.md file and parses its frontmatter and content.

Arguments

  • repo_id - Dataset repository ID (e.g., "squad")

Options

  • :revision - Git revision. Defaults to "main".
  • :token - Authentication token.
  • :cache_dir - Local cache directory.

Examples

{:ok, card} = HfHub.Cards.load_dataset_card("squad")
card.data.task_categories  # ["question-answering"]

load_model_card(repo_id, opts \\ [])

@spec load_model_card(
  String.t(),
  keyword()
) :: {:ok, HfHub.Cards.ModelCard.t()} | {:error, term()}

Loads a model card from a repository.

Downloads the README.md file and parses its frontmatter and content.

Arguments

  • repo_id - Repository ID (e.g., "bert-base-uncased")

Options

  • :revision - Git revision. Defaults to "main".
  • :token - Authentication token.
  • :cache_dir - Local cache directory.

Examples

{:ok, card} = HfHub.Cards.load_model_card("bert-base-uncased")
card.data.license  # "apache-2.0"
card.data.tags     # ["pytorch", "bert", "fill-mask"]

parse_dataset_card(content)

@spec parse_dataset_card(String.t()) ::
  {:ok, HfHub.Cards.DatasetCard.t()} | {:error, term()}

Parses a dataset card from markdown content.

Extracts YAML frontmatter and remaining markdown content.

Arguments

  • content - Raw markdown content with optional YAML frontmatter

Examples

{:ok, card} = HfHub.Cards.parse_dataset_card(content)
card.data.task_categories  # ["question-answering"]

parse_model_card(content)

@spec parse_model_card(String.t()) ::
  {:ok, HfHub.Cards.ModelCard.t()} | {:error, term()}

Parses a model card from markdown content.

Extracts YAML frontmatter and remaining markdown content.

Arguments

  • content - Raw markdown content with optional YAML frontmatter

Examples

content = """
---
license: mit
tags:
  - bert
---

# My Model
"""

{:ok, card} = HfHub.Cards.parse_model_card(content)
card.data.license  # "mit"
card.content       # "# My Model"

render(map)

Renders a card to markdown string with YAML frontmatter.

Arguments

  • card - A ModelCard or DatasetCard struct

Examples

card = HfHub.Cards.create_model_card(%{license: "mit"})
markdown = HfHub.Cards.render(card)
# => """
# ---
# license: "mit"
# ---
#
# """