Conceptos básicos de LLM
10 ejemplos para empezar con LLM y GenAI: 7 básicos y 3 intermedios.
Busca en todas las páginas de la documentación
10 ejemplos para empezar con LLM y GenAI: 7 básicos y 3 intermedios.
uv venv && source .venv/bin/activate
uv pip install "openai>=1.60" "anthropic>=0.40" "tiktoken>=0.8"
export OPENAI_API_KEY="sk-..." # o ANTHROPIC_API_KEYEnvía un mensaje y obtén una respuesta de texto.
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Explica las comprensiones de listas de Python en una frase."}],
)
print(response.choices[0].message.content)messages es una lista de diccionarios de rol/contenido.role puede ser system, user o assistant.choices[0].message.content.Relacionado: SDK de OpenAI y otros - patrones de proveedor
Separa las instrucciones de la tarea del usuario.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "Eres un tutor conciso de Python. Responde en un máximo de 2 frases."},
{"role": "user", "content": "¿Qué es una expresión generadora?"},
],
)Relacionado: Ingeniería de prompts - patrones de prompts
Estima el costo y verifica los límites de contexto.
import tiktoken
enc = tiktoken.encoding_for_model("gpt-4o-mini")
text = "Explica el descenso de gradiente para un desarrollador junior."
tokens = enc.encode(text)
print(f"tokens: {len(tokens)}")Relacionado: Tokens, Costos y Límites de Tasa - presupuestación
Temperatura más baja = salida más determinista.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Dame un nombre creativo de equipo para un proyecto de Python."}],
temperature=0.9, # creativo
)
response2 = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "¿Es 2+2 igual a 4?"}],
temperature=0.0, # determinista
)temperature=0 para respuestas fácticas y repetibles.temperature=0.7-1.0 para escritura creativa.top_p (muestreo de núcleo) es una alternativa a la temperatura.Limita los tokens de respuesta para controlar el costo.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Resume el GIL de Python."}],
max_tokens=100,
)max_tokens limita la longitud de la completación, no la entrada.Pasa mensajes anteriores para obtener contexto.
messages = [
{"role": "user", "content": "Mi aplicación usa FastAPI y PostgreSQL."},
{"role": "assistant", "content": "¡Excelente pila! ¿En qué te gustaría ayuda?"},
{"role": "user", "content": "¿Cómo debería estructurar las migraciones de la base de datos?"},
]
response = client.chat.completions.create(model="gpt-4o-mini", messages=messages)Mismo patrón, diferente SDK y formato de mensaje.
import anthropic
claude = anthropic.Anthropic()
message = claude.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=256,
system="Eres un asistente útil de Python.",
messages=[{"role": "user", "content": "¿Para qué se usa pydantic?"}],
)
print(message.content[0].text)system de messages.content es una lista de bloques de contenido (texto, imágenes, herramientas).Relacionado: SDK de Anthropic Claude - guía completa de Claude
Muestra ejemplos del formato de entrada/salida deseado.
messages = [
{"role": "system", "content": "Clasifica el sentimiento como positivo, negativo o neutral."},
{"role": "user", "content": "Texto: ¡Me encanta esta biblioteca!\nSentimiento: positivo"},
{"role": "assistant", "content": "positivo"},
{"role": "user", "content": "Texto: Se bloqueó dos veces hoy.\nSentimiento:"},
]
response = client.chat.completions.create(model="gpt-4o-mini", messages=messages, temperature=0)Relacionado: Ingeniería de prompts - patrones de pocos ejemplos
Solicita JSON para análisis posterior.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Enumera 3 frameworks web de Python como JSON con campos de nombre y año."}],
response_format={"type": "json_object"},
)
import json
data = json.loads(response.choices[0].message.content)response_format={"type": "json_object"} fuerza un JSON válido.Relacionado: Salida Estructurada - esquemas Pydantic
Carga claves del entorno, nunca las codifiques directamente.
import os
from openai import OpenAI
api_key = os.environ.get("OPENAI_API_KEY")
if not api_key:
raise RuntimeError("Establece OPENAI_API_KEY")
client = OpenAI(api_key=api_key).env localmente con python-dotenv (añade .env a .gitignore).Versiones de la pila: Esta página se escribió para Python 3.14.0 (estable 3.14, mantenimiento 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+ y uv 0.6+.
Revisado por Chris St. John·Última actualización: 16 jul 2026