2 pontos por GN⁺ 2023-11-10 | 1 comentários | Compartilhar no WhatsApp
  • É um projeto que experimenta se a navegação na web é possível usando apenas os recursos de visão do GPT-4V, fornecendo ao modelo multimodal uma interface para interagir com a web
  • Aborda o problema de que, sem fornecer o DOM do navegador em texto, fica difícil para o modelo determinar no que ele deve clicar
  • Usa a extensão Vimium para Chrome para permitir navegação apenas por teclado e, com isso, experimentar como o modelo interage com a web
  • O fluxo de execução consiste em instalar os requisitos de Python, baixar o Vimium localmente, carregar manualmente a extensão ao executar o Playwright e rodar python main.py
  • É possível executar o Voice Mode com python main.py --voice, dizer o objetivo por comando de voz e fazer o navegador agir em tempo real
  • Atualmente, a Vision API não oferece suporte a modo JSON nem a function calling, o que impõe a limitação de depender de uma abordagem de prompt mais bruta
  • Em baixa resolução, às vezes o modelo não consegue detectar nada; usar imagens em resolução mais alta pode melhorar isso, mas exige mais tokens

1 comentários

 
GN⁺ 2023-11-10
Opiniões no Hacker News
  • É realmente impressionante que algo assim já seja possível: https://github.com/ishan0102/vimGPT/blob/682b5e539541cd6d710...
    O prompt manda o navegador ser controlado mais ou menos assim: “para ajudar no objetivo do usuário, escolha qual ação executar entre navigate, type, click e done, especifique o alvo do clique por meio de uma sequência de letras amarelas e retorne apenas JSON

    • A velocidade com que essa área está se movendo é de deixar a cabeça girando. Parece que pode virar uma onda ainda mais insana que o boom das pontocom
  • No trabalho, há bastante gente que só faz cópia manual de dados entre programas legados. É no setor público, então a dívida técnica é tão grande que não estão encontrando uma forma de conectar os sistemas entre si
    Fico animado se um dia uma ferramenta dessas puder se tornar uma camada que rode por cima desse problema. Do ponto de vista de recursos computacionais, é uma solução meio esquisita

    • Muito tempo atrás, participei de um pequeno projeto para uma grande rede multinacional de supermercados. Criei uma ferramenta que fazia parsing de um arquivo Excel com uma estrutura específica e chamava um endpoint de um sistema interno para enviar os dados
      Perguntei por curiosidade como era o processo existente, e me levaram a um computador no fundo do escritório; no papel de parede havia dois retângulos escritos MS EXCEL e INTERNET EXPLORER. A pessoa responsável abria os dois apps, alinhava as janelas exatamente dentro daqueles retângulos e então rodava um autoclicker do tipo que trapaceiros de RuneScape usariam para copiar valores do Excel para formulários no site. Era impressionante
    • Aqui culpam “software antigo”, mas na verdade quase todo mundo que usa a internet passa o tempo todo pelo mesmo problema de entrada de dados. Copiar dados de um formulário em um lado da tela para outro formulário web, ou pior, digitá-los de novo
      Nome de usuário, senha, endereço de e-mail, endereço físico, dados de cartão de crédito, tudo isso entra nessa categoria; existem extensões que tentam ajudar no preenchimento, mas nada funciona bem de forma consistente. Nem dá para esperar que preencham nome de usuário e senha de maneira confiável. É a maior irritação no uso da internet, acima até de anúncios, e é surpreendente que, com ou sem LLMs, isso ainda não tenha sido resolvido. Eu pagaria uma assinatura mensal por um software que resolvesse isso por completo
    • No jargão da indústria, isso é automação robótica de processos (Robotic Process Automation), e essa categoria de produtos, além do screen scraping tradicional, tem se concentrado em usar várias formas de machine learning/IA para costurar essas coisas de uma maneira comum e estruturada
      Até agora esses produtos eram bem frágeis, mas a explosão recente das tecnologias de IA parece uma ótima notícia para essa área
    • Sempre que ouço falar que a extração de dados de sistemas legados é feita manualmente por pessoas, fico me perguntando se não pediram um orçamento para uma solução “de verdade” e concluíram que era mais barato simplesmente colocar várias pessoas para digitar
      Mesmo que integrem algo como ChatGPT, alguém que realmente entenda do assunto teria que revisar, e eu não ficaria surpreso se o primeiro conselho dessas pessoas fosse “não usem ChatGPT para isso”
    • Antigamente eu achava estranha aquela cena de Ghost in the Shell em que um robô tinha dedos em cima dos dedos para digitar rápido. Não vai ser exatamente assim, já que dá para conectar direto via USB, mas ainda assim acho que às vezes acabaremos usando tela e entrada pelo teclado
  • O vim parece estar virando, sem querer, um excelente corpo implementado para o ChatGPT. Não há quase nada que não dê para fazer com um fluxo de texto, e a internet já está cheia de vimscript
    Comecei um experimento parecido, então, se alguém estiver pensando na mesma direção, pode servir de referência: https://github.com/LachlanGray/vim-agent

  • Sou o criador. Se tiverem perguntas, podem mandar, e contribuições são bem-vindas. Deixei no README algumas possíveis próximas etapas

    • Mais cedo hoje publiquei algo quase igual: https://github.com/Jiayi-Pan/GPT-V-on-Web. Só que não recebeu muita atenção
    • O Open Interpreter também está tentando automatizar o Selenium com controle em linguagem natural, e ultimamente têm aparecido vários projetos parecidos no HN. A abordagem com Vimium parece bem mais leve, então é promissora
      De uma forma ou de outra, a World Wide Web pública está se transformando em sua própria sobreposição dinâmica de servidores de API
    • Como isso difere da forma como o ChatGPT navega na web atualmente?
    • Será que dá para usar isso para criar bots que visitem sites e extraiam/analisem informações relevantes, sem escrever parsers específicos para cada site?
  • Mexi com uma ideia parecida de navegar usando screenshots e ações com o GPT-4 Vision; depois de falhar tentando sobrepor informações em cima do screenshot, acabei pegando a árvore de acessibilidade no Playwright e enviando junto como texto
    Assim o modelo conseguia saber quais opções eram interativas, e no meu caso funcionou melhor. Como o criador está por aqui e há uma lista de ideias futuras, se não houver problema, acho que valeria adicionar isso à lista

    • Boa ideia. A intenção original era usar apenas dados visuais, mas isso pode tornar o agente muito mais poderoso. Vou tentar em breve
    • Talvez seja melhor capturar o conteúdo inteiro, não só o que cabe em uma tela. Com a janela de tokens recém-ampliada, a maioria das páginas deve caber como texto ou HTML
  • Nas últimas semanas, brinquei com isso pela interface do ChatGPT. Tenho algumas dicas
    Alterar o CSS para remover gradientes e cantos arredondados ajudou; texto branco em negrito sobre vermelho foi o que funcionou de forma mais consistente. É bom aumentar o tamanho da fonte e, se dois rótulos se sobrepuserem, afastá-los um do outro e adicionar setas apontando para o elemento. Para a API, foi melhor enviar as duas imagens: a imagem anotada e a sem anotações

  • Dá para criar um piloto automático para o navegador
    Se isso for implantado em larga escala, vai ficar extremamente difícil distinguir tráfego de bots daqui para frente. Mas, no curto prazo, vejo o problema de que dificilmente será barato ou terá um custo administrável

    • Ajustando por fine-tuning modelos open source como llava ou cogvlm, acho que dá para reduzir o custo. Esta demo também ficou em torno de 6 centavos, então não é absurdamente cara, e pode melhorar com prompts bem elaborados
  • Que impacto ferramentas assim podem ter no rastreamento na web ou na publicidade na internet como um todo? Se um agente puder navegar pela web em nosso lugar e trazer exatamente o que estamos procurando, sem ver anúncios ou pop-ups e evitando rastreamento, isso pode ser um excelente bloqueador de anúncios.
    Talvez até possa melhorar a qualidade da internet ao tornar SEO inútil. Por outro lado, fico curioso se também poderia surgir o efeito colateral de a publicidade de algum modo acabar “misturada” no conteúdo trazido.

    • Se o método for enviar screenshots da página para o GPT, ele não acabaria vendo os anúncios também?
  • Muitas empresas na Holanda pagam salários assim: 1) recebem do contador os holerites, 2) iniciam manualmente uma transferência bancária para cada funcionário no valor indicado no respectivo holerite, e 3) também iniciam manualmente uma transferência bancária para enviar à autoridade fiscal o imposto sobre a folha retido na fonte.
    É um trabalho manual completamente inútil, e não há motivo para o procedimento ser manual. Só que automatizar é quase impossível. Os portais contábeis não têm API ou, quando têm, fazem você baixar os dados em PDF, ou a API custa caro. Os bancos também não têm API ou exigem cadastro em conta de desenvolvedor como se você fosse lançar um app público, quando a intenção é apenas automatizar um procedimento interno. Por isso, a forma mais fácil de pagar salários e impostos ainda é contratar uma pessoa para fazer tudo manualmente. Eu não confiaria em uma IA para iniciar transferências bancárias de verdade, mas talvez seja possível ela deixar as transações preparadas e um humano apenas aprovar o envio.

    • Isso não parece ter muita relação com IA. No Reino Unido já existem soluções como a Pento, que automatiza pagamentos a usuários e à autoridade fiscal via open banking e também envia a declaração de impostos automaticamente: https://www.pento.io/la/payroll-software
    • Isso é simplesmente um problema dos bancos. Folha de pagamento de grandes empresas não funciona assim. Bancos normalmente permitem fazer upload de um arquivo XML que define um lote de pagamentos SWIFT, e a folha de empresas pequenas também é processada desse jeito. Contadores também fornecem arquivos XML; provavelmente têm algum app para gerá-los.
    • No meu país é parecido, e alguns dados precisam ser enviados para sites de órgãos do governo. Acho que foi no começo deste ano que houve um anúncio dizendo que pessoas que usam software para executar ações no site podem ser bloqueadas.
    • Automatizar fluxos de trabalho repetitivos em GUI é o objetivo de https://github.com/OpenAdaptAI/OpenAdapt
  • É muito parecido com o conceito da Adept? Só que o produto parece ainda não estar pronto: https://www.adept.ai/

    • É meio insano que algo que a Adept supostamente está construindo há anos, depois de receber mais de US$ 300 milhões em investimento, agora possa ser feito em um dia com a API da OpenAI.
      Parece que a Adept mudou de direção no meio do caminho, mas o conceito original era muito parecido com isso.
    • https://www.adept.ai/blog/experiments :)
    • Sim. Foi inspirado na Adept e em algumas outras startups.
    • Essa é exatamente a demo em que eu pensei.