Lab 013: GitHub Models — Inferência LLM Gratuita¶
O Que Você Vai Aprender¶
- O que é o GitHub Models e quais modelos estão disponíveis
- Como usar o playground do GitHub Models (navegador, sem código)
- Como chamar o GitHub Models via REST API e Python SDK
- Como gerar embeddings de texto gratuitamente (necessário para os labs de RAG)
Introdução¶
O GitHub Models oferece acesso gratuito via API a LLMs de ponta — GPT-4o, Llama, Phi, Mistral e mais — usando seu token de acesso pessoal do GitHub. Sem conta Azure, sem cartão de crédito, sem cadastro além do que você já possui.
Este é o backend de LLM usado em todos os labs L200 neste hub.
Configuração de Pré-requisitos¶
1. Crie um token de acesso pessoal do GitHub¶
- Acesse github.com/settings/tokens
- Clique em "Generate new token (classic)"
- Nome:
github-models-labs - Expiração: 90 dias
- Escopos: nenhum necessário (acesso somente leitura é suficiente para a API do Models)
- Clique em "Generate token" — copie e salve imediatamente
2. Armazene o token como variável de ambiente¶
📦 Arquivos de Apoio¶
Baixe estes arquivos antes de iniciar o lab
Salve todos os arquivos em uma pasta lab-013/ no seu diretório de trabalho.
| Arquivo | Descrição | Download |
|---|---|---|
requirements.txt |
Dependências Python | 📥 Download |
starter.py |
Script inicial com TODOs | 📥 Download |
Exercício do Lab¶
Passo 1: Explore o Playground¶
- Acesse github.com/marketplace/models
- Clique em "gpt-4o"
- Clique em "Playground"
- Digite uma mensagem e pressione Enter
Agora você está conversando com o GPT-4o gratuitamente, diretamente no navegador.
Experimente diferentes modelos:
- gpt-4o-mini — mais rápido e mais econômico
- Phi-4 — modelo pequeno mas poderoso da Microsoft
- Llama-3.3-70B-Instruct — modelo open-source da Meta
Passo 2: Faça sua primeira chamada à API¶
Instale o OpenAI Python SDK (é compatível com o GitHub Models):
Crie hello_models.py:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://models.inference.ai.azure.com",
api_key=os.environ["GITHUB_TOKEN"],
)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is the Model Context Protocol?"},
],
max_tokens=500,
)
print(response.choices[0].message.content)
Execute:
Adicione o pacote NuGet:
Crie Program.cs:
using Azure;
using Azure.AI.Inference;
var endpoint = new Uri("https://models.inference.ai.azure.com");
var credential = new AzureKeyCredential(Environment.GetEnvironmentVariable("GITHUB_TOKEN")!);
var client = new ChatCompletionsClient(endpoint, credential);
var response = await client.CompleteAsync(new ChatCompletionsOptions
{
Model = "gpt-4o-mini",
Messages =
{
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("What is the Model Context Protocol?"),
},
MaxTokens = 500,
});
Console.WriteLine(response.Value.Content);
Passo 3: Gere embeddings de texto¶
Embeddings são o ingrediente principal para RAG. Vamos gerar um:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://models.inference.ai.azure.com",
api_key=os.environ["GITHUB_TOKEN"],
)
response = client.embeddings.create(
model="text-embedding-3-small",
input="A waterproof outdoor camping tent",
)
vector = response.data[0].embedding
print(f"Embedding dimensions: {len(vector)}")
print(f"First 5 values: {vector[:5]}")
O que é um embedding?
Um embedding é uma lista de números (um vetor) que representa o significado de um trecho de texto.
Textos semelhantes produzem vetores que ficam próximos no espaço vetorial.
É assim que a busca semântica funciona: compara o vetor da consulta com todos os vetores dos documentos e retorna os mais próximos.
Passo 4: Modelos Disponíveis¶
Verifique quais modelos estão disponíveis via API:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://models.inference.ai.azure.com",
api_key=os.environ["GITHUB_TOKEN"],
)
models = client.models.list()
for model in models.data:
print(model.id)
📁 Arquivos Iniciais¶
Baixe o arquivo inicial para acompanhar:
O 📥 starter.py contém 4 exercícios com comentários TODO. Complete cada TODO para construir um cliente funcional do GitHub Models.
Limites de Taxa¶
O GitHub Models é gratuito, mas possui limites de taxa:
| Plano | Requisições/min | Tokens/dia |
|---|---|---|
| Free | ~15 | ~150.000 |
| Copilot Pro/Business | Maior | Maior |
Para fins de lab, esses limites são mais que suficientes. Se você atingir um limite, aguarde 1 minuto.
Resumo¶
O GitHub Models oferece acesso gratuito a LLMs de ponta usando apenas sua conta GitHub. Você pode usar a interface do playground no navegador ou chamar a API via Python/C#/REST. A API é compatível com OpenAI, então qualquer código que funcione com OpenAI funciona aqui também.
Próximos Passos¶
- Construa um agente com Semantic Kernel: → Lab 014 — SK Hello Agent
- Construa um app de RAG: → Lab 022 — RAG com GitHub Models + pgvector