Connectez Visual Studio Code aux points de terminaison locaux et distants des modèles

Visual Studio Code peut connecter la vue Chat à un point d’inférence compatible OpenAI pour un modèle hébergé localement. Le point de terminaison peut fonctionner sur le même appareil Windows 11 que Visual Studio Code ou sur Windows Server pour accéder depuis un ou plusieurs clients Windows 11 distants. Ces topologies permettent de conserver l’inférence sur un appareil développeur ou de centraliser le calcul du modèle sans exécuter Visual Studio Code sur Windows Server.

Dans cet article, vous ajoutez un point de terminaison existant comme point de terminaison personnalisé dans Visual Studio Code, sélectionnez son modèle et vérifiez que le modèle répond. La procédure suppose que le point d’extrémité d’inférence est déjà en cours d’exécution et accessible depuis Visual Studio Code.

Prérequis pour les terminaux de modèles locaux et distants

  • Téléchargez la version stable actuelle de Visual Studio Code et assurez-vous d’accéder à la vue Chat.
  • Un point de terminaison compatible OpenAI existant qui prend en charge l’API Chat Completions et accessible depuis l’ordinateur exécutant Visual Studio Code.
  • Pour un point de terminaison distant hébergé sur Windows Server, connection réseau du client Windows 11 au serveur et au port du point de terminaison. Configurez le pare-feu Windows et tout pare-feu ou proxy intermédiaire pour permettre la connexion. Configurez le point d’accès pour qu’il écoute sur une interface réseau accessible aux clients distants, pas seulement via une adresse de boucle.
  • Pour un point de terminaison distant utilisant un nom hôte, un enregistrement Domain Name System (DNS) que le client Windows 11 peut résoudre vers l’hôte Windows Server.
  • Pour un point de terminaison HTTPS distant, un certificat TLS valide auquel le client Windows 11 fait confiance et dont le nom de l’objet ou le nom alternatif correspond au nom de l’hôte dans l’URL du point de terminaison.
  • Des contrôles d’accès aux points de terminaison qui permettent au client Windows 11 d’appeler la voie des Chat Completions. Obtenez toute clé API ou jeton requis auprès de l’administrateur du endpoint.
  • Pour l’inférence sur le même appareil, l’URL de boucle que le point d’extrémité expose, comme http://localhost:<port>/v1/chat/completions.
  • Pour l’inférence à distance, une URL HTTPS fiable, telle que https://<server-name>:<port>/v1/chat/completions.
  • L’ID exact du modèle ; un nom d’affichage du modèle, que Visual Studio Code affiche dans le sélecteur de modèle de langage ; les limites contextuelles ; et les capacités prises en charge par le propriétaire du point de terminaison ou la documentation du modèle.
  • Exigences relatives à l’en-tête d’authentification pour le point de terminaison.
  • Si votre organisation gère GitHub Copilot, elle doit activer la politique Bring Your Own Language Model Key in VS Code. Pour plus d’informations, voir Apporter votre propre clé de modèle de langage dans VS Code.

Vous n'avez pas besoin d'un compte GitHub ni d'un plan GitHub Copilot pour utiliser un modèle « apportez votre propre clé » dans le chat. Le point de terminaison personnalisé ne fournit pas de fonctionnalités qui dépendent du service GitHub Copilot, notamment les suggestions en ligne, la recherche sémantique et les embeddings.

Ajouter un point de terminaison de modèle personnalisé local ou distant

La même procédure prend en compte un point d’extrémité sur le même appareil Windows 11 ou un point de terminaison distant compatible OpenAI sur Windows Server. Visual Studio Code se connecte à une URL de terminaison, et le service de terminaison gère la distribution d’inférence en arrière-plan.

  1. Dans Visual Studio Code, ouvrez la vue Chat.

  2. Ouvrez le sélecteur de modèles de langage, puis sélectionnez Gérer les modèles de langage (icône d’engrenage).

    Vous pouvez également ouvrir la palette de commandes et lancer Chat : Gérer les modèles de langage.

  3. Dans l’éditeur Language Models, sélectionnez Add Models, puis Point de terminaison personnalisé.

  4. Saisissez un nom de groupe. Ce nom identifie les modèles du point de terminaison dans le sélecteur de modèles de langage et l’éditeur de modèles de langage .

  5. Saisissez le nom d’affichage du modèle et la clé API du point de terminaison.

  6. Pour le type d’API, sélectionnez Chat Completions.

  7. Dans le chatLanguageModels.json fichier que Visual Studio Code ouvre, configurez les propriétés du modèle, puis enregistrez le fichier.

    Utilisez la documentation du point de terminaison et du modèle pour définir les propriétés. Au minimum, confirmez les valeurs suivantes :

    Propriété Valeur
    id L’ID exact du modèle attendu par le point de terminaison.
    name Le nom d’affichage du modèle que Visual Studio Code affiche dans le sélecteur de modèles de langage.
    url Le chemin complet, par exemple https://<server-name>:<port>/v1/chat/completions.
    apiType chat-completions
    toolCalling true uniquement si le point de terminaison et le modèle prennent en charge l’appel d’outils.
    vision true seulement si le point d’extrémité et le modèle prennent en charge l’entrée d’images.
    maxInputTokens Le nombre maximal de tokens d’entrée pris en charge par le modèle.
    maxOutputTokens Le nombre maximal de jetons de sortie pris en charge par le modèle.

    Conservez la référence d’entrée générée apiKey au lieu de placer directement la clé API dans chatLanguageModels.json. Visual Studio Code envoie par défaut la clé dans un en-tête Authorization: Bearer <api-key> pour les points de terminaison personnalisés Chat Completions.

    Si le point d’accès nécessite un en-tête d’authentification différent, configurez la propriété du requestHeaders modèle et utilisez le ${apiKey} jeton comme valeur d’en-tête. Ne placez pas de secret brut dans le fichier de configuration. Pour les propriétés prises en charge et le comportement d’authentification, voir référence de configuration Endpoint personnalisé.

Sélectionner et vérifier un modèle de terminaison local ou distant

  1. Retournez à la vue Chat et ouvrez le sélecteur de modèles de langage.

  2. Sélectionnez le modèle sous le nom du groupe que vous avez configuré.

  3. Ajoutez un court sujet de test, tel que :

    Reply with one sentence that confirms you received this request.
    
  4. Confirmez que la vue Chat affiche une réponse du modèle sélectionné.

  5. Si vous avez accès aux journaux du point de terminaison d’inférence, confirmez que le point de terminaison a bien reçu la requête correspondant à l’ID de modèle configuré.

La configuration fonctionne correctement lorsque le modèle sélectionné renvoie une réponse et que le point de terminaison enregistre la requête.

Note

Un modèle doit supporter l’appel d’outils pour être disponible pour les agents dans le chat. Ne définissez pas toolCalling sur true à moins que le point de terminaison et le modèle ne prennent en charge cette fonctionnalité.

Dépanner les points de terminaison locaux et distants des modèles dans Visual Studio Code

Problème Que vérifier
Le point de terminaison personnalisé n’est pas disponible Mise à jour vers la version stable actuelle de Visual Studio Code. Si votre organisation gère GitHub Copilot, confirmez que votre organisation applique la politique « apportez votre propre clé ».
Le modèle n’apparaît pas dans le sélecteur de modèles Enregistrez chatLanguageModels.json, puis redémarrez Visual Studio Code. Dans un espace de travail en mode restreint, faites confiance à l’espace de travail pour restaurer la liste complète des modèles. Pour une utilisation avec des agents, confirmez également que le modèle prend en charge les appels d’outils et que toolCalling est true.
Le point de terminaison renvoie une erreur d’authentification Confirmez que la clé API est à jour et que son en-tête d’authentification correspond aux exigences du point de terminaison. Si le point de terminaison nécessite un autre en-tête, configurez requestHeaders avec le jeton ${apiKey}.
Le point de terminaison renvoie une erreur de route ou d’API Confirmez que apiType est bien chat-completions et que url contient la route complète de Chat Completions, y compris /v1/chat/completions lorsque le point d’accès expose cette route.
Un client distant ne peut pas se connecter au point de terminaison Confirmez que le client Windows 11 peut résoudre le nom d’hôte du serveur et atteindre le port de terminaison. Vérifiez l’adresse d’écoute du point de terminaison, le pare-feu Windows, ainsi que tout pare-feu ou proxy intermédiaire.
Un point de terminaison distant renvoie une erreur TLS ou de certificat Confirmez que le certificat est valide, que le client Windows 11 lui fait confiance, et qu’il couvre le nom d’hôte dans l’URL du point de terminaison.
Le point de terminaison refuse un client distant Confirmez que les contrôles d’accès au point de terminaison permettent au client d’appeler la route Chat Completions et que l’identifiant configuré a accès au modèle demandé.
La requête atteint le point de terminaison mais l’inférence échoue Confirmez que l’identifiant du modèle correspond exactement à celui du point de terminaison et que celui-ci prend en charge les capacités de modèle demandées. Examinez les journaux de terminaison pour détecter l’échec de la requête.