AdityaRatan commited on
Commit
37f4fbc
·
verified ·
1 Parent(s): af1dfde

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -3
app.py CHANGED
@@ -492,12 +492,44 @@ def perform_sustainability_analysis(state):
492
  except Exception as e:
493
  return f"❌ Error in sustainability analysis: {str(e)}", None, "Analysis failed"
494
 
495
- def predict_freight_cost(state, weight, line_item_value, cost_per_kg,
496
- shipment_mode, air_charter_weight=0, ocean_weight=0, truck_weight=0,
497
  air_charter_value=0, ocean_value=0, truck_value=0):
498
  if state.freight_model is None:
499
  return "Error: Freight prediction model not loaded"
500
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
501
  try:
502
  features = {
503
  'weight (kilograms)': weight,
@@ -870,7 +902,13 @@ def create_interface():
870
  )
871
 
872
  predict_button.click(
873
- fn=lambda *args: predict_and_store_freight(state, *args),
 
 
 
 
 
 
874
  inputs=[weight, line_item_value, shipment_mode],
875
  outputs=[freight_result]
876
  )
 
492
  except Exception as e:
493
  return f"❌ Error in sustainability analysis: {str(e)}", None, "Analysis failed"
494
 
495
+ def predict_freight_cost(state, weight=1000, line_item_value=10000, cost_per_kg=50,
496
+ shipment_mode="Air", air_charter_weight=0, ocean_weight=0, truck_weight=0,
497
  air_charter_value=0, ocean_value=0, truck_value=0):
498
  if state.freight_model is None:
499
  return "Error: Freight prediction model not loaded"
500
 
501
+ try:
502
+ # Set weights based on mode
503
+ if "Air" in shipment_mode:
504
+ air_charter_weight = weight
505
+ air_charter_value = line_item_value
506
+ elif "Ocean" in shipment_mode:
507
+ ocean_weight = weight
508
+ ocean_value = line_item_value
509
+ else:
510
+ truck_weight = weight
511
+ truck_value = line_item_value
512
+
513
+ features = {
514
+ 'weight (kilograms)': weight,
515
+ 'line item value': line_item_value,
516
+ 'cost per kilogram': cost_per_kg,
517
+ 'shipment mode_Air Charter_weight': air_charter_weight,
518
+ 'shipment mode_Ocean_weight': ocean_weight,
519
+ 'shipment mode_Truck_weight': truck_weight,
520
+ 'shipment mode_Air Charter_line_item_value': air_charter_value,
521
+ 'shipment mode_Ocean_line_item_value': ocean_value,
522
+ 'shipment mode_Truck_line_item_value': truck_value
523
+ }
524
+ input_data = pd.DataFrame([features])
525
+
526
+ prediction = state.freight_model.predict(input_data)
527
+ return round(float(prediction[0]), 2)
528
+ except Exception as e:
529
+ return f"Error making prediction: {str(e)}"
530
+ if state.freight_model is None:
531
+ return "Error: Freight prediction model not loaded"
532
+
533
  try:
534
  features = {
535
  'weight (kilograms)': weight,
 
902
  )
903
 
904
  predict_button.click(
905
+ fn=lambda weight, value, mode: predict_and_store_freight(
906
+ state,
907
+ weight=weight,
908
+ line_item_value=value,
909
+ cost_per_kg=50, # Default value
910
+ shipment_mode=mode
911
+ ),
912
  inputs=[weight, line_item_value, shipment_mode],
913
  outputs=[freight_result]
914
  )