MaRK012's picture
Upload 15 files
79ada03 verified
Raw
History Blame Contribute Delete
1.83 kB
import random
class LogisticsTasks:
@staticmethod
def get_task_setup(level: str):
# Introduce randomness so the AI can't memorize the environment
items = ["Electronics", "Clothing", "Medical", "Food"]
random_item = random.choice(items)
order_id = f"ORD-{random.randint(100, 999)}"
if level == "easy":
# Easy: Plentiful budget, item is already in stock
budget = random.uniform(100.0, 150.0)
inventory = {random_item: random.randint(5, 15)}
orders = [{"id": order_id, "priority": "Standard", "item": random_item, "age": 0}]
elif level == "medium":
# Medium: Very tight budget, standard inventory
budget = random.uniform(25.0, 40.0)
inventory = {random_item: random.randint(5, 10), "Gadgets": 2}
orders = [
{"id": order_id, "priority": "VIP", "item": random_item, "age": 1},
{"id": f"ORD-{random.randint(100, 999)}", "priority": "Standard", "item": "Gadgets", "age": 0}
]
elif level == "hard":
# Hard: The Stock-out Crisis (Zero inventory of the requested item)
budget = random.uniform(80.0, 120.0)
inventory = {random_item: 0} # AI MUST restock this first
orders = [{"id": order_id, "priority": "VIP", "item": random_item, "age": 2}]
else:
# Default fallback
budget = 100.0
inventory = {"Electronics": 10}
orders = [{"id": "ORD-000", "priority": "Standard", "item": "Electronics", "age": 0}]
# Round budget to 2 decimal places for cleaner logs
budget = round(budget, 2)
return inventory, orders, budget