Taller de producto y prototipado, con Ramsés.
Cajero¿Cuánto es mi aguinaldo?
Escribiendo
«Son 30 días de sueldo y te los depositan el 15 de diciembre.»
Cajero¿Cuánto es mi aguinaldo?
«Eso no lo define el manual. Salarios y prestaciones los ve Recursos Humanos.» [Referencia rápida, Lo que este manual no define]
¿Su avatar inventa
o canaliza?
01 Un cajero nuevo pregunta algo que no viene en el manual de caja. El jurado va a hacer justo esto.
02 El avatar busca qué contestar. Aquí se decide todo: ¿qué hace cuando no sabe?
03 Responde con días y fecha exactos, en tono seguro. Suena perfecto y no sale del manual.
04 Otro avatar, misma pregunta: reconoce que no está, lo manda a RH y cita dónde lo dice el manual.
05 La ficha pide 10 consultas de prueba y 2 sin respuesta. Ahí se ve cuál de los dos hicieron.
T0 01 Exactitud y respaldo: respuestas fieles a los materiales, con fuentes que se puedan verificar.
02 Utilidad para la inducción: guía clara, dudas concretas resueltas y ejercicios pertinentes.
03 Uso efectivo de IA: que consulte los documentos y responda en contexto, no de memoria.
04 Experiencia de uso: sencilla, legible y comprensible. Aquí cae la cara: avatar y voz.
05 Viabilidad de prueba piloto: requisitos claros y que actualizar los contenidos sea fácil.
06 Lo más pesado, 30 %: exactitud y respaldo. Que lo que diga salga del manual y se pueda comprobar.
T0 CajeroEl cliente no ha pagado y quiere cancelar todo
Ahora: Acto 1, por dentro ?[sección 8, Ticket sin ningún pago]
Acto 2Redacta con lo que encontró
Acto 3Solo del manual, y con cita
Acto 4Vale le contesta en pantalla
Acto 4Consulta 5 de 10 ✓
Acto 6 Acto 5: la demo junta las cinco01 Sigamos una pregunta del cajero por dentro de su avatar. Pasa por cinco piezas, en este orden.
02 Conocimiento: el manual en algo que el modelo pueda leer. Ahí se encuentra la sección 8.
03 Modelo: el cerebro que redacta la respuesta con lo que encontró. En la nube o en su laptop.
04 Reglas: qué puede decir, cómo cita la sección y cuándo canaliza al supervisor.
05 Cara: el avatar, la voz y la pantalla donde el cajero lee la respuesta.
06 Prueba: esta es la consulta 5 de las 10 que van a documentar, con su cita revisada.
07 Así va la hora: conocimiento en el Acto 2, modelo en el 3, reglas y cara en el 4, prueba en el 6.
T0 Cinco ideas de cómo funciona un modelo. Cada una termina en una decisión para su avatar.
Para cancelar un ticket, pide autorización al ____supervisor ___y ___
Porcentajes de ejemplo, para ver la forma de la apuesta
Nunca abrió el manual: apostó.
Y apuesta igual de seguro cuando acierta que cuando inventa.
01 El modelo ve el texto hasta aquí y tiene un solo trabajo: apostar qué pedazo sigue.
02 A cada candidato le da una probabilidad. Salen de todo lo que leyó, no del manual.
03 Elige uno de los más probables, lo pega a la frase y la frase crece un pedazo.
04 Y vuelve a empezar con la frase más larga: otra apuesta, con otros candidatos.
05 Pedazo a pedazo arma un procedimiento entero que suena a manual.
06 Aquí le atinó, pero nunca abrió el manual: apostó. Y apuesta igual de seguro cuando inventa.
T1 Antes
Palabra por palabra
10,000 palabras en el teclado
«electromovilidad» → ???
«Cd. Juárez» → ???
«chilaquiles» → ???
Ahora
Por pedazos: tokens
100 a 200 mil pedazos
elect + rom + ov + ilidad ✓
Cd + . + Ju + árez ✓
ch + ila + qu + iles ✓
01 Los primeros modelos de texto leían palabra por palabra, con un diccionario cerrado.
02 El del teclado de su teléfono tiene 10,000 palabras. Lo que no está en la lista, no existe.
03 Los de hoy leen por pedazos, que se llaman tokens. «Camarón» se parte en tres.
04 Con 100 a 200 mil pedazos, según el modelo, se arma cualquier palabra, hasta «Cd. Juárez».
T1 Lo que ve el cajero
¿Cuánto es mi aguinaldo?
Eso no lo define el manual de caja. Salarios y prestaciones los ve Recursos Humanos.
01 El modelo solo ve texto y lo continúa. No sabe que es un «chat»: ni siquiera contestó.
02 Alguien envolvió el texto en User y Assistant. Ahora contesta lo más probable, no lo del manual.
03 Agregan instrucciones al inicio que el cajero nunca ve. Las sigue porque son parte del texto que completa.
04 Eso es ChatGPT, y eso va a ser su avatar: una cara encima de un completador con instrucciones.
T1 Un dedo de más se nota. Una política de más, no.
RESPUESTA DE UN AVATAR · EJEMPLO FICTICIO
«Según la [sección 8, Cancelaciones mayores], toda cancelación de más de $500 necesita autorización del supervisor y se registra en el formato CAN-07 dentro de los 15 minutos siguientes.»
§Una cita
$Un monto
#Un formato
⏱Un plazo
¿Qué tendrían que comprobar antes de creerle?
01 Un avatar contesta sobre cancelaciones. Tiene cita, monto, formato y plazo: suena a manual.
02 Lo que la hace creíble: una cita, un monto, un formato y un plazo. Justo lo que tiene un manual.
03 Un minuto por equipo: ¿qué revisarían primero, y dónde, antes de creerle?
T1 RESPUESTA DE UN AVATAR · EJEMPLO FICTICIO
«Según la [sección 8, Cancelaciones mayores], toda cancelación de más de $500 necesita autorización del supervisor y se registra en el formato CAN-07 dentro de los 15 minutos siguientes.»
la cita
Ábranla: la sección 8 no tiene ese subtítulo.
los $500 y los 15 minutos
Cifras exactas sin fuente: suenan a política.
el formato CAN-07
Un código bien formado no prueba nada.
La cita también se inventa: tiene que salir del trozo que se recuperó.
01 Primero la cita: ábranla. La sección 8 existe, pero no tiene ningún subtítulo con ese nombre.
02 Los $500 y los 15 minutos: cifras exactas sin fuente. Suenan a política porque así se armaron.
03 El formato CAN-07: un código bien formado no prueba nada. Lo confirma el enlace de RH u Operación.
04 La cita es la revisión más barata: si no cuadra, los otros inventos caen solos.
05 Lección para su avatar: la cita no la escribe el modelo, sale del trozo que se recuperó.
T1 Fase 1 · Lee de todo lo público
Fase 2 · Lo ajustan para seguir instrucciones
Fase 3 · Contesta, hasta su fecha de corte
Lo que nunca leyó
▊
01 Fase 1: lee de todo lo público, libros, noticias, foros, código, leyes. A eso se le llama corpus.
02 Fase 2: personas le escriben respuestas de ejemplo y califican las suyas. Aprende a comportarse.
03 Fase 3: contesta con toda seguridad algo que nunca leyó. Y solo sabe lo que había hasta su fecha de corte.
04 El manual de su tienda es interno: nunca lo leyó. Por eso la respuesta de la fase 3 es inventada.
T1 Ejemplos de respuesta
El manual no se entrena: se le da a leer.
01 Partimos de un modelo ya entrenado: habla español y sigue instrucciones, pero no sabe del manual.
02 El ajuste fino le da ejemplos de cómo responder. Aprende la forma: paso a paso, tono, reformular.
03 El manual no se queda como dato: no lo puede citar, y habría que repetirlo cada que cambie.
04 Decisión: el manual no se entrena, se le da a leer en cada pregunta. Cómo, lo vemos en el Acto 2.
T1 Pregunta del cajero: decenas de tokens
Manual completo, 34 páginas: unos 10 mil tokens
Escala aproximada
Si el módulo cabe, primera opción: pégale el manual.
01 Todo lo que el modelo ve cabe en esta caja: la ventana de contexto. Lo que no está aquí, no lo ve.
02 Una pregunta del cajero gasta decenas de tokens. A esta escala, apenas una rayita.
03 El manual de Tienda Escuela completo, 34 páginas: unos 10 mil tokens, según una estimación.
04 Y sobra espacio. Si el módulo cabe, la primera opción es la más simple: pégale el manual.
T1 Cada frase es una coordenada
cancelación
[ 0.82, -0.15, 0.43, … ]
futbol
[ -0.64, -0.41, 0.09, … ]
¿cómo anulo una venta?
[ 0.80, -0.13, 0.47, … ]
Lo más cerca en el manual
[sección 8, Ticket sin ningún pago]
01 Tomamos palabras del mundo de la caja, y dos que no tienen nada que ver. Por ahora, sueltas.
02 A cada una el modelo le asigna una coordenada: un embedding. Lo que significa parecido queda cerca.
03 Llega la pregunta del cajero y también se vuelve coordenada, con el mismo modelo.
04 Se mide la distancia a todo lo demás. Lo más cercano: anular ticket y cancelación. Futbol, lejísimos.
05 Y se trae el trozo del manual más cercano: la sección 8, aunque el cajero no use las mismas palabras.
T1 Elcajerollamóalsupervisorporquesucajanocuadraba
¿De quién es la caja? 0.38Elcajerollamóalsupervisorporquesuclaveautoriza
¿Y la clave? Atención«Attention Is All You Need», 2017 Pesos de ejemplo, para ver la forma del reparto01 ¿De quién es la caja? Ustedes lo saben sin pensar. El modelo tuvo que aprenderlo.
02 Al leer «su», mira a todas las demás palabras y les da un peso. El más grueso va a cajero.
03 Cambien el final: «porque su clave autoriza». Ahora, ¿de quién es la clave?
04 La misma palabra mira a otro lado: ahora «su» es del supervisor. Nadie programó esa regla.
05 A eso se le llama atención: el mecanismo del artículo de 2017 que hizo posibles los modelos de hoy.
T1 Cajero
¿En cuántos días le llega el reembolso al cliente?
Modelo · herramientas
Supervisor
Aviso recibido
«Eso no lo define el manual y no te prometo fecha. Ya le avisé a tu supervisor.»
Modelo + herramientas = agente
La ficha: nunca operaciones de caja
01 El cajero pregunta algo que el manual no define: en cuántos días llega un reembolso.
02 Al modelo le declararon herramientas. Revisa la lista y decide avisar al supervisor.
03 Su app ejecuta la herramienta y el aviso viaja de verdad: un correo, un mensaje, un registro.
04 Y le contesta al cajero sin prometer fecha: ya le avisé. Modelo más herramientas: un agente.
05 El límite lo pone la ficha: herramientas para avisar y buscar, nunca para cobrar ni cancelar.
T1 01 Apuesta el siguiente token, aunque no sepa. Decisión: nada sin fuente, con regla de oro y cita.
02 Aprendió de lo público, con fecha de corte. Decisión: el manual no se entrena, se le da a leer.
03 Lee lo que le pegan, y un módulo cabe. Decisión: si cabe, pégale el manual completo.
04 Lo parecido queda cerca. Decisión: si no cabe, busca el trozo que responde. Eso es RAG.
05 Con herramientas actúa. Decisión: canalizar de verdad, y operar la caja, nunca.
06 Tres de las cinco caen en el Acto 2: por eso es el más largo. Ahí se gana el 30 %.
T1 El modelo no sabe nada de Del Río. Hay cuatro formas de enseñarle, y una no sirve para esto.
Manual · Tienda Escuela
34 págs ≈ 10 mil tokens
Instrucciones del avatar
Responde solo con este manual.
Cita: [sección N, subtítulo].
Si no está, dilo y canaliza.
[sección 3, Producto sin precio…]
Detén el cobro de ese artículo…
[sección 8, Ticket sin ningún pago]
Solicita autorización al supervisor…
[sección 12, Procedimiento de cierre]
Solicita el cierre al supervisor…
… y las otras 12, completas
Cajero
El cliente no ha pagado y quiere cancelar todo.
Avatar
Pide autorización al supervisor y registra el motivo. Si cancela todo, conserva el folio.
[sección 8, Ticket sin ningún pago]Para un módulo, gana.
El del reto: 34 páginas, unos 10 mil tokens.
A favor
Cero infraestructura
Citas casi gratis
En contra
Paga el manual en cada pregunta
No escala a cientos de manuales
01 El manual de Tienda Escuela: 34 páginas, unas 7,300 palabras. Del orden de 10 mil tokens.
02 Las secciones entran completas a las instrucciones del avatar, cada una con su número y subtítulo.
03 Llega la pregunta del cajero y el modelo la lee junto con todo el manual. Cada vez.
04 Responde y copia el encabezado: [sección 8, Ticket sin ningún pago]. La cita sale casi gratis.
05 A favor: cero infraestructura y citas fáciles. En contra: se manda el manual en cada pregunta.
06 El manual del reto cabe completo, así que la balanza se inclina: para un módulo, gana.
T2 Una vez · al cargar el manual
En cada pregunta
Con quéDocling o MarkItDown
Con quéPor sección y subtítulo
Con quégemini-embedding-2 o bge-m3
Con quéLista en memoria o base vectorial
Con quéEl mismo modelo de embeddings
Con quéSi nada se parece: canalizar
Con quéCita que se puede comprobar
## 8 Cancelación
### Qué ruta…
| Estado | Ruta |
### Ticket sin…
1 Identifica…
Cajero
El cliente no ha pagado y quiere cancelar todo.
mismo modelo
Avatar
[sección 8, Ticket sin ningún pago]Pide autorización al supervisor y registra el motivo. Si cancela todo, conserva el folio.
01 El PDF se vuelve texto sin perder títulos ni tablas: el manual del reto trae catálogo y referencia rápida.
02 Cada sección y subtítulo es un trozo, con su etiqueta pegada. Así la cita sale sola: eso es el 30 %.
03 Cada trozo se vuelve una lista de números que dice de qué habla. Es el espacio semántico del acto 1.
04 Los números se guardan junto al texto y su etiqueta. Hasta aquí, todo se hace una sola vez.
05 Llega la pregunta y se vuelve números con el mismo modelo. Ojo: no dice «sin ningún pago».
06 Se compara contra todos y se quedan las 3 más parecidas. Si ni la mejor se parece, se canaliza.
07 El modelo redacta solo con esos 3 trozos y dice de cuál lo sacó. Quien evalúa lo puede comprobar.
T2 Video de bienvenida a caja
[00:00] Bienvenida…
[01:40] …
[03:12] …
[04:05] …
Con quéwhisper.cpp (MIT) · Groq: 2,000 al día, 25 MB
Avatar
«Video de bienvenida a caja, 03:12»Docling y MarkItDown: leen audio
AnythingLLM: transcribe al subir
01 El video se vuelve texto con su hora: whisper.cpp en su laptop o Groq Whisper en la nube.
02 Cada trozo guarda de qué minuto a qué minuto va, igual que la sección en un PDF.
03 La cita dice video y minuto: quien evalúa lo abre en 03:12 y lo comprueba.
04 Docling y MarkItDown también leen audio, y AnythingLLM transcribe audio y video al subirlo.
T2 AI SDK v7
En el servidor
8Ticket sin…
12Proced…
…
8Ticket sin…
↓
En memoria
01 Dos renglones: el AI SDK v7 y su proveedor de Google. Corre en el servidor: ahí vive la llave.
02 Paso 2 del flujo: un trozo por subtítulo, con su cita pegada al texto.
03 Paso 3: embedMany convierte todos los trozos en números de una vez.
04 Paso 4: dos listas en memoria, trozos y vectores, en el mismo orden. Sin base de datos.
T2 ¿…cancelar todo?
↓
0.91
0.74
0.52
[sección 8, Ticket sin ningún pago]
✓ Solo esto
✓ Cita
✓ O canaliza
01 embed convierte la pregunta en números, con el mismo modelo que los trozos.
02 cosineSimilarity mide qué tan parecida es a cada sección; se quedan las 3 mejores.
03 generateText responde solo con esas 3, y cada una lleva su etiqueta para citar.
04 En v7 se llama instructions (antes system): ahí va la regla de oro del acto 4.
T2 En la nube · API
En su laptop · Ollama
gemini-embedding-2
Gratis en capa libre
100+ idiomas · 8K tokens · de 128 a 3072 números
text-embedding-3-small
$0.02 por millón
API de OpenAI · de pago, barato
Voyage 4
200M tokens gratis
API de Voyage · capa gratis grande
bge-m3
Gratis
8K tokens
qwen3-embedding:0.6b
Gratis
32K tokens · #1 multilingüe en MTEB (jun 2025)
Cambiar de modelo = volver a convertir todo el manual. Escojan uno y no lo muevan.
01 Si van con Gemini: gemini-embedding-2 es gratis en la capa libre y entiende más de 100 idiomas.
02 OpenAI cobra $0.02 por millón de tokens; Voyage regala 200 millones de tokens para empezar.
03 Si el manual no puede salir de la laptop: bge-m3 en Ollama, gratis, de 1.2 GB.
04 qwen3-embedding:0.6b pesa la mitad y fue #1 multilingüe en MTEB en junio de 2025.
05 Los números de un modelo no se comparan con los de otro: si cambian, hay que reconvertir todo.
T2 Un módulo: ninguna base. Dos listas en memoria, trozos y vectores, en el mismo orden.
Solo en su laptop
En su laptop o en la nube
Solo en la nube
Se pausa tras 1 semana sin uso
01 Con un módulo no necesitan base: la lista en memoria del código alcanza.
02 LanceDB vive dentro de la app (es la de AnythingLLM) y sqlite-vec es un solo archivo.
03 Chroma, Qdrant y Supabase corren en su laptop o en una nube con capa gratis.
04 Neon y Upstash solo viven en la nube; Upstash ni siquiera pide tarjeta.
05 Supabase gratis se pausa tras una semana sin uso: si el piloto se prueba después, despiértenlo.
T2 La API
Manual.pdf ✓
Ustedes no escriben esto
Cajero
El cliente no ha pagado y quiere cancelar todo.
Avatar
Pide autorización al supervisor y registra el motivo.
Manual.pdf · pág. 20✓ Cita muy bien
✕ Sin API
Para validar el contenido con su enlace, no para construir la app.
Ojo: en capa gratis, Google usa lo que suben
Cita archivo y página
1 GB · 100 MB por archivo · PDF y DOCX
Cita el archivo
$2.50 por 1,000 búsquedas
Cita el pasaje exacto
Se paga por tokens
01 Le suben el PDF del manual a la API. Ustedes no trocean ni guardan nada: lo hace ella.
02 Adentro pasan los pasos 1 a 6 del flujo, pero los hace la API. Ustedes no escriben ese código.
03 Le preguntan y devuelve la respuesta con archivo y página. La cita viene de fábrica.
04 Tres servicios lo hacen. Gemini File Search es gratis en la capa libre: va natural con AI Studio Build.
05 Ojo: en la capa gratis, Google usa lo que suben. Con el manual interno, permiso del enlace primero.
06 Gemini Notebook (antes NotebookLM) cita muy bien, pero no tiene API: sirve para validar, no para la app.
T2 Escritorio o Docker, 2 GB
Flujo visual · nube gratis
Un docker run y listo
Documentos
✓ 15 secciones
Cajero
¿Qué reviso al cerrar caja?
Avatar
Solicita el cierre al supervisor y detén nuevas operaciones…
[sección 12, Procedimiento de cierre]Ollamael modelo, aquí
01 Tres apps open source que ya traen todo el RAG: AnythingLLM, Dify y Open WebUI. Citan y están en español.
02 Arrastran el manual a la app y ella trocea, convierte y guarda. Ustedes no escriben ese código.
03 Con un prompt estricto ya responde citando la sección. El widget de AnythingLLM puede ser la cara.
04 Con Ollama detrás, el modelo corre en su laptop: el manual no sale de ahí.
T2 KotaemonApache-2.0 · Docker · Ollama
Pide autorización al supervisor y registra el motivo.
[sección 8, Ticket sin ningún pago] ↗Manual.pdf · pág. 20
RAGFlowApache-2.0 · el mejor con PDFs feos
## 8 Cancelación
| Estado | Ruta |
| Sin ningún pago | … |
RAM que pide RAGFlow
01 Kotaemon responde con su cita, y la cita se puede picar. Se autoaloja con Docker y Ollama.
02 Al picarla abre el PDF con el pasaje resaltado: la mejor demo de «documento + pasaje exacto».
03 RAGFlow es el que mejor lee los PDFs feos. También se autoaloja con Docker.
04 Pero es pesado: pide 16 GB de RAM. Para cuando el manual viene mal formateado.
T2 Fine-tuning
RAG
Entrenando con GPU
Entrenar otra vez
Guardar aparte
Cajero: el cliente no ha pagado y quiere cancelar todo.
Pide autorización al supervisor…
Sin cita: ¿de dónde salió?Pide autorización al supervisor…
[sección 8, Ticket sin ningún pago]Fine-tuning le enseña a hablar, no a saber.
¿Cuándo sí? Para tono o formato, con Unsloth en Colab gratis.
OpenAI lo cerró a usuarios nuevos · la API de Gemini no lo ofrece
01 El mismo manual de Tienda Escuela entra a los dos carriles. Cambia dónde termina.
02 Fine-tuning hornea el manual dentro del modelo: hay que entrenarlo. RAG solo lo guarda aparte.
03 Misma pregunta: fine-tuning responde de memoria y sin cita; RAG dice de qué sección lo sacó.
04 Cambia un procedimiento: fine-tuning entrena otra vez; RAG solo cambia la hoja. Eso es el 10 %.
05 Fine-tuning le enseña a hablar, no a saber. ¿Cuándo sí? Para tono o formato, con Unsloth.
T2 ¿El manual cabe entero en el prompt?
El del reto: 34 páginas, unos 10 mil tokens
No
¿Alguien del equipo va a programar?
No
¿Pueden subir el manual a la nube?
Con permiso del enlace de Del Río
Sí
Sí
Sí
No
Fine-tuning
No sale en ningún camino: es para el tono, no para el manual.
01 Primera pregunta: ¿el manual cabe entero en el prompt? Si sí, el camino llega a contexto largo.
02 Si no cabe: ¿alguien va a programar? Si sí, el camino baja a RAG propio.
03 Si nadie programa: ¿pueden subir el manual a la nube? Si sí, RAG gestionado.
04 Si no hay permiso de subirlo: una base lista y local, con Ollama detrás.
05 La mayoría se queda en la primera: el manual cabe. Y fine-tuning no sale en ningún camino.
T2 Consigna
Pasen su material por las tres preguntas del árbol:
Escriban su decisión en una línea, con el porqué.
¿Contexto largo, RAG propio, RAG gestionado o una base lista?
T2 Gratis en la nube o en su laptop. Cambiar de modelo son dos valores; lo que pesa es a dónde viaja el manual.
Su laptop
¿Cuánto cobro por tres aguas?
Groq · 30 por minuto
OpenRouter :free · 50 al día
No sale de su laptop
RAM de su laptop
Leyendo 4K tokens
01 La pregunta y el manual viajan a la nube y vuelve la respuesta. Hay capas gratis sin tarjeta.
02 El costo de la nube: límites por minuto y por día. Con RAG grande se llenan rápido.
03 Con Ollama o LM Studio, el modelo baja a su laptop: la pregunta y el manual ya no salen.
04 El tamaño lo pone la RAM: con 8 GB, qwen3.5:4b; con 16 GB, qwen3.5:9b o gemma4:e4b.
05 El costo local: en CPU, leer 4K tokens tarda de 10 a 60 s. Mándenle 3 a 5 trozos chicos.
T3 Quien abre la app
01 Chrome ya trae Gemini Nano con la Prompt API: local, estable desde Chrome 148 y entiende español.
02 Pero pide 22 GB libres y GPU de más de 4 GB o 16 GB de RAM. En celular no funciona.
03 WebLLM y transformers.js corren modelos abiertos con WebGPU. transformers.js sirve para embeddings.
04 Privacidad total, pero la demo depende de la máquina de quien abra la app.
T3 Al escribir · tokens por segundo
01 Velocidad al escribir, en tokens por segundo. En CPU de laptop, un modelo de 4B da 8 a 20.
02 Una Mac M1 a M3 con 16 GB, con modelos de 4B a 9B: 15 a 35.
03 Con una GPU NVIDIA RTX 4060: 40 a 70. Son reglas para darse idea, no mediciones.
04 Y Groq en la nube, con gpt-oss-120b: unos 500. Se sale de la escala.
05 Pero la espera grande es antes: en CPU, leer 4K tokens de RAG tarda de 10 a 60 s.
06 El manual entero son unos 10 mil tokens (estimación). Recuperen 3 a 5 trozos chicos.
T3 Su app · se escribe una vez
baseURL
model
import OpenAI from 'openai'; const ia = new OpenAI({ baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai/','https://api.groq.com/openai/v1','https://openrouter.ai/api/v1','http://localhost:11434/v1', apiKey: process.env.LLAVE_IA, }); const r = await ia.chat.completions.create({ model: 'gemini-3.8-flash','openai/gpt-oss-120b','google/gemma-4-31b-it:free','qwen3.5:9b', messages, });
01 Su app usa el cliente de OpenAI. Con Gemini: la dirección de Google y el modelo gemini-3.8-flash.
02 ¿Se acabó la cuota? Cambian esos dos valores y ya hablan con Groq. Lo demás no se toca.
03 Con OpenRouter, los modelos gratis terminan en :free. Ojo: esa lista cambia seguido.
04 Con Ollama, la dirección es su propia laptop: localhost. Mismo código, sin nube.
05 Los cuatro juntos: solo cambian baseURL y model. Ténganlos a la mano como plan B.
T3 Los datos
Viabilidad · 10 %La llave
fetch(url, {
key: 'AIza…'
}) LLAVE_IA=….env01 Con la capa gratis de Gemini, el manual viaja en cada pregunta. Hoy es ficticio; en un piloto sería de Del Río.
02 Y Google usa lo que mandan para mejorar sus productos. Con material interno, primero pidan permiso.
03 Tres salidas: permiso del enlace, capa de pago o correr local. Cuidarlo suma en viabilidad (10 %).
04 Si la llave va en el código que corre en el navegador, cualquiera la ve con el inspector.
05 La copian y gastan su cuota. Si la suben a GitHub, pasa lo mismo.
06 La llave vive en el servidor: en .env, con .env en .gitignore, o en los secretos de AI Studio Build.
T3 Qué puede decir su avatar, cómo cita, cuándo canaliza, y cuánta cara necesita de verdad.
Identidad: Eres Vale, compañera de inducción de los cajeros de nuevo ingreso. Hablas en español de México, de tú, amable, como alguien que ya lleva tiempo en caja.
Alcance: Solo respondes sobre el módulo de cajero que viene en los DOCUMENTOS. Si te preguntan otra cosa, dices con amabilidad que eso no te toca.
Regla de oro: Si la respuesta no está en los DOCUMENTOS, no la inventes. Di «Eso no viene en mi manual» y pide que lo consulte con su supervisor, o con RH si es de sueldo, prestaciones o contrato.
Regla de oro: todavía no está
Formato de cita: Termina cada respuesta con su fuente, como pide el manual: [sección, subtítulo]. Ejemplo: [sección 8, Ticket sin ningún pago].
Hola, ¿quién eres?
Vale está escribiendo
¡Hola! Soy Vale, tu compañera de caja. ¿Qué repasamos hoy?
¿Quién ganó el partido de ayer?
Vale está escribiendo
Eso no me toca. Yo te ayudo con el manual de caja: ¿repasamos promociones?
¿Cuánto es mi aguinaldo?
Vale está escribiendo
Te toca un mes de sueldo, y se paga en diciembre.
¿Cuánto es mi aguinaldo?
Vale está escribiendo
Eso no viene en mi manual. Pregúntale a Recursos Humanos.
¿Cuánto cobro por tres aguas de 600?
Vale está escribiendo
$50: el par cuesta $30 y la que sobra, $20.
[sección 6, Promoción de aguas AGUA2]01 Primero, quién es: un nombre, un tono y a quién le habla. Ya saluda como compañera de caja.
02 Luego, de qué habla: solo del módulo de cajero. Lo demás, con amabilidad, no le toca.
03 Sin regla de oro, a «¿cuánto es mi aguinaldo?» el modelo inventa una respuesta que suena bien.
04 Con la regla de oro tiene permiso de no saber: dice que no viene y manda a Recursos Humanos.
05 Y cada respuesta cierra con su fuente, como pide el manual: sección y subtítulo.
T4 Reformular: Si el cajero no entiende, explícalo de nuevo, paso a paso, con otras palabras y un ejemplo de caja.
Modo examen: Cuando lo pida, plantea una situación práctica y un test de opción múltiple. Al contestar, dile si acertó, por qué y en qué sección está.
Límites: No inventas políticas. No ejecutas operaciones de caja. No pides datos personales, contraseñas ni claves.
instructions · AI SDK v7 No entendí lo de la terminal sin respuesta.
Vale está escribiendo
Va, paso a paso:
Ponme a prueba.
Vale está escribiendo
Pasas la tarjeta y la terminal se queda sin respuesta. ¿Es un rechazo?
C
Vale está escribiendo
Pendiente o sin respuesta no equivale a rechazo: no repitas el cargo.
[sección 4, Terminal sin respuesta o con registros diferentes]Cancélame el ticket 123. ¿Te paso el NIP del cliente?
Vale está escribiendo
Yo no opero la caja, y el NIP nunca se pide. La cancelación la autoriza tu supervisor.
[sección 8, Qué ruta seguir]01 Si el cajero no entiende, lo explica otra vez, paso a paso, y cita la sección.
02 Cuando lo pide, lo pone a prueba: una situación de caja con opciones, como el test de la ficha.
03 Al contestar, le dice si acertó, por qué y en qué sección está.
04 No opera la caja ni pide el NIP: el manual lo prohíbe y la ficha también.
05 Es texto plano: el mismo prompt va en AI Studio, en Dify o en instructions del AI SDK v7.
T4 Chat de texto y una imagen del avatar que cambia de estado: esperando, pensando, hablando. La identidad visual la autoriza Del Río.
Tres imágenes que se turnan, o Rive y dotLottie si la quieren animada
$0. Rive es gratis con splash; dotLottie es MIT
Es lo único obligatorio. Si esto no está pulido, lo demás no suma.
El navegador lee la respuesta en voz alta con speechSynthesis y lang="es-MX". Sin llaves ni cuentas.
Web Speech API, en todos los navegadores
Gratis
La voz depende del sistema, y su audio no se puede analizar: la boca se finge con onboundary.
Una voz más natural, generada por un servicio o en su máquina. Con audio propio, la boca se mueve por volumen.
Gemini TTS · ElevenLabs · Azure es-MX · Piper es_MX, local
Gemini: capa libre · ElevenLabs: 10K créditos al mes · Azure F0: 0.5M caracteres al mes
Azure trae 19 voces es-MX y visemas. Gemini habla español sin variante regional.
Una cabeza 3D que mueve la boca, hecha con three.js. Corre en cualquier laptop, sin servidor de video.
TalkingHead · three-vrm con un modelo de VRoid
Open source, MIT
TalkingHead no trae español. VRM ya trae las cinco vocales: aa, ih, ou, ee, oh.
El cajero habla y el avatar le contesta en voz, sin escribir. Se conecta a la cara del peldaño anterior.
Gemini Live API · ElevenLabs Agents
Gemini Live: capa libre, sesiones de 15 min · ElevenLabs Agents: 15 min al mes
Depende del WiFi del evento. El chat de texto tiene que seguir funcionando.
Un rostro realista con los labios sincronizados, servido como video en tiempo real.
Simli · Tavus · Anam · LiveAvatar (antes HeyGen)
Simli: $10 + 50 min al mes · Tavus: 25 min · Anam: 30 min, con marca de agua
Los minutos se acaban en el ensayo: construyan contra un simulacro y graben un video de respaldo.
La ficha lo dice: voz y animación son mejoras opcionales. Suban un peldaño solo cuando el de abajo ya funciona.
T4 Repo
Qué hace
Qué pide
01 LiveTalking: labios sincronizados en tiempo real, por WebRTC. Pide una RTX 3060 para 60 fps.
02 MuseTalk: labios a partir del audio. Licencia MIT, pero también pide GPU NVIDIA.
03 OpenAvatarChat, de Alibaba: CUDA 12.8 o más, y su reconocimiento de voz no hace español.
04 Duix-Avatar, antes HeyGem: solo video grabado. NVIDIA, 32 GB de RAM y sin macOS.
05 Todos corren sobre CUDA, que es de NVIDIA. Sin esa tarjeta: peldaño 6 en la nube, o el 4.
T4 01 El navegador no reproduce audio hasta que alguien toca la página: pongan un botón «Empezar».
02 Si la voz en la nube se cae con el WiFi del evento, el chat de texto sigue. Que funcione sin audio.
03 Construyan contra un simulacro, gasten los minutos al final y graben un video de respaldo.
04 Las capas gratis son por cuenta: cada integrante puede abrir la suya. La mayoría pide 18+.
T4 Escojan su combo según quién hay en el equipo. Luego lo vemos armado en vivo, de punta a punta.
!Uno maneja el constructor; los demás escriben los prompts
!Copiloto gratis: Copilot Student, Antigravity o Codex
!Bajen los modelos antes, no con el WiFi del evento
01 Tres perfiles: nadie programa, alguien ya hizo una página, alguien se mueve en Python. Cuatro huecos cada uno.
02 Equipo A, todo en el navegador: AI Studio Build con gemini-3.8-flash, y Bolt.new de respaldo.
03 Equipo B, su propia app: Next.js con el AI SDK v7, Gemini por su URL compatible y Groq de respaldo.
04 Equipo C, el modelo en su laptop: Ollama, Docling y Chroma; si falla, el mismo cliente apunta a la nube.
05 Cada perfil tropieza con algo distinto. No hay combo mejor: hay el que su equipo termina a la 1:00.
T5 Solo navegador · no se instala nada
Se instalan · ven todo el proyecto
01 Arriba, las que viven en el navegador: no se instala nada. Aquí vive el combo A, con AI Studio y Bolt.
02 Abajo, las que se instalan en su laptop: agentes de código, el copiloto de los combos B y C.
03 ¿Escojo el modelo? Las encendidas, sí. Las demás van con el de su casa, y no siempre lo dicen.
04 ¿Ve todo el proyecto? Las que se instalan leen, editan y versionan todos sus archivos.
05 ¿Empiezo gratis? Diez de once tienen con qué. La que no: Claude Code, que no viene en el plan Free.
T5 Si son estudiantes, pidan Student
Es el reemplazo del Gemini CLI
Necesita cuenta de ChatGPT
El modo Agent viene limitado
Algunos entrenan con sus datos
01 GitHub Copilot: si son estudiantes, Copilot Student es gratis. Si no, Free trae 2,000 completados y 50 chats.
02 Antigravity, el IDE y su CLI (agy): $0 con límites semanales. Es el reemplazo del Gemini CLI.
03 Codex funciona con ChatGPT Free y su CLI es Apache-2.0. Solo necesitan cuenta de ChatGPT.
04 Cursor Hobby: gratis y sin tarjeta, con el modo Agent limitado.
05 Y si quieren uno abierto: OpenCode (MIT) trae unos 13 modelos gratis vía Zen. Ojo: algunos entrenan con sus datos.
T5 01 El Gemini CLI dejó de servir a cuentas personales gratis el 18 de junio. Su reemplazo: Antigravity CLI (agy).
02 Windsurf cambió de nombre: ahora es Devin Desktop, con un plan gratis de cuota ligera.
03 GitHub Spark ya no acepta apps nuevas desde el 4 de agosto, y desde el 31 no hay acceso.
04 Firebase Studio no acepta altas nuevas desde el 22 de junio y cierra el 22 de marzo de 2027.
05 Roo Code archivó su repositorio en mayo. Si un tutorial los manda a alguno de estos, el tutorial es viejo.
T5 App: «Vale · tu compañera de caja», web, español de México
Cara: Vale a la izquierda con 3 estados; el chat a la derecha
Conocimiento: el manual en la pestaña «Módulo»; solo usa eso
Reglas: gemini-3.8-flash + 7 reglas: cita [sección N, …]
Inducción: bienvenida, sugerencias y botón «No entendí»
Prueba: quiz de 5 con retro y bitácora de 10 consultas
Llave: Gemini solo del lado del servidor; sin datos personales
01 App: qué se construye y para quién. Es la pantalla que ve el cajero, así que construye la Cara.
02 Cara: Vale a la izquierda con tres estados (lista, pensando, hablando) y el chat a la derecha.
03 Conocimiento: el manual se carga en la pestaña «Módulo», y Vale solo responde con eso.
04 Reglas: el modelo, gemini-3.8-flash, y las siete reglas. La de oro: si no está, canaliza.
05 Inducción: bienvenida, preguntas sugeridas y «No entendí», que activa la regla de reformular.
06 Prueba: el quiz de 5 con retroalimentación y la bitácora con las 10 consultas.
07 Llave: Gemini solo del lado del servidor. Y ya: las cinco piezas tienen su flecha.
T5
… ¿Cuánto cobro por tres aguas de 600?
Vale escribe
$50: el par cuesta $30 y la sobrante $20.
[sección 6, Promoción de aguas AGUA2]¿Cuánto es mi aguinaldo?
Vale escribe
Eso no viene en mi manual. Los salarios y prestaciones los atiende Recursos Humanos.
[Lo que este manual no define]1. ¿Cuál es el fondo objetivo de caja?
Tu respuesta: $1,500 ✓ Correcto
[sección 2, Fondo objetivo]2. Si la terminal queda sin respuesta, ¿es un rechazo?
Tu respuesta: Sí ✗ No: pendiente no es rechazo
[sección 4, Terminal sin respuesta o con registros diferentes]Si la comparten, lo que gaste quien la abra cuenta contra su cuota.
La llave de Gemini se queda en el servidor, nunca en el navegador.
01 Se pega el prompt maestro en AI Studio Build. Arma una app de React con Node, y la llave queda en el servidor.
02 Sale la app: Vale a la izquierda con sus estados, el chat a la derecha y cuatro pestañas. Sin módulo, no contesta.
03 Se carga el manual oficial en «Módulo»: 34 páginas que caben completas. La app lista sus secciones.
04 «¿Cuánto cobro por tres aguas de 600?» Vale piensa, responde $50 y cita la sección. Abran el PDF y compruébenlo.
05 «¿Cuánto es mi aguinaldo?» No está en el manual: Vale no inventa y lo manda a Recursos Humanos.
06 El quiz: una bien y una mal, a propósito. La retroalimentación de la mala también cita la sección.
07 Guardar en GitHub o bajar el ZIP. Si la comparten, lo que gaste quien la abra cuenta contra su cuota.
T5 Diez consultas que demuestran que no inventa, y su stack en una hoja antes de salir.
01 La ficha pide diez: ocho que el manual responde y dos que no. Cada una con su respuesta esperada y su fuente.
02 Corren la 1, la 2 y la 3: dos promociones y un producto sin precio. Responden y citan la sección correcta.
03 La 4 y la 5 pasan. La 6 falla: devolvió $20 y citó el catálogo. La ficha pide mostrar también los errores.
04 La 7 y la 8, de efectivo y de corte, pasan con su cita. Van 7 de 8 con fuente y un error.
05 La 9 y la 10 no están en el manual: el avatar no inventa y canaliza, a Recursos Humanos y al supervisor.
06 Cuando una falla, primero los datos: el trozo de la sección 9 no llegó. Se arregla el troceo y se corre otra vez.
T6 prompts: [file://prompt.json] # reglas + manualproviders: [google:gemini-3.8-flash]tests: - vars: { pregunta: "¿Cuánto cobro por tres aguas de 600?" } assert: - { type: icontains, value: "$50" } - { type: regex, value: '\[sección 6' } - vars: { pregunta: "¿Cuánto es mi aguinaldo?" } assert: - { type: is-refusal } - { type: icontains, value: Recursos Humanos } $ npx promptfoo eval
9 de 10 10 de 10
01 prompts: el mismo system prompt de su app y el manual, con la pregunta como variable.
02 providers: el modelo con el que se corre, el mismo de su app.
03 Cada consulta es un test. La 1 pasa si dice $50 (icontains) y si trae la cita de la sección 6 (regex).
04 La 9 pasa si no contesta lo que no sabe (is-refusal) y si manda a Recursos Humanos (icontains).
05 npx promptfoo eval corre las diez y saca una tabla: verde si pasa, rojo si falla. Aquí falla la 6.
06 Cambian el troceo, corren otra vez y saben en un minuto si rompieron algo. Meta: 10 de 10.
T6 01 Langfuse guarda cada consulta. Esta es la 6: «Devuelven una de las dos aguas de la promoción, ¿cuánto regreso?».
02 Ahí se ve qué trozos recuperó antes de contestar: dos de la sección 6 y uno de la 3. El de la sección 9 no llegó.
03 Con eso, contestó $20 y citó el catálogo. El modelo hizo lo que pudo con lo que le llegó.
04 El error es de datos, no de prompt: hay que arreglar el troceo, no reescribir las reglas.
05 Para después del hackathon: Ragas y DeepEval miden la fidelidad al documento con métricas automáticas.
T6
T6 A la 1:00 su avatarresponde una preguntacon fuente y canalizauna que no sabe.
Mentorías de 11:00 a 1:00. Lleguen con su ficha y sus tres preguntas.
T6