Ottenere suggerimenti sul codice
watsonx Code Assistant
Generare suggerimenti di codice utilizzando le conversazioni in chat o completando il codice nell'editor.
Utilizzo delle conversazioni in chat
Inserendo una richiesta che spiega il codice necessario, watsonx Code Assistant genera qualcosa che si può scegliere di utilizzare.
- Per avviare una nuova conversazione, fare clic sull'icona Nuova chat
.
- Fare una domanda o dare un'istruzione.
- Fare clic sull'icona Invia
Watsonx Code Assistant invia l'input al modello di codice e mostra la risposta nella chat.
Selezionare il messaggio in cui watsonx Code Assistant ha generato l'ultimo risultato corretto e continuare la conversazione in una nuova chat.
- Per utilizzare un messaggio precedente o esistente in una nuova chat, fare clic sull'icona Avvia nuova chat
.
- Fare una domanda o dare un'istruzione.
- Fare clic sull'icona Invia
Watsonx Code Assistant invia l'input al modello di codice e mostra la risposta nella chat.
Trasferimento di codice tra la chat e l'editor
Quando si riceve un suggerimento di codice che si desidera utilizzare, è possibile inserire un blocco di codice dalla chat nel proprio editor.
- Posiziona il cursore nell'editor.
- Nella chat, fare clic sull'icona Inserisci nel cursore
.
Se nell'editor è presente del codice che si desidera utilizzare come contesto nella chat, è possibile copiare il codice nella chat.
- Evidenzia il codice nell'editor.
- Fare clic con il pulsante destro del mouse per visualizzare il menu a comparsa.
- Scegli watsonx Code Assistant.
- Scegliere Aggiungi il codice selezionato alla chat.
Utilizzo del linguaggio naturale
Ogni messaggio di chat fa parte di una conversazione di chat. Mantenete le conversazioni incentrate su un argomento o un compito specifico. Quando si passa a un altro linguaggio di programmazione, a un altro progetto nell'area di lavoro o a un'altra attività di programmazione, è necessario creare una nuova conversazione. Ottenete risultati più pertinenti per le vostre domande.
Esempi:
Create a Python class Customer. Include attributes for firstName, lastName and age.Create a JavaScript function that fetches data from a REST API endpoint, dynamically populates an HTML table with the results, and updates the UI asynchronously
Utilizzo della libreria di prompt
Watsonx Code Assistant include una libreria di prompt che contiene un insieme di richieste comuni di codifica in linguaggio naturale. È possibile utilizzarli così come sono nella chat o modificarli per il proprio caso d'uso.
Per accedere alla libreria dei prompt:
- Fare clic sull'icona Apri menu
.
- Fare clic sulla libreria Prompt per aprirla.
- Fare clic sull'icona Copia negli appunti
.
- Fare nuovamente clic sulla libreria Prompt per chiuderla.
- Incollare la richiesta nella chat.
Scrivere messaggi di chat efficaci
Per ottenere i migliori risultati nella conversazione:
- Scrivete i vostri messaggi di chat in inglese.
- Iniziate con un'istruzione semplice e chiara.
- Utilizzate i successivi messaggi di chat per perfezionare il codice del modello.
- Siate il più possibile specifici e dettagliati per ogni fase. È possibile migliorare gradualmente il codice creato attraverso i successivi messaggi di chat.
- Utilizzate i riferimenti a file e metodi nel vostro messaggio per fornire un contesto pertinente. Per esempio, se si vuole che il modello crei un metodo simile a un altro metodo, aggiungere '
similar to @<method>al messaggio. - Se le risposte diventano meno rilevanti o se si inizia un nuovo compito, creare una nuova conversazione in chat e lavorare da lì. È meglio avere molte brevi conversazioni di chat, ciascuna con un contesto specifico, piuttosto che un'unica grande conversazione che potrebbe confondere il modello con messaggi di chat diversi e non correlati.
Riferimento al codice nell'area di lavoro
Per porre domande o perfezionare un file, una classe, una funzione o un metodo specifico nel tuo spazio di lavoro locale, puoi utilizzare un riferimento al codice. Questi riferimenti forniscono un contesto importante e possono contribuire ad aumentare l'accuratezza della risposta.
- Digitare il simbolo '
@come parte del messaggio di chat per visualizzare un elenco di file, classi e metodi dell'area di lavoro. - Filtrare l'elenco digitando i caratteri del nome del file, della classe o del metodo a cui si vuole fare riferimento.
- Fare clic per selezionare il riferimento. Watsonx Code Assistant invia il contenuto del riferimento come parte del messaggio.
Le voci in .gitignore non sono incluse come scelte di riferimento del codice. Se si dispone di dati sensibili, come i file di .env, assicurarsi di aggiungerli a .gitignore.
Quando si apre una cartella dell'area di lavoro locale, watsonx Code Assistant crea un indice di questi elementi in memoria, in modo da poter fare riferimento a questi file e funzioni nella chat. L'editor indicizza anche i file aggiunti o modificati durante la sessione. L'indice contiene fino a 1.000 file tra i più recenti in questi linguaggi di programmazione:
- C
- C++
- Vai
- Java
- JavaScript
- Python
- TypeScript
L'indicizzazione dei file funziona solo su archivi locali.
Quando si fa riferimento a un metodo o si usa CodeLens su un metodo, watsonx Code Assistant supporta alcuni linguaggi di codice. Il riferimento a un file completo funziona per tutte le lingue. Per ulteriori informazioni, vedere Supporto linguistico quando si lavora con i metodi.
Quando si fa riferimento a un file, il limite di dimensione è di 50 KB. Se si raggiunge questo limite, dividere il file in singole funzioni e fare riferimento a ciascuna funzione. Oppure, dividere il file a 49 KB, tenendo conto dei limiti delle funzioni, e fare riferimento al file a ogni divisione. Con entrambi gli approcci, è necessario unire i risultati.
Casi d'uso con esempi che fanno riferimento al codice:
| Caso d'uso | Messaggio di esempio |
|---|---|
| Generare una funzione basata su una funzione esistente | Creare un metodo 'send_translate_message che sia simile a @invio_codice_spiegazione_messaggio |
| Generare un test unitario che segua i test unitari esistenti | Creare un test unitario per @getName che sia simile ai test unitari in @testLoadTablesChildConnectionReceiverJob.h |
| Migliorare le funzioni esistenti | Aggiungere la gestione degli errori e le dichiarazioni di log a @format_documents |
| Migliorare le funzioni esistenti | Aggiornare @setEmail con la gestione degli errori per le stringhe null |
| Spiegare il codice | Cosa fa @mainmain.py |
| Spiegare il codice | Spiegare la logica di @invio_fattura |
| Generare documentazione per funzioni e classi | Aggiungi JavaDoc a @Cliente |
Generazione aumentata di recupero
Piano Standard
Con il piano Standard, l'azienda può configurare la retrieval augmented generation (RAG), che è il processo di ottimizzazione dell'output del modello linguistico di grandi dimensioni (LLM) attraverso l'aumento del prompt con il contesto aggiuntivo. Per ulteriori informazioni, vedere Impostazione della generazione aumentata del reperimento(RAG).
Se si invia una query, watsonx Code Assistant utilizza gli strumenti RAG per recuperare le informazioni dalle basi di codice o dalla documentazione. Questo contesto rilevante viene aggiunto alla query prima che venga inviata al modello LLM. Il sistema RAG determina le fonti che devono essere incluse o escluse per generare una risposta con le informazioni più utili.
RAG richiede il piano standard watsonx Code Assistant e l'estensione Visual Studio Code. Non è disponibile per l'uso con il plug-in Eclipse.
Quando il RAG è abilitato per i repository Git, immettere @repo < instruction > o @docs < instruction > nelle conversazioni in chat per generare una risposta che utilizza il contesto del repository di riferimento
o dei documenti nell'archivio vettoriale. Sostituire il parametro < instruction > con un messaggio di richiesta.
-
Esempio di sintassi per utilizzare il repository di base del codice di riferimento:
@repo how is a chat message processed? -
Esempio di sintassi per utilizzare la raccolta di documenti di riferimento:
@docs What are the steps to setup a connection to the user data store?
Utilizzo dei comandi della chat
Comandi di chat che possono essere utilizzati per eseguire determinate operazioni:
| Comando | Descrizione | Per ulteriori informazioni |
|---|---|---|
/document |
Generare la documentazione di un file di riferimento, di un metodo o di una classe nell'area di lavoro attiva | Generazione di documentazione |
/docs |
Porre domande che facciano riferimento alla documentazione dei prodotti IBM e Red Hat | Ottenere risposte dalla documentazione IBM |
/explain |
Utilizzare l'intelligenza artificiale generativa per analizzare e sintetizzare il codice e capire cosa fa il codice | Spiegazione del codice |
/help |
Ottenere assistenza rapida per le attività | Digitare " /help nella chat |
/unit-test |
Generare test unitari per vari linguaggi di programmazione | Generazione di test unitari |
/translate |
Tradurre il codice da una lingua all'altra | Traduzione del codice |
@repo |
Da utilizzare con la generazione aumentata del reperimento (RAG) | Abilitazione del RAG |
@docs |
Da utilizzare con la generazione aumentata del reperimento (RAG) | Abilitazione del RAG |
Gestione delle sessioni di conversazione in chat
Il menu Sessioni di chat consente di gestire le sessioni di conversazione esistenti.
Per aprire il menu:
- Fare clic sull'icona Apri menu
.
- Fare clic sulle sessioni di chat.
Commutazione delle sessioni di conversazione in chat
Per passare da una sessione di conversazione all'altra, selezionare la sessione dall'elenco delle sessioni di chat.
Rinominare una sessione di chat
Per rinominare una sessione di conversazione chat:
- Nella sessione di chat, fare clic sull'icona del menu Overflow
.
- Fai clic su Rinomina.
- Digitare il nuovo nome e premere Invio.
Eliminazione delle sessioni di chat
Per eliminare una singola sessione di conversazione di chat:
- Nella sessione di chat, fare clic sull'icona del menu Overflow
.
- Fai clic su Delete.
Per eliminare più sessioni di conversazione in chat:
- Fare clic sull'icona Seleziona chat
.
- Selezionare le chat che si desidera eliminare, oppure fare clic su Seleziona tutto.
- Fare clic sull'icona
, quindi fare clic sul pulsante Cancella per confermare.
Completare il codice nell'editor
Ottenere suggerimenti di codice inserendo codice o commenti nell'editor.
Utilizzo dell'editor in Eclipse
Per C, C++, Go, JavaScript, Python e TypeScript:
- Fare clic con il tasto destro del mouse sul file.
- Fare clic su Apri con, quindi su Editor di testo.
Per Java, la generazione di codice in linea con l'editor Java nell'Eclipse IDE è supportata in watsonx Code Assistant, ma deve essere prima configurata.
-
Andare a Content Assist nelle impostazioni di Eclipse.
Navigazione verso il Contenuto Assistito Sistema operativo Percorso MacOS Eclipse > Impostazioni > Java > Editor > Assistente contenuti Windows Finestra > Preferenze > Java > Editor > Assistenza contenuti -
Nella sezione Inserimento, deselezionare Inserisci proposte singole automaticamente.
-
Nella sezione Attivazione automatica, aggiungete '
._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZai trigger di attivazione automatica per Java e confermate che Abilita attivazione automatica sia selezionato. -
Fare clic su Applica e Chiudi.
Completamento a riga singola
Quando si scrive una riga di codice nell'editor, watsonx Code Assistant può suggerire il codice per completarla.
- Iniziare a digitare una riga di codice, poi fare una pausa.
- Watsonx Code Assistant aggiunge un suggerimento di codice per completare la riga digitata.
- In Visual Studio Code, premere Tab per accettare il suggerimento. In Eclipse, premere Return o Invio per accettare il suggerimento. Oppure premere Esc per rifiutare.
Completamento multilinea
È possibile ottenere un suggerimento di codice multilinea basato su una riga di codice o su un commento inserito.
-
Iniziare a digitare una riga di codice o inserire un commento che descriva il codice desiderato.
Per ottenere risultati migliori, includete nel commento il linguaggio di programmazione previsto, ad esempio:
// Sort an array with a fast sort function (TypeScript programming language) -
Utilizzare una scorciatoia da tastiera.
Scorciatoie da tastiera predefinite Sistema operativo Tasto di scelta rapida MacOs Opzione+. Windows Alt+. -
Watsonx Code Assistant aggiunge un suggerimento di codice multilinea.
-
In Visual Studio Code, premere Tab per accettare il suggerimento. In Eclipse, premere Return o Invio per accettare il suggerimento. Oppure premere Esc per rifiutare.
Disabilitazione del completamento del codice per specifici linguaggi di codice
Se necessario, è possibile utilizzare l'impostazione " Completion: Disabled Languages " per l'estensione " Visual Studio Code " per disabilitare il completamento del codice per specifici linguaggi di codice.
-
Apri le impostazioni di estensione dell' watsonx Code Assistant.
-
Fare clic su Aggiungi elemento per selezionare una lingua di codice. Le scelte sono:
Linguaggi di codice Possibilità di scelta Linguaggio del codice cC cppC++ goVai javaJava javascriptJavaScript javascriptreactJavaScript Reagire pythonPython typescriptTypeScript typescriptreactTypeScript Reagire
Per riattivare un linguaggio di codifica, è possibile rimuoverlo dall'elenco.
-
Fare clic sul codice della lingua nell'elenco.
-
Fare clic sull'icona Rimuovi elemento
rimuoverlo dall'elenco delle lingue disabilitate.
Modifica delle scorciatoie da tastiera
È possibile modificare le scorciatoie da tastiera se le combinazioni predefinite sono già assegnate ad altre attività.
Per modificare le scorciatoie da tastiera in Visual Studio Code:
- Fare clic sul menu Codice.
- Selezionare Impostazioni.
- Selezionare Scorciatoie da tastiera.
- Ricerca di '
watsonx. - Per la scelta rapida che si desidera modificare, fare clic sull'icona della matita per la modifica del Keybinding e assegnare una combinazione di tasti diversa.
Per modificare le scorciatoie da tastiera in Eclipse:
- Fare clic sul menu Eclipse.
- Selezionare Impostazioni.
- Digitare '
Keysper filtrare le impostazioni, quindi fare clic su Tasti. - Digitare "
WCAper filtrare l'elenco. - Selezionare la scorciatoia da tastiera che si desidera modificare.
- Nel campo Binding, inserire una nuova combinazione di tasti.
Disabilitazione del completamento del codice
Se necessario, è possibile disabilitare il completamento del codice nella finestra dell'editor.
Per disabilitare il completamento del codice in Visual Studio Code:
- Nell'angolo in basso a destra dell'editor, fare clic sulle
'icona Disabilita completamento watsonx Code Assistant.
- È possibile riattivare i completamenti facendo nuovamente clic sull'icona " **Abilitare i completamenti 'watsonx Code Assistant **.
Per disabilitare il completamento del codice nell'Eclipse IDE:
- Nella barra degli strumenti dell'editor, fare clic sull'icona Disattiva completamento watsonx Code Assistant.
- È possibile riattivare i completamenti facendo nuovamente clic sull'icona " **Abilitare i completamenti 'watsonx Code Assistant **.
Le migliori pratiche per la generazione di suggerimenti di codice
Utilizzate questi suggerimenti per ottenere i migliori risultati.
Utilizzare la chat per blocchi di codice più lunghi. Utilizzare la generazione di codice in editor per il perfezionamento e il codice boilerplate.
Utilizzare la chat per:
- Generare una traccia di una classe
- Specificare un metodo in dettaglio
- Affinare il codice suggerito con ulteriori istruzioni (ad esempio, rinominare o sostituire)
Utilizzare la generazione di codice in editor per:
- Completare la riga di codice che si è iniziato a digitare
- Creazione automatica di codice boilerplate, come getter e setter
- Creare metodi e codice che possano essere descritti con una sola riga di commento
Commento al codice: utilizzare commenti descrittivi, non istruzioni
Quando si usa il commento al codice nell'editor, si scrive un commento che descrive il comportamento previsto, in modo simile a come si scrivono i commenti per il codice scritto. Ad esempio, utilizzare '//return even numbers from an arraylist o '//method that returns even numbers from an arraylist.
Non scrivere il commento come un'istruzione, ad esempio '//write a method that returns even numbers from an arraylist. Watsonx Code Assistant utilizza modelli addestrati a completare il codice su dati che contengono molti commenti
tipici e descrittivi, quindi questi tipi di commenti danno risultati migliori.
Contesto utilizzato per la generazione di codice in editor
L'ingrediente chiave per la generazione del codice è il contesto, cioè il codice circostante che viene passato al modello. Per la generazione di codice in editor, watsonx Code Assistant utilizza:
- Le 20 righe di codice prima della riga in cui viene attivata la generazione.
- Le 20 righe di codice dopo la riga in cui viene attivata la generazione.
- Fino a 200 righe dall'inizio del file corrente in cui viene attivata la generazione.
- Fino a 5 frammenti di codice simili al codice che circonda la riga in cui è stata attivata la generazione. Questi snippet sono presi dagli ultimi 10 file aperti nello stesso linguaggio di programmazione del file corrente.
Per migliorare i risultati della generazione di codice in editor:
- Aprire i file nell'area di lavoro che contengono codice di cui si vuole che watsonx Code Assistant sia a conoscenza. Watsonx Code Assistant cerca di trovare in questi file il codice simile a quello che viene attivato per il completamento, ad esempio i metodi che usano classi e variabili simili, e lo invia al modello come contesto.
- Aiutatevi con watsonx Code Assistant iniziando con una definizione di classe o aggiungendo dichiarazioni di importazione, oppure usate la chat watsonx Code Assistant per creare lo schema iniziale, copiate il risultato in un file nel vostro spazio di lavoro e poi continuate con la generazione di codice in editor. Non utilizzare la generazione di codice in editor quando si parte da file nulli o quasi vuoti, poiché queste condizioni non forniscono un contesto sufficiente.