input: Write a function to create a Flask app that listens for POST requests on the '/webhook' route, extracts necessary parameters from the request, and calls a 'makeWebhookResult' function to generate a JSON response 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. If the function is run in the main module, it should start the Flask app.
  assert create_flask_app() is True
  assert makeWebhookResult({"result": {"action": "productos.sura", "parameters": {"tipo_cliente": "individual"}}}) == {"speech": "Buscando productos para individual", "displayText": "Buscando productos para individual", "source": "apiai-onlinestore-shipping"}
  assert makeWebhookResult({"result": {"action": "producto.info", "parameters": {"producto": "hogar"}}}) == {"speech": "No encontrado", "displayText": "No encontrado", "source": "apiai-onlinestore-shipping"}
  assert makeWebhookResult({"result": {"action": "planes.salud"}}) == {"speech": "Seguros Sura Colombia ofrece los siguientes planes de salud: \n", "displayText": "Seguros Sura Colombia ofrece los siguientes planes de salud: \n", "source": "apiai-onlinestore-shipping"}
  assert makeWebhookResult({"result": {"action": "info.especialistas", "parameters": {"plan-salud": "plan1", "ciudad": "Bogota", "especialidad": "Cardiologia"}}}) == {"speech": "Los profesionales que coinciden con tu busqueda son: \n", "displayText": "Los profesionales que coinciden con tu busqueda son: \n", "source": "apiai-onlinestore-shipping"}
  assert makeWebhookResult({"result": {"action": "coberturas.producto", "parameters": {"productos": "seguroHogar"}}}) == {"speech": "Buscando coberturas del producto: seguroHogar", "displayText": "Buscando coberturas del producto: seguroHogar", "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)
      res = makeWebhookResult(req)
      return jsonify(res)
  
  def makeWebhookResult(req):
      action = req.get("result", {}).get("action")
      parameters = req.get("result", {}).get("parameters", {})
      
      if action == "productos.sura":
          tipo_cliente = parameters.get("tipo_cliente", "")
          speech = f"Buscando productos para {tipo_cliente}"
      elif action == "producto.info":
          speech = "No encontrado"
      elif action == "planes.salud":
          speech = "Seguros Sura Colombia ofrece los siguientes planes de salud: \n"
      elif action == "info.especialistas":
          speech = "Los profesionales que coinciden con tu busqueda son: \n"
      elif action == "coberturas.producto":
          productos = parameters.get("productos", "")
          speech = f"Buscando coberturas del producto: {productos}"
      else:
          speech = "No se pudo procesar la solicitud"
      
      return {
          "speech": speech,
          "displayText": speech,
          "source": "apiai-onlinestore-shipping"
      }
  
  if __name__ == '__main__':
      app.run(port=5000, debug=True)
  