"""
Prompt entity for MLflow Model Registry.
This represents a prompt in the registry with its metadata, without version-specific
content like template text. For version-specific content, use PromptVersion.
"""
from typing import Optional
[docs]class Prompt:
"""
Entity representing a prompt in the MLflow Model Registry.
This contains prompt-level information (name, description, tags) but not version-specific
content. To access version-specific content like the template, use PromptVersion.
"""
def __init__(
self,
name: str,
description: Optional[str] = None,
creation_timestamp: Optional[int] = None,
tags: Optional[dict[str, str]] = None,
):
"""
Construct a Prompt entity.
Args:
name: Name of the prompt.
description: Description of the prompt.
creation_timestamp: Timestamp when the prompt was created.
tags: Prompt-level metadata as key-value pairs.
"""
self._name = name
self._description = description
self._creation_timestamp = creation_timestamp
self._tags = tags or {}
@property
def name(self) -> str:
"""The name of the prompt."""
return self._name
@property
def description(self) -> Optional[str]:
"""The description of the prompt."""
return self._description
@property
def creation_timestamp(self) -> Optional[int]:
"""The creation timestamp of the prompt."""
return self._creation_timestamp
@property
def tags(self) -> dict[str, str]:
"""Prompt-level metadata as key-value pairs."""
return self._tags.copy()
def __eq__(self, other) -> bool:
if not isinstance(other, Prompt):
return False
return (
self.name == other.name
and self.description == other.description
and self.creation_timestamp == other.creation_timestamp
and self.tags == other.tags
)
def __repr__(self) -> str:
return (
f"<PromptInfo: name='{self.name}', description='{self.description}', tags={self.tags}>"
)