O que github_copilot_openai_api_wrapper faz?
Permite o acesso ao GitHub Copilot por meio de qualquer cliente compatível com a API OpenAI, usando um servidor local como proxy para as requisições à API do Copilot Chat.
Como funciona
Este projeto cria um servidor proxy local que traduz chamadas da API OpenAI (formato de chat/completions) para a API do GitHub Copilot Chat. Você pode usar qualquer cliente ou biblioteca que suporte OpenAI (como openai Python, curl, ou interfaces como o ChatGPT) apontando para http://localhost:8080 (ou a porta configurada).
Pré-requisitos
- Node.js 18+ instalado
- Uma sessão ativa do GitHub Copilot (você precisa ter acesso ao Copilot via GitHub)
- Token de autenticação do GitHub (opcional, o wrapper pode autenticar via cookie de sessão)
Instalação
npm install -g github-copilot-openai-api-wrapper
Ou execute diretamente com npx:
npx github-copilot-openai-api-wrapper
Configuração
Configure as variáveis de ambiente ou um arquivo .env:
| Variável | Descrição | Padrão |
|---|---|---|
PORT | Porta do servidor proxy | 8080 |
GITHUB_TOKEN | Token de acesso pessoal do GitHub | (opcional) |
COPILOT_TOKEN | Token de sessão do Copilot | (gerado automaticamente) |
Uso
Após iniciar o servidor:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4",
"messages": [{"role": "user", "content": "Explique o que é um proxy em Python"}]
}'
O wrapper irá autenticar automaticamente com o Copilot e retornar a resposta gerada.
Exemplo com Python
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8080/v1", api_key="qualquer-coisa")
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Crie uma função para inverter uma string"}]
)
print(response.choices[0].message.content)
Limitações
- O modelo usado é sempre o do Copilot (não é configurável)
- A latência depende da rede e da API do Copilot
- O wrapper não armazena histórico de conversas (stateless)
Licença
MIT