4 pontos por xguru 2024-08-13 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Um projeto que tem como objetivo melhorar o desenvolvimento de software de código aberto criando um assistente automatizado, um "agente", para manutenção de código aberto
    • Isso pode reduzir a quantidade de trabalho repetitivo relacionado à manutenção de código aberto
  • A capacidade dos grandes modelos de linguagem (LLMs) de analisar significado em linguagem natural e de converter entre comandos em linguagem natural e código de programa cria novas oportunidades para que agentes interajam com as pessoas de forma mais fluida
  • O LLM será apenas uma parte do agente, e a maior parte do comportamento do agente consistirá na execução de código padrão e determinístico
  • Diferentemente do uso de LLM focado em desenvolvimento, o Oscar não tenta complementar nem substituir o processo de escrita de código
  • Em vez disso, a ideia é focar nas partes menos interessantes, como lidar com issues recebidas e relacionar perguntas com a documentação existente

Objetivos do projeto

  • Reduzir o esforço de manutenção para resolver issues [resolver nem sempre significa corrigir]
  • Reduzir o esforço de manutenção para resolver listas de mudanças (CL) ou pull requests (PR) [resolver nem sempre significa enviar/fazer merge]
  • Reduzir o esforço de manutenção para resolver perguntas em fóruns
  • Apoiar mais pessoas para que possam se tornar mantenedores produtivos

Abordagem

  • Como as tarefas repetitivas da manutenção de código aberto não se limitam a projetos Go, o objetivo é construir uma arquitetura que todos os projetos de software possam reutilizar e expandir
  • Até agora, foram identificadas três funcionalidades que serão partes importantes do Oscar:
    1. Indexar e expor o contexto relevante do projeto durante interações com contribuidores
    2. Usar linguagem natural para controlar ferramentas determinísticas
    3. Melhorar em tempo real e rotular/direcionar adequadamente durante ou logo após o envio, por meio da análise de relatórios de issues e de CLs/PRs

Indexação e exposição do contexto relevante do projeto

  • Os LLMs podem analisar documentos gerando embeddings, que são vetores unitários de ponto flutuante em alta dimensão com a propriedade de mapear documentos com significado semelhante para vetores que apontam em direções semelhantes
  • Combinados com um banco de dados vetorial para buscar vetores semelhantes ao vetor de entrada, os embeddings de LLM oferecem uma forma muito eficaz de indexar todo o contexto de um projeto de código aberto
  • O agente protótipo implementa essa funcionalidade e responde a novas issues no repositório Go com uma lista de até 10 links de alta relevância

Uso de linguagem natural para controlar ferramentas determinísticas

  • À medida que projetos de código aberto crescem, o número de ferramentas úteis aumenta, e pode ser difícil acompanhar todas elas e lembrar como usar cada uma
  • Os LLMs são muito eficazes em converter intenções escritas em linguagem natural em formas executáveis, como código de programa ou chamadas de ferramentas
  • Foram feitos experimentos com o Gemini para selecionar e chamar ferramentas disponíveis a fim de atender pedidos em linguagem natural, mas ainda não há nada realmente funcionando

Análise de relatórios de issues e CLs/PRs

  • Publicar em issues relacionadas é uma forma limitada de análise, mas há planos de adicionar outros tipos de análise semântica, como identificar issues sobre desempenho e adicionar o rótulo "performance"
  • Há planos de explorar se é possível analisar relatórios bem o suficiente para identificar se são necessárias mais informações para torná-los úteis
  • Todas essas análises e as interações resultantes funcionam muito melhor quando acontecem logo após o envio do relatório, enquanto quem reportou ainda está disponível e engajado

Protótipo

  • O primeiro protótipo para explorar o Oscar se chama Gaby (Go AI bot), roda no rastreador de issues do Go e publica como @gabyhelp
  • Até agora, o Gaby indexa o conteúdo de issues do Go no GitHub, indexa a documentação do Go em go.dev e responde a novas issues com links relevantes
  • A estrutura do Gaby facilita sua execução com qualquer LLM, camada de armazenamento e banco de dados vetorial, em todo tipo de serviço de hospedagem

Ainda não há comentários.

Ainda não há comentários.