mirror of
https://github.com/kennethreitz/simplemind.git
synced 2026-06-05 06:46:18 +00:00
add base edits
This commit is contained in:
@@ -34,12 +34,18 @@ class BaseProvider(ABC):
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
def send_conversation(self, conversation: "Conversation") -> "Message":
|
||||
def send_conversation(
|
||||
self,
|
||||
conversation: "Conversation",
|
||||
tools: list[Callable] | None = None,
|
||||
) -> "Message":
|
||||
"""Send a conversation to the provider."""
|
||||
raise NotImplementedError
|
||||
|
||||
@abstractmethod
|
||||
def structured_response(self, prompt: str, response_model: Type[T], **kwargs) -> T:
|
||||
def structured_response(
|
||||
self, prompt: str, response_model: Type[T], **kwargs
|
||||
) -> T:
|
||||
"""Get a structured response."""
|
||||
raise NotImplementedError
|
||||
|
||||
@@ -64,3 +70,5 @@ class BaseProvider(ABC):
|
||||
def make_tools(self, tools: list[Callable] | None):
|
||||
if tools is not None:
|
||||
return [self.tool.from_function(func) for func in tools]
|
||||
else:
|
||||
return []
|
||||
|
||||
@@ -42,6 +42,12 @@ class BaseTool(BaseModel, ABC):
|
||||
properties: dict[str, BaseToolProperty]
|
||||
required: list[str] | None = None
|
||||
config: ClassVar[BaseToolConfig] = BaseToolConfig()
|
||||
raw_func: Callable
|
||||
tool_id: str | None = None
|
||||
function_result: str | None = None
|
||||
|
||||
def is_executed(self) -> bool:
|
||||
return self.function_result is not None
|
||||
|
||||
@classmethod
|
||||
def convert_type(cls, field_type) -> str:
|
||||
@@ -104,7 +110,14 @@ class BaseTool(BaseModel, ABC):
|
||||
description=(func.__doc__ or "").strip(),
|
||||
properties=properties,
|
||||
required=required,
|
||||
raw_func=func,
|
||||
)
|
||||
|
||||
@abstractmethod
|
||||
def get_schema(self) -> Any: ...
|
||||
def get_input_schema(self) -> Any: ...
|
||||
|
||||
@abstractmethod
|
||||
def handle(self, message) -> None: ...
|
||||
|
||||
@abstractmethod
|
||||
def get_response_schema(self) -> Any: ...
|
||||
|
||||
Reference in New Issue
Block a user