Nella loro ricerca di migliorare l'efficienza degli sviluppatori, una promessa che ha a lungo intrigato gli sviluppatori è quella del completamento del codice con un'intelligenza alimentata dall'IA. Tra i primi attori in questo settore c'è Kite, uno strumento ambizioso che mira a fare di più di un semplice strumento di completamento automatico centrato sugli sviluppatori, ma qualcosa che potrebbe fornire "aiuto più profondo, più contestuale, più intelligente." Anche se Kite oggi non è un ambiente di sviluppo attivo, la sua infrastruttura è un soggetto di studio interessante riguardo a un ambiente di sviluppo olistico alimentato dall'IA. Non c'era solo uno strumento, ma un "suite interconnessa di pezzi che lavorano in armonia."
In sostanza, un ecosistema Kite è stato creato per consistere in calcolo locale, consapevolezza contestuale e integrazione senza soluzione di continuità. Sembra che dovremmo scomporre le sue parti principali.
L'Interfaccia dello Sviluppatore
Plugin specifici per linguaggi: Kite forniva plugin per IDE comuni come VS Code, IntelliJ, PyCharm, Vim e Sublime Text. Questi plugin erano incredibilmente discreti, fungendo da canale tra il tasto di digitazione dello sviluppatore e il motore di
La Barra Laterale del Copilota: Uno degli aspetti caratteristici dell'interfaccia era "Copilota," una "barra laterale interattiva che mostrava documentazione del codice, firme delle funzioni e utilizzo di esempio proprio accanto all'editor di codice." Ha abilitato il completamento del codice che non era più un "gioco di indovinare," servendo invece come strumento di apprendimento.
Il Cervello sul Dispositivo
Indicizzatore Locale:
L'indicizzatore locale è un processo che gira continuamente sul computer dello sviluppatore. Questo processo indicizza il codice silenziosamente in background rispetto alla base di codice dell'utente, che include i file di progetto, le librerie importate e la documentazione. Questo aiuta a garantire che ci sia una bassa latenza tra i completamenti, garantendo così che la privacy del codice sia protetta.
Modelli di Apprendimento Automatico:
L'intelligenza di Kite si basava su modelli linguistici statistici addestrati su milioni di file di codice open-source. Questi modelli linguistici erano a conoscenza di schemi, API e dei probabili prossimi pezzi di codice. Soprattutto, i modelli erano progettati per lavorare in collaborazione con il contesto dell'indice locale, suggerendo pertanto codice pertinente in base al progetto su cui si stava lavorando.
Analisi Semantica
Oltre al riconoscimento di pattern statistici per prevedere simboli o token, Kite ha utilizzato analisi semantica che l'ha aiutato a comprendere gli aspetti strutturali del codice come il tipo di variabili, definizioni per le funzioni e importazioni. Tale analisi semantica è più accurata rispetto alla semplice previsione di token.
L'Orchestratore
La connessione tra il client e il motore era gestita da un middleware sofisticato.
Il Server di Kite: Questo era il processo di controllo. Il server comunicava e gestiva le richieste dal plugin dell'editor e dall'indicizzatore locale. Il server era responsabile dell'instradamento delle richieste e del funzionamento del sistema.
Protocollo e API: Un protocollo specifico ha abilitato tutta la comunicazione e vari plugin per editor sono stati in grado di comunicare con il motore centrale. La modularità ha svolto un ruolo cruciale nel consentire vari ambienti di sviluppo.
L'Intelligenza Collettiva
Aggiornamenti del Modello & Telemetria: «Il backend cloud ha fornito modelli di machine learning ai clienti nel tempo, i quali sono migliorati. Dati di utilizzo anonimi e aggregati (opt-in) sono stati utilizzati per addestrare questi modelli.»
Base di Conoscenza Globale: Per documentazione e conoscenze oltre l'indice locale, Kite può utilizzare la base di conoscenza globale memorizzata nel cloud per recuperare esempi/documenti per librerie standard e framework popolari.
Dopo la Fine di
Integrazione della Documentazione: Potevano accedere istantaneamente a una documentazione completa per il simbolo sotto il cursore con una pressione di un tasto, evitando così il cambio di contesto tra i browser.
Firma delle Funzioni: Ha offerto suggerimenti per le firme mentre digitavi chiamate a funzioni, inclusa l'informazione sul tipo, valori di default e descrizioni.
Esempi di Codice: Per le funzioni dove gli esempi di codice sono utili, Kite includerebbe frammenti di codice pertinenti da progetti open-source di qualità per mostrare un'implementazione nel mondo reale, il che aumenterebbe l'efficienza e l'utilità.

