Criando um arquivo iCalendar a partir de uma imagem com o Anthropic Claude 3.5
(gregsramblings.com)- 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 Lessonpara cada data às 14h, horário do Pacífico - O arquivo
.icsgerado 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 Lessonpara cada data às 14h, horário do Pacífico - O texto iCalendar gerado incluía
BEGIN:VCALENDAR,VERSION:2.0,PRODID,CALSCALE:GREGORIANe 13 blocosVEVENT - Cada evento continha os seguintes campos
SUMMARY:Jazz Piano LessonDTSTART,DTEND: evento de 1 horaDTSTAMP:20240824T000000ZUIDexclusivo 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
.icse importá-lo no aplicativo de calendário desejado - No Google Calendar, o arquivo
.icsfoi 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
.icse forneceu código Python; depois, ao pedir “mostre apenas o conteúdo do arquivo.ics”, ele gerou esse conteúdo
1 comentários
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.
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.
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.
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.
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.
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%.
É 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.
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
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
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
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