2 puntos por GN⁺ 2023-11-10 | 1 comentarios | Compartir por WhatsApp
  • Es un proyecto que experimenta si es posible navegar por la web usando únicamente las capacidades de visión de GPT-4V, y proporciona a un modelo multimodal una interfaz para interactuar con la web
  • Aborda el problema de que, si no se le entrega el DOM del navegador como texto, al modelo le resulta difícil determinar qué quiere hacer clic
  • Usa la extensión de Chrome Vimium para permitir la navegación web solo con teclado, y con ello experimenta la forma en que el modelo interactúa con la web
  • El flujo de ejecución consiste en instalar los requisitos de Python, descargar Vimium localmente, cargar manualmente la extensión al ejecutar Playwright y ejecutar python main.py
  • Con python main.py --voice se puede ejecutar Voice Mode para decir el objetivo por voz y hacer que el navegador realice acciones en tiempo real
  • Actualmente, la Vision API no admite JSON mode ni function calling, por lo que hay la limitación de depender de un enfoque de prompts más primitivo
  • En resoluciones bajas, puede haber casos en los que el modelo no detecte nada; usar imágenes de mayor resolución puede mejorar esto, pero requiere más tokens

1 comentarios

 
GN⁺ 2023-11-10
Opiniones de Hacker News
  • Es realmente sorprendente que esto ya sea posible: https://github.com/ishan0102/vimGPT/blob/682b5e539541cd6d710...
    El prompt básicamente le pide que controle el navegador así: “elige qué acción hacer entre navigate, type, click y done para ayudar al usuario a lograr su objetivo; especifica el objetivo del clic con una secuencia de letras amarillas y devuelve solo JSON”.

    • La velocidad a la que se mueve este campo es vertiginosa. Podría llegar a ser una corriente aún más loca que el boom puntocom.
  • En el trabajo hay bastante gente que solo hace copia manual de datos entre programas legacy. Es del sector público, y la deuda técnica es tan grande que no encuentran forma de conectar los sistemas entre sí.
    Me entusiasma la idea de que algún día una herramienta así pueda convertirse en una capa que funcione sobre este tipo de problemas. Desde el punto de vista de recursos de cómputo, es una solución rara.

    • Hace mucho tiempo hice un proyecto pequeño para una gran cadena multinacional de abarrotes. Les hice una herramienta que parseaba archivos de Excel con una estructura específica y llamaba a un endpoint de un sistema interno para enviar los datos.
      Pregunté por curiosidad cómo lo hacían antes, y me llevaron a una computadora al fondo de la oficina; el fondo de pantalla tenía dos rectángulos que decían MS EXCEL e INTERNET EXPLORER. La persona encargada abría las dos apps, ajustaba las ventanas exactamente a esos rectángulos y luego ejecutaba un autoclicker como los que usarían los tramposos de RuneScape para copiar valores de Excel en formularios del sitio web. Era impresionante.
    • Aquí se culpa al “software viejo”, pero en realidad casi todo el mundo que usa internet sufre siempre el mismo problema de ingreso de datos. Copias datos de un formulario en una parte de la pantalla a otro formulario web o, peor aún, los vuelves a teclear.
      Pasa con nombres de usuario, contraseñas, correos electrónicos, direcciones físicas, datos de tarjetas de crédito, etc. Hay extensiones que intentan ayudar con el llenado, pero ninguna funciona bien de forma consistente. Ni siquiera se puede esperar que llenen de manera confiable el usuario y la contraseña. Es la molestia número uno al usar internet, incluso más que la publicidad, y sorprende que siga sin resolverse, con o sin LLM. Pagaría una suscripción mensual por un software que resolviera esto por completo.
    • En la jerga del sector se llama automatización robótica de procesos (Robotic Process Automation), y esta categoría de productos se ha enfocado en unir este tipo de cosas de una manera común y estructurada mediante varias formas de machine learning/IA, además del screen scraping tradicional.
      Hasta ahora estos productos han sido bastante frágiles, pero la reciente explosión de la tecnología de IA parece una gran oportunidad para esta área.
    • Cada vez que escucho que la extracción de datos de sistemas legacy la hacen personas manualmente, me pregunto si no habrán pedido un presupuesto para una solución “correcta” y luego decidido que era más barato poner a varias personas a teclear.
      Incluso integrando algo como ChatGPT, tendría que revisarlo alguien que realmente sepa, y no me sorprendería que el primer consejo de esas personas fuera: “no usen ChatGPT para eso”.
    • Antes me parecía rara aquella escena de Ghost in the Shell donde un robot tenía dedos sobre los dedos para escribir más rápido. No ocurrirá exactamente así porque puede conectarse directo por USB, pero aun así creo que a veces se terminarán usando la pantalla y la entrada por teclado.
  • vim parece convertirse, sin proponérselo, en un excelente cuerpo implementado para ChatGPT. No hay casi nada que no pueda hacerse con flujos de texto, y en internet ya abunda vimscript.
    Empecé un experimento similar, por si a alguien que esté pensando en la misma dirección le sirve como referencia: https://github.com/LachlanGray/vim-agent

  • Soy quien lo hizo. Si tienen preguntas, pregunten; las contribuciones también son bienvenidas. Dejé en el README algunas posibles próximas etapas.

    • Hoy más temprano publiqué algo casi igual: https://github.com/Jiayi-Pan/GPT-V-on-Web. Aunque no recibió mucha atención.
    • Open Interpreter también está intentando automatizar Selenium con control en lenguaje natural, y últimamente están apareciendo bastantes proyectos parecidos en HN. El enfoque de Vimium se ve mucho más liviano, así que parece prometedor.
      De alguna forma, la World Wide Web pública se está convirtiendo en su propio servidor de superposición de API dinámicas.
    • ¿En qué se diferencia de la forma en que ChatGPT navega la web actualmente?
    • ¿Podría usarse para crear bots que visiten sitios web y extraigan/analicen información relevante, sin escribir parsers específicos para cada sitio?
  • Estuve probando una idea parecida con GPT-4 Vision para navegar usando capturas de pantalla y acciones; después de fallar al intentar superponer información sobre la captura, al final tomé el árbol de accesibilidad desde Playwright y lo envié también como texto.
    Así el modelo puede saber cuáles son las opciones interactivas, y en mi caso funcionó mejor. Como quien lo hizo está aquí y tiene una lista de ideas futuras, si le parece bien, creo que podría agregar esto a la lista.

    • Buena idea. Originalmente quería usar solo datos visuales, pero con esto el agente podría volverse mucho más potente. Lo voy a probar pronto.
    • Creo que sería mejor capturar todo el contenido, no solo lo que entra en una pantalla. Con la nueva ventana de tokens ampliada, la mayoría de las páginas probablemente caben como texto o HTML.
  • Durante las últimas semanas estuve probando esto con la interfaz de ChatGPT. Tengo algunos tips.
    Conviene cambiar el CSS para quitar degradados y esquinas redondeadas; lo más consistente fue usar texto blanco en negritas sobre rojo. También conviene aumentar el tamaño de la fuente y, si dos etiquetas se superponen, separarlas y agregar una flecha que apunte al elemento. A la API era mejor enviarle ambas imágenes: la anotada y la no anotada.

  • Se puede crear un piloto automático para el navegador.
    Si esto se despliega a gran escala, en el futuro será extremadamente difícil distinguir el tráfico de bots. Aunque, a corto plazo, veo el problema de que no será barato ni fácil de costear.

    • Si se hacen fine-tuning de modelos open source como llava o cogvlm, creo que se podría bajar el costo. Esta demo también cuesta alrededor de 6 centavos, así que no es absurdamente cara, y con prompts bien pensados podría mejorar aún más.
  • ¿Qué impacto tendrán herramientas como esta en el rastreo web o en la publicidad en internet en general? Si un agente puede navegar la web por ti y traer exactamente lo que buscas, sin ver anuncios ni pop-ups y evitando el rastreo, podría convertirse en un excelente bloqueador de anuncios.
    Tal vez incluso podría mejorar la calidad de internet al volver inútil el SEO. Por el contrario, también me pregunto si podría surgir el efecto secundario de que la publicidad de alguna manera se “mezcle” dentro del contenido que trae.

    • Si el método consiste en enviar capturas de pantalla de la página a GPT, ¿no terminaría viendo también los anuncios?
  • Muchas empresas en los Países Bajos pagan la nómina así: 1) reciben del contador los recibos de sueldo, 2) inician manualmente una transferencia bancaria a cada empleado por el monto correspondiente del recibo, y 3) también inician manualmente una transferencia bancaria para enviar a la autoridad fiscal los impuestos sobre nómina retenidos.
    Es trabajo manual completamente inútil y no hay razón para que sea un proceso manual. Pero automatizarlo es casi imposible. Los portales contables no tienen API o, si la tienen, te hacen descargar los datos en PDF, o la API cuesta bastante. Los bancos tampoco tienen API o, aunque solo quieras automatizar un procedimiento interno, te exigen registrarte con una cuenta de desarrollador como si fueras a lanzar una app pública. Así que la forma más fácil de pagar sueldos e impuestos sigue siendo contratar a alguien para hacerlo manualmente. No confiaría en que una IA inicie transferencias bancarias reales, pero quizá sí podría preparar las transacciones y dejar que una persona solo apruebe el envío.

    • Esto no parece tener mucho que ver con la IA. En el Reino Unido ya existen soluciones como Pento, que automatizan los pagos a usuarios y a la autoridad fiscal mediante open banking y también envían automáticamente las declaraciones de impuestos: https://www.pento.io/la/payroll-software
    • Eso es simplemente un problema bancario. Las nóminas de las grandes empresas no funcionan así. Los bancos normalmente permiten subir archivos XML que definen lotes de pagos SWIFT, y las nóminas de empresas pequeñas también se procesan así. Los contadores también proporcionan archivos XML; probablemente tengan una app para generarlos.
    • En nuestro país pasa algo parecido: algunos datos hay que subirlos al sitio de una agencia gubernamental. Creo que fue a principios de este año cuando anunciaron que las personas que usen software para realizar acciones en el sitio web podrían ser bloqueadas.
    • Automatizar flujos de trabajo repetitivos en GUI es el objetivo de https://github.com/OpenAdaptAI/OpenAdapt
  • ¿Es muy parecido al concepto de Adept? Aunque parece que el producto todavía no está listo: https://www.adept.ai/

    • Es un poco increíble que algo que se dice que Adept lleva años construyendo tras recibir más de 300 millones de dólares de inversión ahora pueda hacerse en un día con la API de OpenAI.
      Parece que Adept cambió de rumbo en el camino, pero el concepto original era muy parecido a esto.
    • https://www.adept.ai/blog/experiments :)
    • Sí. Me inspiré en Adept y en algunas otras startups.
    • Exactamente, esta es la demo que me vino a la mente