![Chat é a nova consulta](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706626562_Chat-e-a-nova-consulta-150x150.jpg)
Chat é a nova consulta
30 de janeiro de 2024![Repensando os testes em produção](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706638442_Repensando-os-testes-em-producao-150x150.jpg)
Repensando os testes em produção
30 de janeiro de 2024Lamento nunca ter estudado cálculo na escola e, ao longo dos anos, fiz alguns esforços para preencher essa lacuna no meu conhecimento. Teria sido uma história diferente, tenho certeza, se eu tivesse tido a sorte de ter Eddie Woo como professor de matemática; é incrível ter suas aulas disponíveis sob demanda. Também aprendi com os vídeos de Sal Khan e, desta vez, voltei à Khan Academy para ver como a integração do ChatGPT muda a experiência de aprendizagem.
Quando comecei a fazer um exercício, o site Khan me apresentou um gráfico feito com uma ferramenta da qual eu nunca tinha ouvido falar: o GeoGebra. Percebi que seria útil saber como usar essa ferramenta para representar graficamente os conceitos com os quais estava trabalhando: uma equação parabólica; uma secante; e o percurso, subida e inclinação da secante. Cheguei ao ponto de traçar a parábola, usando f(x)=16-x^(2), mas não tinha certeza de como proceder. Então perguntei ao ChatGPT.
Ele forneceu estas informações do GeoGebra:
Bate-papoGPT
A = (1, 16 - 1^2) B = (4, 16 - 4^2) line(A, B)
Usei essas entradas para traçar os pontos e desenhar a linha, e também verifiquei que poderia ter usado o Apontar e Linha ferramentas para fazer as mesmas coisas manualmente.
Então mostrei meu progresso – colando outra captura de tela! – e perguntou sobre a inclinação da linha. (Você ainda não pode fazer isso com o assistente integrado de Khan, mas pode fazer isso diretamente no ChatGPT.)
A equação da reta secante é fornecida na saída do GeoGebra como y = -5x + 20. Isso significa que a reta cai 5 unidades verticalmente para cada 1 unidade que se move horizontalmente para a direita.
Como posso adicionar ascensão e corrida para ilustrar isso?
Bate-papoGPT
perpendicularLine(A, x-axis) perpendicularLine(B, y-axis)
Isso não funcionou, como o ChatGPT reconheceu quando mostrei o resultado de suas instruções.
Ele já havia me mostrado a receita que essas entradas erradas pretendiam atalho: criar um triângulo com A, B e um novo ponto C diretamente à direita de A e diretamente acima de B. Agora ele repetiu essas instruções para fazer essas coisas manualmente, usando a ferramenta Linha e também me deu novos atalhos.
Bate-papoGPT
RunLine: Line(A, A + (1, 0)) RiseLine: Line(B, B + (0, 1))
Funcionou, mas agora eu estava pegando o jeito do GeoGebra e percebi que realmente só queria segmentos como este.
C = Point(4,15) run = Segment(A,C) rise = Segment(B,C)
Em seguida, eu queria mostrar a inclinação e os comprimentos dos segmentos. ChatGPT me deu a informação correta para a inclinação: inclinação = inclinação (g). Mas sua receita para exibir os comprimentos dos segmentos envolvia a adição de linhas, rótulos e medidas codificadas desnecessárias. Eu encontrei uma maneira melhor.
Parece que posso simplificar apenas definindo propriedades de rótulo e valor nos segmentos.
Isso mesmo. No GeoGebra, definir as propriedades de rótulo e valor nos segmentos é uma forma muito eficiente de exibir os comprimentos diretamente no gráfico. Sua imagem mais recente mostra o rótulo “run = 3” colocado corretamente próximo ao segmento horizontal e o rótulo “rise = 15” colocado corretamente próximo ao segmento vertical, que é muito mais claro.
Aqui estava meu resultado final:
É um ótimo exemplo da regra 7 dos 7 Princípios Orientadores para Trabalhar com LLMs: Aprenda Fazendo. Na era pré-LLM eu teria chegado ao mesmo resultado eventualmente, mas esta foi uma experiência radicalmente melhor. É claro que seria ideal realizar o exercício com um treinador humano que conhecesse tanto a matemática como a interface do GeoGebra, mas na realidade isso raramente é possível. Iterar minhas tentativas de gráfico com ChatGPT foi uma ótima maneira de iniciar minha experiência no GeoGebra. O conhecimento do ChatGPT sobre a interface da ferramenta, embora imperfeito, foi muito útil. E sua incrível capacidade de ver e reagir às minhas tentativas aponta para uma maneira totalmente nova de aprender a usar software.
Replicando o experimento
Para verificar se isso foi um acaso, mudei para uma tarefa diferente: visualização dos resultados da consulta no Metabase. Nesse caso, eu tinha muita experiência com o software, mas já fazia um tempo que não tocava no Metabase. Meu conhecimento sobre isso estava enferrujado e o Metabase provavelmente mudou nesse ínterim.
Para começar, colei uma imagem de uma pergunta do Metabase que mostrava uma amostra dos dados, junto com o painel de visualização da ferramenta, e perguntei como traçar os commits por mês.
Bate-papoGPT
Você precisará agregar seus dados por mês. Para fazer isso, você pode usar a opção “Resumir”.
No menu Resumir, procure a opção “Agrupar por”.
Escolha a coluna “Data do autor” para agrupar.
Então, você deverá ter a opção de ajustar o agrupamento para “Mês” em vez de “Dia” ou “Ano”.
Isso estava certo em relação a isso Resumir e Agrupar por. Mas não havia opção de agrupar por mês. Talvez existisse, ou talvez o ChatGPT tenha entendido errado. Procurando na interface do Metabase, redescobri a capacidade de criar uma coluna personalizada e percebi que precisava derivar uma coluna AAAA-MM do formato AAAA-MM-DD. Data do autor coluna. Como? ChatGPT forneceu duas abordagens plausíveis, a segunda das quais funcionou.
Agora eu queria contar o número de colaboradores distintos por mês. Essas instruções funcionaram.
Bate-papoGPT
Use a opção “Resumir” novamente para adicionar uma nova métrica.
Você desejará adicionar uma contagem de colaboradores distintos. Para fazer isso, você deve escolher a opção “Contagem de distintos…”, que pode ser representada como “Contagem distinta” ou algo semelhante.
Para a contagem distinta, selecione a coluna “Login do autor”, pois é ela que identifica cada contribuidor.
A Metabase deve reconhecer automaticamente que você tem duas métricas diferentes e oferecer a criação de um gráfico multissérie.
Isso aconteceu. Neste momento percebi o Login do autor coluna contém nulos que devo remover; estas foram minhas instruções.
Bate-papoGPT
Abra o menu Filtro:
Encontre o botão “Filtrar” na interface do construtor de consultas, que geralmente fica próximo ao botão “Resumir”.
Adicione um novo filtro:
Clique em “Filtro” e escolha adicionar um novo filtro.
Selecione a coluna a ser filtrada:
Nas opções de filtro, selecione a coluna “Login do Autor”.
Defina os critérios de filtro:
Defina os critérios como “Não é” ou “Não é igual” e selecione ou digite “nulo”. Isso diz ao Metabase para filtrar todas as linhas onde o “Login do Autor” é nulo.
O critério real acaba sendo não está vazio. Isso era óbvio para mim, mas e se você não tivesse certeza? Mostrei minha tela e pedi para verificar a escolha.
Notavelmente, o ChatGPT não apenas confirmou que não está vazio foi a escolha certa, mas aparentemente detectou que eu já a havia selecionado.
Você já selecionou o filtro correto para excluir valores nulos. A opção “não vazia” filtrará todas as linhas onde o campo “Login do autor” for nulo ou vazio.
Agora eu queria contar o número de repositórios distintos por mês. Essa informação está implícita nos dados – o html_url coluna inclui nomes de repositório que só precisam ser extraídos com um regex. Eu nunca dei ao ChatGPT uma string como https://github.com/turbot/steampipe/commit/a4b12…nem uma dica sobre como usar um regex para extrair o nome do repositório (pregado/tubo de vapor, neste caso), mas não havia necessidade de nada disso. Ele descobriu o que fazer e me mostrou como.
Acontece que extrato regular é a função Metabase correta, e esse foi exatamente o encantamento certo para minha nova coluna personalizada.
Tal como acontece com o GeoGebra, o conhecimento do ChatGPT sobre Metabase era incompleto, mas ainda assim muito útil. E o fluxo de trabalho, que novamente envolvia a exibição de capturas de tela de resultados intermediários, foi novamente surpreendentemente eficaz.
Quando humanos e máquinas leem os documentos
Em Como usar LLMs para documentação dinâmica, indiquei que solicitar aos LLMs comentários instantâneos sobre o código pode ser um complemento útil para comentários escritos por autores de código. Parece que os LLMs serão capazes de complementar de forma útil a documentação de software de maneira semelhante.
Idealmente, ferramentas como GeoGebra e Metabase fornecem interfaces tão intuitivas que você raramente precisa ler os documentos, e você pode aprender o software apenas fuçando nele. Na realidade, é claro, precisamos desses documentos – e eles ainda precisam ser excelentes. Mas agora extrairemos deles um novo benefício. Quando pudermos fazer parceria com máquinas que leram os documentos e puderem olhar por cima de nossos ombros enquanto tentamos fazer as coisas descritas nos documentos, turbinaremos nossa capacidade de mergulhar em ferramentas de software desconhecidas e aprender rapidamente como usá-las.
A postagem Como aprender ferramentas de software desconhecidas com ChatGPT apareceu pela primeira vez em The New Stack.