Noções Básicas de LLMs
10 exemplos para você começar com LLMs e GenAI - 7 básicos e 3 intermediários.
Pré-requisitos
uv venv && source .venv/bin/activate
uv pip install "openai>=1.60" "anthropic>=0.40" "tiktoken>=0.8"
export OPENAI_API_KEY="sk-..." # ou ANTHROPIC_API_KEY- Python 3.14.0 com o SDK do provedor instalado.
- Chave de API para pelo menos um provedor (OpenAI ou Anthropic).
Exemplos Básicos
1. Sua Primeira Conclusão de Chat
Envie uma mensagem e receba uma resposta de texto.
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Explique as compreensões de lista do Python em uma frase."}],
)
print(response.choices[0].message.content)messagesé uma lista de dicionários de role/content.rolepode sersystem,userouassistant.- O texto da resposta está em
choices[0].message.content.
Relacionado: SDKs OpenAI e Outros - padrões de provedores
2. Prompts do Sistema e do Usuário
Separe as instruções da tarefa do usuário.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Você é um tutor conciso de Python. Responda em no máximo 2 frases."},
{"role": "user", "content": "O que é uma expressão geradora?"},
],
)- O prompt do sistema define a persona, o tom e as restrições.
- O prompt do usuário carrega a pergunta ou tarefa real.
- Os prompts do sistema não são visíveis para os usuários finais na maioria das UIs.
Relacionado: Engenharia de Prompt - padrões de prompt
3. Conte Tokens Antes de Enviar
Estime o custo e verifique os limites de contexto.
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o-mini")
text = "Explique o gradiente descendente para um desenvolvedor júnior."
tokens = enc.encode(text)
print(f"tokens: {len(tokens)}")- A contagem de tokens determina o custo da API e se a entrada cabe na janela de contexto.
- Regra aproximada: 1 token ~ 4 caracteres em inglês.
- Conte a entrada e a saída esperada ao orçar.
Relacionado: Tokens, Custo e Limites de Taxa - orçamento
4. Controle a Aleatoriedade com Temperatura
Temperatura mais baixa = saída mais determinística.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Dê-me um nome criativo de equipe para um projeto Python."}],
temperature=0.9, # criativo
)
response2 = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "2+2 é igual a 4?"}],
temperature=0.0, # determinístico
)temperature=0para respostas factuais e repetíveis.temperature=0.7-1.0para escrita criativa.top_p(amostragem de núcleo) é uma alternativa à temperatura.
5. Limite o Comprimento da Saída
Limite os tokens de resposta para controlar o custo.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Resuma o GIL do Python."}],
max_tokens=100,
)max_tokenslimita o comprimento da conclusão, não da entrada.- Defina com base no tamanho esperado da resposta.
- Parar mais cedo economiza dinheiro em modelos verbosos.
6. Conversa Multi-Turno
Passe mensagens anteriores para contexto.
messages = [
{"role": "user", "content": "Meu aplicativo usa FastAPI e PostgreSQL."},
{"role": "assistant", "content": "Ótima pilha! Com o que você gostaria de ajuda?"},
{"role": "user", "content": "Como devo estruturar as migrações do banco de dados?"},
]
response = client.chat.completions.create(model="gpt-4o-mini", messages=messages)- Inclua o histórico completo da conversa para contexto multi-turno.
- Histórico mais longo usa mais tokens - corte turnos antigos quando necessário.
- Respostas do assistente devem ser incluídas para continuidade.
7. Chame o Anthropic Claude
Mesmo padrão, SDK e formato de mensagem diferentes.
import anthropic
claude = anthropic.Anthropic()
message = claude.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=256,
system="Você é um assistente Python prestativo.",
messages=[{"role": "user", "content": "Para que serve o pydantic?"}],
)
print(message.content[0].text)- Anthropic separa
systemdemessages. contenté uma lista de blocos de conteúdo (texto, imagens, ferramentas).- IDs de modelo mudam - verifique a documentação do provedor para nomes atuais.
Relacionado: SDK Anthropic Claude - guia completo do Claude
Exemplos Intermediários
8. Prompting Few-Shot
Mostre exemplos do formato de entrada/saída desejado.
messages = [
{"role": "system", "content": "Classifique o sentimento como positivo, negativo ou neutro."},
{"role": "user", "content": "Texto: Eu amo esta biblioteca!\nSentimento: positivo"},
{"role": "assistant", "content": "positivo"},
{"role": "user", "content": "Texto: Ele travou duas vezes hoje.\nSentimento:"},
]
response = client.chat.completions.create(model="gpt-4o-mini", messages=messages, temperature=0)- Exemplos few-shot ensinam o formato sem fine-tuning.
- 2-5 exemplos geralmente são suficientes; mais usa tokens.
- Os exemplos devem cobrir os casos de borda que você se importa.
Relacionado: Engenharia de Prompt - padrões few-shot
9. Saída JSON Estruturada
Solicite JSON para análise downstream.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Liste 3 frameworks web Python como JSON com campos de nome e ano."}],
response_format={"type": "json_object"},
)
import json
data = json.loads(response.choices[0].message.content)response_format={"type": "json_object"}força JSON válido.- Mencione "JSON" no prompt para melhores resultados.
- Valide a saída analisada com Pydantic antes de usar.
Relacionado: Saída Estruturada - esquemas Pydantic
10. Chave de API Baseada em Ambiente
Carregue chaves do ambiente, nunca codifique.
import os
from openai import OpenAI
api_key = os.environ.get("OPENAI_API_KEY")
if not api_key:
raise RuntimeError("Defina OPENAI_API_KEY")
client = OpenAI(api_key=api_key)- Use arquivos
.envlocalmente compython-dotenv(adicione.envao.gitignore). - Produção: gerenciador de segredos (AWS Secrets Manager, Vault).
- Rotacione as chaves se acidentalmente commitadas.
Versões da Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.