2.7 KiB
swarms.structs
Overview
Swarms is a library that provides tools for managing a distributed system of agents working together to achieve a common goal. The structs module within Swarms provides a set of data structures and classes that are used to represent artifacts, tasks, and other entities within the system. The ArtifactUpload class is one such data structure that represents the process of uploading an artifact to an agent's workspace.
ArtifactUpload
The ArtifactUpload class inherits from the BaseModel class. It has two attributes: file and relative_path. The file attribute represents the bytes of the file to be uploaded, while the relative_path attribute represents the relative path of the artifact in the agent's workspace.
Class Definition
class ArtifactUpload(BaseModel):
file: bytes = Field(..., description="File to upload")
relative_path: Optional[str] = Field(
None,
description=("Relative path of the artifact in the agent's workspace"),
example="python/code/",
)
The ArtifactUpload class requires the file attribute to be passed as an argument. It is of type bytes and represents the file to be uploaded. The relative_path attribute is optional and is of type str. It represents the relative path of the artifact in the agent's workspace. If not provided, it defaults to None.
Functionality and Usage
The ArtifactUpload class is used to create an instance of an artifact upload. It can be instantiated with or without a relative_path. Here is an example of how the class can be used:
from swarms.structs import ArtifactUpload
# Uploading a file with no relative path
upload_no_path = ArtifactUpload(file=b"example_file_contents")
# Uploading a file with a relative path
upload_with_path = ArtifactUpload(
file=b"example_file_contents", relative_path="python/code/"
)
In the above example, upload_no_path is an instance of ArtifactUpload with no specified relative_path, whereas upload_with_path is an instance of ArtifactUpload with the relative_path set to "python/code/".
Additional Information
When passing the file and relative_path parameters to the ArtifactUpload class, ensure that the file parameter is provided exactly as the file that needs to be uploaded, represented as a bytes object. If a relative_path is provided, ensure that it is a valid path within the agent's workspace.
Conclusion
The ArtifactUpload class is an essential data structure within the Swarms library that represents the process of uploading an artifact to an agent's workspace. By using this class, users can easily manage and represent artifact uploads within the Swarms distributed system.