Acho interessanto o que o ChatGPT oferece para o VBA. Claro, espero que a galera do VBA possa contribuir ainda mais sobre como podemos nos beneficiar usando isso. Estou supondo que, especialmente com uma linguagem que não é totalmente popular, certos truques se tornam mais importantes para obter bons resultados. Queria compartilhar dicas aprendidas específicas do VBA e convidar outros a compartilharem as suas.
Breve conversa com o ChatGPT
Eu:
Entendo que você é um modelo de linguagem e não pode compilar ou executar código que eu lhe ofereço ou que você gera a meu pedido. Quando peço ajuda em uma linguagem como VBA, como você coordena as vastas informações disponíveis para você a fim de fornecer código específico que funcionará dentro dos requisitos sintáticos do VBA?
ChatGPT:
Como modelo de linguagem, sou capaz de entender e processar instruções e consultas em linguagem natural. Quando você me pede ajuda com VBA, primeiro analiso sua solicitação e entendo o que você está tentando realizar. Então, uso meu conhecimento de sintaxe VBA e conceitos de programação para gerar código que deve realizar sua tarefa. Também uso meu vasto conhecimento de programação e outras linguagens para garantir que o código que gero esteja sintaticamente correto e siga as melhores práticas. No entanto, não sou capaz de executar ou testar o código, então é importante testar o código você mesmo antes de usá-lo em um ambiente de produção.
Eu:
É útil se eu incluir dicas contextuais para ajudar você a permanecer dentro dos limites do VBA? Por exemplo, o VB6 é essencialmente o mesmo que o VBA, mas o VB.NET é bem diferente. Eu poderia consultar o Excel, o Word ou o Outlook. Talvez existam até guias de estilo do VBA que eu possa consultar. No entanto, também acho que às vezes você se sai especialmente bem com solicitações muito simplistas. Parece que há prós e contras em lançar uma rede mais ampla ou mais estreita.
ChatGPT:
Fornecer dicas contextuais pode definitivamente me ajudar a gerar um código mais preciso e relevante para seu caso de uso específico. Por exemplo, se você especificar que está trabalhando com o Excel VBA, posso fornecer um código que é adaptado para trabalhar com o modelo de objeto do Excel e a funcionalidade específica. Da mesma forma, se você especificar que está trabalhando com o Outlook VBA, posso fornecer um código que interage com os objetos e a funcionalidade do Outlook.
No entanto, fornecer muitos detalhes específicos pode limitar minha capacidade de gerar código que poderia ser útil em outros contextos ou cenários. Por outro lado, fornecer muito pouca informação pode tornar mais difícil para mim entender exatamente o que você está tentando realizar.
Acho importante notar que as respostas do ChatGPT sejam necessariamente a verdade. De certa forma, é como pressionar um gênio de pé na frente de um pódio a dar respostas imediatas sobre tópicos de memória, como se a sua vida dependesse disso. Ainda assim, os resultados podem ser bem notáveis.
Lições Aprendidas até Ago|2024
Vá para um bom começo: Se eu começar com uma pergunta complexa, a resposta geralmente retorna em uma formatação menos que ideal, e então os acompanhamentos permanecem dessa forma. Alternativamente, se começar com uma resposta perfeitamente formatada, geralmente vai bem. Uma pergunta simples que parece dar um bom começo é: "Você pode fornecer código VBA em blocos de código básicos? Eu gostaria de ver um programa Hello World."
Outras dicas de prompt: Para inserir uma quebra de linha em um prompt inicial, use SHIFT ENTER. Você pode pedir respostas em um formato tabular e (se ele já não fizer isso sozinho). Microgerenciar a formatação não funciona bem. Obtive algum sucesso com "Por favor, mostre o restante, começando pelo comentário [alguma linha de comentário específica ]" ou digite apenas "Continuar" que parece que funcionará melhor.
Fraco com Arrays: Descobri que o ChatGPT frequentemente retorna arrays de funções com um formato estranho (,), ou pensa que você pode usar uma variável em uma declaração Dim, ou pensa que você pode usar ReDim Preserve onde não pode. Ensinar as regras não funciona bem, embora outras abordagens indiretas possam funcionar (por exemplo, pedir para ele faça isso no estilo do VBScript). EDIT: Ele também fica confuso e pensa que coleções têm um método .Exists, como o Scripting.Dictionary.
Forte com estrutura: Um resultado especialmente impressionante foi pedir para desenvolver um esquema para um banco de dados de revistas em quadrinho, reunindo informações sobre um tópico. Isso pode ser usado para projetar classes ou procedimentos, uma vez que a estrutura esteja definida. Também fiquei impressionado com o que ele faz com ADO RecordSets. Eles têm uma quantidade razoável de overhead para configurar, mas o ChatGPT não se importa e lida com eles muito bem.
Fica confuso sobre constantes: Se pedir uma quebra de linha, tenho dificuldade em fazer com que ele reconheça a constante VbLf, também conhecida como Chr(10).
Forte com Explicação de RegExp: Peça para ele explicar um RegExp complicado, e não diria que é totalmente confiável, mas ele lhe diz muita coisa. Agora, já ficaria menos confiante no que ele gera.
Comece com um Loop: Primeiro, eu pediria para ele produzir resultados complicados em um array 2D. Em seguida peço para fazerer um loop pelos objetos e mostrar informações pela 'janela imediata' do VBA. Então, se isso funcionar, foco em adicionar uma estrutura. Isso ajuda-o a lidar com uma coisa de cada vez.
Fraco com funções de API de 64 bits: Acho que ele assume que quero 32 bits e não as atualiza de forma confiável.
Building Classes: Estou explorando como fazê-lo ajudar na construção de classes. Mas claro, isso pode rapidamente somar muito código. Uma maneira de começar é perguntar quais procedimentos ou outras estruturas ele usaria para estabelecer uma classe, tentar construir uma estrutura hierárquica e partir daí.
Metaprogramação: Meu processo básico parece estar mudando, onde agora eu só tenho uma tonelada de código sendo jogado em mim e isso se torna uma tarefa importante de organização. Eu acho que mais ferramentas para organizar código se tornarão importantes em breve.
Pular entre Níveis: Às vezes você precisa ser específico, mas às vezes você pode ir para o nível de 30.000 pés e obter material que você nunca teria pensado.
Outros links rápidos:
https://www.reddit.com/r/ChatGPT/comments/zpv2t5/promptwriting_best_practices_guide/
https://github.com/f/awesome-chatgpt-prompts
É incrível, ele também pode te ajudar em
"Aja como uma planilha do Excel"
"Aja como um gerador de prompts"
"Aja como um terminal SQL"
"Aja como um visualizador de dados científicos"
"Aja como um artista ASCII"
"Aja como um engenheiro de aprendizado de máquina"
"Aja como um designer SVG"
"Aja como um especialista em TI"
"Aja como um gerador de Regex"
"Aja como uma postagem do StackOverflow"
Clique aqui e nos contate via What's App para avaliarmos seus projetos
Nenhum comentário:
Postar um comentário