From dea5cc9c0cbcd702f2b102114b4bf8ec7e19ad81 Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Tue, 18 Mar 2025 20:17:22 +0800 Subject: [PATCH] stash --- pkg/provider/tools/loader.py | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 pkg/provider/tools/loader.py diff --git a/pkg/provider/tools/loader.py b/pkg/provider/tools/loader.py new file mode 100644 index 00000000..94f90a2c --- /dev/null +++ b/pkg/provider/tools/loader.py @@ -0,0 +1,39 @@ +from __future__ import annotations + +import abc +import typing + +from ...core import app +from . import entities as tools_entities + + +preregistered_loaders = [] + +def loader_class(name: str): + """注册一个工具加载器 + """ + def decorator(cls: typing.Type[ToolLoader]) -> typing.Type[ToolLoader]: + cls.name = name + preregistered_loaders.append(cls) + return cls + + return decorator + + +class ToolLoader(abc.ABC): + """工具加载器""" + + name: str = None + + ap: app.Application + + def __init__(self, ap: app.Application): + self.ap = ap + + async def initialize(self): + pass + + @abc.abstractmethod + def get_tools(self) -> list[tools_entities.LLMFunction]: + """获取所有工具""" + pass