Antes de la sesión
Prepara tu laptop: tu RAM, Python y la carpeta de práctica
En esta lección dejas lista la laptop para el taller: sabes cuánta memoria tienes, tienes Python funcionando, y una carpeta de práctica con los datos de ejemplo y la librería que usa el código.
Antes de empezar, seis ideas que vas a usar toda la sesión. Si vienes del taller de agentes en la terminal, las primeras dos ya las conoces: léelas rápido.
Seis ideas antes de empezar
1. Qué es una terminal
La terminal es una ventana donde escribes órdenes en lugar de hacer clic. Dentro corre un programa llamado shell que lee lo que escribes y lo ejecuta: en Mac suele ser zsh, en Linux bash y en Windows usamos PowerShell. Son como dialectos: la idea es la misma, pero algunas palabras cambian. Por eso más abajo hay un bloque para Mac/Linux y otro para Windows.
2. Qué es un comando y qué es ~
Un comando es una orden de una línea: escribes, presionas Enter y el shell la ejecuta. ~ es el atajo de tu carpeta personal (la que tiene Documentos, Descargas y Escritorio). ~/local-model-workshop quiere decir "la carpeta local-model-workshop dentro de tu carpeta personal".
3. Qué es la memoria RAM y por qué hoy importa tanto
Tu computadora tiene dos tipos de almacenamiento:
- El disco guarda todo, aunque apagues la computadora, pero es lento de consultar. En la analogía del taller es la bodega.
- La memoria RAM es donde va lo que estás usando en este momento. Es muy rápida, pero es mucho más chica que el disco y se vacía al apagar. En la analogía es tu cocina.
Un modelo de lenguaje vive en el disco como un archivo de varios GB, pero para contestar tiene que estar completo en la RAM. Y la RAM no es solo para él: tu sistema, el navegador y la videollamada también ocupan su lugar. Por eso este taller pide al menos 8 GB.
Tu RAM de 8 GB, durante la sesión
+------------------------------------------------------------+
| Sistema | Navegador y | Modelo | Libre para el |
| operativo | videollamada | (unos 2.5 GB)| contexto |
+------------------------------------------------------------+
ya ocupado ya ocupado lo que agregas el respiroEn la analogía del taller: el cocinero vive en la bodega (el disco), pero para cocinar tiene que entrar a tu cocina (la RAM), y tu cocina ya tiene otros muebles. Lo que queda libre es el espacio para su mesa de trabajo (el contexto).
4. Qué es Python y qué es una librería
Python es el lenguaje en el que está escrito el código del taller. Un script es un archivo .py con instrucciones; lo corres con python nombre.py. Una librería es código que alguien más escribió y que tú instalas para usarlo. Hoy usamos una sola: openai, la librería que arma los pedidos con el formato de la API. A pesar del nombre, no es solo para una empresa: sirve para cualquier servidor que hable ese formato, y LM Studio lo habla.
5. Qué es un entorno virtual
Un entorno virtual (.venv) es una carpeta, dentro de tu proyecto, donde se instalan las librerías solo para ese proyecto. Así no mezclas las librerías de este taller con las de otros programas de tu computadora. Se crea una vez, y en cada terminal nueva se activa con una línea. Cuando está activo, el principio de la línea de la terminal dice (.venv).
6. El Python mínimo para leer el código del taller
En la sesión no vas a escribir código desde cero: lo copias. Pero sí vas a leerlo, y para eso te sirven estas piezas. Este ejemplo las tiene casi todas; los comentarios (lo que va después de #) dicen qué hace cada línea:
# Esto es un comentario: Python lo ignora, es una nota para quien lee
import json # import: trae código de una librería para usarlo aquí
name = "Ana" # variable: un nombre que guarda un valor; aquí, un texto (string)
amounts = [54.20, 6.50, 61.75] # lista: varios valores en orden, entre corchetes
expense = {"category": "food", "amount": 54.20} # diccionario: pares nombre: valor, entre llaves
print(expense["category"]) # lee el valor guardado bajo "category" y lo muestra: food
def add_all(values): # def: crea una función llamada add_all que recibe un argumento
total = 0 # empezamos la cuenta en cero
for value in values: # for: repite el bloque de abajo una vez por cada valor
total = total + value # va sumando
return total # return: lo que la función entrega al terminar
result = add_all(amounts) # llamamos a la función con la lista; result guarda 122.45
if result > 100: # if: el bloque de abajo solo corre si se cumple la condición
print(f"Gastaste {result:.2f}") # f-string: mete un valor dentro del texto, con 2 decimales
try: # try: intenta algo que puede fallar...
data = json.loads("esto no es JSON")
except json.JSONDecodeError: # ...y si falla con este error, en vez de romperse, hace esto
print("El texto no era JSON válido")Dos reglas de Python que sorprenden la primera vez:
- La sangría importa. Las líneas que van "dentro" de un
def, unfor, unifo untryllevan cuatro espacios al inicio. Si los quitas o pones de más, Python no entiende qué va dentro de qué. Por eso conviene copiar el código entero, no reescribirlo. - Un texto va entre comillas.
"food"es un texto;foodsin comillas sería el nombre de una variable.
Y un formato que vas a ver mucho: JSON. Es una forma de escribir datos como texto para que dos programas se los pasen, y se parece mucho a un diccionario de Python: llaves {} para agrupar pares "nombre": valor, y corchetes [] para listas. Por ejemplo, {"category": "home", "amount": 35.0}. Los servidores de modelos contestan en JSON, y en la sesión le vas a pedir al modelo que conteste en JSON.
Qué vas a tener al final
~ (tu carpeta personal)
|
+-- local-model-workshop/ <-- la carpeta de practica
|
+-- .venv/ el entorno virtual, con la libreria openai
+-- expenses.csv gastos de septiembre (datos de ejemplo)
+-- requirements.txt la lista de librerias que necesita el codigoEn la sesión vas a ir agregando los scripts de Python uno por uno: chat.py, providers.py, measure.py y agent.py.
Paso 1. Revisa cuánta RAM tienes (y qué chip, si usas Mac)
- Mac: menú de la manzana, Acerca de esta Mac. Mira dos datos: Chip (o Procesador) y Memoria.
- Windows: Configuración > Sistema > Información. Mira RAM instalada.
- Linux: en la terminal,
free -h. Mira la columna total de la fila Mem.
| Lo que ves | Qué significa para hoy |
|---|---|
| 16 GB o más | Vas cómodo. El modelo del taller corre holgado |
| 8 GB | Alcanza para un modelo pequeño como el del taller (LM Studio recomienda 16 GB para ir holgado). Cierra pestañas y programas que no uses durante la sesión |
| Menos de 8 GB | El modelo no va a tener espacio. Sigue la sesión con la parte de la nube y mira la demo |
| Mac con chip Intel | LM Studio no funciona en Mac con Intel. Sigue la sesión con la parte de la nube y mira la demo |
| Mac con chip Apple (M1 o más nuevo) | Es de las mejores máquinas para correr modelos locales |
Paso 2. Elige dónde vas a escribir: VS Code
Hoy vas a crear archivos de Python, así que te recomendamos Visual Studio Code (VS Code), un editor gratuito: ves tus archivos a la izquierda, el código en el centro y la terminal abajo, en la misma ventana. Descárgalo de code.visualstudio.com e instálalo con las opciones por defecto.
+----------------------------------------------------------------+
| VS Code |
+---------------------+------------------------------------------+
| EXPLORADOR | chat.py |
| | |
| LOCAL-MODEL- | # chat.py: le manda una pregunta... |
| WORKSHOP | from openai import OpenAI |
| .venv/ | ... |
| expenses.csv | |
| requirements.txt +------------------------------------------+
| chat.py | TERMINAL |
| | (.venv) $ python chat.py |
+---------------------+------------------------------------------+Si prefieres otra terminal (la de tu sistema, o Warp), también sirve. Lo único que necesitas es poder crear archivos y correr comandos en la misma carpeta.
Paso 3. Revisa que tengas Python 3.10 o superior
Abre una terminal (en VS Code: menú Terminal > New Terminal) y escribe la línea de tu sistema:
Mac y Linux:
python3 --versionWindows (PowerShell):
py --version
Si ves Python 3.10 o un número mayor (3.11, 3.12, 3.13...), estás listo. Si ves un número menor, o un error, instálalo:
- Mac: descarga el instalador de python.org/downloads e instálalo con las opciones por defecto.
- Windows: python.org ahora ofrece el Python install manager (python.org/downloads/windows). Instálalo y, si te pregunta si quieres agregar Python al PATH, di que sí. Si en su lugar usas el instalador clásico, marca la casilla "Add python.exe to PATH" en su primera pantalla. Con cualquiera de los dos, el comando
pyfunciona. - En los dos casos, al terminar cierra la terminal, abre una nueva y repite el comando.
- Linux (Ubuntu y derivados):
sudo apt install python3 python3-venv.
Por qué cerrar y abrir la terminal: la terminal lee la lista de programas disponibles (el PATH) una sola vez, cuando se abre. Una terminal nueva ve lo que acabas de instalar.
Paso 4. Crea la carpeta de práctica
Copia el bloque de tu sistema, pégalo en la terminal y presiona Enter. Crea la carpeta y los dos archivos de datos.
En Mac o Linux
# Crea la carpeta de práctica y entra en ella
mkdir -p ~/local-model-workshop && cd ~/local-model-workshop
# Los gastos de septiembre: datos de ejemplo para la sesión
cat > expenses.csv <<'EOF'
date,description,category,amount
2026-09-01,Groceries at the market,food,54.20
2026-09-02,Bus card top-up,transport,20.00
2026-09-03,Coffee with a friend,Food,6.50
2026-09-05,Internet bill,home,35.00
2026-09-07,Movie tickets,fun,18.00
2026-09-09,Groceries at the market,food,61.75
2026-09-12,Taxi home,Transport,12.40
2026-09-14,Electricity bill,home,42.10
2026-09-18,Lunch near the office,food,11.90
2026-09-21,Concert,fun,45.00
2026-09-25,Bus card top-up,transport,20.00
2026-09-28,Groceries at the market,food,58.30
EOF
# La lista de librerías que necesita el código: solo una
cat > requirements.txt <<'EOF'
openai
EOF
# Muestra lo que quedó en la carpeta
lsEn Windows (PowerShell)
# Crea la carpeta de práctica y entra en ella
New-Item -ItemType Directory -Force -Path "$HOME\local-model-workshop" | Out-Null
Set-Location "$HOME\local-model-workshop"
# Los gastos de septiembre: datos de ejemplo para la sesión
@'
date,description,category,amount
2026-09-01,Groceries at the market,food,54.20
2026-09-02,Bus card top-up,transport,20.00
2026-09-03,Coffee with a friend,Food,6.50
2026-09-05,Internet bill,home,35.00
2026-09-07,Movie tickets,fun,18.00
2026-09-09,Groceries at the market,food,61.75
2026-09-12,Taxi home,Transport,12.40
2026-09-14,Electricity bill,home,42.10
2026-09-18,Lunch near the office,food,11.90
2026-09-21,Concert,fun,45.00
2026-09-25,Bus card top-up,transport,20.00
2026-09-28,Groceries at the market,food,58.30
'@ | Set-Content -Encoding ascii expenses.csv
# La lista de librerías que necesita el código: solo una
'openai' | Set-Content -Encoding ascii requirements.txt
# Muestra lo que quedó en la carpeta
ls
Qué hace el bloque
| Línea | Qué hace |
|---|---|
mkdir -p ~/local-model-workshop (o New-Item ...) | Crea la carpeta. -p (o -Force) evita el error si ya existe |
cd ~/local-model-workshop (o Set-Location ...) | Entra a la carpeta |
cat > expenses.csv <<'EOF' ... EOF | Guarda en expenses.csv todo lo que hay entre esas dos líneas, tal cual |
@' ... '@ | Set-Content ... | Lo mismo en PowerShell: un bloque de texto que se escribe en el archivo |
ls | Muestra lo que hay en la carpeta |
Es seguro pegar el bloque dos veces: vuelve a escribir los mismos archivos encima.
Sobre expenses.csv: es una tabla en texto plano (CSV, valores separados por comas), con un detalle raro a propósito: algunas categorías están en mayúsculas (Food, Transport). No lo corrijas: en la parte 4 de la sesión vas a ver por qué importa.
Abre la carpeta en VS Code
Menú File > Open Folder (Archivo > Abrir carpeta), entra a tu carpeta personal y elige local-model-workshop. Si te pregunta si confías en los autores, di que sí: la carpeta es tuya. A la izquierda verás expenses.csv y requirements.txt. Abre una terminal con Terminal > New Terminal: se abre ya parada dentro de la carpeta.
Paso 5. Crea el entorno virtual e instala la librería
En la terminal, dentro de local-model-workshop, pega el bloque de tu sistema.
En Mac o Linux
# Crea el entorno virtual en la carpeta .venv
python3 -m venv .venv
# Lo activa: desde aquí, "python" y "pip" son los del proyecto
source .venv/bin/activate
# Instala las librerías de requirements.txt (solo openai)
pip install -r requirements.txtEn Windows (PowerShell)
# Crea el entorno virtual en la carpeta .venv
py -m venv .venv
# Permite correr el script de activación, solo en esta terminal
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
# Lo activa: desde aquí, "python" y "pip" son los del proyecto
.\.venv\Scripts\Activate.ps1
# Instala las librerías de requirements.txt (solo openai)
pip install -r requirements.txt
La línea de Set-ExecutionPolicy existe porque Windows, por seguridad, no deja correr scripts de PowerShell que no conoce. -Scope Process quiere decir "solo en esta ventana": al cerrarla, vuelve a la regla de siempre.
Comprueba que quedó
Con el entorno activo, el principio de la línea de la terminal dice (.venv). Escribe:
python -c "import openai; print(openai.__version__)"Si ves un número de versión, la librería está instalada. Desde aquí, en todos los sistemas el comando es python (sin el 3), porque es el Python del entorno virtual.
Cada terminal nueva empieza sin el entorno activo. Si mañana abres otra terminal, entra a la carpeta y vuelve a correr solo la línea de activación (
source .venv/bin/activateen Mac y Linux;Set-ExecutionPolicy ...y.\.venv\Scripts\Activate.ps1en Windows). Si vesModuleNotFoundError: No module named 'openai', casi siempre es eso.
Verifica que estás listo
- Sé cuánta RAM tengo, y si uso Mac, que tiene chip Apple.
-
python3 --version(opy --version) muestra 3.10 o más. -
lsdentro delocal-model-workshopmuestraexpenses.csvyrequirements.txt. - Con
(.venv)activo, el comando de comprobación muestra la versión deopenai.
¿Y si pip install falla?
Revisa dos cosas. Primera: que la línea empiece con (.venv); si no, el entorno no está activo y hay que correr la línea de activación. Segunda: que tengas internet, porque pip descarga la librería. Si aun así falla, llega así: lo arreglamos en los primeros minutos de la sesión.
Para comprobar que entendiste
1. El modelo está en tu disco. ¿Por qué además importa la RAM?
Porque para contestar, el modelo tiene que estar completo en la RAM, que es la memoria rápida de "lo que se está usando ahora". El disco solo lo guarda. Y la RAM la comparte con el sistema, el navegador y la videollamada.
2. ¿Para qué sirve el entorno virtual .venv?
Para instalar las librerías solo para este proyecto, sin mezclarlas con las de otros programas de tu computadora. Se crea una vez y se activa en cada terminal nueva.
3. Abres una terminal nueva, corres un script y ves No module named 'openai'. ¿Qué pasó?
Que la terminal nueva empezó sin el entorno virtual activo, y el Python de tu sistema no tiene la librería. Entra a la carpeta, corre la línea de activación y vuelve a intentarlo.
Resumen
- El modelo vive en el disco pero contesta desde la RAM, y la RAM la compartes con todo lo demás: por eso el taller pide al menos 8 GB. LM Studio no funciona en Mac con Intel.
- Tienes Python 3.10 o superior, la carpeta
local-model-workshopconexpenses.csvyrequirements.txt, y un entorno virtual con la libreríaopenai. openaies la librería que arma pedidos con el formato de la API; sirve para cualquier servidor que hable ese formato, incluido LM Studio. Siguiente paso: instalar LM Studio y descargar el modelo.