Skip to main content
O mecanismo de contexto do Devin Desktop desenvolve um entendimento aprofundado da sua base de código, das ações anteriores e da próxima intenção. Historicamente, as abordagens de geração de código se concentravam em fazer o fine-tuning de modelos de linguagem de grande porte (LLMs) em uma base de código, o que é difícil de escalar para atender às necessidades de cada usuário. Uma abordagem mais recente e popular usa retrieval-augmented generation (RAG), com foco em técnicas para construir prompts altamente relevantes e ricos em contexto a fim de obter respostas precisas de um LLM. Implementamos uma abordagem de RAG otimizada para o contexto da base de código, que gera sugestões de maior qualidade e menos alucinações.
O Devin Desktop oferece fine-tuning completo para clientes Enterprise, e a melhor solução combina fine-tuning com RAG.

Contexto padrão

Por padrão, o Devin Desktop leva em conta várias fontes de contexto relevantes.
  • O arquivo atual e outros arquivos abertos no seu IDE, que geralmente são muito relevantes para o código que você está escrevendo no momento.
  • Toda a base de código local é então indexada (incluindo arquivos que não estão abertos), e trechos de código relevantes são recuperados pelo mecanismo de busca do Devin Desktop enquanto você escreve código, faz perguntas ou executa comandos.
  • Para usuários Pro, oferecemos janelas de contexto maiores, limites de indexação mais altos e limites maiores para contexto personalizado e itens de contexto fixados.
  • Para usuários de Teams e Enterprise, o Devin Desktop também pode indexar repositórios remotos. Isso é útil para empresas cuja organização de desenvolvimento trabalha em vários repositórios.

Fixação de contexto

Boas práticas

A fixação de contexto é muito útil quando a tarefa no arquivo atual depende de informações de outros arquivos. Tente fixar apenas o que for necessário. Fixar contexto demais pode deixar o modelo mais lento ou prejudicar seu desempenho. Aqui estão algumas ideias para fixar contexto de forma eficaz:
  • Definições de módulos: fixar arquivos de definição de classes/structs que estão no seu repo, mas em um módulo separado do arquivo ativo no momento.
  • Frameworks/bibliotecas internas: fixar diretórios com exemplos de código de como usar frameworks/bibliotecas.
  • Tarefas específicas: fixar um arquivo ou pasta que define uma interface específica (por exemplo, arquivos .proto, arquivos de classes abstratas, templates de configuração).
  • Área de foco atual: fixar o diretório “mínimo em comum” que contém a maioria dos arquivos necessários para a sessão de codificação atual.
  • Testes: fixar um arquivo específico com a classe para a qual você está escrevendo testes unitários.

Recursos de contexto específicos do chat

Ao conversar no Devin Desktop Chat, você tem várias maneiras de aproveitar o contexto da base de código, como menções com @ ou diretrizes personalizadas. Consulte a página de Chat para mais informações.

Perguntas frequentes (FAQs)

O Devin Desktop indexa minha base de código?

Sim, o Devin Desktop indexa sua base de código. Ele também usa LLMs para realizar retrieval-augmented generation (RAG) na sua base de código com nossas próprias técnicas de M-Query. O desempenho da indexação e os recursos variam de acordo com seu fluxo de trabalho e seu plano do Devin Desktop. Para mais informações, visite nossa página sobre context awareness.