Conecte o Visual Studio Code a endpoints de modelos locais e remotos

O Visual Studio Code pode conectar a visualização Chat a um endpoint de inferência compatível com OpenAI para um modelo hospedado localmente. O endpoint pode rodar no mesmo dispositivo Windows 11 que o Visual Studio Code ou no Windows Server para acesso a partir de um ou mais clientes remotos do Windows 11. Essas topologias permitem que você mantenha inferência em um dispositivo desenvolvedor ou centralize o cálculo do modelo sem rodar o Visual Studio Code no Windows Server.

Neste artigo, você adiciona um endpoint existente como um endpoint personalizado no Visual Studio Code, seleciona seu modelo e verifica se o modelo responde. O procedimento assume que o endpoint de inferência já está rodando e acessível a partir do Visual Studio Code.

Pré-requisitos para endpoints de modelo locais e remotos

  • Baixe a versão estável atual do Visual Studio Code e certifique-se de que você pode acessar a visualização de Chat.
  • Um endpoint existente compatível com OpenAI que oferece suporte à API de Chat Completions e pode ser acessado do computador que está executando o Visual Studio Code.
  • Para um ponto de extremidade remoto hospedado no Windows Server, conectividade de rede do cliente do Windows 11 para o servidor e a porta do ponto de extremidade. Configure o Windows Firewall e qualquer firewall ou proxy intermediário para permitir a conexão. Configure o endpoint para escutar em uma interface de rede à qual clientes remotos possam se conectar, e não apenas em um endereço de loopback.
  • Para um ponto de extremidade remoto que usa um nome de host, um registro do Sistema de Nomes de Domínio (DNS) que o cliente do Windows 11 possa resolver para o host do Windows Server.
  • Para um endpoint HTTPS remoto, um certificado TLS válido em que o cliente Windows 11 confia e cujo nome do titular ou nome alternativo do titular corresponde ao nome do host na URL do endpoint.
  • Controles de acesso ao endpoint que permitem ao cliente do Windows 11 chamar a rota Chat Completions. Obtenha qualquer chave de API ou token necessário do administrador do endpoint.
  • Para inferência no mesmo dispositivo, a URL de loopback que o ponto de extremidade disponibiliza, como http://localhost:<port>/v1/chat/completions.
  • Para inferência remota, uma URL HTTPS confiável, como https://<server-name>:<port>/v1/chat/completions.
  • O ID exato do modelo; um nome de exibição do modelo, que o Visual Studio Code mostra no seletor de modelos de linguagem; limites de contexto; e capacidades suportadas pelo proprietário do endpoint ou pela documentação do modelo.
  • Os requisitos do cabeçalho de autenticação para o endpoint.
  • Se sua organização gerencia o GitHub Copilot, ela deve ativar a política Traga Sua Própria Chave de Modelo de Linguagem no VS Code. Para mais informações, veja Trazer sua própria chave de modelo de linguagem no VS Code.

Você não precisa de uma conta no GitHub ou de um plano GitHub Copilot para usar um modelo de trazer sua própria chave no chat. O endpoint personalizado não oferece recursos que dependem do serviço GitHub Copilot, incluindo sugestões embutidas, busca semântica e embeddings.

Adicionar um endpoint de modelo local ou remoto personalizado

O mesmo procedimento suporta um endpoint no mesmo dispositivo Windows 11 ou um endpoint remoto compatível com OpenAI no Windows Server. O Visual Studio Code se conecta a um URL de endpoint, e o serviço de endpoint gerencia a distribuição das inferências no back-end.

  1. No Visual Studio Code, abra a visualização de Chat.

  2. Abra o seletor de modelos de linguagem e então selecione Gerenciar Modelos de Linguagem (ícone de engrenagem).

    Você também pode abrir a Paleta de Comandos e executar o Chat: Gerenciar Modelos de Linguagem.

  3. No editor de Modelos de Linguagem , selecione Adicionar Modelos e depois selecione Endpoint Personalizado.

  4. Insira o nome do grupo. Esse nome identifica os modelos do endpoint no seletor de modelos de linguagem e no editor de Modelos de Linguagem .

  5. Insira o nome de exibição do modelo e a chave API do endpoint.

  6. Para o tipo de API, selecione Chat Completions.

  7. No chatLanguageModels.json arquivo que o Visual Studio Code abre, configure as propriedades do modelo e depois salve o arquivo.

    Use a documentação do endpoint e do modelo para definir as propriedades. No mínimo, confirme os seguintes valores:

    Property Value
    id O ID exato do modelo que o endpoint espera.
    name O nome de exibição do modelo que o Visual Studio Code mostra no seletor de modelos de linguagem.
    url A rota completa, como https://<server-name>:<port>/v1/chat/completions.
    apiType chat-completions
    toolCalling true somente se o endpoint e o modelo suportarem chamada de ferramenta.
    vision true somente se o endpoint e o modelo suportarem entrada de imagem.
    maxInputTokens O modelo dava suporte à contagem máxima de tokens de entrada.
    maxOutputTokens A contagem máxima de tokens de saída suportada pelo modelo.

    Mantenha a referência de entrada gerada apiKey em vez de colocar a chave API diretamente em chatLanguageModels.json. O Visual Studio Code envia a chave em um cabeçalho Authorization: Bearer <api-key> por padrão para endpoints personalizados do Chat Completions.

    Se o endpoint exigir um cabeçalho de autenticação diferente, configure a propriedade requestHeaders do modelo e use o token ${apiKey} como valor do cabeçalho. Não coloque um segredo bruto no arquivo de configuração. Para ver as propriedades compatíveis e o comportamento de autenticação, consulte a referência de configuração do endpoint personalizado.

Selecione e verifique um modelo de endpoint local ou remoto

  1. Volte para a visualização do Chat e abra o seletor de modelos de linguagem.

  2. Selecione o modelo sob o nome do grupo que você configurou.

  3. Insira um pequeno prompt de teste, como:

    Reply with one sentence that confirms you received this request.
    
  4. Confirme que a visualização de Chat exibe uma resposta do modelo selecionado.

  5. Se você tiver acesso aos logs do endpoint de inferência, confirme que o endpoint recebeu a requisição para o ID do modelo configurado.

A configuração está funcionando quando o modelo selecionado retorna uma resposta e o endpoint registra a solicitação.

Note

Um modelo deve suportar chamadas de ferramenta para ficar disponível para agentes no chat. Não defina toolCalling para true a menos que o endpoint e o modelo suportem essa capacidade.

Solucionar problemas em endpoints de modelos locais e remotos no Visual Studio Code

Questão O que verificar
O Endpoint Personalizado não está disponível Atualização para a versão estável atual do Visual Studio Code. Se sua organização gerencia o GitHub Copilot, confirme que sua organização ativa a política de trazer sua própria chave.
O modelo não aparece no seletor de modelos Salve chatLanguageModels.json, e depois reinicie o Visual Studio Code. Em um espaço de trabalho no Modo Restrito, confie no espaço de trabalho para restaurar a lista completa de modelos. Para uso por agentes, confirme também se o modelo oferece suporte a chamadas de ferramentas e se toolCalling é true.
O endpoint retorna um erro de autenticação Confirme que a chave da API está atualizada e que seu cabeçalho de autenticação corresponde aos requisitos do endpoint. Se o endpoint exigir outro cabeçalho, configure requestHeaders com o token ${apiKey}.
O endpoint retorna um erro de rota ou API Confirme que apiType é url e que /v1/chat/completions contém a rota completa de Chat Completions, incluindo chat-completions quando o endpoint expõe essa rota.
Um cliente remoto não consegue se conectar ao endpoint Confirme que o cliente do Windows 11 consegue resolver o nome do host do servidor e alcançar a porta do endpoint. Verifique o endereço do ouvinte do endpoint, o Firewall do Windows e qualquer firewall ou proxy intermediário.
Um endpoint remoto retorna um erro TLS ou certificado Confirme que o certificado é válido, que o cliente do Windows 11 confia nele e que ele cobre o nome do host na URL do endpoint.
O endpoint nega um cliente remoto Confirme se os controles de acesso ao endpoint permitem que o cliente chame a rota de Chat Completions e que a credencial configurada tem acesso ao modelo solicitado.
A solicitação chega ao ponto final, mas a inferência falha Confirme se o ID do modelo corresponde exatamente ao ID do modelo do endpoint e que o endpoint suporta as capacidades do modelo solicitado. Verifique os logs do endpoint relacionados à falha da requisição.