Spaces:
Running
Running
import os | |
from smolagents import Tool | |
from huggingface_hub import list_datasets,list_models,list_organization_members,list_collections,list_spaces | |
class AtlasiaHubInfoTool(Tool): | |
name = "atlasia_huggingface_hub_search" | |
description = "Search and retrieve information about datasets, models, and spaces of atlasia organization from the HuggingFace Hub" | |
inputs = { | |
"resource_type": { | |
"type": "string", | |
"description": "Type of resource to search for. Must be one of: 'dataset', 'model', 'space', 'collection', or 'organization_members'", | |
"enum": ["dataset", "model", "space", "collection", "organization_members"] | |
} | |
} | |
output_type="array" | |
def forward(self,resource_type:str)-> list: | |
if not isinstance(resource_type,str): | |
raise ValueError("resource_type should be a string") | |
if resource_type=="dataset": | |
return list(list_datasets(author="atlasia")) | |
elif resource_type=="model": | |
return list(list_models(author="atlasia")) | |
elif resource_type=="space": | |
return list(list_spaces(author="atlasia")) | |
elif resource_type=="collection": | |
return list(list_collections(owner="atlasia")) | |
elif resource_type=="organization_members": | |
return [x.fullname for x in list(list_organization_members(organization="atlasia"))] | |
else: | |
raise ValueError("resource_type should be one of: 'dataset', 'model', 'space', 'collection', or 'organization_members'") | |