Pensi che gli assistenti di codifica AI non funzionino per te? Ottieni costantemente le risposte sbagliate e ora hai rinunciato a usarle? Questo weblog coprirà alcuni casi d’uso in cui gli assistenti di codifica AI sono utili e ti aiuterà durante il tuo lavoro quotidiano. Godere!
Introduzione
Al giorno d’oggi, molti Coding AI Gli assistenti sono disponibili. Questi sono dimostrati durante le conferenze, nei video, descritti nei weblog, ecc. Le demo sono spesso impressionanti e sembra che l’IA sia in grado di generare quasi tutto il codice sorgente per te, e tutto ciò che devi fare è rivederlo. Tuttavia, quando inizi a utilizzare gli assistenti di codifica AI al lavoro, sembra che non funzioni per te e ti costa solo più tempo. La verità è da qualche parte nel mezzo. Gli assistenti di codifica AI possono farti risparmiare molto tempo per alcuni compiti, ma hanno anche alcune limitazioni. È importante apprendere quali compiti ti aiuteranno e come riconoscere quando raggiungi i limiti dell’IA. Tieni presente che l’IA si sta evolvendo a un ritmo veloce, quindi i limiti di oggi potrebbero essere risolti nel prossimo futuro.
Nel resto di questo weblog, alcune attività vengono eseguite con l’aiuto di un assistente di codifica AI. Le risposte vengono valutate e vengono applicate various tecniche che possono essere utilizzate per migliorare le risposte quando necessario. Questo weblog è il primo di una serie e compiti più complessi saranno trattati nei prossimi weblog.
I compiti vengono eseguiti con l’concept di Intellij DevoxxGenie Assistente di codifica AI.
In questo weblog vengono utilizzate due configurazioni e queste configurazioni usate saranno chiaramente menzionate:
- Ollama come motore di inferenza e
qwen2.5-coder:7b
funziona come modello. Questo funziona solo sulla CPU. - Lmstudio come motore di inferenza e
qwen2.5-coder:7b
funziona come modello. Questo funziona solo su GPU.
Come puoi vedere, vengono utilizzati modelli di corsa locali. La ragione per farlo è che raggiungerai i limiti di un modello in precedenza.
Il motivo per l’utilizzo di due configurazioni è perché le attività sono state avviate con la configurazione 1. L’ipotesi period che l’unica differenza tra CPU e GPU sarebbe stata prestazione. Tuttavia, dopo un po ‘, è stato scoperto che un modello in esecuzione su una GPU fornisce anche risposte migliori.
Le fonti utilizzate in questo weblog sono disponibili su Github.
Prerequisiti
I prerequisiti per la lettura di questo weblog sono:
- Conoscenza di codifica di base
- Conoscenza di base degli assistenti di codifica AI,
- Conoscenza di base di DevoxxGenie
Attività: spiega Kubernetes Yaml
L’obiettivo è vedere se l’IA può essere utile per spiegare un file Kubernetes Yaml o sezioni.
L’impostazione: ollama, qwen2.5-coder
Viene utilizzata la CPU.
IL Kubernetes Yaml Il file contiene una sezione Risorse che non è molto chiara per te.
...
sources:
requests:
reminiscence: "64Mi"
cpu: "250m"
limits:
reminiscence: "128Mi"
cpu: "500m"
...
Immediate 1
Apri il file, selezionare la sezione Risorse e aprire una nuova finestra di chat. Immettere il seguente immediate:
DeVoxxGenie lo espanderà al seguente immediate:
Break down the code in easy phrases to assist a junior developer grasp its performance.
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
Questa risposta è corretta. La risposta parla di Mebibyte, ma cosa sono Mebibyte?
Immediate 2
Rimani nella stessa finestra di chat e inserisci il seguente immediate.
how a lot RAM is 64Mi and what's a mebibyte
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
La risposta è corretta e la spiegazione definisce accuratamente un Mebibyte.
Attività: spiegare il codice Java
L’obiettivo è vedere se l’IA può essere utile per spiegare il codice Java.
La configurazione lmstudio, qwen2.5-coder
Viene utilizzata la GPU.
IL Refactor La classe contiene una logica complessa e utilizza various altre classi situate nello stesso pacchetto.
Richiesta
Apri il file di refactor e aggiungi l’intera listing di origine al contesto immediate (menu di contesto del mouse destro> e si è in grado di aggiungere un’intera listing al contesto immediate). Immettere il seguente immediate:
DeVoxxGenie lo espanderà al seguente immediate:
Break down the code in easy phrases to assist a junior developer grasp its performance.
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
Questa è una spiegazione abbastanza buona di ciò che sta facendo questa classe.
Attività: spiega Regex
L’obiettivo di questo compito è vedere se l’IA può essere utile per spiegare espressioni regolari.
Il setup ollama, qwen2.5-coder
Viene utilizzata la CPU.
Un regex comune per la convalida della password è disponibile nel file regex-1.txt.
^(?=.*(A-Z))(?=.*(a-z))(?=.*d)(?=.*(!@#$%^&*))(A-Za-zd!@#$%^&*){8,20}$
Immediate 1
Apri il file e inserisci il immediate:
DeVoxxGenie lo espanderà al seguente immediate.
Break down the code in easy phrases to assist a junior developer grasp its performance.
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
La risposta è corretta.
Forse period troppo ovvio, proviamo con un esempio inventato.
Immediate 2
Apri una nuova finestra di chat.
Apri file regex-2.txt. Questo file contiene la seguente espressione regolare.
^d{3}-(A-Z)(a-z){4}-d{2}(a-z){2}$
Immettere il seguente immediate.
DeVoxxGenie lo espanderà al seguente immediate.
Break down the code in easy phrases to assist a junior developer grasp its performance.
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
La risposta è corretta.
Attività: spiegare l’espressione di Cron
L’obiettivo di questo compito è vedere se l’IA può essere utile per spiegare le espressioni di Cron. Nell’esempio, verrà utilizzata un’espressione di Cron per la programmazione a molla. La cosa importante da notare è che le espressioni Cron di programmazione Spring hanno un componente aggiuntivo per definire i secondi. Questo è diverso da una normale espressione di Cron Cron.
Il setup ollama, qwen2.5-coder
Viene utilizzata la CPU.
L’espressione di Cron si trova in a file di proprietà.
software.cron-schedule=0 */15 * * * *
Immediate 1
Apri il file, selezionare l’espressione di Cron e immettere il immediate:
DeVoxxGenie lo espanderà al seguente immediate:
Break down the code in easy phrases to assist a junior developer grasp its performance.
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
È riconosciuto che si tratta di un’espressione di Cron, ma la spiegazione non è corretta perché si tratta di una valida espressione di Cron di pianificazione a molla. Tuttavia, l’LLM ha ipotizzato che questa fosse un’espressione di Cron Cron.
Immediate 2
Diamo al LLM un po ‘più contesto.
Rimani nella stessa finestra di chat per essere inviato alla cronologia della chat a LLM e immettere il immediate.
clarify the chosen Spring Scheduling cron expression
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
La risposta è corretta questa volta a parte il riassunto. Quindi, aggiungendo le informazioni che si tratta di un’espressione di Cron di programmazione primaverile, l’LLM è stato in grado di spiegarlo correttamente.
Sii sempre consapevole che dovresti fornire un contesto sufficiente all’LLM, altrimenti le risposte non saranno ciò che ti aspetteresti.
Attività: codice di revisione
L’obiettivo con questo compito è vedere se l’IA può essere utile per rivedere il codice. Dai un’occhiata al seguente db.yml che è un file di distribuzione di Kubernetes prelevato da Petclinic primaverile.
Quando dai un’occhiata a questo file, noterai alcuni problemi con esso:
- Il segreto è codificato
- Non vengono aggiunti limiti di risorse,
- le sonde di vivaci e prontezza non sono del tutto okay
Il setup ollama, qwen2.5-coder
Viene utilizzata la CPU.
Immediate 1
Apri il db.yml
File e utilizzare il seguente immediate:
DeVoxxGenie lo espanderà al seguente immediate:
Evaluation the chosen code, can or not it's improved or are there any bugs?
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
La risposta è corretta. Tuttavia, sorge una domanda aggiuntiva: È fatto un commento su Gestione segretama non come questo può essere risolto.
Quindi, applica le modifiche suggerite, si trovano nel file db-review.yml.
Immediate 2
Apri questo db-review.yml
e inserisci un immediate di follow-up nella stessa finestra di chat (in questo modo, la memoria della chat viene inviata a LLM).
the secrets and techniques are hardcoded, I need to change this with a purpose to adhere safety greatest practices, what needs to be modified
Risposta
La risposta può essere visualizzata Qui.
Analisi della risposta
La risposta è corretta, sebbene il db.yml
Il file contiene ancora una sezione segreta con i valori hardcoded. Questa sezione avrebbe dovuto essere esclusa.
Quindi, applica le modifiche suggerite, si trovano nel file db-secret.yml e rimuovere la sezione segreti.
Conclusione
Dagli esempi utilizzati in questo weblog, è possibile trarre le seguenti conclusioni:
- Gli assistenti di codifica AI sono abbastanza bravi a spiegare diversi tipi di codice, come i file YAML di Kubernetes, il codice sorgente Java, le espressioni regolari, le espressioni di Cron, ecc.
- È importante fornire un contesto sufficiente al llm. Per esempio:
- Quando si spiega il codice Java, è molto utile quando tutte le classi usate vengono inviate nel contesto rapido.
- Quando vuoi spiegare un’espressione di Cron di programmazione a molla, probabilmente dovresti dirlo a LLM, altrimenti potrebbe presumere che venga usata un’espressione di Cron Cron.
- Gli assistenti di codifica AI sono abbastanza bravi a rivedere il codice. Questo in realtà è abbastanza simile come il codice di spiegazione. Tuttavia, dovresti sempre rivedere la risposta prima di applicarla e cercare di capire la risposta.