68 lines
3.0 KiB
Python
68 lines
3.0 KiB
Python
# 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}" |