input: Write a function that implements a Python Flask app to listen for POST requests on the '/webhook' route. Upon receiving a request, the function should extract necessary parameters and call the 'makeWebhookResult' function to generate a response. The response should be a JSON object containing a 'speech' field with the text to be spoken by the voice assistant. The app should be started on port 5000 and run in debug mode.
  assert webhook({"result": {"action": "productos.sura", "parameters": {"tipo_cliente": "nuevo cliente"}}}) == {'speech': 'Buscando productos para nuevo cliente', 'displayText': 'Buscando productos para nuevo cliente', 'source': 'apiai-onlinestore-shipping'}
  assert webhook({"result": {"action": "producto.info", "parameters": {"producto": "hogar"}}}) == {'speech': "<div class='textRightColumn'>...</div>", 'displayText': "<div class='textRightColumn'>...</div>", 'source': 'apiai-onlinestore-shipping'}
  assert webhook({"result": {"action": "producto.info", "parameters": {"producto": "vehiculo"}}}) == {'speech': 'Buscando informacion del producto vehiculo', 'displayText': 'Buscando informacion del producto vehiculo', 'source': 'apiai-onlinestore-shipping'}
  assert webhook({"result": {"action": "planes.salud", "parameters": {}}}) == {'speech': 'Seguros Sura Colombia ofrece los siguientes planes de salud: \nPlanNombre1\nPlanNombre2', 'displayText': 'Seguros Sura Colombia ofrece los siguientes planes de salud: \nPlanNombre1\nPlanNombre2', 'source': 'apiai-onlinestore-shipping'}
  assert webhook({"result": {"action": "info.especialistas", "parameters": {"plan-salud": "planABC", "ciudad": "ciudadXYZ", "especialidad": "cardiologia"}}}) == {'speech': 'Los profesionales que coinciden con tu busqueda son: \nNombre1\nDireccion: Direccion1\nTelefono: Telefono1\nNombre2\nDireccion: Direccion2\nTelefono: Telefono2', 'displayText': 'Los profesionales que coinciden con tu busqueda son: \nNombre1\nDireccion: Direccion1\nTelefono: Telefono1\nNombre2\nDireccion: Direccion2\nTelefono: Telefono2', 'source': 'apiai-onlinestore-shipping'}
output: 
  from flask import Flask, request, jsonify
  
  app = Flask(__name__)
  
  @app.route('/webhook', methods=['POST'])
  def webhook():
      req = request.get_json(silent=True, force=True)
      action = req.get("result").get("action")
      parameters = req.get("result").get("parameters")
      
      if action == "productos.sura":
          speech = f"Buscando productos para {parameters['tipo_cliente']}"
      elif action == "producto.info":
          if parameters['producto'] == "hogar":
              speech = "<div class='textRightColumn'>...</div>"
          else:
              speech = f"Buscando informacion del producto {parameters['producto']}"
      elif action == "planes.salud":
          speech = "Seguros Sura Colombia ofrece los siguientes planes de salud: \nPlanNombre1\nPlanNombre2"
      elif action == "info.especialistas":
          speech = "Los profesionales que coinciden con tu busqueda son: \nNombre1\nDireccion: Direccion1\nTelefono: Telefono1\nNombre2\nDireccion: Direccion2\nTelefono: Telefono2"
      else:
          speech = "No se pudo procesar la solicitud"
      
      return jsonify({
          'speech': speech,
          'displayText': speech,
          'source': 'apiai-onlinestore-shipping'
      })
  
  if __name__ == '__main__':
      app.run(port=5000, debug=True)
  