AUXteam's picture
Upload folder using huggingface_hub
1397957 verified
raw
history blame
1.41 kB
from typing import Dict, Any, List, Optional
from .tool import BaseTool
import os
import importlib.util
class ToolRegistry:
"""๋„๊ตฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ - ๋„๊ตฌ ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ"""
def __init__(self):
self._tools: Dict[str, BaseTool] = {}
def register(self, tool: BaseTool) -> None:
"""๋„๊ตฌ ๋“ฑ๋ก"""
self._tools[tool.id] = tool
def get(self, tool_id: str) -> Optional[BaseTool]:
"""๋„๊ตฌ ID๋กœ ์กฐํšŒ"""
return self._tools.get(tool_id)
def list(self) -> List[BaseTool]:
"""๋“ฑ๋ก๋œ ๋ชจ๋“  ๋„๊ตฌ ๋ชฉ๋ก ๋ฐ˜ํ™˜"""
return list(self._tools.values())
def get_schema(self) -> List[Dict[str, Any]]:
"""๋ชจ๋“  ๋„๊ตฌ์˜ ์Šคํ‚ค๋งˆ ๋ฐ˜ํ™˜"""
return [tool.get_schema() for tool in self._tools.values()]
def load_from_directory(self, path: str) -> None:
"""
๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋„๊ตฌ๋ฅผ ๋™์ ์œผ๋กœ ๋กœ๋“œ
(๋‚˜์ค‘์— ๊ตฌํ˜„ ๊ฐ€๋Šฅ - ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ)
"""
if not os.path.exists(path):
raise ValueError(f"Directory not found: {path}")
# ํ–ฅํ›„ ๊ตฌํ˜„: .py ํŒŒ์ผ์„ ์Šค์บ”ํ•˜๊ณ  BaseTool ์„œ๋ธŒํด๋ž˜์Šค๋ฅผ ์ฐพ์•„ ์ž๋™ ๋“ฑ๋ก
# ํ˜„์žฌ๋Š” placeholder
pass
# ์ „์—ญ ์‹ฑ๊ธ€ํ†ค ์ธ์Šคํ„ด์Šค
_registry = ToolRegistry()
def get_registry() -> ToolRegistry:
"""์ „์—ญ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ธ์Šคํ„ด์Šค ๋ฐ˜ํ™˜"""
return _registry