input: Write a function named `webhook` that listens for POST requests on the '/webhook' route of a Python Flask app. The function should extract the necessary parameters from the request, call the 'makeWebhookResult' function to generate a response, and return the response as a JSON object containing a 'speech' field. The response should be started on port 5000 and run in debug mode.
  
  assert webhook('{"result":{"action":"productos.sura","parameters":{"tipo_cliente":"Empresarial"}}}')=={"speech":"Buscando productos para Empresarial","displayText":"Buscando productos para Empresarial","source":"apiai-onlinestore-shipping"}
  assert webhook('{"result":{"action":"producto.info","parameters":{"producto":"hogar"}}}')=={...}  # Replace (...) with the actual expected output
  assert webhook('{"result":{"action":"planes.salud"}}')=={...}  # Replace (...) with the actual expected output
  assert webhook('{"result":{"action":"info.especialistas","parameters":{"plan-salud":"prepagado","ciudad":"Medellín","especialidad":"Cardiología"}}}')=={...}  # Replace (...) with the actual expected output
  assert webhook('{"result":{"action":"coberturas.producto","parameters":{"productos":"hogar"}}}')=={...}  # Replace (...) with the actual expected output
  assert webhook('{"result":{"action":"nonexistent"}}')=={"speech":" ","displayText":" ","source":"apiai-onlinestore-shipping"}
output: 
  def webhook(request_data):
      import json
      data = json.loads(request_data)
      result = data.get('result', {})
      action = result.get('action', '')
      parameters = result.get('parameters', {})
  
      if action == "productos.sura":
          tipo_cliente = parameters.get('tipo_cliente', '')
          response = {
              "speech": f"Buscando productos para {tipo_cliente}",
              "displayText": f"Buscando productos para {tipo_cliente}",
              "source": "apiai-onlinestore-shipping"
          }
      elif action == "producto.info":
          producto = parameters.get('producto', '')
          response = {
              "speech": f"Información sobre el producto {producto}",
              "displayText": f"Información sobre el producto {producto}",
              "source": "apiai-onlinestore-shipping"
          }
      elif action == "planes.salud":
          response = {
              "speech": "Mostrando planes de salud disponibles",
              "displayText": "Mostrando planes de salud disponibles",
              "source": "apiai-onlinestore-shipping"
          }
      elif action == "info.especialistas":
          plan_salud = parameters.get('plan-salud', '')
          ciudad = parameters.get('ciudad', '')
          especialidad = parameters.get('especialidad', '')
          response = {
              "speech": f"Buscando especialistas en {especialidad} en {ciudad} para el plan {plan_salud}",
              "displayText": f"Buscando especialistas en {especialidad} en {ciudad} para el plan {plan_salud}",
              "source": "apiai-onlinestore-shipping"
          }
      elif action == "coberturas.producto":
          productos = parameters.get('productos', '')
          response = {
              "speech": f"Mostrando coberturas para el producto {productos}",
              "displayText": f"Mostrando coberturas para el producto {productos}",
              "source": "apiai-onlinestore-shipping"
          }
      else:
          response = {
              "speech": " ",
              "displayText": " ",
              "source": "apiai-onlinestore-shipping"
          }
  
      return response
  