3.8 KiB
swarms.structs Documentation
Introduction
The swarms.structs library provides a collection of classes for representing artifacts and their attributes. This documentation will provide an overview of the Artifact class, its attributes, functionality, and usage examples.
Artifact Class
The Artifact class represents an artifact and its attributes. It inherits from the BaseModel class and includes the following attributes:
Attributes
artifact_id (str): Id of the artifact.file_name (str): Filename of the artifact.relative_path (str, optional): Relative path of the artifact in the agent's workspace.
These attributes are crucial for identifying and managing different artifacts within a given context.
Class Definition
The Artifact class can be defined as follows:
class Artifact(BaseModel):
"""
Represents an artifact.
Attributes:
artifact_id (str): Id of the artifact.
file_name (str): Filename of the artifact.
relative_path (str, optional): Relative path of the artifact in the agent's workspace.
"""
artifact_id: str = Field(
...,
description="Id of the artifact",
example="b225e278-8b4c-4f99-a696-8facf19f0e56",
)
file_name: str = Field(
..., description="Filename of the artifact", example="main.py"
)
relative_path: Optional[str] = Field(
None,
description=("Relative path of the artifact in the agent's workspace"),
example="python/code/",
)
The Artifact class defines the mandatory and optional attributes and provides corresponding descriptions along with example values.
Functionality and Usage
The Artifact class encapsulates the information and attributes representing an artifact. It provides a structured and organized way to manage artifacts within a given context.
Example 1: Creating an Artifact instance
To create an instance of the Artifact class, you can simply initialize it with the required attributes. Here's an example:
from swarms.structs import Artifact
artifact_instance = Artifact(
artifact_id="b225e278-8b4c-4f99-a696-8facf19f0e56",
file_name="main.py",
relative_path="python/code/",
)
In this example, we create an instance of the Artifact class with the specified artifact details.
Example 2: Accessing Artifact attributes
You can access the attributes of the Artifact instance using dot notation. Here's how you can access the file name of the artifact:
print(artifact_instance.file_name)
# Output: "main.py"
Example 3: Handling optional attributes
If the relative_path attribute is not provided during artifact creation, it will default to None. Here's an example:
artifact_instance_no_path = Artifact(
artifact_id="c280s347-9b7d-3c68-m337-7abvf50j23k", file_name="script.js"
)
print(artifact_instance_no_path.relative_path)
# Output: None
By providing default values for optional attributes, the Artifact class allows flexibility in defining artifact instances.
Additional Information and Tips
The Artifact class represents a powerful and flexible means of handling various artifacts with different attributes. By utilizing this class, users can organize, manage, and streamline their artifacts with ease.
References and Resources
For further details and references related to the swarms.structs library and the Artifact class, refer to the official documentation.
This comprehensive documentation provides an in-depth understanding of the Artifact class, its attributes, functionality, and usage examples. By following the detailed examples and explanations, developers can effectively leverage the capabilities of the Artifact class within their projects.