inventory_env / server /constants.py
saketh1201's picture
Upload folder using huggingface_hub
3764c76 verified
Raw
History Blame Contribute Delete
5.04 kB
INITIAL_CASH = 1000.0
# Product name -> base price (selling price before multiplier)
BASE_PRICES = {
"electronics": 150.0,
"clothing": 40.0,
"groceries": 10.0,
"furniture": 200.0,
"toys": 25.0,
}
# Product name -> cost price (what you pay to buy stock)
COST_PRICES = {
"electronics": 100.0,
"clothing": 25.0,
"groceries": 5.0,
"furniture": 130.0,
"toys": 12.0,
}
# Product name -> shelf life in days (None = no expiry)
SHELF_LIFE = {
"electronics": None,
"clothing": None,
"groceries": 5,
"furniture": None,
"toys": None,
}
# Product name -> starting stock quantity
INITIAL_STOCK = {
"electronics": 10,
"clothing": 20,
"groceries": 50,
"furniture": 5,
"toys": 30,
}
# Delivery method -> cost per unit
SHIPPING_COST = {
"slow": 2.0,
"medium": 5.0,
"fast": 10.0,
}
# Delivery method -> days to arrive
SHIPPING_DAYS = {
"slow": 5,
"medium": 3,
"fast": 1,
}
# Event name -> days until event (spread across 30 days)
EVENTS = {
"black_friday": 6,
"christmas": 12,
"back_to_school": 18,
"summer_clearance": 24,
"new_competitor": 28,
}
# Product name -> max inventory space (units)
INVENTORY_CAPACITY = {
"electronics": 100,
"clothing": 200,
"groceries": 500,
"furniture": 50,
"toys": 300,
}
# Product name -> additional cost per unit for extra inventory beyond capacity
EXTRA_INVENTORY_COST = {
"electronics": 20.0,
"clothing": 5.0,
"groceries": 2.0,
"furniture": 30.0,
"toys": 4.0,
}
# Product name -> (min_demand, max_demand) per day
BASE_DEMAND = {
"electronics": (3, 8),
"clothing": (5, 15),
"groceries": (20, 40),
"furniture": (1, 3),
"toys": (5, 12),
}
WEEKEND_MULTIPLIER = 1.2
# Event name -> {product: demand_multiplier} when event triggers
EVENT_EFFECTS = {
"black_friday": {"electronics": 3.0, "clothing": 2.5, "toys": 2.0, "furniture": 1.5, "groceries": 1.0},
"christmas": {"toys": 3.0, "electronics": 2.0, "clothing": 1.5, "furniture": 1.0, "groceries": 1.5},
"back_to_school": {"clothing": 2.5, "electronics": 1.5, "toys": 1.5, "furniture": 1.0, "groceries": 1.0},
"summer_clearance": {"clothing": 2.0, "toys": 1.5, "electronics": 1.0, "furniture": 1.5, "groceries": 1.0},
"new_competitor": {"electronics": 0.6, "clothing": 0.7, "toys": 0.7, "furniture": 0.8, "groceries": 0.9},
}
EVENT_DURATION = 2
MAX_DAYS = 30
UPGRADE_DELIVERY_COST = 50.0
# Task configs for easy/medium/hard
TASKS = {
# Easy: High starting stock, low demand, no events, full warehouse capacity.
# Agent just needs to maintain stock and sell. Minimal challenge.
"easy": {
"seed": 100,
"max_days": 30,
"initial_cash": 1000.0,
"events": {}, # no events
"initial_stock": {
"electronics": 5,
"clothing": 10,
"groceries": 20,
"furniture": 3,
"toys": 10,
},
"inventory_capacity": INVENTORY_CAPACITY,
"base_demand": {
"electronics": (2, 5),
"clothing": (3, 10),
"groceries": (15, 30),
"furniture": (1, 2),
"toys": (3, 8),
},
},
# Medium: Default stock/cash, all 5 events spread across 30 days, normal demand.
# Agent must anticipate demand spikes from events and restock accordingly.
"medium": {
"seed": 200,
"max_days": 30,
"initial_cash": 1000.0,
"events": EVENTS,
"initial_stock": INITIAL_STOCK,
"inventory_capacity": INVENTORY_CAPACITY,
"base_demand": BASE_DEMAND,
},
# Hard: Half starting cash ($500), low stock, events packed close together,
# higher demand, smaller warehouse. Agent must balance tight budget,
# overlapping event spikes, and fast-expiring groceries.
"hard": {
"seed": 300,
"max_days": 30,
"initial_cash": 500.0,
"events": {
"black_friday": 4,
"christmas": 8,
"back_to_school": 12,
"summer_clearance": 16,
"new_competitor": 20,
},
"initial_stock": {
"electronics": 5,
"clothing": 10,
"groceries": 30,
"furniture": 3,
"toys": 15,
},
"inventory_capacity": {
"electronics": 50,
"clothing": 100,
"groceries": 250,
"furniture": 25,
"toys": 150,
},
"base_demand": {
"electronics": (5, 12),
"clothing": (8, 20),
"groceries": (30, 60),
"furniture": (2, 5),
"toys": (8, 18),
},
},
}
PRICE_ELASTICITY = {
"electronics": 1.2,
"clothing": 1.5,
"groceries": 0.4,
"furniture": 0.8,
"toys": 1.3,
}