Il motore di contesto di Devin Desktop costruisce una comprensione approfondita della tua codebase, delle azioni passate e di ciò che intendi fare dopo.
Storicamente, gli approcci alla generazione di codice si sono concentrati sul fine-tuning dei modelli linguistici di grandi dimensioni (LLM) su una codebase,
un processo difficile da scalare per soddisfare le esigenze di ogni singolo utente.
Un approccio più recente e diffuso sfrutta la retrieval-augmented generation (RAG),
che si concentra su tecniche per costruire prompt altamente pertinenti e ricchi di contesto
così da ottenere risposte accurate da un LLM.
Abbiamo implementato un approccio RAG ottimizzato per il contesto della codebase,
che produce suggerimenti di qualità superiore e riduce le allucinazioni.
Devin Desktop offre un fine-tuning completo per i clienti Enterprise, e la soluzione migliore
combina fine-tuning e RAG.
Per impostazione predefinita, Devin Desktop tiene conto di più fonti di contesto pertinenti.
- Il file corrente e gli altri file aperti nel tuo IDE, che spesso sono molto pertinenti al codice che stai scrivendo.
- L’intera codebase locale viene quindi indicizzata (inclusi i file che non sono aperti),
e gli snippet di codice pertinenti vengono recuperati dal motore di recupero di Devin Desktop mentre scrivi codice, fai domande o invochi comandi.
- Per gli utenti Pro, offriamo lunghezze del contesto maggiori, limiti di indicizzazione più elevati e limiti superiori per il contesto personalizzato e gli elementi di contesto bloccati.
- Per gli utenti Teams ed Enterprise, Devin Desktop può anche indicizzare repository remoti.
Questo è utile per le aziende la cui organizzazione di sviluppo lavora su più repository.
Il blocco del contesto è molto utile quando l’attività nel file corrente dipende da informazioni presenti in altri file.
Cerca di bloccare solo ciò che ti serve. Bloccare troppi elementi può rallentare o influire negativamente sulle prestazioni del modello.
Ecco alcune idee per bloccare il contesto in modo efficace:
- Definizioni dei moduli: bloccare i file di definizione di classi/struct che si trovano nella tua repo, ma in un modulo separato dal file attualmente attivo.
- Framework/Librerie interne: bloccare directory con esempi di codice per l’uso di framework/librerie.
- Attività specifiche: bloccare un file o una cartella che definisce una particolare interfaccia (ad es. file
.proto, file di classi astratte, template di configurazione).
- Area di focus corrente: bloccare la directory comune più specifica che contiene la maggior parte dei file necessari per la sessione di coding corrente.
- Testing: bloccare un file specifico con la classe per cui stai scrivendo i test unitari.
Funzionalità contestuali specifiche della chat
Quando usi Devin Desktop Chat, hai a disposizione diversi modi per sfruttare il contesto della codebase,
come gli @-mention o linee guida personalizzate.
Per ulteriori informazioni, consulta la pagina Chat.
Devin Desktop indicizza la mia codebase?
Sì, Devin Desktop indicizza la tua codebase. Utilizza inoltre gli LLM per eseguire la retrieval-augmented generation (RAG) sulla tua codebase con le nostre tecniche M-Query.
Le prestazioni e le funzionalità dell’indicizzazione variano in base al tuo flusso di lavoro e al tuo piano Devin Desktop. Per maggiori informazioni, visita la nostra pagina dedicata alla context awareness.