Spaces:
Sleeping
Sleeping
from langchain.tools import Tool | |
from pydantic import BaseModel, ConfigDict, Field | |
from crewai.agents.cache import CacheHandler | |
class CacheTools(BaseModel): | |
"""Default tools to hit the cache.""" | |
model_config = ConfigDict(arbitrary_types_allowed=True) | |
name: str = "Hit Cache" | |
cache_handler: CacheHandler = Field( | |
description="Cache Handler for the crew", | |
default=CacheHandler(), | |
) | |
def tool(self): | |
return Tool.from_function( | |
func=self.hit_cache, | |
name=self.name, | |
description="Reads directly from the cache", | |
) | |
def hit_cache(self, key): | |
split = key.split("tool:") | |
tool = split[1].split("|input:")[0].strip() | |
tool_input = split[1].split("|input:")[1].strip() | |
return self.cache_handler.read(tool, tool_input) | |