Download src/open_llm_vtuber/mcpp/tool_manager.py from britto224/new123: direct link, hf CLI and curl.
- Browser
- Download file 1.87 kB
-
https://huggingface.co/spaces/britto224/new123/resolve/main/src/open_llm_vtuber/mcpp/tool_manager.py
- Command line
-
hf download hf://spaces/britto224/new123/src/open_llm_vtuber/mcpp/tool_manager.py
-
curl -L -o tool_manager.py https://huggingface.co/spaces/britto224/new123/resolve/main/src/open_llm_vtuber/mcpp/tool_manager.py
1.87 kB
| from loguru import logger | |
| from typing import Dict, Any, List, Literal | |
| from .types import FormattedTool | |
| class ToolManager: | |
| """Tool Manager for managing pre-formatted tools for different LLM APIs.""" | |
| def __init__( | |
| self, | |
| formatted_tools_openai: List[Dict[str, Any]] = None, | |
| formatted_tools_claude: List[Dict[str, Any]] = None, | |
| initial_tools_dict: Dict[str, FormattedTool] = None, | |
| ) -> None: | |
| """Initialize the Tool Manager with pre-formatted tool lists.""" | |
| # Store the raw tool data (optional, for get_tool) | |
| self.tools: Dict[str, FormattedTool] = initial_tools_dict or {} | |
| # Store the pre-formatted lists | |
| self._formatted_tools_openai: List[Dict[str, Any]] = ( | |
| formatted_tools_openai or [] | |
| ) | |
| self._formatted_tools_claude: List[Dict[str, Any]] = ( | |
| formatted_tools_claude or [] | |
| ) | |
| logger.info( | |
| f"ToolManager initialized with {len(self._formatted_tools_openai)} OpenAI tools and {len(self._formatted_tools_claude)} Claude tools." | |
| ) | |
| def get_tool(self, tool_name: str) -> FormattedTool | None: | |
| """Get a tool's raw information by its name.""" | |
| tool = self.tools.get(tool_name) | |
| if isinstance(tool, FormattedTool): | |
| return tool | |
| logger.warning( | |
| f"TM: Raw tool info for '{tool_name}' not found (was initial_tools_dict provided?)." | |
| ) | |
| return None | |
| def get_formatted_tools( | |
| self, mode: Literal["OpenAI", "Claude"] | |
| ) -> List[Dict[str, Any]] | Any: | |
| """Get the pre-formatted list of tools for the specified API mode.""" | |
| if mode == "OpenAI": | |
| return self._formatted_tools_openai | |
| elif mode == "Claude": | |
| return self._formatted_tools_claude | |