Spaces:
Sleeping
Sleeping
File size: 603 Bytes
4d64b06 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | """Abstract base class for all assistant tools."""
from __future__ import annotations
from abc import ABC, abstractmethod
from dataclasses import dataclass, field
@dataclass
class ToolResult:
tool_name: str
query: str
output: str
success: bool
error: str | None = None
class BaseTool(ABC):
@property
@abstractmethod
def name(self) -> str: ...
@property
@abstractmethod
def description(self) -> str: ...
@property
@abstractmethod
def usage_pattern(self) -> str: ...
@abstractmethod
def execute(self, query: str) -> ToolResult: ...
|