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.
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.
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.