Spaces:
Runtime error
Runtime error
| from smolagents import Tool | |
| import datasets | |
| class GuestInfoRetrieverTool(Tool): | |
| name = "guest_info_retriever" | |
| description = "Retrieves detailed information about gala guests based on their name or relation." | |
| inputs = { | |
| "query": { | |
| "type": "string", | |
| "description": "The name or relation of the guest you want information about." | |
| } | |
| } | |
| output_type = "string" | |
| def __init__(self, guest_list, **kwargs): | |
| super().__init__(**kwargs) | |
| self.guest_list = guest_list | |
| def forward(self, query: str): | |
| query = query.lower() | |
| # Busca simples por correspondência de texto em qualquer campo | |
| results = [] | |
| for guest in self.guest_list: | |
| # Verifica se a query está no nome ou na descrição | |
| if query in guest['name'].lower() or query in guest['description'].lower() or query in guest['relation'].lower(): | |
| info = (f"Name: {guest['name']}\n" | |
| f"Relation: {guest['relation']}\n" | |
| f"Description: {guest['description']}\n" | |
| f"Email: {guest['email']}") | |
| results.append(info) | |
| if results: | |
| # Retorna os 3 primeiros matches | |
| return "\n\n---\n\n".join(results[:3]) | |
| else: | |
| return "No matching guest information found." | |
| def load_guest_dataset(): | |
| # Carrega o dataset da Hugging Face | |
| dataset = datasets.load_dataset("agents-course/unit3-invitees", split="train") | |
| # Passamos a lista crua de dicionários para a Tool | |
| return GuestInfoRetrieverTool(guest_list=list(dataset)) |