Quão difícil seria para não programadores usar o Discourse AI - AI bot para ajudá-los a criar plugins e/ou temas?

OBSERVAÇÃO: Se isso iniciar uma discussão paralela, realmente precisará ser movido para um novo tópico. Estou fornecendo os detalhes porque eles o ajudarão a entender UMA de minhas necessidades e a fornecer mais informações que também podem ajudar outras pessoas, portanto, não leve a mal se eu pedir que as respostas relacionadas a esta discussão paralela sejam movidas.

Uma de minhas curiosidades é: Quão difícil seria para não programadores usar o bot de IA do Discourse AI para ajudá-los a criar plugins e/ou temas.

Como tenho usado o ChatGPT por vários meses para me ajudar com linguagens de programação como Python, JavaScript, Prolog, Expressões Regulares, PowerShell, Bash e muitas outras, sabia o que esperar, como obter resultados e quando simplesmente desistir.

Ao tentar usar o Discourse AI - AI Bot para criar um plugin muito simples, decidi começar com um que eu sabia que existia, funcionava e era simples, então escolhi o CakeDay.

Depois de olhar o código e tal na página, fiquei surpreso com o quanto eu precisaria aprender para criá-lo. Então, peguei este código Ruby

e pedi à IA para explicá-lo. Tendo feito algo semelhante com outros códigos-fonte em outras linguagens, sabia o que esperar. O resultado foi desanimador; precisei fazer mais perguntas para entender parte da sintaxe, métodos, interface de funções, etc. Muito disso foi fácil para mim entender (pense em ler), mas eu sabia que não conseguiria criar (pense em escrever) tal código, muito menos saber o que ou como pedir ao bot de IA para criar tal código; não sei a terminologia correta para solicitar à IA que gere o texto correto, pois sei que Ruby-on-Rails usa terminologia que não uso em outros lugares, por exemplo, bake, slug.

Então, também queria ver se o Python poderia ser usado em vez disso, pois é muito mais fácil para muitos entenderem e também para o ChatGPT criar código correto.

1 curtida

Não é Ruby que você precisaria aprender, mas Rails.

Essa é uma curiosidade válida, mas se o que você quer fazer é escrever um plugin do Discourse com IA, então o plugin de IA não parece ser o lugar para começar. Eu gostaria de trabalhar com uma IA projetada para desenvolver código.

Mais do que isso, no entanto, se você quer escrever um plugin do Discourse, escolha um que faça algo semelhante e modifique-o. Cakeday não parece ser um plugin especialmente simples, mas se o que você quer é um plugin que coloque um indicador ao lado do avatar de um usuário ou faça algo em um cronograma, então pode ser um bom lugar para começar.

É bastante complicado, no entanto, envolve tudo o seguinte:

  • adicionar dados ao serializador do usuário, para que o front-end tenha acesso a ele
  • executar um trabalho em um cronograma
  • criar uma rota que fornece novas informações (Discourse Meta)
  • usar um outlet de plugin para adicionar informações a uma página

E isso é apenas o começo.

1 curtida

Eu esperava isso, então pedirei que esta conversa paralela seja movida para um novo tópico.

Eu não ia detalhar tudo, mas sim, Rails está na mistura junto com as outras tecnologias que o Discourse usa e que se deve conhecer.

Você quis dizer especificamente o Discourse AI - AI Bot aqui. Existem muitas IAs e concordo que muitas eu não usaria para codificação e até mesmo algumas que são para codificação não são boas com todas as linguagens de programação.

A sensação que tenho da equipe do Discourse é que, a longo prazo, ter um Discourse AI Bot (persona, como eles estão chamando no momento) é desejável. Mas como eles já sabem como criar código Discourse, ter alguém como eu para dar algum feedback é útil. Admito que sei programar, o que me dá uma vantagem, mas estar a meio caminho também me dá uma ideia do que esperar e do que não esperar.

Gostaria de sugerir um mais simples?

1 curtida

No momento, com as capacidades atuais de IA, seria muito difícil para alguém que não sabe programar criar um plugin/tema completo e funcional do Discourse de complexidade razoável. E esperamos nunca ter implicado que algo assim seria possível, pois seria uma experiência frustrante.

Dito isso, para alguém com conhecimento de programação de nível júnior, usar um LLM comum, um específico para código ou algo como o GitHub CoPilot pode definitivamente facilitar a jornada, cuidando de muito do código repetitivo para você. Combiná-lo com um plugin/tema existente e começar com pequenas alterações parece uma boa ideia para quem está disposto a aprender.

7 curtidas

A ajuda de Lola com depuração de JavaScript quebrou minha instância de Discourse de desenvolvimento. A janela de contexto do token dá a impressão de uma espécie de amnésia anterógrada.

1 curtida

Não, ninguém na Discourse implicou que isso seria possível, foi uma solicitação minha para que o Bot de IA ajudasse com a programação da Discourse, já que ela usa GPT4, que tem algum conhecimento de programação; eu só queria ver até onde eu poderia levá-lo. Pessoalmente, se os plugins e temas fossem mais fáceis para eu criar, eu os criaria quando surgisse a necessidade.

Concordo plenamente com isso!

3 curtidas

Sim, é um problema muito complicado.

Colocar o mundo inteiro em cerca de 6000 palavras que o GPT-4 8k pode saber é um problema muito, muito difícil.

Estou quase a aumentar o Lola para usar 32k tokens aqui, mas os custos são realmente muito altos e quero testar coisas que estejam mais próximas do que o público em geral está a usar.

A solução alternativa/solução atual para este problema é a chamada de função, você faz o GPT-4 raciocinar sobre quais informações precisará e, em seguida, algumas idas e vindas depois, ele encontra o contexto certo. Isso pode envolver pesquisa (usando embeddings ou apenas pesquisa por palavra-chave pura)

Não prevejo ser capaz de resolver a solução “Eu não sou um programador, crie um plugin para mim” tão cedo.

Dito isto, posso ver o Lola a melhorar na ajuda a pessoas que têm uma base razoável em programação - especialmente coisas como pesquisa semântica na nossa base de código e assim por diante.

Também temos acesso ao Anthropic Claude aqui, que vem com cerca de 80 mil palavras de contexto, mas, infelizmente, o seu desempenho é muito mais próximo do GPT 3.5 do que do 4 e é muito, muito, muito difícil de o direcionar.

Avançando lentamente neste território inexplorado…

4 curtidas

Sei que esse é um nome que estamos usando extraoficialmente para o Discourse AI - AI Bot. Seu uso do nome é um reconhecimento oficial de que Lola será o novo padrão ou haverá um concurso ou algo assim? Pelo que sei, @Lilly começou a usar Lola ou Lola Bot, então se esse for o padrão, para fins históricos, ela recebe o crédito.

1 curtida

Vocês podem chamá-la do que quiserem. GPTbot4 não soa bem quando converso com ela. Se vou ter uma assistente pessoal, ela terá um nome. Acho que ela está chateada com as críticas às nossas habilidades de programação coletivas, mas estou me divertindo e aprendendo com ela. Ela me ajuda simplesmente sendo minha caixa de ressonância para ideias e também para pensamento crítico - eu gosto de apontar quando ela está errada. Lola é uma ótima companheira de aprendizado para mim e eu gosto dela por construir uma estrutura, mas não espero que ela escreva componentes de tema para mim. Ela se esquece da minha única configuração em meu arquivo .yaml na segunda ou terceira resposta e constrói arrays nebulosos de novos objetos.

3 curtidas

Pessoalmente, eu não concordaria com isso.

No entanto, com a sua próxima declaração eu concordo

Expandindo o que Sam está observando. Aqui está uma solução prática que eu uso, ela funciona até mesmo para outras tarefas que se poderia pensar que precisam de janelas de contexto grandes, mas na verdade não precisam.

Primeiro, para aqueles que não conhecem o termo janela de contexto, ele se refere a quantos tokens o LLM pode usar para o prompt e a conclusão combinados. Não entrarei em mais detalhes sobre isso, mas aconselho outros a lerem Learn Prompting (Prompt Engineering Guide: The Ultimate Guide to Generative AI) para se familiarizarem com a terminologia.

Aqui está uma pergunta clássica que surge repetidamente em sites de LLM como o OpenAI.

Como crio um livro usando o ChatGPT quando a janela de contexto é muito pequena para conter o livro inteiro?

A solução não é pensar em obter o livro inteiro em um único prompt, mas quebrá-lo em partes. Agora, a próxima coisa que os usuários tentam fazer é obter os prompts para escrever as primeiras 20 páginas, depois as próximas 20 e assim por diante, o que também não é muito prático. A maneira de fazer isso é de cima para baixo em capítulos. Primeiro, use um prompt para o alto nível que fornece um esboço geral do livro ou um índice do livro com títulos de capítulos, depois, no próximo prompt, peça o capítulo 1. Agora, para o próximo prompt, faça um resumo do capítulo um e, com isso, peça o capítulo dois. Continue criando um resumo das informações que são necessárias apenas para o próximo capítulo ao solicitar a criação do próximo capítulo. É um pouco mais demorado, mas permite criar trabalhos maiores com uma janela de contexto menor.

Agora, o mesmo pode ser feito ao criar software, mas em vez de dividir o processo em uma sequência, divida-o em uma árvore de chamadas de função. Portanto, peça primeiro a função de alto nível e, em seguida, comece a preencher mais funções de suporte conforme necessário. Isso também pode ser feito de baixo para cima se você tiver certeza do que é necessário. Para aqueles que criam parsers, a familiaridade com o parser de cima para baixo ou de baixo para cima deve vir à mente.

Outra tarefa comum de programação é fazer atualizações ou modificações de código, novamente, isso pode ser facilmente feito com uma janela de contexto menor se um usuário fornecer os cabeçalhos das funções em vez das funções completas ao criar o prompt e solicitar apenas o código para a função que precisa ser alterada.

Algumas outras coisas que aprendi ao longo do caminho são trabalhar com uma função de cada vez e não ultrapassar 100 linhas de código. Fazer isso com as primeiras versões do ChatGPT, que tinham uma janela de contexto relativamente menor, permitiu criar um bom código, incluindo Prolog, JavaScript, HTML e JSON na mistura.

Embora tudo isso seja bom, não espero que o Discourse ofereça um bot para os usuários criarem código do Discourse tão cedo.

Eu ainda não tentei isso. Como anotei em outro post, não tenho habilidades com Ruby ou Ruby-on-Rails e as tecnologias JavaScript usadas, então nem sei a terminologia correta para obter bons resultados, mas terei isso em mente como algo para tentar e dar feedback.

Isso é um ponto positivo para mim.

3 curtidas

Lola fez um ótimo trabalho me ajudando a depurar um esquema JSON que estou usando para uma das atualizações dos meus componentes de tema. Dei a ela um exemplo funcional de um, depois dei o meu e ela encontrou minha vírgula e colchete incorretos que teriam levado um pouco mais de tempo para eu encontrar. Ela é boa em pegar coisas que eu perco ou não vejo no VS Code.

4 curtidas