Obtenir des suggestions de code

watsonx Code Assistant

Générer des suggestions de code en utilisant les conversations de chat ou en complétant le code dans l'éditeur.

Utiliser les conversations par chat

Saisissez une invite expliquant le code dont vous avez besoin, et watsonx Code Assistant génère un code que vous pouvez choisir d'utiliser.

  1. Pour démarrer une nouvelle conversation, cliquez sur l'icône Nouvelle discussion Nouvelle discussion.
  2. Poser une question ou donner une instruction.
  3. Cliquez sur l'icône Envoyer Envoyer. Watsonx Code Assistant envoie votre entrée au modèle de code et affiche la réponse dans le chat.

Sélectionnez le message où watsonx Code Assistant a généré le dernier résultat correct, et poursuivez la conversation dans un nouveau chat.

  1. Pour utiliser un message précédent ou existant dans une nouvelle discussion, cliquez sur l'icône Démarrer une nouvelle discussion.
  2. Poser une question ou donner une instruction.
  3. Cliquez sur l'icône Envoyer Envoyer. Watsonx Code Assistant envoie votre entrée au modèle de code et affiche la réponse dans le chat.

Transfert de code entre le chat et l'éditeur

Lorsque vous recevez une suggestion de code que vous souhaitez utiliser, vous pouvez insérer un bloc de code de la discussion dans votre éditeur.

  1. Positionnez votre curseur dans l'éditeur.
  2. Dans le chat, cliquez sur l'icône Insérer au curseur Insérer au curseur.

Si vous avez du code dans l'éditeur que vous voulez utiliser comme contexte dans le chat, vous pouvez copier le code dans le chat.

  1. Mettez le code en surbrillance dans l'éditeur.
  2. Cliquez avec le bouton droit de la souris pour afficher le menu contextuel.
  3. Choisissez watsonx Code Assistant.
  4. Choisissez Ajouter le code sélectionné au chat.

Utiliser le langage naturel

Chaque message de chat fait partie d'une conversation de chat. Gardez les conversations centrées sur un sujet ou une tâche spécifique. Lorsque vous changez de contexte pour passer à un autre langage de programmation, à un autre projet dans votre espace de travail ou à une autre tâche de programmation, créez une nouvelle conversation. Vous obtenez des résultats plus pertinents pour vos questions.

Exemples :

  • 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

Utilisation de la bibliothèque d'invite

Watsonx Code Assistant inclut une bibliothèque d'invites qui contient un ensemble de demandes de codage courantes en langage naturel. Vous pouvez les utiliser tels quels dans votre chat ou les modifier en fonction de votre cas d'utilisation.

Pour accéder à la bibliothèque d'invites :

  1. Cliquez sur l'icône Ouvrir le menu.
  2. Cliquez sur la bibliothèque d'invites pour l'ouvrir.
  3. Cliquez sur l'icône Copier dans le presse- papiers.
  4. Cliquez à nouveau sur la bibliothèque d'invite pour la fermer.
  5. Collez l'invite dans le chat.

Rédiger des messages de chat efficaces

Pour obtenir les meilleurs résultats dans votre conversation :

  • Rédigez vos messages de chat en anglais.
  • Commencez par une instruction simple et claire.
  • Utilisez les messages de chat suivants pour affiner le code de sortie du modèle.
  • Soyez aussi précis et détaillé que possible pour chaque étape. Vous pouvez améliorer progressivement le code créé au moyen de messages de chat ultérieurs.
  • Utilisez des références de fichiers et de méthodes dans votre message pour fournir un contexte pertinent. Par exemple, si vous souhaitez que le modèle crée une méthode similaire à une autre méthode, ajoutez " similar to @<method> à votre message.
  • Si les réponses deviennent moins pertinentes, ou si vous commencez une nouvelle tâche, créez une nouvelle conversation et travaillez à partir de là. Il est préférable d'avoir plusieurs conversations courtes, chacune avec un contexte spécifique, plutôt qu'une grande conversation qui pourrait embrouiller le modèle avec des messages différents et sans rapport.

Référencement du code dans votre espace de travail

Pour poser des questions ou affiner un fichier, une classe, une fonction ou une méthode spécifique dans votre espace de travail local, vous pouvez utiliser une référence de code. Ces références fournissent un contexte important et peuvent contribuer à améliorer la précision de la réponse.

  1. Tapez le symbole " @ dans votre message de chat pour afficher une liste de fichiers, de classes et de méthodes de votre espace de travail.
  2. Filtrez la liste en tapant les caractères du nom du fichier, de la classe ou de la méthode que vous souhaitez référencer.
  3. Cliquez pour sélectionner la référence. Watsonx Code Assistant envoie le contenu de la référence dans votre message.

Les entrées dans .gitignore ne sont pas incluses dans les choix de référence des codes. Si vous possédez des données sensibles, telles que des fichiers .env, veillez à les ajouter à .gitignore.

Lorsque vous ouvrez un dossier de l'espace de travail local, watsonx Code Assistant crée un index de ces éléments en mémoire afin que vous puissiez faire référence à ces fichiers et fonctions dans le chat. Votre éditeur indexe également les fichiers que vous ajoutez ou modifiez au cours de votre session. L'index contient jusqu'à 1 000 fichiers parmi les plus récents dans ces langages de programmation :

  • C
  • C++
  • Go
  • Java
  • JavaScript
  • Python
  • TypeScript

L'indexation des fichiers ne fonctionne que sur les référentiels locaux.

Lorsque vous faites référence à une méthode ou que vous utilisez CodeLens sur une méthode, watsonx Code Assistant prend en charge certains langages de code. La référence à un fichier complet fonctionne pour toutes les langues. Pour plus d'informations, voir Assistance linguistique lorsque vous travaillez avec des méthodes.

Lorsque vous faites référence à un fichier, la taille maximale est de 50 KB. Si vous atteignez cette limite, divisez le fichier en fonctions individuelles et faites référence à chaque fonction. Vous pouvez également diviser le fichier en 49 Ko, en tenant compte des limites des fonctions, et faire référence au fichier à chaque division. Quelle que soit l'approche retenue, il faut fusionner les résultats.

Cas d'utilisation avec des exemples qui font référence au code :

Messages de chat faisant référence à un code
Cas d'utilisation Exemple de message
Générer une fonction à partir d'une fonction existante Créer une méthode " send_translate_message similaire à @send_code_explanation_message
Générer un test unitaire qui suit les tests unitaires existants Créer un test unitaire pour @getName qui est similaire aux tests unitaires dans @testLoadTablesChildConnectionReceiverJob.h
Améliorer les fonctions existantes Ajout d'une gestion des erreurs et d'instructions de journalisation à @format_documents
Améliorer les fonctions existantes Mise à jour de @setEmail avec gestion des erreurs pour les chaînes de caractères nulles
Expliquer le code Que fait @mainmain.py
Expliquer le code Expliquer la logique de @send_invoice
Générer de la documentation pour les fonctions et les classes Ajouter JavaDoc à @Customer

Récupération génération augmentée

Forfait standard

Avec le plan standard, votre organisation peut configurer la génération augmentée de recherche (RAG), qui est le processus d'optimisation de la sortie du modèle de langage étendu (LLM) par l'augmentation de l'invite avec le contexte supplémentaire. Pour plus d'informations, voir Configuration de la génération augmentée de recherche(RAG).

Si vous soumettez une requête, watsonx Code Assistant utilise les outils RAG pour extraire les informations de vos bases de code ou de votre documentation. Ce contexte pertinent est ajouté à la requête avant qu'elle ne soit envoyée au modèle LLM. Le système RAG détermine les sources qui doivent être incluses ou exclues pour générer une réponse contenant les informations les plus utiles.

RAG a besoin du plan standard watsonx Code Assistant et de l'extension Visual Studio Code. Il n'est pas disponible pour une utilisation avec le plug-in Eclipse.

Lorsque la fonction RAG est activée pour vos référentiels Git, saisissez @repo < instruction > ou @docs < instruction > dans les conversations de chat pour générer une réponse qui utilise le contexte du référentiel ou des documents référencés dans le magasin de vecteurs. Remplacer le paramètre < instruction > par un message d'invite.

  • Exemple de syntaxe pour utiliser le référentiel de base de code référencé :

    @repo how is a chat message processed?
    
  • Exemple de syntaxe pour utiliser la collection de documents référencés :

    @docs What are the steps to setup a connection to the user data store?
    

Utiliser les commandes de chat

Commandes de chat que vous pouvez utiliser pour effectuer certaines tâches :

Commandes de chat
Commande Description Pour plus d'informations
/document Générer la documentation d'un fichier référencé, d'une méthode ou d'une classe dans l'espace de travail actif Générer de la documentation
/docs Poser des questions qui font référence à la documentation des produits IBM et Red Hat Obtenir des réponses dans la documentation d'IBM
/explain Utilisez l'IA générative pour analyser et résumer votre code afin de comprendre ce qu'il fait Explication du code
/help Obtenir une assistance rapide pour les tâches à accomplir Tapez '/help dans le chat
/unit-test Générer des tests unitaires pour différents langages de programmation Générer des tests unitaires
/translate Traduire un code d'une langue à l'autre Traduire le code
@repo À utiliser avec la génération de recherche augmentée (RAG) Activation du RAG
@docs À utiliser avec la génération de recherche augmentée (RAG) Activation du RAG

Gestion des sessions de conversation par chat

Vous pouvez utiliser le menu Sessions de chat pour gérer vos sessions de conversation existantes.

Pour ouvrir le menu :

  1. Cliquez sur l'icône Ouvrir le menu.
  2. Cliquez sur Sessions de chat.

Changement de session de conversation par chat

Pour passer d'une session de conversation à l'autre, sélectionnez la session dans la liste des sessions de conversation.

Renommer une session de chat

Pour renommer une session de conversation par chat :

  1. Dans la session de chat, cliquez sur l'icône du menu de débordement Menu de débordement.
  2. Cliquez sur Renommer.
  3. Saisissez le nouveau nom, puis appuyez sur Entrée.

Suppression des sessions de chat

Pour supprimer une session de conversation unique :

  1. Dans la session de chat, cliquez sur l'icône du menu de débordement Menu de débordement.
  2. Cliquez sur Supprimer.

Pour supprimer plusieurs sessions de conversation par chat :

  1. Cliquez sur l'icône Sélectionner les chats Sélectionner les chats.
  2. Sélectionnez les chats que vous souhaitez supprimer ou cliquez sur Sélectionner tout.
  3. Cliquez sur l'icône de suppression Supprimer, puis cliquez sur le bouton Supprimer pour confirmer.

Compléter le code dans l'éditeur

Obtenez des suggestions de code en saisissant du code ou des commentaires dans votre éditeur.

Utilisation de l'éditeur dans Eclipse

Pour C, C++, Go, JavaScript, Python et TypeScript::

  1. Cliquez avec le bouton droit de la souris sur le fichier.
  2. Cliquez sur Ouvrir avec, puis sur Éditeur de texte.

Pour Java, la génération de code en ligne avec l'éditeur Java dans l'Eclipse IDE est prise en charge dans watsonx Code Assistant mais doit d'abord être configurée.

  1. Allez à Content Assist dans les paramètres d'Eclipse.

    Navigation vers Content Assist
    Système d'exploitation Voie
    MacOS Eclipse > Paramètres > Java > Editeur > Content Assist
    Windows Fenêtre > Préférences > Java > Editeur > Content Assist
  2. Dans la section Insertion, désélectionnez Insérer automatiquement des propositions uniques.

  3. Dans la section Activation automatique, ajoutez " ._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ aux déclencheurs d'activation automatique pour Java et confirmez que l'option Activer l'activation automatique est cochée.

  4. Cliquez sur Appliquer et fermer.

Achèvement en une seule ligne

Lorsque vous écrivez une ligne de code dans votre éditeur, watsonx Code Assistant peut suggérer du code pour la compléter.

  1. Commencez à taper une ligne de code, puis faites une pause.
  2. Watsonx Code Assistant ajoute une suggestion de code pour compléter la ligne que vous avez tapée.
  3. Dans Visual Studio Code, appuyez sur Tab pour accepter la suggestion. Dans Eclipse, appuyez sur Return ou Enter pour accepter la suggestion. Ou appuyez sur Esc pour rejeter.

Achèvement multiligne

Vous pouvez obtenir une suggestion de code multiligne sur la base d'une ligne de code ou d'un commentaire que vous saisissez.

  1. Commencez à taper une ligne de code ou entrez un commentaire décrivant le code que vous souhaitez.

    Pour de meilleurs résultats, indiquez le langage de programmation attendu dans votre commentaire, par exemple :

    // Sort an array with a fast sort function (TypeScript programming language)
    
  2. Utiliser un raccourci clavier.

    Raccourcis clavier par défaut
    Système d'exploitation Raccourci
    MacOs Option+.
    Windows Alt+.
  3. Watsonx Code Assistant ajoute une suggestion de code multiligne.

  4. Dans Visual Studio Code, appuyez sur Tab pour accepter la suggestion. Dans Eclipse, appuyez sur Return ou Enter pour accepter la suggestion. Ou appuyez sur Esc pour rejeter.

Désactivation de la complétion de code pour des langages de code spécifiques

Si nécessaire, vous pouvez utiliser le paramètre Completion: Disabled Languages de l'extension Visual Studio Code pour désactiver la saisie automatique du code pour des langages de code spécifiques.

  1. Ouvrez les paramètres de l'extension watsonx Code Assistant.

  2. Cliquez sur Ajouter un élément pour sélectionner une langue de code. Les choix sont les suivants :

    Langages de code
    Choix Langage de code
    c C
    cpp C++
    go Go
    java Java
    javascript JavaScript
    javascriptreact JavaScript Réagir
    python Python
    typescript TypeScript
    typescriptreact TypeScript Réagir

Pour réactiver un langage de code, vous pouvez le supprimer de la liste.

  1. Cliquez sur la langue du code dans la liste.

  2. Cliquez sur l'icône Supprimer l'élément Fermer pour le supprimer de la liste des langues désactivées.

Modifier les raccourcis clavier

Vous pouvez modifier les raccourcis clavier si les combinaisons par défaut sont déjà affectées à d'autres tâches.

Pour modifier les raccourcis clavier dans Visual Studio Code:

  1. Cliquez sur le menu Code.
  2. Sélectionnez Paramètres.
  3. Sélectionnez Raccourcis clavier.
  4. Recherche de " watsonx.
  5. Pour le raccourci que vous souhaitez modifier, cliquez sur l'icône crayon de modification de l'association de touches et attribuez une combinaison de touches différente.

Pour modifier les raccourcis clavier dans Eclipse:

  1. Cliquez sur le menu Eclipse menu.
  2. Sélectionnez Paramètres.
  3. Tapez 'Keys pour filtrer les paramètres, puis cliquez sur Clés.
  4. Tapez 'WCA pour filtrer la liste.
  5. Sélectionnez le raccourci clavier que vous souhaitez modifier.
  6. Dans le champ Liaison, saisissez une nouvelle combinaison de touches.

Désactivation de l'achèvement du code

Si nécessaire, vous pouvez désactiver la complétion du code dans la fenêtre de l'éditeur.

Pour désactiver la complétion de code dans Visual Studio Code:

  1. Dans le coin inférieur droit de l'éditeur, cliquez sur l' icône Désactiver les compléments watsonx Code Assistant.
  2. Vous pouvez réactiver les complétions en cliquant à nouveau sur l'icône Activer les complétions de l watsonx Code Assistant.

Pour désactiver la complétion de code dans l'Eclipse IDE:

  1. Dans la barre d'outils de l'éditeur, cliquez sur l'icône Désactiver les complétions de l watsonx Code Assistant.
  2. Vous pouvez réactiver les complétions en cliquant à nouveau sur l'icône Activer les complétions de l watsonx Code Assistant.

Meilleures pratiques pour générer des suggestions de code

Utilisez ces conseils pour obtenir les meilleurs résultats.

Utilisez le chat pour les blocs de code plus longs. Utiliser la génération de code dans l'éditeur pour le raffinement et le code passe-partout.

Utiliser le chat pour :

  • Générer un plan de cours
  • Spécifier une méthode en détail
  • Affiner le code proposé en y ajoutant des instructions (par exemple, renommer ou remplacer)

Utiliser la génération de code dans l'éditeur pour :

  • Complétez la ligne de code que vous avez commencé à taper
  • Créer automatiquement du code standard, tel que des getters et des setters
  • Créer des méthodes et du code qui peuvent être décrits par une seule ligne de commentaire

Comment-to-code : utiliser des commentaires descriptifs et non des instructions

Lorsque vous utilisez la fonction de commentaire au code dans l'éditeur, écrivez un commentaire qui décrit le comportement prévu, de la même manière que vous écrivez des commentaires pour le code que vous avez écrit. Par exemple, utilisez " //return even numbers from an arraylist ou " //method that returns even numbers from an arraylist.

N'écrivez pas votre commentaire sous la forme d'une instruction, telle que " //write a method that returns even numbers from an arraylist. Watsonx Code Assistant utilise des modèles qui sont entraînés à compléter le code sur des données qui contiennent de nombreux commentaires typiques et descriptifs, de sorte que ces types de commentaires donnent de meilleurs résultats.

Contexte utilisé pour la génération de code dans l'éditeur

L'ingrédient clé de la génération de code est le contexte, c'est-à-dire le code environnant que vous transmettez au modèle. Pour la génération de code dans l'éditeur, watsonx Code Assistant utilise :

  1. Les 20 lignes de code précédant la ligne où la génération est déclenchée.
  2. Les 20 lignes de code après la ligne où la génération est déclenchée.
  3. Jusqu'à 200 lignes à partir du début du fichier actuel où la génération est déclenchée.
  4. Jusqu'à 5 extraits de code similaires au code qui entoure la ligne où la génération a été déclenchée. Ces extraits sont tirés des 10 derniers fichiers que vous avez ouverts dans le même langage de programmation que le fichier actuel.

Améliorer les résultats de la génération de code dans l'éditeur :

  • Ouvrez les fichiers de votre espace de travail qui contiennent du code dont vous voulez que watsonx Code Assistant prenne connaissance. Watsonx Code Assistant essaie de trouver du code dans ces fichiers qui est similaire à l'endroit où vous déclenchez la complétion, par exemple, des méthodes qui utilisent des classes et des variables similaires, puis envoie ce code au modèle en tant que contexte.
  • Aidez watsonx Code Assistant en commençant par une définition de classe ou en ajoutant des instructions d'importation, ou utilisez le chat watsonx Code Assistant pour créer le plan initial, copiez le résultat dans un fichier de votre espace de travail, puis continuez avec la génération de code dans l'éditeur. N'utilisez pas la génération de code dans l'éditeur lorsque vous commencez à partir de fichiers nuls ou presque vides, car ces conditions ne fournissent pas un contexte suffisant.