Spaces:
Sleeping
Sleeping
File size: 6,144 Bytes
a608353 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 | """Seed the LabOps Guardian memory with the cardio-tissue demo scenario.
Run: python -m labops_api.seed_data (or: python labops_api/seed_data.py)
This (re)writes labops_api/data/*.json to the known demo starting state. Safe to run
any time you want to reset the demo.
"""
from __future__ import annotations
from labops_api import storage
from labops_api.storage import now_iso
SAMPLES = [
{
"sample_id": "C17",
"name": "Cardiovascular tissue sample",
"location": "Freezer",
"storage_temperature": "-60C",
"max_room_temp_minutes": 20,
"room_temp_started_at": None,
"room_temp_deadline": None,
"source_type": "user_reported",
"confidence": "high",
"updated_at": now_iso(),
},
{
"sample_id": "A12",
"name": "Backup tissue sample",
"location": "Backup Freezer",
"storage_temperature": "-60C",
"max_room_temp_minutes": 20,
"room_temp_started_at": None,
"room_temp_deadline": None,
"source_type": "user_reported",
"confidence": "high",
"updated_at": now_iso(),
},
]
EQUIPMENT = [
{"id": "freezer", "name": "Freezer", "kind": "ultra_low_freezer", "current_temperature": "-60C",
"status": "ok", "normal_range": {"min": -80, "max": -50, "unit": "C"},
"source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "backup_freezer", "name": "Backup Freezer", "kind": "ultra_low_freezer", "current_temperature": "-81C",
"status": "ok", "normal_range": {"min": -90, "max": -70, "unit": "C"},
"source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "bench_2", "name": "Bench 2", "kind": "bench", "current_temperature": "21C",
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "centrifuge_2", "name": "Centrifuge 2", "kind": "centrifuge", "current_temperature": None,
"status": "idle", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "microscope_1", "name": "Microscope 1", "kind": "microscope", "current_temperature": None,
"status": "idle", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "shelf_a", "name": "Inventory Shelf A", "kind": "shelf", "current_temperature": None,
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "co2_incubator", "name": "CO2 Incubator", "kind": "co2_incubator", "current_temperature": "37C",
"status": "ok", "normal_range": {"min": 35, "max": 39, "unit": "C"},
"source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "reagent_fridge", "name": "Reagent Fridge", "kind": "fridge", "current_temperature": "4C",
"status": "ok", "normal_range": {"min": 2, "max": 8, "unit": "C"},
"source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "chem_cabinet_1", "name": "Chemical Cabinet 1", "kind": "chemical_cabinet", "current_temperature": None,
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "biosafety_cabinet", "name": "Biosafety Cabinet", "kind": "biosafety_cabinet", "current_temperature": None,
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "autoclave", "name": "Autoclave", "kind": "autoclave", "current_temperature": None,
"status": "idle", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "pipette_station", "name": "Pipette Station", "kind": "bench_tool", "current_temperature": None,
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "biohazard_bin", "name": "Biohazard Waste", "kind": "waste", "current_temperature": None,
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "sim_camera", "name": "Simulated Camera / Shelf Sensor", "kind": "sensor", "current_temperature": None,
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
{"id": "pi_postdoc", "name": "PI / Postdoc Station", "kind": "workstation", "current_temperature": None,
"status": "ok", "source_type": "observed_by_sensor", "confidence": "high", "updated_at": now_iso()},
]
INVENTORY = [
{"item_name": "15 mL tubes", "location": "Shelf A, bin 3", "bin": "3", "record_count": None,
"camera_inferred_count": 2, "stock_level": "ok", "confidence": "medium",
"source_type": "camera_inferred", "timestamp": now_iso()},
{"item_name": "pipette tips", "location": "Shelf A, bin 1", "bin": "1", "record_count": 1,
"camera_inferred_count": None, "stock_level": "low", "confidence": "high",
"source_type": "user_reported", "timestamp": now_iso()},
{"item_name": "reagent bottles", "location": "Chemical Cabinet 1", "bin": None, "record_count": 6,
"camera_inferred_count": None, "stock_level": "ok", "confidence": "high",
"source_type": "user_reported", "timestamp": now_iso()},
]
EXPERIMENT_RUNS = [
{"id": "run_1", "title": "Cardio tissue prep — C17", "started_at": now_iso(),
"sample_ids": ["C17"], "notes": ["Run created from seed data."], "status": "in_progress"},
]
def seed() -> None:
storage.save("samples", SAMPLES)
storage.save("equipment", EQUIPMENT)
storage.save("inventory", INVENTORY)
storage.save("experiment_runs", EXPERIMENT_RUNS)
storage.save("reminders", [])
storage.save("events", [])
storage.save("messages", [])
# Reset the incident/ticket logs so demos start clean. prior_events.json is left
# intact on disk — it's the long-term history the agent recalls.
storage.save("incidents", [])
storage.save("tickets", [])
print("Seeded labops_api/data/ with the cardio-tissue demo scenario.")
if __name__ == "__main__":
seed()
|