Version 1.0.0
Régler l'autocomplétion
L'activer, la couper, lui affecter un modèle, et savoir ce qu'attendre de Next Edit selon le modèle.
Cette page s’adresse au cas où les suggestions en cours de frappe n’arrivent pas, arrivent trop souvent, ou viennent d’un modèle trop lent.
Le modèle d’autocomplétion est servi par le moteur d’inférence de votre périmètre et joint par la passerelle, comme tout autre modèle : le poste ne connaît que l’adresse de la passerelle (livre blanc sécurité V3, section 3.3).
Lui affecter un modèle
Section intitulée « Lui affecter un modèle »Vérifiez ce point en premier : son échec ne produit aucun message.
Le rôle autocomplete ne fait pas partie des rôles attribués par défaut. Un
modèle déclaré sans roles sert au chat, au résumé, à l’édition et à
l’application, pas à l’autocomplétion. Sans modèle portant ce rôle, la fonction
reste inactive : ni suggestion, ni message, ni entrée dans les journaux.
name: Local Configversion: 1.0.0models: - name: Autocomplétion provider: openai model: any apiBase: https://passerelle.interne:6001/completion-rapide/v1 apiKey: sk-lemniscate-<clé> roles: - autocompleteLe modèle réel est celui que l’endpoint désigne sur la passerelle ; la valeur
de model est ignorée. Un modèle à poids ouverts petit et rapide convient mieux
qu’un gros : la suggestion doit arriver avant la fin de la frappe. Si plusieurs
modèles portent le rôle, le premier déclaré est retenu.
L’élément de barre d’état de l’extension ouvre un menu qui liste les modèles du
rôle autocomplete et permet d’en changer sans rééditer le fichier. Une liste
vide confirme le diagnostic ci-dessus.
L’activer et la couper
Section intitulée « L’activer et la couper »Le réglage lemniscate.enableTabAutocomplete vaut true par défaut. La
commande Toggle Autocomplete Enabled, sur Ctrl+K Ctrl+A
(Cmd+K Cmd+A sur macOS), l’inverse et met le réglage à jour.
Pour la couper depuis la configuration, modèle par modèle :
name: Local Configversion: 1.0.0models: - name: Autocomplétion provider: openai model: any apiBase: https://passerelle.interne:6001/completion-rapide/v1 apiKey: sk-lemniscate-<clé> roles: - autocomplete autocompleteOptions: disable: trueL’autocomplétion se coupe d’elle-même dans certains fichiers, sans réglage :
~/.lemniscate/config.json, les fichiers .prompt, et tout ce qu’un
.lemniscateignore exclut, qu’il soit global ou propre au dépôt.
Avec lemniscate.pauseTabAutocompleteOnBattery à true (false par défaut),
débrancher le secteur met les suggestions en pause et le rebranchement les
rétablit. Cet état de pause n’est pas mémorisé d’un démarrage à l’autre.
Régler son comportement
Section intitulée « Régler son comportement »Les options se posent sur le modèle, dans autocompleteOptions. Il n’existe pas
de bloc tabAutocompleteOptions à la racine de workstation.yaml.
name: Local Configversion: 1.0.0models: - name: Autocomplétion provider: openai model: any apiBase: https://passerelle.interne:6001/completion-rapide/v1 apiKey: sk-lemniscate-<clé> roles: - autocomplete autocompleteOptions: debounceDelay: 500 maxPromptTokens: 2048 modelTimeout: 300 onlyMyCode: false| Option | Défaut | Effet |
|---|---|---|
debounceDelay | 350 | millisecondes d’inactivité avant d’interroger le modèle |
modelTimeout | 150 | millisecondes accordées au modèle avant abandon |
maxPromptTokens | 1024 | taille du contexte envoyé |
useCache | true | réutilise une suggestion déjà calculée au même endroit |
onlyMyCode | true | limite les extraits de contexte au code du dépôt |
Un modèle lent, ou un moteur d’inférence chargé, demande d’augmenter
modelTimeout : à 150 millisecondes, la suggestion est abandonnée avant
d’arriver, ce qui ressemble à une autocomplétion inactive.
Next Edit selon le modèle
Section intitulée « Next Edit selon le modèle »Le réglage lemniscate.enableNextEdit vaut true par défaut, et la fonction
tourne avec n’importe quel modèle d’autocomplétion. Il n’y a pas de liste de
modèles autorisés.
La qualité des suggestions change d’un modèle à l’autre. Un modèle entraîné à
prédire l’édition suivante, comme la famille à poids ouverts instinct, reçoit
une requête taillée pour lui. Tout autre modèle reçoit une requête générique,
qui décrit la tâche en langage courant : la fonction marche, et les suggestions
peuvent être hors sujet.
Sur un modèle qui n’a pas été entraîné pour cette tâche, une notification prévient une fois par modèle et par session que la qualité des suggestions vient du modèle et non de la fonction. Elle propose deux actions : Disable Next Edit et Select different model.
Un modèle peut déclarer la capacité dans sa configuration :
name: Local Configversion: 1.0.0models: - name: Autocomplétion provider: openai model: any apiBase: https://passerelle.interne:6001/completion-rapide/v1 apiKey: sk-lemniscate-<clé> roles: - autocomplete capabilities: - next_editAttention à l’effet de bord. Dès qu’une liste capabilities est présente,
elle remplace le comportement par défaut. Écrire capabilities: [tool_use] sur
un modèle désactive Next Edit pour ce modèle ; c’est le seul moyen de le
désactiver par la configuration. Si vous déclarez des capacités, énumérez-les
toutes. Dans ce cas, la notification signale que la liste omet next_edit.
Quand une suggestion est affichée, Tab l’accepte et Échap la masque. Ces
raccourcis ne s’appliquent que dans ce cas.
La liste complète des réglages de l’extension est en Extension VS Code.