Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O GitHub Copilot CLI é um agente de codificação de IA que pode enviar pedidos de modelo de um cliente Windows suportado para um endpoint de inferência compatível com OpenAI alojado no Windows Server. Esta configuração permite-lhe usar um modelo alojado na organização a partir do seu terminal, enquanto o Windows Server centraliza o alojamento e computação do modelo.
Este artigo mostra-lhe como configurar a ligação ao cliente e verificar se o modelo configurado responde. Não implementa nem segura o serviço de inferência.
Prerequisites
- Um computador cliente que executa uma versão do Windows suportada pela CLI do GitHub Copilot, com:
- PowerShell 6 ou posterior.
- Windows Gestor de Pacotes (WinGet).
- Uma subscrição ativa do GitHub Copilot. Se uma organização ou empresa fornecer a sua subscrição, o seu administrador deve permitir a CLI do GitHub Copilot.
- Um diretório funcional de confiança a partir do qual iniciar a CLI do GitHub Copilot.
- Um endpoint compatível com OpenAI existente no Windows Server que:
- É acessível a partir do computador cliente.
- Requer autenticação. Este procedimento aplica-se a ligações remotas ao Windows Server. Reserve endpoints sem autenticação para cenários exclusivamente de loopback fora deste procedimento.
- Escuta apenas na interface de rede do servidor pretendida, permite ligações de entrada apenas a partir de computadores clientes autorizados ou sub-redes, e não aceita ligações diretas da internet pública.
- Suporta transmissão em fluxo e invocação de ferramentas ou de funções. A compatibilidade OpenAI por si só não garante suporte para todas as capacidades CLI do GitHub Copilot. Verifique as capacidades do endpoint e do modelo selecionado com o operador do endpoint.
- Uma ligação de rede entre um cliente Windows e um Windows Server que tem:
- Um nome DNS para o ponto final de inferência do Windows Server que possa ser resolvido a partir do computador cliente.
- Uma rota de rede e regras de firewall que permitem apenas a clientes ou sub-redes autorizados estabelecer ligação à porta do endpoint.
- Um certificado HTTPS em que o cliente confia e cujo nome do titular ou nome alternativo do titular corresponde ao nome DNS do ponto final.
- A URL de base do endpoint, como
https://inference.contoso.com/v1. - A credencial de acesso e o tipo de autenticação especificados pelo operador do endpoint.
Instalar a CLI do GitHub Copilot
Abra o PowerShell.
Instala o pacote estável de CLI do GitHub Copilot:
winget install GitHub.CopilotConfirme que a instalação foi bem-sucedida:
copilot --versionO comando devolve a versão instalada da CLI do GitHub Copilot.
Obtenha um ID de modelo do endpoint de inferência do Windows Server
Defina a URL base que o operador do endpoint forneceu:
$BaseUrl = 'https://inference.contoso.com/v1'Introduza a chave da API ou o token bearer que o operador do endpoint especifica. Use uma credencial de curta duração e de menor privilégio. Quando a sua organização fornece um comando de armazenamento secreto aprovado, utilize-o para recuperar a credencial em vez de a introduzir diretamente. O comando seguinte converte o
SecureStringvalor para o valor do texto$endpointCredentialsimples, que permanece na memória para esta sessão PowerShell.$secureEndpointCredential = Read-Host 'Enter the endpoint credential' -AsSecureString $endpointCredential = [System.Net.NetworkCredential]::new('', $secureEndpointCredential).PasswordEnvie um
GETpedido para$BaseUrl/models. Inclua$endpointCredentialnumAuthorization: Bearercabeçalho e leia cada ID de modelo do array dadataresposta:$requestParameters = @{ Uri = "$BaseUrl/models" Method = 'Get' } try { $requestParameters.Headers = @{ Authorization = "Bearer $endpointCredential" } $models = Invoke-RestMethod @requestParameters $models.data | Select-Object -ExpandProperty id } finally { $requestParameters.Headers = $null }O comando devolve um ou mais IDs de modelo. Copie o ID exato de um modelo que suporta streaming e chamada de ferramentas ou funções.
Configure o fornecedor e modelo da CLI do GitHub Copilot
Defina
$BaseUrlcomo a URL de base do endpoint do Windows Server e$endpointCredentialcomo a chave da API ou o token de portador. Na mesma sessão PowerShell, defina o tipo de fornecedor, a URL base do endpoint e o ID exato do modelo. Substitua<MODEL_ID>por um ID que o endpoint do Windows Server devolva.$env:COPILOT_PROVIDER_TYPE = 'openai' $env:COPILOT_PROVIDER_BASE_URL = $BaseUrl $env:COPILOT_MODEL = '<MODEL_ID>'O
openaitipo de fornecedor suporta endpoints compatíveis com OpenAI, incluindo vLLM.Eliminar quaisquer variáveis de autenticação do fornecedor que a sessão atual do PowerShell tenha herdado:
Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinueConfigure o método de autenticação que o operador do endpoint especificou:
Para autenticação padrão com chave API OpenAI, utilize um comando secret-store aprovado pela organização sempre que estiver disponível:
$env:COPILOT_PROVIDER_API_KEY_COMMAND = '<APPROVED_SECRET_STORE_COMMAND>'O comando deve recuperar a credencial de um armazenamento secreto aprovado, gerar apenas a credencial e não a registar nem persistir.
COPILOT_PROVIDER_API_KEY_COMMANDtem precedência sobreCOPILOT_PROVIDER_API_KEY.Se não houver um comando secret-store aprovado disponível, defina a chave API diretamente como um recurso alternativo de curta duração para a sessão atual do PowerShell:
$env:COPILOT_PROVIDER_API_KEY = $endpointCredentialPara autenticação do token de portador, defina o token de portador:
$env:COPILOT_PROVIDER_BEARER_TOKEN = $endpointCredential
Importante
Não coloques chaves API em scripts, controlo de versões ou exemplos de comandos.
copilote quaisquer processos que inicie herdam variáveis do ambiente de autenticação do fornecedor. Use credenciais de curta duração, com privilégios mínimos, e remova as variáveis depois de sair da CLI do GitHub Copilot.Revise as variáveis do fornecedor suportadas na sua versão instalada:
copilot help providers
Inicia e verifica a CLI do GitHub Copilot
Mude para um diretório cujos ficheiros confia:
Set-Location 'C:\path\to\trusted-project'
Importante
Se parar antes de começar copilot, ou se um comando anterior falhar, remova as variáveis de autenticação do fornecedor, limpe os cabeçalhos dos pedidos e elimine a credencial segura antes de fechar o PowerShell:
if ($requestParameters) {
$requestParameters.Headers = $null
}
Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue
if ($secureEndpointCredential) {
$secureEndpointCredential.Dispose()
}
Fecha a sessão PowerShell depois de a limpeza ser executada. A cadeia de texto $endpointCredential simples imutável permanece na memória até ao fim do processo.
Inicie a CLI do GitHub Copilot e execute os passos de verificação num
trybloco para que o PowerShell remova variáveis do ambiente de autenticação do fornecedor e elimine oSecureStringvalor quando sair ou quando o comando falhar:try { copilot } finally { if ($requestParameters) { $requestParameters.Headers = $null } Remove-Item Env:COPILOT_PROVIDER_API_KEY, Env:COPILOT_PROVIDER_BEARER_TOKEN, Env:COPILOT_PROVIDER_API_KEY_COMMAND -ErrorAction SilentlyContinue if ($secureEndpointCredential) { $secureEndpointCredential.Dispose() } }Confirme a mensagem de diretório de confiança. Confie no diretório para sessões futuras apenas se controlar o seu conteúdo e esperar que continue a ser confiável.
Se o CLI do GitHub Copilot te pedir, introduza
/logine siga as instruções para autenticar no GitHub. A autenticação no GitHub é separada da chave API que autentica o endpoint de inferência.Introduza este pedido de teste:
Reply with exactly: Local inference test succeededO modelo configurado no endpoint do Windows Server devolve
Local inference test succeededsem erro de fornecedor, autenticação ou compatibilidade de modelo. Depois de sair da CLI do GitHub Copilot, o PowerShell executa o blocofinally. O PowerShell não consegue apagar de forma fiável a cadeia de texto$endpointCredentialsimples imutável da memória, por isso fecha a sessão do PowerShell após o comando terminar para libertar a memória do processo.
Resolução de problemas das ligações entre a CLI do GitHub Copilot e um ponto final de inferência no Windows Server
| Problema | O que deve verificar |
|---|---|
| O pedido de modelos não consegue chegar ao endpoint | Verifique a URL base do endpoint, resolução DNS, porta, rota de rede, estado do serviço e confiança do certificado TLS. A URL base deve incluir o prefixo da API que o operador do endpoint fornece, como /v1. |
Os modelos solicitam retornos 401 ou 403 |
Verifique se a credencial é válida. Para autenticação por chave API, prefira COPILOT_PROVIDER_API_KEY_COMMAND usar um comando secret-store aprovado. Utiliza COPILOT_PROVIDER_API_KEY apenas como alternativa temporária. Para autenticação por token portador, defina COPILOT_PROVIDER_BEARER_TOKEN, conforme especificado pelo operador endpoint. |
| A CLI do GitHub Copilot utiliza um fornecedor ou modelo diferente | Defina o tipo de fornecedor, URL base, modelo e variável de autenticação selecionada na mesma sessão PowerShell que inicia copilot. Use o ID exato do modelo que o endpoint devolve. Verifique $HOME\.copilot\providers.jsontambém ; as declarações do fornecedor ou modelo desse ficheiro têm precedência sobre as COPILOT_PROVIDER_* variáveis. |
| A CLI do GitHub Copilot não consegue encontrar o modelo | Volte a consultar $BaseUrl/models e compare o COPILOT_MODEL valor com o id valor que o endpoint devolve, incluindo capitalização e pontuação. |
| O prompt falha depois de o endpoint aceitar o pedido | Confirme que o modelo e o endpoint suportam tanto streaming como chamada de ferramentas ou funções. Verifique os registos do endpoint para identificar um campo do pedido não suportado, um esquema da ferramenta, um limite de contexto ou um formato de resposta. |