2 pontos por GN⁺ 2024-08-26 | 1 comentários | Compartilhar no WhatsApp
  • Em uma situação em que o cronograma de aulas de piano jazz foi enviado apenas como uma imagem JPG, o Claude 3.5 Sonnet reduziu o trabalho repetitivo de ler as datas exibidas e transferi-las para o calendário
  • As 13 datas marcadas em verde foram extraídas como aulas quinzenais às sextas-feiras, de 13 de setembro de 2024 a 23 de maio de 2025
  • Em seguida, na mesma conversa, ele gerou até o texto de um arquivo ICS contendo eventos Jazz Piano Lesson para cada data às 14h, horário do Pacífico
  • O arquivo .ics gerado pôde ser salvo como texto e importado em Importar/exportar no Google Calendar, sendo adicionado corretamente
  • O ChatGPT também identificou as datas, mas inicialmente apresentou código Python em vez de um .ics; só depois de solicitar diretamente o conteúdo do arquivo é que gerou o texto iCalendar

Da agenda em imagem ao arquivo de calendário

  • O professor de piano jazz enviou a agenda de aulas particulares de outono/inverno como uma imagem JPG, com 13 datas de aula marcadas com marcador verde
  • Em vez de criar manualmente 13 compromissos no Google Calendar, a imagem foi enviada ao Claude 3.5 Sonnet
  • A primeira solicitação foi a seguinte
    • List the dates that are outlined in green
  • As 13 datas extraídas pelo Claude foram as seguintes
    • Friday, 13-Sep-24
    • Friday, 27-Sep-24
    • Friday, 11-Oct-24
    • Friday, 8-Nov-24
    • Friday, 6-Dec-24
    • Friday, 20-Dec-24
    • Friday, 17-Jan-25
    • Friday, 31-Jan-25
    • Friday, 28-Feb-25
    • Friday, 14-Mar-25
    • Friday, 11-Apr-25
    • Friday, 25-Apr-25
    • Friday, 23-May-25
  • Essas datas correspondem a uma agenda de aulas quinzenais às sextas-feiras que começa na semana que inclui terça-feira, 10 de setembro de 2024

O arquivo iCalendar criado pelo Claude

  • Na solicitação seguinte, foi pedido que ele criasse um arquivo ICS com eventos Jazz Piano Lesson para cada data às 14h, horário do Pacífico
  • O texto iCalendar gerado incluía BEGIN:VCALENDAR, VERSION:2.0, PRODID, CALSCALE:GREGORIAN e 13 blocos VEVENT
  • Cada evento continha os seguintes campos
    • SUMMARY:Jazz Piano Lesson
    • DTSTART, DTEND: evento de 1 hora
    • DTSTAMP:20240824T000000Z
    • UID exclusivo por data
  • Os horários foram convertidos para a notação Z de UTC, e as mudanças de horário do Pacific Time foram refletidas no arquivo
  • O procedimento de uso consistiu em copiar o conteúdo gerado, colá-lo em um novo arquivo de texto, salvá-lo com a extensão .ics e importá-lo no aplicativo de calendário desejado
  • No Google Calendar, o arquivo .ics foi importado pelo menu Importar/exportar das configurações, e os compromissos foram adicionados corretamente
  • Ao testar a mesma entrada no ChatGPT, ele identificou as datas, mas inicialmente respondeu que não era possível criar um arquivo .ics e forneceu código Python; depois, ao pedir “mostre apenas o conteúdo do arquivo .ics”, ele gerou esse conteúdo

1 comentários

 
GN⁺ 2024-08-26
Opiniões no Hacker News
  • Ao pedir ao Claude para extrair listas ou dados, é preciso sempre conferir o resultado de novo.
    99,9% está correto, mas às vezes 1 ou 2 registros saem errados e, como o resultado parece plausível, fica ainda mais fácil deixar passar. Em listas ou tabelas longas, modelos de linguagem grandes podem errar de forma muito sutil; já passei por isso. Confie, mas verifique.
    Se a resposta puder ser verificada mecanicamente, uma opção é pedir ao modelo de linguagem grande que escreva um validador em Python que possa ser executado internamente. O ChatGPT consegue executar código e, pelo que sei, o Sonnet 3.5 também, embora eu não tenha testado pessoalmente.

    • A tendência dos modelos de linguagem grandes a cometerem erros de diferença de 1 vai corroer muito a confiança na “verdade”, e tenho medo de que os próximos anos sejam bem difíceis. Em uma escala de tempo mais longa, até o colapso do conhecimento objetivo parece possível.
      Há uma diferença entre perguntar a data de nascimento de George Washington e receber “20 de maio de 2020” como resposta, e receber, com confiança, uma alucinação como “20 de fevereiro de 1733”. À primeira vista, parece plausível. O Presidents' Day é em fevereiro, parece ter relação com aniversário, e o ano também parece certo; é fácil sentir que isso basta.
      Mas está errado, e é assustador que modelos de linguagem grandes afirmem esses “fatos” com uma postura convicta. Eles foram feitos para falar assim como modelos probabilísticos, e não havia mecanismos suficientes para checar ou verificar a informação.
      “Confie, mas verifique” é paradoxal e circular. Se eu preciso conferir cada fato dado pelo ChatGPT na Wikipedia, que considero uma fonte superior de verdade, por que não começar por lá desde o início? Se preciso criar um validador em Python para verificar a saída, por que não fazer isso desde o início?
      Esses erros sutis vão causar grandes problemas. Erros de diferença de 1 são muito difíceis de encontrar, os dados vão sendo contaminados lentamente e seguindo uma direção cada vez mais equivocada, até percebermos tarde demais. Seria até melhor se todo o lixo produzido por modelos de linguagem grandes fosse tão óbvio quanto recomendar passar cola na pizza, mas a realidade provavelmente será mais parecida com veneno se infiltrando aos poucos no poço; quando saídas imprecisas começarem a entrar em partes importantes da vida, isso pode virar um problema sério.
    • Com esse nível de precisão, é muito melhor do que fazer sozinho.
      Acho que eu mesmo não conseguiria nem 99% de precisão. Se, nesse tipo de tarefa, for realmente 99,9% de precisão, eu aceitaria de bom grado.
    • Se estiver 99,9% correto e as aulas de piano forem a cada duas semanas, isso dá 1 erro de agenda em 40 anos. Nesse nível, parece suficiente mesmo sem verificação.
    • Provavelmente é melhor pedir ao modelo de linguagem grande para escrever um script.
      Por exemplo, eu estava testando dois apps de podcast e queria ver a diferença entre os feeds assinados. No começo, pedi para comparar dois arquivos OPML, mas o resultado veio errado. Eu poderia ter passado 30 minutos refinando prompts e verificando manualmente, mas em vez disso pedi que escrevesse um script para comparar os dois arquivos, e funcionou bem. Comparado ao processo tedioso de verificar manualmente uma saída complexa, é relativamente fácil revisar um script e ficar confiante de que ele provavelmente está correto.
    • Além do problema de precisar conferir de novo os resultados ao pedir ao Claude que extraia listas e dados, há também a questão de que os modelos são ajustados para serem prestativos demais.
      Tentei fazer uma tarefa parecida com a do artigo original usando dados não em inglês, e não consegui impedir o Claude de “gentilmente” traduzir parte dos dados para o inglês. Se eu dizia “inclua a descrição da imagem”, ele traduzia; se eu dizia “inclua a descrição da imagem, mas não traduza nem resuma”, ele simplesmente pulava.
  • Duas semanas atrás, tive exatamente o mesmo caso de uso: recebi um PDF da escola e estava em um café só com o celular.
    Usei o ChatGPT, e a afirmação do texto de que ele não consegue gerar diretamente um arquivo .ics com o interpretador de código está correta, mas esse problema específico era totalmente solucionável. Em um celular Android, fiz assim: pedi para extrair todas as datas, horários e observações úteis do PDF; depois, para gerar o conteúdo no formato de arquivo .ics como saída de código; e então usei o interpretador de código para colocar esse conteúdo em um arquivo e salvá-lo com a extensão .ics.
    Ele lidou bem com tudo até o fim, e consegui baixar o arquivo no app gcal do celular, abri-lo e importar todos os eventos.
    A alegação de que o interpretador de código não consegue “gerar” arquivos ICS se deve ao fato de que o ambiente Python em execução não tem uma biblioteca específica para essa tarefa. Arquivos ICS são apenas arquivos de texto em um formato específico, então dá perfeitamente para criá-los.

    • É interessante, mas talvez o ChatGPT tenha ficado mais relutante em gerar saída ics. Em maio, não foi muito difícil: https://chatgpt.com/share/0848349d-4b0b-40f8-9d24-e9c4ffc065...
    • Agora seria legal poder adicionar uma camada ICS a mapas e publicar eventos ICS em uma localização GPS com percepção de tempo. Estou embarcando na onda do InstantDB, então por enquanto pretendo tentar resolver todos os problemas batendo neles com isso.
    • O Claude.ai simplesmente me deu o texto, e só precisei salvá-lo como um arquivo my.ics. Fico curioso se o ChatGPT também conseguiria fazer isso com um prompt diferente.
  • Fiz algo parecido no ChatGPT-4o, dando a ele um arquivo txt com uma lista de títulos de filmes. Pedi para retornar a data de lançamento de cada filme e depois recebi um arquivo iCal com todas as datas de lançamento dos filmes como eventos de aniversário recorrentes todo ano, para que eu pudesse assistir aos meus filmes favoritos a cada aniversário.
    Também fiz isso para alguns amigos e, até agora, em mais de 100 títulos de filmes no total, a taxa de sucesso foi de 100%.

    • Acho que não funcionaria tão bem para bons álbuns de música. Durante muito tempo, álbuns eram lançados às terças-feiras, e talvez ainda sejam. Então tudo acabaria concentrado em um único dia da semana.
      É por isso que me lembro que 11 de setembro de 2001 foi uma terça-feira. Era dia de lançamento de álbuns, e havia um álbum bom naquele dia.
    • Fico curioso se você conferiu todas as datas de novo.
  • Lugares como escolas ou empregadores ainda distribuem muitos calendários em formato PDF
    Gastam mais tempo com branding e formatação visual do que em criar algo em um formato que possa ser importado para um app de calendário e usado de forma prática
    Parece que poderia haver um processo em duas etapas que se generalizasse de forma mais robusta. Primeiro, ler qualquer documento e transformar datas, horários e fusos horários, locais, URLs, notas e recorrência em uma tabela; segundo, ler uma tabela com mais ou menos essa estrutura e gerar um arquivo ou link para Google Calendar, iCal, ICS
    Também parece possível ajustar finamente modelos ou agentes separados para executar muito bem cada etapa

    • Você está superestimando bastante a competência técnica do grupo de pais e subestimando a utilidade de um PDF imprimível com as datas principais
  • Aqui, acho que a Siri falhou. Algo como “crie um evento que comece na segunda-feira e dure 90 dias” sempre foi quase uma aposta
    A Siri também não conseguia fazer as coisas que eu não queria fazer manualmente. Então fica difícil chamá-la de assistente

  • Coloquei no GPT4-o uma captura de tela da lista de transações do internet banking e obtive uma lista de transações para a declaração de impostos da empresa. Conferi visualmente e o resultado estava correto
    Antes disso, um gerente de produto tinha enviado uma captura de tela com uma lista de IDs de empresas para ativar uma feature flag. Em vez de digitar tudo manualmente, pedi ao GPT4-o para criar, a partir da captura de tela, uma lista separada por vírgulas, e também funcionou perfeitamente

    • A OpenAI deve ficar feliz em receber todas essas informações confidenciais ;)
  • Isso é incrível. Ao mesmo tempo, também mostra bem um padrão de design que eu gostaria que se espalhasse mais graças à IA: formatos de arquivo interoperáveis e legíveis por humanos. Coisas como arquivos .ICS
    Seria bom se mais sites e apps priorizassem o suporte a esses formatos. Isso não só facilita o uso com IA no meio, como também permite que mais pessoas criem extensões de forma criativa
    Nos últimos 10 anos, mais ou menos, houve uma tendência de, em nome da “simplicidade”, os dados ficarem mais isolados em silos e os próprios arquivos perderem importância; espero que isso recue um pouco

  • Tenho criado itens de calendário com frequência usando o ChatGPT. Links do Google Calendar, arquivos ICS e QR codes, todos funcionaram
    Não sei o que deu errado no texto original

    • Na última vez que tentei com o GPT-4-Turbo, quando pedi um arquivo ICS, ele recusou dizendo que não podia criar o arquivo. Mas, quando pedi para codificar no formato iCal, ele gerou a saída em um bloco de código Markdown, e eu copiei para o Notepad e salvei como ICS
      Hoje em dia, também dá para pedir para “usar Python” para esse objetivo. Aí ele até cria o arquivo, mas como precisa codificar o resultado como uma string ou array em Python, pode aumentar a chance de erros
  • Usar IA para convites de calendário definitivamente faz sentido. Fiz uma tarefa parecida aqui, e ical é ainda mais simples
    https://hareeshganesan.com/2024/07/14/baby-calendar

  • Tenho simplificado entrada de dados de forma parecida com o gpt 4o. Já é bastante útil, mas as pessoas ainda não estão fazendo muitas tarefas estruturadas com grandes modelos de linguagem
    Mas é tão obviamente útil que acho que isso vai mudar. Qualquer tarefa de inserir dados em algum formulário agora pode ser automatizada, e de fato será. Especialmente se as informações estiverem em papel ou em uma forma imprimível, basta apontar a câmera e revisar rapidamente
    Sugar informações de coisas como placas e pôsteres pode ser surpreendentemente útil. As pessoas gastam muito esforço e dinheiro transmitindo visualmente muita informação que não existe em um formato digital de fácil acesso

    • Em testes, para vários formulários ou documentos, a taxa de extração de informações ficou em torno de 90%. Quanto mais complexo o formulário, mais difícil fica