message
Adapted from the Griptape AI Framework documentation.
T = TypeVar('T', bound=BaseMessageContent)
module-attribute
Bases:
BaseMessage
Source Code in griptape/common/prompt_stack/messages/message.py
@define class Message(BaseMessage): def __init__(self, content: str | list[BaseMessageContent], **kwargs: Any) -> None: if isinstance(content, str): content = [TextMessageContent(TextArtifact(value=content))] self.__attrs_init__(content, **kwargs) # pyright: ignore[reportAttributeAccessIssue] content: list[BaseMessageContent] = field(metadata={"serializable": True}) @property def value(self) -> Any: return self.to_artifact().value def __str__(self) -> str: return self.to_text() def has_all_content_type(self, content_type: type[T]) -> bool: return all(isinstance(content, content_type) for content in self.content) def has_any_content_type(self, content_type: type[T]) -> bool: return any(isinstance(content, content_type) for content in self.content) def get_content_type(self, content_type: type[T]) -> list[T]: return [content for content in self.content if isinstance(content, content_type)] def is_text(self) -> bool: return all(isinstance(content, TextMessageContent) for content in self.content) def to_text(self) -> str: return "".join( [content.artifact.to_text() for content in self.content if isinstance(content, TextMessageContent)], ) def to_artifact(self, meta: Optional[dict] = None) -> BaseArtifact: if meta is None: meta = {} if len(self.content) == 1: artifact = self.content[0].artifact else: artifact = ListArtifact([content.artifact for content in self.content]) artifact.meta.update(meta) return artifact
content = field(metadata={'serializable': True})
class-attribute instance-attributevalue
property
init(content, **kwargs)
Source Code in griptape/common/prompt_stack/messages/message.py
def __init__(self, content: str | list[BaseMessageContent], **kwargs: Any) -> None: if isinstance(content, str): content = [TextMessageContent(TextArtifact(value=content))] self.__attrs_init__(content, **kwargs) # pyright: ignore[reportAttributeAccessIssue]
str()
Source Code in griptape/common/prompt_stack/messages/message.py
def __str__(self) -> str: return self.to_text()
get_content_type(content_type)
Source Code in griptape/common/prompt_stack/messages/message.py
def get_content_type(self, content_type: type[T]) -> list[T]: return [content for content in self.content if isinstance(content, content_type)]
has_all_content_type(content_type)
Source Code in griptape/common/prompt_stack/messages/message.py
def has_all_content_type(self, content_type: type[T]) -> bool: return all(isinstance(content, content_type) for content in self.content)
has_any_content_type(content_type)
Source Code in griptape/common/prompt_stack/messages/message.py
def has_any_content_type(self, content_type: type[T]) -> bool: return any(isinstance(content, content_type) for content in self.content)
is_text()
Source Code in griptape/common/prompt_stack/messages/message.py
def is_text(self) -> bool: return all(isinstance(content, TextMessageContent) for content in self.content)
to_artifact(meta=None)
Source Code in griptape/common/prompt_stack/messages/message.py
def to_artifact(self, meta: Optional[dict] = None) -> BaseArtifact: if meta is None: meta = {} if len(self.content) == 1: artifact = self.content[0].artifact else: artifact = ListArtifact([content.artifact for content in self.content]) artifact.meta.update(meta) return artifact
to_text()
Source Code in griptape/common/prompt_stack/messages/message.py
def to_text(self) -> str: return "".join( [content.artifact.to_text() for content in self.content if isinstance(content, TextMessageContent)], )
Could this page be better? Report a problem or suggest an addition!