input: 
  def handle_webhook_request(request_data: dict) -> dict:
      """Processes the incoming POST request data to generate a response containing text to be spoken by a voice assistant. The response is in JSON format with a 'speech' field.
      >>> handle_webhook_request({
      ...     "result": {
      ...         "action": "productos.sura",
      ...         "parameters": {"tipo_cliente": "persona natural"}
      ...     }
      ... }) == {"speech": "Buscando productos para persona natural", "displayText": "Buscando productos para persona natural", "source": "apiai-onlinestore-shipping"}
      True
      >>> handle_webhook_request({
      ...     "result": {
      ...         "action": "info.especialistas",
      ...         "parameters": {
      ...             "plan-salud": "plan basico",
      ...             "ciudad": "Bogota",
      ...             "especialidad": "cardiologo"
      ...         }
      ...     }
      ... }) == {
      ...     "speech": "Los profesionales que coinciden con tu busqueda son: \\nDiana Pinzón\\n Direccion: Cl. 115 #7 - 62 Oficina 705\\n Telefono: (601) 7561234\\n", 
      ...     "displayText": "Los profesionales que coinciden con tu busqueda son: \\nDiana Pinzón\\n Direccion: Cl. 115 #7 - 62 Oficina 705\\n Telefono: (601) 7561234\\n", 
      ...     "source": "apiai-onlinestore-shipping"
      ... }
      True
      """
      result = request_data.get("result")
      parameters = result.get("parameters")
      action = result.get("action")
      speech = ""
  
      if action == "productos.sura":
          cliente = parameters.get("tipo_cliente")
          speech = "Buscando productos para " + cliente
      elif action == "producto.info":
          producto = parameters.get("producto")
          if producto == "hogar":
              url = "https://www.sura.com/soluciones-personas/seguro-hogar.aspx"
              response = urllib2.urlopen(url).read()
              soup = BeautifulSoup(response, 'html.parser')
              contenido = soup.find_all("div", class_="textRightColumn")
              if len(contenido) == 0:
                  speech = "No encontrado"
              else:
                  speech = str(contenido[0])
          else:
              speech = "Buscando informacion del producto " + producto
      elif action == "planes.salud":
          url = "https://api.segurossura.com.co/public/v1/directory/products"
          response = requests.get(url)
          if response.ok:
              jData = json.loads(response.text)
              speech = "Seguros Sura Colombia ofrece los siguientes planes de salud: \n"
              for plan in jData:
                  speech += "\n" + plan["nombreField"].title()
      elif action == "info.especialistas":
          producto = parameters.get("plan-salud")
          ciudad = parameters.get("ciudad")
          especialidad = parameters.get("especialidad")
          url = f"https://api.segurossura.com.co/public/v1/directory/search/{producto}/{ciudad}?speciality={especialidad}&firstname=&secondname=&firstlastname=&secondlastname="
          response = requests.get(url)
          if response.ok:
              jData = json.loads(response.text)
              speech = "Los profesionales que coinciden con tu busqueda son: \n"
              for medico in jData:
                  speech += f"\n{medico['nombreField']}\n Direccion: {medico['direccionField'].title()}\n Telefono: {medico['telefonoField']}\n"
      elif action == "coberturas.producto":
          producto = parameters.get("productos")
          speech = "Buscando coberturas del producto: " + producto
      else:
          speech = " "
  
      return {
          "speech": speech,
          "displayText": speech,
          "source": "apiai-onlinestore-shipping"
      }
  
output:     import urllib2
      from bs4 import BeautifulSoup
      import requests
      import json