core-crew/tools.py

68 lines
3.0 KiB
Python
Raw Permalink Normal View History

2024-06-15 17:32:58 -04:00
# tools.py
from crewai_tools import BaseTool
class MockTool(BaseTool):
name: str | None = "mock_tool"
description: str | None = "useful for when you need to mock a tool"
def set_name(self, set_name):
self.name = set_name
def _run(self, **kwargs) -> str:
if len(kwargs) > 0:
argument = kwargs[0]
# Implementation goes here
if self.name == "Order Management":
return self._handle_order_management(argument)
elif self.name == "Customer Support":
return self._handle_customer_support(argument)
elif self.name == "Inventory":
return self._handle_inventory(argument)
elif self.name == "Supplier Management":
return self._handle_supplier_management(argument)
elif self.name == "Shipping":
return self._handle_shipping(argument)
elif self.name == "Tracking":
return self._handle_tracking(argument)
else:
return f"Mock output from {self.name} tool for query: {argument}"
else:
return f"Ran the action successfully"
def _handle_order_management(self, argument):
if "get order details" in argument.lower():
return "Mock order details: [{'product_id': 'ABC123', 'quantity': 2}, {'product_id': 'XYZ456', 'quantity': 1}], Delivery Address: 123 Main St, Anytown USA"
else:
return f"Mock output from Order Management tool for query: {argument}"
def _handle_customer_support(self, argument):
if "customer inquiry" in argument.lower():
return "Mock customer inquiry: Order status inquiry"
else:
return f"Mock output from Customer Support tool for query: {argument}"
def _handle_inventory(self, argument):
if "check stock levels" in argument.lower():
return "Mock stock levels: Product ABC123 - 100 units, Product XYZ456 - 50 units"
else:
return f"Mock output from Inventory tool for query: {argument}"
def _handle_supplier_management(self, argument):
if "check recent orders" in argument.lower():
return "Mock recent orders: Product ABC123 - 500 units ordered from Supplier A, Product XYZ456 - 200 units ordered from Supplier B"
else:
return f"Mock output from Supplier Management tool for query: {argument}"
def _handle_shipping(self, argument):
if "check shipping options" in argument.lower():
return "Mock shipping options: Standard (5-7 business days), Express (2-3 business days)"
else:
return f"Mock output from Shipping tool for query: {argument}"
def _handle_tracking(self, argument):
if "track shipment" in argument.lower():
return "Mock tracking information: Order ABC123XYZ, Shipped via Express, Estimated Delivery: 2023-06-10"
else:
return f"Mock output from Tracking tool for query: {argument}"