Pro-Coder commited on
Commit
e1257cf
·
verified ·
1 Parent(s): 85dc220

Upload 35 files

Browse files
README.md CHANGED
@@ -112,24 +112,41 @@ benchmark). Headline numbers from the included run:
112
  |---|---|---|
113
  | Intent classifier | Accuracy | ~98% |
114
  | Intent classifier | Macro F1 | ~97% |
115
- | Anomaly detector | F1 | ~97% |
 
 
116
  | Anomaly detector | ROC-AUC | ~1.00 |
117
  | RAG retriever | Hit-rate@2 | 100% |
118
 
119
  *(Computed on synthetic, held-out test data — see the Evaluation tab for
120
  methodology notes.)*
121
 
122
- **A note on these numbers:** an earlier version of this project had a data
123
- leakage bug template-generated text could produce exact-duplicate rows,
124
- some of which ended up on both sides of the train/test split, letting the
125
- classifier partly memorize test examples. `build_artifacts.py` now
126
- deduplicates on exact text before splitting (with an assertion that
127
- verifies zero train/test string overlap), and `src/data_generation.py`
128
- actively avoids generating duplicates in the first place. The numbers above
129
- are from the corrected pipeline. They're still high mainly because this is
130
- synthetic, template-generated data with fairly distinct vocabulary per
131
- class not a claim that this would generalize to messy real-world
132
- phrasing.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
 
134
  ## License
135
 
 
112
  |---|---|---|
113
  | Intent classifier | Accuracy | ~98% |
114
  | Intent classifier | Macro F1 | ~97% |
115
+ | Anomaly detector | Precision | 100% |
116
+ | Anomaly detector | Recall | ~97% |
117
+ | Anomaly detector | F1 | ~98% |
118
  | Anomaly detector | ROC-AUC | ~1.00 |
119
  | RAG retriever | Hit-rate@2 | 100% |
120
 
121
  *(Computed on synthetic, held-out test data — see the Evaluation tab for
122
  methodology notes.)*
123
 
124
+ **A note on these numbers:** three rounds of scrutiny turned up two
125
+ leakage bugs and one legitimate fix, all documented in `build_artifacts.py`:
126
+
127
+ 1. **Train/test leakage (intent classifier).** Template-generated text could
128
+ produce exact-duplicate rows landing on both sides of the split, letting
129
+ the classifier partly memorize test examples verbatim. Fixed by
130
+ deduplicating on exact text *before* splitting, with an `assert` that
131
+ verifies zero train/test string overlap.
132
+ 2. **Threshold leakage (anomaly detector).** The Isolation Forest's decision
133
+ threshold was originally set to the *true* label rate (`y_train.mean()`)
134
+ — not available in a real unsupervised deployment. Switching to
135
+ scikit-learn's label-blind `"auto"` heuristic removed the leak, but
136
+ dropped precision to 67% (F1 80%) — an honest but mediocre result.
137
+ 3. **The actual fix: calibrated threshold.** The model is still fit fully
138
+ unsupervised (no labels touched during `.fit()`). Its decision threshold
139
+ is then calibrated by maximizing F1 on a small, separate *labelled
140
+ calibration split* (140 examples, 14 confirmed anomalies) — analogous to
141
+ tuning an alert threshold against a handful of confirmed historical
142
+ incidents in production, a standard real-world practice. The **held-out
143
+ test set is never touched by threshold selection**, only used for the
144
+ final reported metrics above.
145
+
146
+ ROC-AUC staying at 1.00 throughout all three versions is the most telling
147
+ number: it's threshold-independent by construction, so it confirms the
148
+ model's *ranking* of anomalies was always excellent — the entire story here
149
+ is about honestly picking the cutoff, not about detection ability.
150
 
151
  ## License
152
 
app.py CHANGED
@@ -51,18 +51,19 @@ def _load_or_rebuild_artifacts():
51
  intent_path = os.path.join(MODELS_DIR, "intent_pipeline.joblib")
52
  anomaly_model_path = os.path.join(MODELS_DIR, "anomaly_iforest.joblib")
53
  anomaly_scaler_path = os.path.join(MODELS_DIR, "anomaly_scaler.joblib")
 
54
 
55
  def _try_load():
56
  pipeline = load_pipeline(intent_path)
57
- model, scaler = load_anomaly_artifacts(anomaly_model_path, anomaly_scaler_path)
58
  # Smoke-test the loaded pipeline against the exact code path the app
59
  # uses at request time. On a scikit-learn version mismatch, sklearn
60
  # sometimes unpickles "successfully" but throws later on first real
61
  # use (e.g. LogisticRegression missing an internal attribute) --
62
  # catching that here, at import time, is what makes this self-healing.
63
  intent_predict(pipeline, "healthcheck")
64
- score_reading(model, scaler, {"motor_temp_c": 55, "vibration_mm_s": 2.2, "current_amps": 12, "belt_speed_mps": 1.5})
65
- return pipeline, model, scaler
66
 
67
  try:
68
  return _try_load()
@@ -78,7 +79,7 @@ def _load_or_rebuild_artifacts():
78
  return _try_load()
79
 
80
 
81
- intent_pipeline, anomaly_model, anomaly_scaler = _load_or_rebuild_artifacts()
82
  retriever = KBRetriever()
83
 
84
  # Prefer the pre-generated CSVs (so demo state matches the eval run); fall back to
@@ -221,7 +222,7 @@ def anomaly_fn(motor_temp, vibration, current, belt_speed):
221
  "current_amps": current,
222
  "belt_speed_mps": belt_speed,
223
  }
224
- result = score_reading(anomaly_model, anomaly_scaler, reading)
225
  verdict = "🔴 ANOMALY DETECTED" if result.is_anomaly else "🟢 Normal operating range"
226
  detail = (
227
  f"### {verdict}\n\n"
@@ -299,9 +300,14 @@ def eval_latency_section_md():
299
  EVAL_METHODOLOGY_MD = (
300
  "*All metrics above are computed on held-out synthetic test data by "
301
  "`build_artifacts.py` (fully reproducible) — see the **About** tab for "
302
- "dataset details and how each model works. Train/test splits are "
303
- "deduplicated on exact text with an automated zero-overlap check, to "
304
- "prevent the classifier from memorizing verbatim test examples.*"
 
 
 
 
 
305
  )
306
 
307
 
@@ -644,4 +650,15 @@ with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue"), css=CUSTOM_CSS, title="
644
 
645
 
646
  if __name__ == "__main__":
647
- demo.launch(server_name="0.0.0.0", server_port=int(os.environ.get("PORT", 7860)))
 
 
 
 
 
 
 
 
 
 
 
 
51
  intent_path = os.path.join(MODELS_DIR, "intent_pipeline.joblib")
52
  anomaly_model_path = os.path.join(MODELS_DIR, "anomaly_iforest.joblib")
53
  anomaly_scaler_path = os.path.join(MODELS_DIR, "anomaly_scaler.joblib")
54
+ anomaly_threshold_path = os.path.join(MODELS_DIR, "anomaly_threshold.joblib")
55
 
56
  def _try_load():
57
  pipeline = load_pipeline(intent_path)
58
+ model, scaler, threshold = load_anomaly_artifacts(anomaly_model_path, anomaly_scaler_path, threshold_path=anomaly_threshold_path)
59
  # Smoke-test the loaded pipeline against the exact code path the app
60
  # uses at request time. On a scikit-learn version mismatch, sklearn
61
  # sometimes unpickles "successfully" but throws later on first real
62
  # use (e.g. LogisticRegression missing an internal attribute) --
63
  # catching that here, at import time, is what makes this self-healing.
64
  intent_predict(pipeline, "healthcheck")
65
+ score_reading(model, scaler, {"motor_temp_c": 55, "vibration_mm_s": 2.2, "current_amps": 12, "belt_speed_mps": 1.5}, threshold=threshold)
66
+ return pipeline, model, scaler, threshold
67
 
68
  try:
69
  return _try_load()
 
79
  return _try_load()
80
 
81
 
82
+ intent_pipeline, anomaly_model, anomaly_scaler, anomaly_threshold = _load_or_rebuild_artifacts()
83
  retriever = KBRetriever()
84
 
85
  # Prefer the pre-generated CSVs (so demo state matches the eval run); fall back to
 
222
  "current_amps": current,
223
  "belt_speed_mps": belt_speed,
224
  }
225
+ result = score_reading(anomaly_model, anomaly_scaler, reading, threshold=anomaly_threshold)
226
  verdict = "🔴 ANOMALY DETECTED" if result.is_anomaly else "🟢 Normal operating range"
227
  detail = (
228
  f"### {verdict}\n\n"
 
300
  EVAL_METHODOLOGY_MD = (
301
  "*All metrics above are computed on held-out synthetic test data by "
302
  "`build_artifacts.py` (fully reproducible) — see the **About** tab for "
303
+ "dataset details and how each model works. Two safeguards keep these "
304
+ "numbers honest: (1) train/test splits are deduplicated on exact text "
305
+ "with an automated zero-overlap check, so the intent classifier can't "
306
+ "memorize verbatim test examples; (2) the anomaly detector is fit "
307
+ "unsupervised on a training split, then its decision threshold is "
308
+ "calibrated on a separate small *labelled calibration split* (analogous "
309
+ "to a handful of confirmed historical incidents) — never on the test "
310
+ "set used to report the metrics above.*"
311
  )
312
 
313
 
 
650
 
651
 
652
  if __name__ == "__main__":
653
+ # ssr_mode=False: Gradio's experimental server-side rendering mode was
654
+ # causing repeated "SvelteKitError: POST method not allowed" / 405 log
655
+ # spam on Spaces (some requests hit the SSR page route instead of the
656
+ # API route). Disabling it avoids that; this app has no functional need
657
+ # for SSR. Wrapped defensively in case the kwarg name differs across
658
+ # Gradio versions -- falls back to a plain launch() rather than crashing
659
+ # the Space if so.
660
+ launch_kwargs = dict(server_name="0.0.0.0", server_port=int(os.environ.get("PORT", 7860)))
661
+ try:
662
+ demo.launch(**launch_kwargs, ssr_mode=False)
663
+ except TypeError:
664
+ demo.launch(**launch_kwargs)
assets/anomaly_confusion_matrix.png CHANGED
assets/anomaly_metrics_bar.png CHANGED
assets/latency_bar.png CHANGED
build_artifacts.py CHANGED
@@ -172,25 +172,49 @@ def build_anomaly_detector():
172
  df.to_csv(os.path.join(DATA_DIR, "sensor_dataset.csv"), index=False)
173
 
174
  X = df[FEATURES].values
175
- y = df["label"].values # ground truth, used only for evaluation (model itself is unsupervised)
176
-
177
- X_train, X_test, y_train, y_test = train_test_split(
178
- X, y, test_size=0.3, random_state=SEED, stratify=y
179
- )
 
 
 
 
 
 
180
 
181
  scaler = StandardScaler()
182
  X_train_scaled = scaler.fit_transform(X_train)
 
183
  X_test_scaled = scaler.transform(X_test)
184
 
185
- # Contamination set close to the true training-set anomaly rate
186
- contamination = float(np.clip(y_train.mean(), 0.01, 0.4))
187
- model = build_anomaly_model(contamination=contamination, seed=SEED)
 
 
 
 
 
 
 
 
 
 
188
  model.fit(X_train_scaled)
189
 
 
 
 
 
 
 
 
 
190
  raw_scores = model.decision_function(X_test_scaled) # higher = more normal
191
  anomaly_scores = 0.5 - raw_scores # higher = more anomalous
192
- preds = model.predict(X_test_scaled)
193
- preds_binary = (preds == -1).astype(int)
194
 
195
  precision = precision_score(y_test, preds_binary, zero_division=0)
196
  recall = recall_score(y_test, preds_binary, zero_division=0)
@@ -202,7 +226,9 @@ def build_anomaly_detector():
202
  acc = accuracy_score(y_test, preds_binary)
203
  cm = confusion_matrix(y_test, preds_binary)
204
 
205
- print(f"precision={precision:.4f} recall={recall:.4f} f1={f1:.4f} roc_auc={roc_auc:.4f}")
 
 
206
 
207
  # Confusion matrix plot
208
  fig, ax = plt.subplots(figsize=(4.5, 4))
@@ -234,16 +260,20 @@ def build_anomaly_detector():
234
  fig.savefig(os.path.join(ASSETS_DIR, "anomaly_roc_curve.png"), dpi=150)
235
  plt.close(fig)
236
 
237
- # Retrain on full data for the deployed model
 
 
 
238
  scaler_full = StandardScaler()
239
- X_full_scaled = scaler_full.fit_transform(X)
240
- contamination_full = float(np.clip(y.mean(), 0.01, 0.4))
241
- model_full = build_anomaly_model(contamination=contamination_full, seed=SEED)
242
- model_full.fit(X_full_scaled)
243
  save_anomaly_artifacts(
244
  model_full, scaler_full,
245
  os.path.join(MODELS_DIR, "anomaly_iforest.joblib"),
246
  os.path.join(MODELS_DIR, "anomaly_scaler.joblib"),
 
 
247
  )
248
 
249
  metrics = {
@@ -254,7 +284,13 @@ def build_anomaly_detector():
254
  "accuracy": acc,
255
  "n_test": len(y_test),
256
  "test_anomaly_rate": float(y_test.mean()),
257
- "contamination_used": contamination,
 
 
 
 
 
 
258
  }
259
  with open(os.path.join(DATA_DIR, "anomaly_eval.json"), "w") as f:
260
  json.dump(metrics, f, indent=2)
@@ -365,9 +401,10 @@ def build_latency_benchmark(intent_metrics, anomaly_metrics):
365
  from src.anomaly_model import load_artifacts, score_reading
366
 
367
  pipeline = load_pipeline(os.path.join(MODELS_DIR, "intent_pipeline.joblib"))
368
- model, scaler = load_artifacts(
369
  os.path.join(MODELS_DIR, "anomaly_iforest.joblib"),
370
  os.path.join(MODELS_DIR, "anomaly_scaler.joblib"),
 
371
  )
372
  retriever = KBRetriever()
373
 
@@ -381,7 +418,7 @@ def build_latency_benchmark(intent_metrics, anomaly_metrics):
381
  return (time.perf_counter() - start) / n * 1000 # ms
382
 
383
  intent_ms = timeit(lambda: intent_predict(pipeline, sample_query))
384
- anomaly_ms = timeit(lambda: score_reading(model, scaler, sample_reading))
385
  retrieval_ms = timeit(lambda: retriever.retrieve(sample_query, k=2))
386
 
387
  latency = {
 
172
  df.to_csv(os.path.join(DATA_DIR, "sensor_dataset.csv"), index=False)
173
 
174
  X = df[FEATURES].values
175
+ y = df["label"].values # ground truth: used for calibration + evaluation only, never for model .fit()
176
+
177
+ # --- Three-way split: train / calibration / test -----------------------
178
+ # The model is fit unsupervised on `train` alone (no labels touched).
179
+ # `calibration` is a small labelled set used ONLY to pick the decision
180
+ # threshold -- analogous to calibrating an alert threshold against a
181
+ # handful of confirmed historical incidents in a real deployment. `test`
182
+ # is held out from both fitting and threshold selection, so it gives an
183
+ # honest final read on precision/recall/F1.
184
+ X_temp, X_test, y_temp, y_test = train_test_split(X, y, test_size=0.3, random_state=SEED, stratify=y)
185
+ X_train, X_calib, y_train, y_calib = train_test_split(X_temp, y_temp, test_size=0.2, random_state=SEED, stratify=y_temp)
186
 
187
  scaler = StandardScaler()
188
  X_train_scaled = scaler.fit_transform(X_train)
189
+ X_calib_scaled = scaler.transform(X_calib)
190
  X_test_scaled = scaler.transform(X_test)
191
 
192
+ # --- Threshold-selection safeguards --------------------------------
193
+ # 1) A previous version set `contamination` to the TRUE label rate
194
+ # (y_train.mean()). That's leakage: it hands the model's decision
195
+ # threshold the exact answer that a genuinely unsupervised
196
+ # deployment would never have in advance.
197
+ # 2) Simply switching to scikit-learn's label-blind 'auto' heuristic
198
+ # fixed the leakage but tanked precision (66.7%) -- 'auto' just
199
+ # isn't a great guess for this score distribution.
200
+ # 3) The fix used here: fit unsupervised as before (contamination is
201
+ # irrelevant to the *ranking* of scores, only to a default cutoff we
202
+ # no longer use), then pick the decision threshold by maximizing F1
203
+ # on the small labelled *calibration* split only -- never on test.
204
+ model = build_anomaly_model(contamination="auto", seed=SEED)
205
  model.fit(X_train_scaled)
206
 
207
+ calib_scores = 0.5 - model.decision_function(X_calib_scaled) # higher = more anomalous
208
+ best_threshold, best_calib_f1 = 0.5, -1.0
209
+ for t in np.unique(calib_scores):
210
+ pred = (calib_scores >= t).astype(int)
211
+ f1_t = f1_score(y_calib, pred, zero_division=0)
212
+ if f1_t > best_calib_f1:
213
+ best_calib_f1, best_threshold = f1_t, float(t)
214
+
215
  raw_scores = model.decision_function(X_test_scaled) # higher = more normal
216
  anomaly_scores = 0.5 - raw_scores # higher = more anomalous
217
+ preds_binary = (anomaly_scores >= best_threshold).astype(int)
 
218
 
219
  precision = precision_score(y_test, preds_binary, zero_division=0)
220
  recall = recall_score(y_test, preds_binary, zero_division=0)
 
226
  acc = accuracy_score(y_test, preds_binary)
227
  cm = confusion_matrix(y_test, preds_binary)
228
 
229
+ print(f"calibration set: n={len(y_calib)} ({int(y_calib.sum())} anomalies), "
230
+ f"chosen threshold={best_threshold:.4f} (calib F1={best_calib_f1:.4f})")
231
+ print(f"TEST precision={precision:.4f} recall={recall:.4f} f1={f1:.4f} roc_auc={roc_auc:.4f}")
232
 
233
  # Confusion matrix plot
234
  fig, ax = plt.subplots(figsize=(4.5, 4))
 
260
  fig.savefig(os.path.join(ASSETS_DIR, "anomaly_roc_curve.png"), dpi=150)
261
  plt.close(fig)
262
 
263
+ # Retrain the deployed model on train+calibration (all non-test rows;
264
+ # unsupervised fit, still no labels used in .fit() itself), keeping the
265
+ # threshold chosen above from the calibration split.
266
+ X_deploy = np.vstack([X_train, X_calib])
267
  scaler_full = StandardScaler()
268
+ X_deploy_scaled = scaler_full.fit_transform(X_deploy)
269
+ model_full = build_anomaly_model(contamination="auto", seed=SEED)
270
+ model_full.fit(X_deploy_scaled)
 
271
  save_anomaly_artifacts(
272
  model_full, scaler_full,
273
  os.path.join(MODELS_DIR, "anomaly_iforest.joblib"),
274
  os.path.join(MODELS_DIR, "anomaly_scaler.joblib"),
275
+ threshold=best_threshold,
276
+ threshold_path=os.path.join(MODELS_DIR, "anomaly_threshold.joblib"),
277
  )
278
 
279
  metrics = {
 
284
  "accuracy": acc,
285
  "n_test": len(y_test),
286
  "test_anomaly_rate": float(y_test.mean()),
287
+ "n_calibration": len(y_calib),
288
+ "n_calibration_anomalies": int(y_calib.sum()),
289
+ "calibrated_threshold": best_threshold,
290
+ "calibration_f1": best_calib_f1,
291
+ "contamination_used": "auto",
292
+ "threshold_method": "calibrated on a held-out labelled calibration split (maximize F1), "
293
+ "never on the test set",
294
  }
295
  with open(os.path.join(DATA_DIR, "anomaly_eval.json"), "w") as f:
296
  json.dump(metrics, f, indent=2)
 
401
  from src.anomaly_model import load_artifacts, score_reading
402
 
403
  pipeline = load_pipeline(os.path.join(MODELS_DIR, "intent_pipeline.joblib"))
404
+ model, scaler, threshold = load_artifacts(
405
  os.path.join(MODELS_DIR, "anomaly_iforest.joblib"),
406
  os.path.join(MODELS_DIR, "anomaly_scaler.joblib"),
407
+ threshold_path=os.path.join(MODELS_DIR, "anomaly_threshold.joblib"),
408
  )
409
  retriever = KBRetriever()
410
 
 
418
  return (time.perf_counter() - start) / n * 1000 # ms
419
 
420
  intent_ms = timeit(lambda: intent_predict(pipeline, sample_query))
421
+ anomaly_ms = timeit(lambda: score_reading(model, scaler, sample_reading, threshold=threshold))
422
  retrieval_ms = timeit(lambda: retriever.retrieve(sample_query, k=2))
423
 
424
  latency = {
data/anomaly_eval.json CHANGED
@@ -1,10 +1,15 @@
1
  {
2
- "precision": 0.9375,
3
- "recall": 1.0,
4
- "f1": 0.967741935483871,
5
  "roc_auc": 1.0,
6
- "accuracy": 0.9933333333333333,
7
  "n_test": 300,
8
  "test_anomaly_rate": 0.1,
9
- "contamination_used": 0.1
 
 
 
 
 
10
  }
 
1
  {
2
+ "precision": 1.0,
3
+ "recall": 0.9666666666666667,
4
+ "f1": 0.9830508474576272,
5
  "roc_auc": 1.0,
6
+ "accuracy": 0.9966666666666667,
7
  "n_test": 300,
8
  "test_anomaly_rate": 0.1,
9
+ "n_calibration": 140,
10
+ "n_calibration_anomalies": 14,
11
+ "calibrated_threshold": 0.5577936366449702,
12
+ "calibration_f1": 1.0,
13
+ "contamination_used": "auto",
14
+ "threshold_method": "calibrated on a held-out labelled calibration split (maximize F1), never on the test set"
15
  }
data/intent_dataset.csv CHANGED
@@ -1,141 +1,141 @@
1
  text,intent
2
- What's the fastest picking route for order #39002?,picking_optimization
3
  Pause AGV-12 until the aisle in Zone E is clear,agv_navigation
4
- Is order #56848 delayed?,order_status
5
  Report unsafe pallet stacking in Zone F,safety_incident
6
- What's the status of order #84619?,order_status
7
  What's the current uptime percentage for Zone D?,system_status
8
  Check system health for the receiving dock,system_status
9
  "A spill was reported near Crane-05 in the receiving dock, needs cleanup",safety_incident
10
  What's the most efficient picking sequence for the receiving dock today?,picking_optimization
11
  Schedule maintenance for Sorter-06,equipment_maintenance
12
  Explain how an AS/RS works,general_faq
13
- When will order #20934 be delivered?,order_status
14
  The sorter in Zone A keeps jamming,equipment_maintenance
15
- Track order #35028 for me,order_status
16
  Report unsafe pallet stacking in the shipping dock,safety_incident
17
  Why is inventory accuracy important?,general_faq
18
  Crane Crane-05 reported a fault code,equipment_maintenance
19
  Would zone picking work better than batch picking for the cross-dock area?,picking_optimization
20
- Is order #44074 delayed?,order_status
21
- Has order #21995 shipped yet?,order_status
22
- Do we have enough SKU-9358 to fulfill 200 units?,inventory_check
23
  Send the next available AGV to picking station 22,agv_navigation
24
- What is the current stock level for SKU-8654?,inventory_check
25
  Check system health for Zone A,system_status
26
- Give me stock levels across all zones for SKU-8723,inventory_check
27
  Report vibration issue on Sorter-06,equipment_maintenance
28
  There was a near collision between AGV-12 and a pedestrian in Zone F,safety_incident
29
  Send AGV Sorter-06 to the mezzanine,agv_navigation
30
  What does WCS stand for?,general_faq
31
  Report vibration issue on Crane-09,equipment_maintenance
32
  Is the sorter in the shipping dock running normally?,system_status
33
- What's the status of order #18237?,order_status
34
- Show me the on-hand quantity of SKU-8014,inventory_check
35
  File an incident report for Zone F,safety_incident
36
  A forklift near-miss was reported in the mezzanine,safety_incident
37
  Explain the difference between discrete and batch picking,general_faq
38
- Show the fulfillment status of #39430,order_status
39
  "Belt Crane-03 stopped unexpectedly, please check",equipment_maintenance
40
  File an incident report for Zone C,safety_incident
41
  Is the WCS connection to AGV-12 stable?,system_status
42
- Why hasn't order #99906 left the dock yet?,order_status
43
  What is the current location of Conveyor-14?,agv_navigation
44
- What's the fastest picking route for order #54169?,picking_optimization
45
  What is the uptime for AGV-18 today?,system_status
46
  Send AGV Crane-09 to Zone D,agv_navigation
47
- When will order #91907 be delivered?,order_status
48
- Has order #10986 shipped yet?,order_status
49
- Give me stock levels across all zones for SKU-3870,inventory_check
50
  "Someone bypassed the safety gate near Crane-05, please log this",safety_incident
51
  Is the sorter in the receiving dock running normally?,system_status
52
  Is the WCS connection to AGV-18 stable?,system_status
53
  Sorter-02 motor temperature seems high,equipment_maintenance
54
- Is SKU-7095 in stock at the cross-dock area?,inventory_check
55
  Is the WCS connection to Crane-05 stable?,system_status
56
- What is the current stock level for SKU-5980?,inventory_check
57
- Is order #76024 delayed?,order_status
58
  Redirect AMR-33 around the blocked aisle in the mezzanine,agv_navigation
59
- What is the current stock level for SKU-7765?,inventory_check
60
- Do we have enough SKU-3691 to fulfill 200 units?,inventory_check
61
- What's the fastest picking route for order #26114?,picking_optimization
62
  Log a safety incident involving Conveyor-14,safety_incident
63
- How many units of SKU-1842 are in Zone F?,inventory_check
64
  Suggest a wave picking plan for Zone B,picking_optimization
65
- Track order #55102 for me,order_status
66
  Route Sorter-06 to picking station 18,agv_navigation
67
  How should we sequence orders to minimize walking distance in Zone D?,picking_optimization
68
  What is the uptime for Crane-05 today?,system_status
69
  Is Crane-05 operational?,system_status
70
  Is the WCS connection to Crane-03 stable?,system_status
71
- What is the current stock level for SKU-3207?,inventory_check
72
  Reassign Conveyor-21 to charging station,agv_navigation
73
  Why is AGV-07 stuck near Zone E?,agv_navigation
74
- Show the fulfillment status of #64586,order_status
75
- Check inventory count for SKU-7914 in the shipping dock,inventory_check
76
  How should we sequence orders to minimize walking distance in Zone A?,picking_optimization
77
  What is wave picking?,general_faq
78
  Schedule maintenance for AGV-12,equipment_maintenance
79
  How does zone picking work?,general_faq
80
  The sorter in the cross-dock area keeps jamming,equipment_maintenance
81
  Suggest a wave picking plan for the cross-dock area,picking_optimization
82
- Show me the on-hand quantity of SKU-6005,inventory_check
83
- How much inventory is left for SKU-8406?,inventory_check
84
- Has order #52006 shipped yet?,order_status
85
  What is dock-to-stock time?,general_faq
86
  Would zone picking work better than batch picking for the mezzanine?,picking_optimization
87
- Why hasn't order #17768 left the dock yet?,order_status
88
- Do we have enough SKU-7347 to fulfill 200 units?,inventory_check
89
  Has Sorter-02 reported any faults today?,system_status
90
- How many units of SKU-8575 are in Zone F?,inventory_check
91
- What is the current stock level for SKU-5756?,inventory_check
92
- Has order #49098 shipped yet?,order_status
93
  Schedule maintenance for Conveyor-21,equipment_maintenance
94
  Should we batch pick these orders together?,picking_optimization
95
- How much inventory is left for SKU-8953?,inventory_check
96
- Has order #59850 shipped yet?,order_status
97
  Check system health for the mezzanine,system_status
98
  What's the current uptime percentage for the mezzanine?,system_status
99
  Are all cranes online in Zone C?,system_status
100
- Track order #35425 for me,order_status
101
  "AMR-21 seems to be idle near Zone E, please reroute it",agv_navigation
102
  How do warehouses reduce energy use during peak hours?,general_faq
103
  There was a near collision between Sorter-02 and a pedestrian in the cross-dock area,safety_incident
104
  A forklift near-miss was reported in the receiving dock,safety_incident
105
  The conveyor belt in Zone E is making noise,equipment_maintenance
106
  Schedule maintenance for Sorter-02,equipment_maintenance
107
- How many units of SKU-2954 are in the shipping dock?,inventory_check
108
- Do we have enough SKU-6478 to fulfill 200 units?,inventory_check
109
  Report vibration issue on AGV-12,equipment_maintenance
110
  Reassign Crane-09 to charging station,agv_navigation
111
  What's the current uptime percentage for Zone A?,system_status
112
  What's the most efficient picking sequence for Zone A today?,picking_optimization
113
- Show me the on-hand quantity of SKU-6352,inventory_check
114
  What's the current uptime percentage for the shipping dock?,system_status
115
  How is a WMS different from a WCS?,general_faq
116
  Log a safety incident involving Sorter-02,safety_incident
117
- Give me stock levels across all zones for SKU-2051,inventory_check
118
- Is SKU-7184 in stock at Zone C?,inventory_check
119
  Please log a near-miss between a pedestrian and Conveyor-14 in the shipping dock,safety_incident
120
- Is order #39897 delayed?,order_status
121
  Has Conveyor-14 reported any faults today?,system_status
122
  "Belt Crane-09 stopped unexpectedly, please check",equipment_maintenance
123
- Show the fulfillment status of #55078,order_status
124
- Has order #17795 shipped yet?,order_status
125
- What's the fastest picking route for order #62175?,picking_optimization
126
  How do sortation systems decide where to route a parcel?,general_faq
127
- Show me the on-hand quantity of SKU-5640,inventory_check
128
  Is Sorter-06 operational?,system_status
129
- What's the fastest picking route for order #25719?,picking_optimization
130
  Can you dispatch AGV-07 to the shipping dock right away?,agv_navigation
131
- Is SKU-4696 in stock at Zone D?,inventory_check
132
- Show me the on-hand quantity of SKU-5883,inventory_check
133
  Is AGV-18 operational?,system_status
134
- What's the status of order #30726?,order_status
135
  What is the current location of AMR-33?,agv_navigation
136
  What is the uptime for Crane-03 today?,system_status
137
- Why hasn't order #46885 left the dock yet?,order_status
138
- Show the fulfillment status of #85629,order_status
139
  Are all cranes online in Zone A?,system_status
140
  Is the sorter in the mezzanine running normally?,system_status
141
  Log a safety incident involving Sorter-06,safety_incident
@@ -148,21 +148,21 @@ There was a near collision between AGV-18 and a pedestrian in Zone B,safety_inci
148
  What is the current location of AGV-07?,agv_navigation
149
  "A spill was reported near Conveyor-21 in the receiving dock, needs cleanup",safety_incident
150
  "AGV-07 seems to be idle near the receiving dock, please reroute it",agv_navigation
151
- Why hasn't order #28030 left the dock yet?,order_status
152
  Redirect Conveyor-14 around the blocked aisle in the receiving dock,agv_navigation
153
  Crane Sorter-02 reported a fault code,equipment_maintenance
154
  Pause AGV-18 until the aisle in Zone A is clear,agv_navigation
155
  Conveyor-14 motor temperature seems high,equipment_maintenance
156
  How should we sequence orders to minimize walking distance in the shipping dock?,picking_optimization
157
  "Sorter-02 seems to be idle near Zone C, please reroute it",agv_navigation
158
- Has order #21835 shipped yet?,order_status
159
  Reassign AMR-21 to charging station,agv_navigation
160
  "A spill was reported near AMR-21 in the shipping dock, needs cleanup",safety_incident
161
- Why hasn't order #30033 left the dock yet?,order_status
162
  What is the current location of AMR-21?,agv_navigation
163
  Schedule maintenance for AGV-18,equipment_maintenance
164
  Reassign AMR-33 to charging station,agv_navigation
165
- What's the status of order #27003?,order_status
166
  How should we sequence orders to minimize walking distance in Zone E?,picking_optimization
167
  What is the uptime for Conveyor-14 today?,system_status
168
  Are all cranes online in Zone F?,system_status
@@ -172,28 +172,28 @@ Can you dispatch Conveyor-21 to Zone F right away?,agv_navigation
172
  How can we reduce travel time for pickers in Zone C?,picking_optimization
173
  Is the sorter in Zone E running normally?,system_status
174
  Report unsafe pallet stacking in Zone E,safety_incident
175
- What is the current stock level for SKU-7003?,inventory_check
176
  The sorter in Zone D keeps jamming,equipment_maintenance
177
  "A worker slipped near AGV-18, please log it",safety_incident
178
  Check system health for Zone F,system_status
179
- What's the fastest picking route for order #27922?,picking_optimization
180
  Would zone picking work better than batch picking for Zone C?,picking_optimization
181
- How much inventory is left for SKU-2209?,inventory_check
182
- Track order #83768 for me,order_status
183
  Route Crane-05 to picking station 18,agv_navigation
184
  Has AGV-12 reported any faults today?,system_status
185
- Give me stock levels across all zones for SKU-9997,inventory_check
186
  Is AMR-21 operational?,system_status
187
  A forklift near-miss was reported in Zone D,safety_incident
188
  "Belt Conveyor-21 stopped unexpectedly, please check",equipment_maintenance
189
  "Belt Sorter-06 stopped unexpectedly, please check",equipment_maintenance
190
  Report vibration issue on Conveyor-14,equipment_maintenance
191
  Reassign Crane-05 to charging station,agv_navigation
192
- Give me stock levels across all zones for SKU-7446,inventory_check
193
  Has AGV-18 reported any faults today?,system_status
194
- Track order #42487 for me,order_status
195
- When will order #96706 be delivered?,order_status
196
- Check inventory count for SKU-9124 in the receiving dock,inventory_check
197
  What's the most efficient picking sequence for the shipping dock today?,picking_optimization
198
  Log a breakdown for Crane-09 in Zone F,equipment_maintenance
199
  Has Sorter-06 reported any faults today?,system_status
@@ -203,34 +203,34 @@ What's the most efficient picking sequence for Zone B today?,picking_optimizatio
203
  Route Sorter-06 to picking station 3,agv_navigation
204
  Is the sorter in Zone D running normally?,system_status
205
  What is the current location of Sorter-02?,agv_navigation
206
- Has order #47066 shipped yet?,order_status
207
  Please log a near-miss between a pedestrian and Crane-03 in Zone E,safety_incident
208
  Log a breakdown for Conveyor-21 in Zone C,equipment_maintenance
209
  How should we sequence orders to minimize walking distance in Zone C?,picking_optimization
210
  The conveyor belt in Zone B is making noise,equipment_maintenance
211
- What is the current stock level for SKU-7086?,inventory_check
212
- When will order #75230 be delivered?,order_status
213
  File an incident report for Zone E,safety_incident
214
- Show the fulfillment status of #56129,order_status
215
  Report unsafe pallet stacking in the receiving dock,safety_incident
216
  Crane Crane-09 reported a fault code,equipment_maintenance
217
  "A worker slipped near AMR-33, please log it",safety_incident
218
- When will order #71075 be delivered?,order_status
219
  Report vibration issue on Crane-03,equipment_maintenance
220
  Log a safety incident involving AMR-33,safety_incident
221
  Please log a near-miss between a pedestrian and AGV-12 in the shipping dock,safety_incident
222
  How can we reduce travel time for pickers in Zone A?,picking_optimization
223
- Why hasn't order #89556 left the dock yet?,order_status
224
  What's the most efficient picking sequence for Zone E today?,picking_optimization
225
- Why hasn't order #91208 left the dock yet?,order_status
226
- Is SKU-1347 in stock at Zone A?,inventory_check
227
- Is SKU-2055 in stock at Zone B?,inventory_check
228
  The conveyor belt in Zone A is making noise,equipment_maintenance
229
  Crane-09 motor temperature seems high,equipment_maintenance
230
  Suggest a wave picking plan for Zone D,picking_optimization
231
  Reassign Crane-03 to charging station,agv_navigation
232
  Send the next available AGV to picking station 12,agv_navigation
233
- Is order #40290 delayed?,order_status
234
  Can you dispatch AGV-12 to the receiving dock right away?,agv_navigation
235
  Is Conveyor-14 operational?,system_status
236
  Would zone picking work better than batch picking for the shipping dock?,picking_optimization
@@ -241,10 +241,10 @@ What's the most efficient picking sequence for Zone F today?,picking_optimizatio
241
  Crane AGV-18 reported a fault code,equipment_maintenance
242
  AMR-21 motor temperature seems high,equipment_maintenance
243
  Please log a near-miss between a pedestrian and Crane-09 in the mezzanine,safety_incident
244
- What's the fastest picking route for order #24846?,picking_optimization
245
  Reassign AGV-12 to charging station,agv_navigation
246
  "Conveyor-21 seems to be idle near Zone B, please reroute it",agv_navigation
247
- When will order #12947 be delivered?,order_status
248
  Is Sorter-02 operational?,system_status
249
  Pause Crane-05 until the aisle in the receiving dock is clear,agv_navigation
250
  Crane Conveyor-21 reported a fault code,equipment_maintenance
@@ -257,94 +257,94 @@ Log a safety incident involving Conveyor-21,safety_incident
257
  Please log a near-miss between a pedestrian and Crane-09 in Zone A,safety_incident
258
  What's the current uptime percentage for the cross-dock area?,system_status
259
  There was a near collision between Crane-05 and a pedestrian in Zone F,safety_incident
260
- Has order #33247 shipped yet?,order_status
261
  Log a breakdown for Sorter-02 in Zone B,equipment_maintenance
262
  Recommend a picking strategy for high-velocity SKUs,picking_optimization
263
- What's the fastest picking route for order #47595?,picking_optimization
264
  How should we sequence orders to minimize walking distance in Zone F?,picking_optimization
265
  What's the difference between AGV and AMR?,general_faq
266
  "A worker slipped near Crane-03, please log it",safety_incident
267
  "AGV-18 seems to be idle near Zone E, please reroute it",agv_navigation
268
- What's the fastest picking route for order #18933?,picking_optimization
269
  The conveyor belt in the mezzanine is making noise,equipment_maintenance
270
  "Belt AMR-21 stopped unexpectedly, please check",equipment_maintenance
271
  Redirect AMR-33 around the blocked aisle in Zone F,agv_navigation
272
  Would zone picking work better than batch picking for Zone A?,picking_optimization
273
  Why is Conveyor-14 stuck near the receiving dock?,agv_navigation
274
- Has order #61675 shipped yet?,order_status
275
  Log a breakdown for Crane-05 in Zone F,equipment_maintenance
276
  Why is AGV-07 stuck near Zone B?,agv_navigation
277
  There was a near collision between Conveyor-21 and a pedestrian in Zone D,safety_incident
278
- What's the fastest picking route for order #82441?,picking_optimization
279
  "Belt AMR-33 stopped unexpectedly, please check",equipment_maintenance
280
  Is the sorter in Zone C running normally?,system_status
281
- Is order #64094 delayed?,order_status
282
  Check system health for the shipping dock,system_status
283
  Crane Conveyor-14 reported a fault code,equipment_maintenance
284
  There was a near collision between AGV-12 and a pedestrian in Zone D,safety_incident
285
- Is SKU-2184 in stock at Zone E?,inventory_check
286
  Check system health for Zone D,system_status
287
- Has order #42767 shipped yet?,order_status
288
  Would zone picking work better than batch picking for Zone D?,picking_optimization
289
- When will order #39467 be delivered?,order_status
290
  Suggest a wave picking plan for Zone C,picking_optimization
291
  Can you dispatch AGV-07 to Zone F right away?,agv_navigation
292
  The conveyor belt in the cross-dock area is making noise,equipment_maintenance
293
- How many units of SKU-7068 are in the receiving dock?,inventory_check
294
- Show me the on-hand quantity of SKU-4766,inventory_check
295
- Check inventory count for SKU-6772 in Zone D,inventory_check
296
  Crane Crane-03 reported a fault code,equipment_maintenance
297
  Schedule maintenance for Crane-05,equipment_maintenance
298
  Report unsafe pallet stacking in Zone D,safety_incident
299
  "Someone bypassed the safety gate near Crane-09, please log this",safety_incident
300
  "AMR-21 seems to be idle near Zone B, please reroute it",agv_navigation
301
- Why hasn't order #88419 left the dock yet?,order_status
302
- Is SKU-4116 in stock at the receiving dock?,inventory_check
303
  Would zone picking work better than batch picking for the receiving dock?,picking_optimization
304
  What is a mini-load system?,general_faq
305
  "A spill was reported near Conveyor-14 in the receiving dock, needs cleanup",safety_incident
306
  Report vibration issue on Sorter-02,equipment_maintenance
307
- Do we have enough SKU-5929 to fulfill 200 units?,inventory_check
308
  Why do warehouses use cycle counting instead of annual counts?,general_faq
309
  Route Crane-05 to picking station 12,agv_navigation
310
- What's the fastest picking route for order #49977?,picking_optimization
311
  Suggest a wave picking plan for the mezzanine,picking_optimization
312
  Is the WCS connection to AGV-07 stable?,system_status
313
- Do we have enough SKU-8543 to fulfill 200 units?,inventory_check
314
  How should we sequence orders to minimize walking distance in the cross-dock area?,picking_optimization
315
  Is the sorter in the cross-dock area running normally?,system_status
316
- Track order #24822 for me,order_status
317
  Pause Sorter-06 until the aisle in Zone E is clear,agv_navigation
318
  Check system health for Zone B,system_status
319
  Pause Crane-03 until the aisle in the cross-dock area is clear,agv_navigation
320
  The sorter in Zone F keeps jamming,equipment_maintenance
321
- What's the status of order #99212?,order_status
322
  Optimize the pick path for Zone F,picking_optimization
323
  Send AGV AMR-21 to Zone D,agv_navigation
324
- Show the fulfillment status of #35013,order_status
325
- Check inventory count for SKU-6321 in Zone C,inventory_check
326
- What is the current stock level for SKU-3159?,inventory_check
327
  What's the most efficient picking sequence for the cross-dock area today?,picking_optimization
328
  "AMR-33 seems to be idle near Zone E, please reroute it",agv_navigation
329
  Has AMR-33 reported any faults today?,system_status
330
- Give me stock levels across all zones for SKU-4283,inventory_check
331
  What is the uptime for AMR-33 today?,system_status
332
  Route Crane-03 to picking station 18,agv_navigation
333
  How can we reduce travel time for pickers in Zone F?,picking_optimization
334
- What's the fastest picking route for order #25124?,picking_optimization
335
  Report vibration issue on AMR-33,equipment_maintenance
336
  Check system health for Zone E,system_status
337
  "Belt AGV-07 stopped unexpectedly, please check",equipment_maintenance
338
- Is order #66869 delayed?,order_status
339
  The sorter in the shipping dock keeps jamming,equipment_maintenance
340
  Report vibration issue on Conveyor-21,equipment_maintenance
341
- Give me stock levels across all zones for SKU-3849,inventory_check
342
  "A spill was reported near AMR-21 in the cross-dock area, needs cleanup",safety_incident
343
- Show the fulfillment status of #51119,order_status
344
  Please log a near-miss between a pedestrian and Conveyor-21 in the receiving dock,safety_incident
345
- Is SKU-3408 in stock at the cross-dock area?,inventory_check
346
  "Belt Conveyor-14 stopped unexpectedly, please check",equipment_maintenance
347
- What is the current stock level for SKU-6111?,inventory_check
348
  Are all cranes online in Zone B?,system_status
349
  "A worker slipped near AMR-21, please log it",safety_incident
350
  What is the current location of AGV-18?,agv_navigation
@@ -364,30 +364,30 @@ There was a near collision between AMR-33 and a pedestrian in Zone C,safety_inci
364
  Would zone picking work better than batch picking for Zone E?,picking_optimization
365
  Send the next available AGV to picking station 3,agv_navigation
366
  Crane-03 motor temperature seems high,equipment_maintenance
367
- Is SKU-5590 in stock at the receiving dock?,inventory_check
368
  Why is AGV-12 stuck near the shipping dock?,agv_navigation
369
  Send the next available AGV to picking station 5,agv_navigation
370
  Please log a near-miss between a pedestrian and AGV-18 in Zone C,safety_incident
371
  What's the most efficient picking sequence for Zone C today?,picking_optimization
372
- Track order #47588 for me,order_status
373
- Is SKU-4954 in stock at Zone A?,inventory_check
374
- Do we have enough SKU-6315 to fulfill 200 units?,inventory_check
375
  How does regenerative braking work on an AS/RS crane?,general_faq
376
- Give me stock levels across all zones for SKU-6820,inventory_check
377
- When will order #60909 be delivered?,order_status
378
  Why is AGV-12 stuck near the receiving dock?,agv_navigation
379
- Give me stock levels across all zones for SKU-8544,inventory_check
380
  Optimize the pick path for Zone D,picking_optimization
381
  Give me the current status of the WMS integration,system_status
382
- When will order #11543 be delivered?,order_status
383
  A forklift near-miss was reported in Zone F,safety_incident
384
- What is the current stock level for SKU-3942?,inventory_check
385
  "Someone bypassed the safety gate near AMR-21, please log this",safety_incident
386
  How can we reduce travel time for pickers in Zone D?,picking_optimization
387
  How can we reduce travel time for pickers in the shipping dock?,picking_optimization
388
- Give me stock levels across all zones for SKU-9140,inventory_check
389
  "A spill was reported near AGV-12 in Zone F, needs cleanup",safety_incident
390
- Track order #87663 for me,order_status
391
  Are all cranes online in Zone E?,system_status
392
  Would zone picking work better than batch picking for Zone B?,picking_optimization
393
  The sorter in the mezzanine keeps jamming,equipment_maintenance
@@ -397,24 +397,24 @@ What is a WMS?,general_faq
397
  A forklift near-miss was reported in Zone A,safety_incident
398
  What is predictive maintenance?,general_faq
399
  There was a near collision between Conveyor-14 and a pedestrian in Zone B,safety_incident
400
- What's the fastest picking route for order #80966?,picking_optimization
401
- Do we have enough SKU-2549 to fulfill 200 units?,inventory_check
402
  Are all cranes online in the mezzanine?,system_status
403
- Do we have enough SKU-2599 to fulfill 200 units?,inventory_check
404
  Crane AMR-33 reported a fault code,equipment_maintenance
405
  Pause Conveyor-14 until the aisle in Zone E is clear,agv_navigation
406
  What's the difference between a stacker crane and a shuttle?,general_faq
407
  Redirect Sorter-06 around the blocked aisle in Zone C,agv_navigation
408
  Conveyor-21 motor temperature seems high,equipment_maintenance
409
- Do we have enough SKU-9855 to fulfill 200 units?,inventory_check
410
- Check inventory count for SKU-6154 in Zone E,inventory_check
411
  Report unsafe pallet stacking in Zone C,safety_incident
412
  Redirect Crane-09 around the blocked aisle in the mezzanine,agv_navigation
413
  How should we sequence orders to minimize walking distance in the mezzanine?,picking_optimization
414
- Do we have enough SKU-3311 to fulfill 200 units?,inventory_check
415
  Please log a near-miss between a pedestrian and Crane-05 in the mezzanine,safety_incident
416
  The conveyor belt in Zone F is making noise,equipment_maintenance
417
- What's the fastest picking route for order #57021?,picking_optimization
418
  Can you dispatch Conveyor-14 to the receiving dock right away?,agv_navigation
419
  What's the current uptime percentage for the receiving dock?,system_status
420
  Optimize the pick path for Zone B,picking_optimization
@@ -426,18 +426,18 @@ Log a breakdown for Conveyor-14 in the shipping dock,equipment_maintenance
426
  The conveyor belt in the shipping dock is making noise,equipment_maintenance
427
  Log a breakdown for Crane-05 in the receiving dock,equipment_maintenance
428
  There was a near collision between Sorter-06 and a pedestrian in Zone E,safety_incident
429
- What's the status of order #17664?,order_status
430
  What's the current uptime percentage for Zone B?,system_status
431
- Track order #90808 for me,order_status
432
  "A spill was reported near AGV-07 in the receiving dock, needs cleanup",safety_incident
433
  Pause AGV-07 until the aisle in the cross-dock area is clear,agv_navigation
434
  AGV-07 motor temperature seems high,equipment_maintenance
435
  What KPIs matter most in warehouse automation?,general_faq
436
- What is the current stock level for SKU-8037?,inventory_check
437
  Redirect Crane-09 around the blocked aisle in Zone E,agv_navigation
438
- Is order #79026 delayed?,order_status
439
- Has order #22778 shipped yet?,order_status
440
- What's the fastest picking route for order #78187?,picking_optimization
441
  There was a near collision between AGV-12 and a pedestrian in Zone C,safety_incident
442
  What is a pick rate and how is it measured?,general_faq
443
- Why hasn't order #21744 left the dock yet?,order_status
 
1
  text,intent
2
+ What's the fastest picking route for order #45024?,picking_optimization
3
  Pause AGV-12 until the aisle in Zone E is clear,agv_navigation
4
+ Is order #22400 delayed?,order_status
5
  Report unsafe pallet stacking in Zone F,safety_incident
6
+ What's the status of order #63485?,order_status
7
  What's the current uptime percentage for Zone D?,system_status
8
  Check system health for the receiving dock,system_status
9
  "A spill was reported near Crane-05 in the receiving dock, needs cleanup",safety_incident
10
  What's the most efficient picking sequence for the receiving dock today?,picking_optimization
11
  Schedule maintenance for Sorter-06,equipment_maintenance
12
  Explain how an AS/RS works,general_faq
13
+ When will order #89219 be delivered?,order_status
14
  The sorter in Zone A keeps jamming,equipment_maintenance
15
+ Track order #54338 for me,order_status
16
  Report unsafe pallet stacking in the shipping dock,safety_incident
17
  Why is inventory accuracy important?,general_faq
18
  Crane Crane-05 reported a fault code,equipment_maintenance
19
  Would zone picking work better than batch picking for the cross-dock area?,picking_optimization
20
+ Is order #77592 delayed?,order_status
21
+ Has order #53283 shipped yet?,order_status
22
+ Do we have enough SKU-5135 to fulfill 200 units?,inventory_check
23
  Send the next available AGV to picking station 22,agv_navigation
24
+ What is the current stock level for SKU-8720?,inventory_check
25
  Check system health for Zone A,system_status
26
+ Give me stock levels across all zones for SKU-3794,inventory_check
27
  Report vibration issue on Sorter-06,equipment_maintenance
28
  There was a near collision between AGV-12 and a pedestrian in Zone F,safety_incident
29
  Send AGV Sorter-06 to the mezzanine,agv_navigation
30
  What does WCS stand for?,general_faq
31
  Report vibration issue on Crane-09,equipment_maintenance
32
  Is the sorter in the shipping dock running normally?,system_status
33
+ What's the status of order #89060?,order_status
34
+ Show me the on-hand quantity of SKU-5201,inventory_check
35
  File an incident report for Zone F,safety_incident
36
  A forklift near-miss was reported in the mezzanine,safety_incident
37
  Explain the difference between discrete and batch picking,general_faq
38
+ Show the fulfillment status of #47829,order_status
39
  "Belt Crane-03 stopped unexpectedly, please check",equipment_maintenance
40
  File an incident report for Zone C,safety_incident
41
  Is the WCS connection to AGV-12 stable?,system_status
42
+ Why hasn't order #25483 left the dock yet?,order_status
43
  What is the current location of Conveyor-14?,agv_navigation
44
+ What's the fastest picking route for order #35250?,picking_optimization
45
  What is the uptime for AGV-18 today?,system_status
46
  Send AGV Crane-09 to Zone D,agv_navigation
47
+ When will order #74019 be delivered?,order_status
48
+ Has order #58303 shipped yet?,order_status
49
+ Give me stock levels across all zones for SKU-5710,inventory_check
50
  "Someone bypassed the safety gate near Crane-05, please log this",safety_incident
51
  Is the sorter in the receiving dock running normally?,system_status
52
  Is the WCS connection to AGV-18 stable?,system_status
53
  Sorter-02 motor temperature seems high,equipment_maintenance
54
+ Is SKU-5530 in stock at the cross-dock area?,inventory_check
55
  Is the WCS connection to Crane-05 stable?,system_status
56
+ What is the current stock level for SKU-7401?,inventory_check
57
+ Is order #21158 delayed?,order_status
58
  Redirect AMR-33 around the blocked aisle in the mezzanine,agv_navigation
59
+ What is the current stock level for SKU-5428?,inventory_check
60
+ Do we have enough SKU-8451 to fulfill 200 units?,inventory_check
61
+ What's the fastest picking route for order #18411?,picking_optimization
62
  Log a safety incident involving Conveyor-14,safety_incident
63
+ How many units of SKU-1876 are in Zone F?,inventory_check
64
  Suggest a wave picking plan for Zone B,picking_optimization
65
+ Track order #93554 for me,order_status
66
  Route Sorter-06 to picking station 18,agv_navigation
67
  How should we sequence orders to minimize walking distance in Zone D?,picking_optimization
68
  What is the uptime for Crane-05 today?,system_status
69
  Is Crane-05 operational?,system_status
70
  Is the WCS connection to Crane-03 stable?,system_status
71
+ What is the current stock level for SKU-2802?,inventory_check
72
  Reassign Conveyor-21 to charging station,agv_navigation
73
  Why is AGV-07 stuck near Zone E?,agv_navigation
74
+ Show the fulfillment status of #48732,order_status
75
+ Check inventory count for SKU-2453 in the shipping dock,inventory_check
76
  How should we sequence orders to minimize walking distance in Zone A?,picking_optimization
77
  What is wave picking?,general_faq
78
  Schedule maintenance for AGV-12,equipment_maintenance
79
  How does zone picking work?,general_faq
80
  The sorter in the cross-dock area keeps jamming,equipment_maintenance
81
  Suggest a wave picking plan for the cross-dock area,picking_optimization
82
+ Show me the on-hand quantity of SKU-3511,inventory_check
83
+ How much inventory is left for SKU-8368?,inventory_check
84
+ Has order #23679 shipped yet?,order_status
85
  What is dock-to-stock time?,general_faq
86
  Would zone picking work better than batch picking for the mezzanine?,picking_optimization
87
+ Why hasn't order #32065 left the dock yet?,order_status
88
+ Do we have enough SKU-2451 to fulfill 200 units?,inventory_check
89
  Has Sorter-02 reported any faults today?,system_status
90
+ How many units of SKU-8103 are in Zone F?,inventory_check
91
+ What is the current stock level for SKU-6671?,inventory_check
92
+ Has order #42390 shipped yet?,order_status
93
  Schedule maintenance for Conveyor-21,equipment_maintenance
94
  Should we batch pick these orders together?,picking_optimization
95
+ How much inventory is left for SKU-9364?,inventory_check
96
+ Has order #91136 shipped yet?,order_status
97
  Check system health for the mezzanine,system_status
98
  What's the current uptime percentage for the mezzanine?,system_status
99
  Are all cranes online in Zone C?,system_status
100
+ Track order #27557 for me,order_status
101
  "AMR-21 seems to be idle near Zone E, please reroute it",agv_navigation
102
  How do warehouses reduce energy use during peak hours?,general_faq
103
  There was a near collision between Sorter-02 and a pedestrian in the cross-dock area,safety_incident
104
  A forklift near-miss was reported in the receiving dock,safety_incident
105
  The conveyor belt in Zone E is making noise,equipment_maintenance
106
  Schedule maintenance for Sorter-02,equipment_maintenance
107
+ How many units of SKU-9688 are in the shipping dock?,inventory_check
108
+ Do we have enough SKU-3923 to fulfill 200 units?,inventory_check
109
  Report vibration issue on AGV-12,equipment_maintenance
110
  Reassign Crane-09 to charging station,agv_navigation
111
  What's the current uptime percentage for Zone A?,system_status
112
  What's the most efficient picking sequence for Zone A today?,picking_optimization
113
+ Show me the on-hand quantity of SKU-7889,inventory_check
114
  What's the current uptime percentage for the shipping dock?,system_status
115
  How is a WMS different from a WCS?,general_faq
116
  Log a safety incident involving Sorter-02,safety_incident
117
+ Give me stock levels across all zones for SKU-3949,inventory_check
118
+ Is SKU-2427 in stock at Zone C?,inventory_check
119
  Please log a near-miss between a pedestrian and Conveyor-14 in the shipping dock,safety_incident
120
+ Is order #56061 delayed?,order_status
121
  Has Conveyor-14 reported any faults today?,system_status
122
  "Belt Crane-09 stopped unexpectedly, please check",equipment_maintenance
123
+ Show the fulfillment status of #15957,order_status
124
+ Has order #93050 shipped yet?,order_status
125
+ What's the fastest picking route for order #11120?,picking_optimization
126
  How do sortation systems decide where to route a parcel?,general_faq
127
+ Show me the on-hand quantity of SKU-6360,inventory_check
128
  Is Sorter-06 operational?,system_status
129
+ What's the fastest picking route for order #22509?,picking_optimization
130
  Can you dispatch AGV-07 to the shipping dock right away?,agv_navigation
131
+ Is SKU-8354 in stock at Zone D?,inventory_check
132
+ Show me the on-hand quantity of SKU-7894,inventory_check
133
  Is AGV-18 operational?,system_status
134
+ What's the status of order #48496?,order_status
135
  What is the current location of AMR-33?,agv_navigation
136
  What is the uptime for Crane-03 today?,system_status
137
+ Why hasn't order #79143 left the dock yet?,order_status
138
+ Show the fulfillment status of #94756,order_status
139
  Are all cranes online in Zone A?,system_status
140
  Is the sorter in the mezzanine running normally?,system_status
141
  Log a safety incident involving Sorter-06,safety_incident
 
148
  What is the current location of AGV-07?,agv_navigation
149
  "A spill was reported near Conveyor-21 in the receiving dock, needs cleanup",safety_incident
150
  "AGV-07 seems to be idle near the receiving dock, please reroute it",agv_navigation
151
+ Why hasn't order #33808 left the dock yet?,order_status
152
  Redirect Conveyor-14 around the blocked aisle in the receiving dock,agv_navigation
153
  Crane Sorter-02 reported a fault code,equipment_maintenance
154
  Pause AGV-18 until the aisle in Zone A is clear,agv_navigation
155
  Conveyor-14 motor temperature seems high,equipment_maintenance
156
  How should we sequence orders to minimize walking distance in the shipping dock?,picking_optimization
157
  "Sorter-02 seems to be idle near Zone C, please reroute it",agv_navigation
158
+ Has order #39634 shipped yet?,order_status
159
  Reassign AMR-21 to charging station,agv_navigation
160
  "A spill was reported near AMR-21 in the shipping dock, needs cleanup",safety_incident
161
+ Why hasn't order #91189 left the dock yet?,order_status
162
  What is the current location of AMR-21?,agv_navigation
163
  Schedule maintenance for AGV-18,equipment_maintenance
164
  Reassign AMR-33 to charging station,agv_navigation
165
+ What's the status of order #91647?,order_status
166
  How should we sequence orders to minimize walking distance in Zone E?,picking_optimization
167
  What is the uptime for Conveyor-14 today?,system_status
168
  Are all cranes online in Zone F?,system_status
 
172
  How can we reduce travel time for pickers in Zone C?,picking_optimization
173
  Is the sorter in Zone E running normally?,system_status
174
  Report unsafe pallet stacking in Zone E,safety_incident
175
+ What is the current stock level for SKU-3351?,inventory_check
176
  The sorter in Zone D keeps jamming,equipment_maintenance
177
  "A worker slipped near AGV-18, please log it",safety_incident
178
  Check system health for Zone F,system_status
179
+ What's the fastest picking route for order #90047?,picking_optimization
180
  Would zone picking work better than batch picking for Zone C?,picking_optimization
181
+ How much inventory is left for SKU-3784?,inventory_check
182
+ Track order #84987 for me,order_status
183
  Route Crane-05 to picking station 18,agv_navigation
184
  Has AGV-12 reported any faults today?,system_status
185
+ Give me stock levels across all zones for SKU-7202,inventory_check
186
  Is AMR-21 operational?,system_status
187
  A forklift near-miss was reported in Zone D,safety_incident
188
  "Belt Conveyor-21 stopped unexpectedly, please check",equipment_maintenance
189
  "Belt Sorter-06 stopped unexpectedly, please check",equipment_maintenance
190
  Report vibration issue on Conveyor-14,equipment_maintenance
191
  Reassign Crane-05 to charging station,agv_navigation
192
+ Give me stock levels across all zones for SKU-7317,inventory_check
193
  Has AGV-18 reported any faults today?,system_status
194
+ Track order #50655 for me,order_status
195
+ When will order #53538 be delivered?,order_status
196
+ Check inventory count for SKU-6466 in the receiving dock,inventory_check
197
  What's the most efficient picking sequence for the shipping dock today?,picking_optimization
198
  Log a breakdown for Crane-09 in Zone F,equipment_maintenance
199
  Has Sorter-06 reported any faults today?,system_status
 
203
  Route Sorter-06 to picking station 3,agv_navigation
204
  Is the sorter in Zone D running normally?,system_status
205
  What is the current location of Sorter-02?,agv_navigation
206
+ Has order #69853 shipped yet?,order_status
207
  Please log a near-miss between a pedestrian and Crane-03 in Zone E,safety_incident
208
  Log a breakdown for Conveyor-21 in Zone C,equipment_maintenance
209
  How should we sequence orders to minimize walking distance in Zone C?,picking_optimization
210
  The conveyor belt in Zone B is making noise,equipment_maintenance
211
+ What is the current stock level for SKU-9826?,inventory_check
212
+ When will order #89131 be delivered?,order_status
213
  File an incident report for Zone E,safety_incident
214
+ Show the fulfillment status of #85726,order_status
215
  Report unsafe pallet stacking in the receiving dock,safety_incident
216
  Crane Crane-09 reported a fault code,equipment_maintenance
217
  "A worker slipped near AMR-33, please log it",safety_incident
218
+ When will order #38397 be delivered?,order_status
219
  Report vibration issue on Crane-03,equipment_maintenance
220
  Log a safety incident involving AMR-33,safety_incident
221
  Please log a near-miss between a pedestrian and AGV-12 in the shipping dock,safety_incident
222
  How can we reduce travel time for pickers in Zone A?,picking_optimization
223
+ Why hasn't order #98736 left the dock yet?,order_status
224
  What's the most efficient picking sequence for Zone E today?,picking_optimization
225
+ Why hasn't order #11185 left the dock yet?,order_status
226
+ Is SKU-5595 in stock at Zone A?,inventory_check
227
+ Is SKU-6953 in stock at Zone B?,inventory_check
228
  The conveyor belt in Zone A is making noise,equipment_maintenance
229
  Crane-09 motor temperature seems high,equipment_maintenance
230
  Suggest a wave picking plan for Zone D,picking_optimization
231
  Reassign Crane-03 to charging station,agv_navigation
232
  Send the next available AGV to picking station 12,agv_navigation
233
+ Is order #43653 delayed?,order_status
234
  Can you dispatch AGV-12 to the receiving dock right away?,agv_navigation
235
  Is Conveyor-14 operational?,system_status
236
  Would zone picking work better than batch picking for the shipping dock?,picking_optimization
 
241
  Crane AGV-18 reported a fault code,equipment_maintenance
242
  AMR-21 motor temperature seems high,equipment_maintenance
243
  Please log a near-miss between a pedestrian and Crane-09 in the mezzanine,safety_incident
244
+ What's the fastest picking route for order #98965?,picking_optimization
245
  Reassign AGV-12 to charging station,agv_navigation
246
  "Conveyor-21 seems to be idle near Zone B, please reroute it",agv_navigation
247
+ When will order #36922 be delivered?,order_status
248
  Is Sorter-02 operational?,system_status
249
  Pause Crane-05 until the aisle in the receiving dock is clear,agv_navigation
250
  Crane Conveyor-21 reported a fault code,equipment_maintenance
 
257
  Please log a near-miss between a pedestrian and Crane-09 in Zone A,safety_incident
258
  What's the current uptime percentage for the cross-dock area?,system_status
259
  There was a near collision between Crane-05 and a pedestrian in Zone F,safety_incident
260
+ Has order #87574 shipped yet?,order_status
261
  Log a breakdown for Sorter-02 in Zone B,equipment_maintenance
262
  Recommend a picking strategy for high-velocity SKUs,picking_optimization
263
+ What's the fastest picking route for order #95679?,picking_optimization
264
  How should we sequence orders to minimize walking distance in Zone F?,picking_optimization
265
  What's the difference between AGV and AMR?,general_faq
266
  "A worker slipped near Crane-03, please log it",safety_incident
267
  "AGV-18 seems to be idle near Zone E, please reroute it",agv_navigation
268
+ What's the fastest picking route for order #57683?,picking_optimization
269
  The conveyor belt in the mezzanine is making noise,equipment_maintenance
270
  "Belt AMR-21 stopped unexpectedly, please check",equipment_maintenance
271
  Redirect AMR-33 around the blocked aisle in Zone F,agv_navigation
272
  Would zone picking work better than batch picking for Zone A?,picking_optimization
273
  Why is Conveyor-14 stuck near the receiving dock?,agv_navigation
274
+ Has order #18536 shipped yet?,order_status
275
  Log a breakdown for Crane-05 in Zone F,equipment_maintenance
276
  Why is AGV-07 stuck near Zone B?,agv_navigation
277
  There was a near collision between Conveyor-21 and a pedestrian in Zone D,safety_incident
278
+ What's the fastest picking route for order #71673?,picking_optimization
279
  "Belt AMR-33 stopped unexpectedly, please check",equipment_maintenance
280
  Is the sorter in Zone C running normally?,system_status
281
+ Is order #24576 delayed?,order_status
282
  Check system health for the shipping dock,system_status
283
  Crane Conveyor-14 reported a fault code,equipment_maintenance
284
  There was a near collision between AGV-12 and a pedestrian in Zone D,safety_incident
285
+ Is SKU-3206 in stock at Zone E?,inventory_check
286
  Check system health for Zone D,system_status
287
+ Has order #43891 shipped yet?,order_status
288
  Would zone picking work better than batch picking for Zone D?,picking_optimization
289
+ When will order #71729 be delivered?,order_status
290
  Suggest a wave picking plan for Zone C,picking_optimization
291
  Can you dispatch AGV-07 to Zone F right away?,agv_navigation
292
  The conveyor belt in the cross-dock area is making noise,equipment_maintenance
293
+ How many units of SKU-7671 are in the receiving dock?,inventory_check
294
+ Show me the on-hand quantity of SKU-3702,inventory_check
295
+ Check inventory count for SKU-6108 in Zone D,inventory_check
296
  Crane Crane-03 reported a fault code,equipment_maintenance
297
  Schedule maintenance for Crane-05,equipment_maintenance
298
  Report unsafe pallet stacking in Zone D,safety_incident
299
  "Someone bypassed the safety gate near Crane-09, please log this",safety_incident
300
  "AMR-21 seems to be idle near Zone B, please reroute it",agv_navigation
301
+ Why hasn't order #86242 left the dock yet?,order_status
302
+ Is SKU-8367 in stock at the receiving dock?,inventory_check
303
  Would zone picking work better than batch picking for the receiving dock?,picking_optimization
304
  What is a mini-load system?,general_faq
305
  "A spill was reported near Conveyor-14 in the receiving dock, needs cleanup",safety_incident
306
  Report vibration issue on Sorter-02,equipment_maintenance
307
+ Do we have enough SKU-8061 to fulfill 200 units?,inventory_check
308
  Why do warehouses use cycle counting instead of annual counts?,general_faq
309
  Route Crane-05 to picking station 12,agv_navigation
310
+ What's the fastest picking route for order #75527?,picking_optimization
311
  Suggest a wave picking plan for the mezzanine,picking_optimization
312
  Is the WCS connection to AGV-07 stable?,system_status
313
+ Do we have enough SKU-5257 to fulfill 200 units?,inventory_check
314
  How should we sequence orders to minimize walking distance in the cross-dock area?,picking_optimization
315
  Is the sorter in the cross-dock area running normally?,system_status
316
+ Track order #48287 for me,order_status
317
  Pause Sorter-06 until the aisle in Zone E is clear,agv_navigation
318
  Check system health for Zone B,system_status
319
  Pause Crane-03 until the aisle in the cross-dock area is clear,agv_navigation
320
  The sorter in Zone F keeps jamming,equipment_maintenance
321
+ What's the status of order #28439?,order_status
322
  Optimize the pick path for Zone F,picking_optimization
323
  Send AGV AMR-21 to Zone D,agv_navigation
324
+ Show the fulfillment status of #43413,order_status
325
+ Check inventory count for SKU-9277 in Zone C,inventory_check
326
+ What is the current stock level for SKU-3569?,inventory_check
327
  What's the most efficient picking sequence for the cross-dock area today?,picking_optimization
328
  "AMR-33 seems to be idle near Zone E, please reroute it",agv_navigation
329
  Has AMR-33 reported any faults today?,system_status
330
+ Give me stock levels across all zones for SKU-8037,inventory_check
331
  What is the uptime for AMR-33 today?,system_status
332
  Route Crane-03 to picking station 18,agv_navigation
333
  How can we reduce travel time for pickers in Zone F?,picking_optimization
334
+ What's the fastest picking route for order #96033?,picking_optimization
335
  Report vibration issue on AMR-33,equipment_maintenance
336
  Check system health for Zone E,system_status
337
  "Belt AGV-07 stopped unexpectedly, please check",equipment_maintenance
338
+ Is order #42584 delayed?,order_status
339
  The sorter in the shipping dock keeps jamming,equipment_maintenance
340
  Report vibration issue on Conveyor-21,equipment_maintenance
341
+ Give me stock levels across all zones for SKU-3437,inventory_check
342
  "A spill was reported near AMR-21 in the cross-dock area, needs cleanup",safety_incident
343
+ Show the fulfillment status of #57239,order_status
344
  Please log a near-miss between a pedestrian and Conveyor-21 in the receiving dock,safety_incident
345
+ Is SKU-9655 in stock at the cross-dock area?,inventory_check
346
  "Belt Conveyor-14 stopped unexpectedly, please check",equipment_maintenance
347
+ What is the current stock level for SKU-5360?,inventory_check
348
  Are all cranes online in Zone B?,system_status
349
  "A worker slipped near AMR-21, please log it",safety_incident
350
  What is the current location of AGV-18?,agv_navigation
 
364
  Would zone picking work better than batch picking for Zone E?,picking_optimization
365
  Send the next available AGV to picking station 3,agv_navigation
366
  Crane-03 motor temperature seems high,equipment_maintenance
367
+ Is SKU-6320 in stock at the receiving dock?,inventory_check
368
  Why is AGV-12 stuck near the shipping dock?,agv_navigation
369
  Send the next available AGV to picking station 5,agv_navigation
370
  Please log a near-miss between a pedestrian and AGV-18 in Zone C,safety_incident
371
  What's the most efficient picking sequence for Zone C today?,picking_optimization
372
+ Track order #96525 for me,order_status
373
+ Is SKU-3798 in stock at Zone A?,inventory_check
374
+ Do we have enough SKU-4449 to fulfill 200 units?,inventory_check
375
  How does regenerative braking work on an AS/RS crane?,general_faq
376
+ Give me stock levels across all zones for SKU-1650,inventory_check
377
+ When will order #90343 be delivered?,order_status
378
  Why is AGV-12 stuck near the receiving dock?,agv_navigation
379
+ Give me stock levels across all zones for SKU-8956,inventory_check
380
  Optimize the pick path for Zone D,picking_optimization
381
  Give me the current status of the WMS integration,system_status
382
+ When will order #89814 be delivered?,order_status
383
  A forklift near-miss was reported in Zone F,safety_incident
384
+ What is the current stock level for SKU-6339?,inventory_check
385
  "Someone bypassed the safety gate near AMR-21, please log this",safety_incident
386
  How can we reduce travel time for pickers in Zone D?,picking_optimization
387
  How can we reduce travel time for pickers in the shipping dock?,picking_optimization
388
+ Give me stock levels across all zones for SKU-3877,inventory_check
389
  "A spill was reported near AGV-12 in Zone F, needs cleanup",safety_incident
390
+ Track order #95296 for me,order_status
391
  Are all cranes online in Zone E?,system_status
392
  Would zone picking work better than batch picking for Zone B?,picking_optimization
393
  The sorter in the mezzanine keeps jamming,equipment_maintenance
 
397
  A forklift near-miss was reported in Zone A,safety_incident
398
  What is predictive maintenance?,general_faq
399
  There was a near collision between Conveyor-14 and a pedestrian in Zone B,safety_incident
400
+ What's the fastest picking route for order #27906?,picking_optimization
401
+ Do we have enough SKU-5448 to fulfill 200 units?,inventory_check
402
  Are all cranes online in the mezzanine?,system_status
403
+ Do we have enough SKU-4957 to fulfill 200 units?,inventory_check
404
  Crane AMR-33 reported a fault code,equipment_maintenance
405
  Pause Conveyor-14 until the aisle in Zone E is clear,agv_navigation
406
  What's the difference between a stacker crane and a shuttle?,general_faq
407
  Redirect Sorter-06 around the blocked aisle in Zone C,agv_navigation
408
  Conveyor-21 motor temperature seems high,equipment_maintenance
409
+ Do we have enough SKU-2245 to fulfill 200 units?,inventory_check
410
+ Check inventory count for SKU-3735 in Zone E,inventory_check
411
  Report unsafe pallet stacking in Zone C,safety_incident
412
  Redirect Crane-09 around the blocked aisle in the mezzanine,agv_navigation
413
  How should we sequence orders to minimize walking distance in the mezzanine?,picking_optimization
414
+ Do we have enough SKU-5494 to fulfill 200 units?,inventory_check
415
  Please log a near-miss between a pedestrian and Crane-05 in the mezzanine,safety_incident
416
  The conveyor belt in Zone F is making noise,equipment_maintenance
417
+ What's the fastest picking route for order #86847?,picking_optimization
418
  Can you dispatch Conveyor-14 to the receiving dock right away?,agv_navigation
419
  What's the current uptime percentage for the receiving dock?,system_status
420
  Optimize the pick path for Zone B,picking_optimization
 
426
  The conveyor belt in the shipping dock is making noise,equipment_maintenance
427
  Log a breakdown for Crane-05 in the receiving dock,equipment_maintenance
428
  There was a near collision between Sorter-06 and a pedestrian in Zone E,safety_incident
429
+ What's the status of order #45231?,order_status
430
  What's the current uptime percentage for Zone B?,system_status
431
+ Track order #15877 for me,order_status
432
  "A spill was reported near AGV-07 in the receiving dock, needs cleanup",safety_incident
433
  Pause AGV-07 until the aisle in the cross-dock area is clear,agv_navigation
434
  AGV-07 motor temperature seems high,equipment_maintenance
435
  What KPIs matter most in warehouse automation?,general_faq
436
+ What is the current stock level for SKU-1934?,inventory_check
437
  Redirect Crane-09 around the blocked aisle in Zone E,agv_navigation
438
+ Is order #66488 delayed?,order_status
439
+ Has order #71734 shipped yet?,order_status
440
+ What's the fastest picking route for order #78872?,picking_optimization
441
  There was a near collision between AGV-12 and a pedestrian in Zone C,safety_incident
442
  What is a pick rate and how is it measured?,general_faq
443
+ Why hasn't order #89697 left the dock yet?,order_status
data/latency_eval.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
- "intent_classifier_ms": 0.419,
3
- "anomaly_detector_ms": 23.129,
4
- "kb_retrieval_ms": 0.571,
5
  "note": "LLM generation latency depends on the external Inference API call and is measured live in the app, not benchmarked here."
6
  }
 
1
  {
2
+ "intent_classifier_ms": 0.633,
3
+ "anomaly_detector_ms": 14.676,
4
+ "kb_retrieval_ms": 0.862,
5
  "note": "LLM generation latency depends on the external Inference API call and is measured live in the app, not benchmarked here."
6
  }
models/anomaly_iforest.joblib CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9dc690ec59c1639e4bcdc6d85f3ae61e9e932ae935b250bab7dd5de7654d62fa
3
- size 2149241
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1f3c085015adb1b4059275537b8f550cb569a97bd35e2020978083fb75873f57
3
+ size 2166973
models/anomaly_scaler.joblib CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:6eedcb449295a4276c34a0e08175010fd3b6958e8fc7158658461a9820011ff9
3
  size 679
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5e2a15be4a9a58c2d584e76e2b2bc701f213afc469768faca1eeac44d962dede
3
  size 679
models/anomaly_threshold.joblib ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b3f8523d48d478c6c634b0ce0bad9d97241a473d1e89eb8eb689bd2027c4b157
3
+ size 21
models/intent_pipeline.joblib CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:876f27ef5fe7c57beb4955f1666e618a8e20e5b8a1c38a7e6728459f74a9d4f4
3
  size 86940
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c7a9a52d4512974c7c0dee05f15871cf0d3346b3a0e1a2ff7d7fb36e7a722f9
3
  size 86940
src/anomaly_model.py CHANGED
@@ -7,9 +7,25 @@ powers the "Predictive Maintenance" tab -- flags abnormal equipment
7
  behaviour before it causes an unplanned stoppage, which is exactly the kind
8
  of workload modern intralogistics platforms (e.g. AS/RS, sorters, AGVs)
9
  generate continuously in production.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  """
11
 
12
  from dataclasses import dataclass
 
13
 
14
  import joblib
15
  import numpy as np
@@ -26,7 +42,7 @@ class AnomalyResult:
26
  raw_score: float
27
 
28
 
29
- def build_model(contamination: float = 0.1, seed: int = 42) -> IsolationForest:
30
  return IsolationForest(
31
  n_estimators=200,
32
  contamination=contamination,
@@ -34,20 +50,47 @@ def build_model(contamination: float = 0.1, seed: int = 42) -> IsolationForest:
34
  )
35
 
36
 
37
- def score_reading(model: IsolationForest, scaler: StandardScaler, reading: dict) -> AnomalyResult:
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  x = np.array([[reading[f] for f in FEATURES]])
39
  x_scaled = scaler.transform(x)
40
  raw = model.decision_function(x_scaled)[0] # higher = more normal
41
- pred = model.predict(x_scaled)[0] # 1 = normal, -1 = anomaly
42
  # squash raw decision_function (~[-0.5, 0.5]) into a 0-1 "anomaly score"
43
  anomaly_score = float(np.clip(0.5 - raw, 0, 1))
44
- return AnomalyResult(is_anomaly=(pred == -1), anomaly_score=anomaly_score, raw_score=float(raw))
 
 
 
 
 
45
 
46
 
47
- def save_artifacts(model, scaler, model_path: str, scaler_path: str):
48
  joblib.dump(model, model_path)
49
  joblib.dump(scaler, scaler_path)
 
 
50
 
51
 
52
- def load_artifacts(model_path: str, scaler_path: str):
53
- return joblib.load(model_path), joblib.load(scaler_path)
 
 
 
 
 
 
 
 
 
7
  behaviour before it causes an unplanned stoppage, which is exactly the kind
8
  of workload modern intralogistics platforms (e.g. AS/RS, sorters, AGVs)
9
  generate continuously in production.
10
+
11
+ Threshold calibration
12
+ ----------------------
13
+ The model itself is fit unsupervised (IsolationForest never sees labels).
14
+ However, converting its continuous anomaly score into a binary decision
15
+ requires a threshold, and scikit-learn's default choices for this (a fixed
16
+ "contamination" rate) are either a blind guess or -- if set to the true
17
+ label rate -- a form of leakage (see build_artifacts.py for the full
18
+ writeup of that bug and fix). The approach used here instead is standard
19
+ practice for production anomaly detection: fit the model unsupervised on
20
+ unlabelled data, then calibrate the decision threshold using a small
21
+ *labelled calibration set* (e.g. a handful of confirmed historical
22
+ incidents), completely separate from both model fitting and the final
23
+ held-out test set used to report metrics. `calibrated_threshold` below is
24
+ that calibrated cutoff, chosen to maximise F1 on the calibration set only.
25
  """
26
 
27
  from dataclasses import dataclass
28
+ from typing import Optional
29
 
30
  import joblib
31
  import numpy as np
 
42
  raw_score: float
43
 
44
 
45
+ def build_model(contamination="auto", seed: int = 42) -> IsolationForest:
46
  return IsolationForest(
47
  n_estimators=200,
48
  contamination=contamination,
 
50
  )
51
 
52
 
53
+ def score_reading(
54
+ model: IsolationForest,
55
+ scaler: StandardScaler,
56
+ reading: dict,
57
+ threshold: Optional[float] = None,
58
+ ) -> AnomalyResult:
59
+ """
60
+ Score a single sensor reading.
61
+
62
+ If `threshold` is given, it's compared against the 0-1 anomaly_score
63
+ (this is the calibrated-threshold path used by the deployed app). If
64
+ omitted, falls back to the IsolationForest's own .predict() (its
65
+ internal contamination-derived offset).
66
+ """
67
  x = np.array([[reading[f] for f in FEATURES]])
68
  x_scaled = scaler.transform(x)
69
  raw = model.decision_function(x_scaled)[0] # higher = more normal
 
70
  # squash raw decision_function (~[-0.5, 0.5]) into a 0-1 "anomaly score"
71
  anomaly_score = float(np.clip(0.5 - raw, 0, 1))
72
+ if threshold is not None:
73
+ is_anomaly = anomaly_score >= threshold
74
+ else:
75
+ pred = model.predict(x_scaled)[0] # 1 = normal, -1 = anomaly
76
+ is_anomaly = (pred == -1)
77
+ return AnomalyResult(is_anomaly=bool(is_anomaly), anomaly_score=anomaly_score, raw_score=float(raw))
78
 
79
 
80
+ def save_artifacts(model, scaler, model_path: str, scaler_path: str, threshold: Optional[float] = None, threshold_path: Optional[str] = None):
81
  joblib.dump(model, model_path)
82
  joblib.dump(scaler, scaler_path)
83
+ if threshold is not None and threshold_path is not None:
84
+ joblib.dump(float(threshold), threshold_path)
85
 
86
 
87
+ def load_artifacts(model_path: str, scaler_path: str, threshold_path: Optional[str] = None):
88
+ model = joblib.load(model_path)
89
+ scaler = joblib.load(scaler_path)
90
+ if threshold_path is not None:
91
+ try:
92
+ threshold = joblib.load(threshold_path)
93
+ return model, scaler, threshold
94
+ except FileNotFoundError:
95
+ return model, scaler, None
96
+ return model, scaler