Software de literatura generativa que utiliza modelos LLM locales para producir recuerdos ficticios bajo la forma “Me acuerdo…”.
AI Remember es un experimento de literatura generativa, Python y modelos de lenguaje ejecutados localmente mediante Ollama.
El proyecto toma como referencia la estructura de I Remember de Joe Brainard y Je me souviens de Georges Perec: una sucesión de fragmentos construidos alrededor de una fórmula repetida.
En AI Remember, quien recuerda es un modelo de lenguaje.
Cada texto surge de la combinación de:
- 🧠 instrucciones de sistema
- 🎲 una o dos palabras seed
- 📚 un ejemplo seleccionado al azar
- 🌡️ parámetros de generación
- 🤖 un LLM generador
- ✍️ un segundo LLM que funciona como editor
Los recuerdos son inventados, pero pueden sugerir una memoria colectiva probable: tecnología, objetos cotidianos, cultura popular, errores, anacronismos y asociaciones inesperadas.
“Todos esos recuerdos se perderán como lágrimas en la lluvia.”
— Roy Batty, Blade Runner
- 🧠 Generación literaria con LLM
- 🏠 Ejecución local con Ollama
- 🐍 Implementado en Python
- 📚 Inspirado en Joe Brainard y Georges Perec
- 🎲 Selección aleatoria de palabras seed
- 🔀 Uso periódico de dos seeds simultáneos
- 📝 Ejemplos literarios como referencia de formato
- 🌡️ Temperatura y
top_pconfigurables - 📏 Ventana de contexto configurable
- ⚡ Generación por streaming
- ✍️ Segundo modelo utilizado como editor
- 🔢 Evaluación de cada fragmento de 1 a 10
- ✅ Validación automática del comienzo
Me acuerdo - 📄 Compilación incremental en
airemember.txt - 📖 Libro generado incluido en el repositorio
- 🔌 Sin dependencia de APIs cloud
- 📜 Licencia MIT para el software
En 2011 participé del ciclo Celebración de Perec en el CCEBA con una performance sobre No recuerdo, de Esteban Feune de Colombi, inspirado en Je me souviens de Georges Perec, inspirado a su vez en I Remember de Joe Brainard.
Desde entonces quedó dando vueltas la idea de desarrollar un software capaz de automatizar una escritura similar.
Años después, una ThinkPad cargada con modelos y librerías de IA fue el punto de partida para AI Remember.
El procedimiento conserva la repetición formal de esas obras, pero reemplaza la memoria humana por una máquina estadística que produce recuerdos que nunca ocurrieron.
Joe Brainard publicó I Remember originalmente en 1970.
El libro está compuesto por una sucesión de fragmentos iniciados por:
I remember...
La repetición funciona como mecanismo generativo para recuperar recuerdos personales, objetos cotidianos, hábitos, cultura popular y acontecimientos aparentemente insignificantes.
- The Collected Writings of Joe Brainard — Library of America
- I Remember Joe Brainard — Library of America
Georges Perec publicó Je me souviens en 1978.
La obra reúne 480 entradas que comienzan con:
Je me souviens...
o:
Me acuerdo...
Perec utiliza esa estructura para construir una memoria simultáneamente personal y colectiva a partir de objetos, canciones, personajes, expresiones y detalles de una época.
sustantivos.csv
│
└──── palabra seed ────────┐
│
meacuerdo.csv │
│ │
└──── ejemplo aleatorio ───┤
│
▼
┌─────────────────┐
│ LLM generador │
│ Ollama │
└────────┬────────┘
│
▼
"Me acuerdo..."
│
▼
┌─────────────────┐
│ LLM editor │
│ │
│ puntuación 1-10 │
└────────┬────────┘
│
▼
validación
│
▼
airemember.txt
│
▼
📖 libro
Cada iteración:
- selecciona un ejemplo de
meacuerdo.csv - selecciona una palabra de
sustantivos.csv - cada tercera generación intenta utilizar dos palabras diferentes
- construye el prompt
- genera un recuerdo mediante Ollama
- envía el resultado a un segundo modelo
- obtiene una puntuación de 1 a 10
- valida el formato
- agrega el fragmento a
airemember.txt
Las palabras utilizadas para disparar asociaciones se cargan desde:
sustantivos.csv
El archivo debe contener una entrada por línea.
Ejemplo:
fax
módem
robot
discman
terminal
disquete
internet
microchip
satélite
videocasetera
El código carga las entradas con:
listaSustantivos = [
linea.strip()
for linea in archivo
if linea.strip()
]Para cada generación selecciona una palabra al azar:
sustantivo1 = random.choice(listaSustantivos)Cada tercera generación, AI Remember intenta combinar dos palabras diferentes:
usarDosSustantivos = (
contador % 3 == 2
and len(listaSustantivos) >= 2
)Por ejemplo:
'fax' y 'abuela'
La combinación permite provocar asociaciones menos previsibles entre conceptos alejados.
El archivo:
meacuerdo.csv
contiene ejemplos utilizados como referencia de formato y estilo.
En cada iteración se selecciona uno al azar:
ejemploAleatorio = random.choice(listaEjemplos)La estructura del prompt actual es:
Escribir una oración de 10 a 25 palabras que empiece con: Me acuerdo
Usar 'SEED'.
Ejemplo de estilo: EJEMPLO.
Cuando se utilizan dos palabras:
Usar 'SEED_1' y 'SEED_2'.
El modelo utilizado para escribir los recuerdos se configura en:
modeloChat = ""El libro incluido en el repositorio fue producido utilizando Dolphin Llama 3 8B.
Puede descargarse mediante Ollama:
ollama pull dolphin-llama3:8by configurarse con:
modeloChat = "dolphin-llama3:8b"Puede utilizarse otro modelo compatible con Ollama.
El código actual define:
temperatura = 1
topP = 1
tamanioVentanaContexto = 1024y los utiliza en:
options={
"temperature": temperatura,
"num_ctx": tamanioVentanaContexto,
"top_p": topP
}La generación se realiza además mediante streaming:
stream=Truepor lo que el recuerdo aparece progresivamente en la terminal.
El comportamiento general del escritor se define en:
sistema = "Sos un escritor..."Allí pueden establecerse criterios como:
- tono
- voz
- registro
- época
- longitud
- temas
- nivel de extrañeza
- referencias culturales
- restricciones
- elementos que deben evitarse
Después de generar cada fragmento, AI Remember lo envía a un segundo LLM.
El modelo se configura en:
modeloEvaluacion = ""El sistema editorial se define en:
sistemaEvaluacion = "Sos un editor que responde puntuando textos del 0 al 10..."El prompt enviado al editor es:
Evalúa la siguiente frase en una escala del 1 al 10.
Retorna solo el número.
Para esta etapa se utiliza una temperatura menor:
"temperature": 0.2El modelo generador y el modelo editor pueden ser diferentes.
La respuesta del editor debe poder convertirse a un entero:
puntajeEvaluacion = int(contenidoEvaluacion)y encontrarse entre:
1 ... 10
Cada recuerdo guardado incluye:
- texto generado
- número de generación
- seed o seeds utilizados
- puntuación editorial
Ejemplo:
Me acuerdo de aquel módem que parecía discutir con el teléfono antes de conectarse. | -- 42 (módem) | Puntuación: 8/10
La implementación actual registra la puntuación pero no aplica un puntaje mínimo de aceptación.
Antes de incorporar un texto al compilado se comprueba:
def validarFrase(frase):
return frase.startswith("Me acuerdo") and "Nota:" not in fraseSe descartan respuestas que:
- no comienzan con
Me acuerdo - contienen
Nota: - producen un error durante la evaluación
Los recuerdos aceptados se guardan en:
airemember.txt
El archivo se abre en modo append:
logging.basicConfig(
filename=archivoLog,
level=logging.INFO,
format="%(message)s",
encoding="utf-8",
filemode='a'
)Esto permite que cada ejecución continúe agregando recuerdos al compilado existente.
El repositorio incluye:
El libro fue producido en Buenos Aires en abril de 2025 a partir de textos generados con el procedimiento de AI Remember.
Los fragmentos exploran recurrentemente:
- computadoras
- redes
- robots
- terminales
- videojuegos
- fax
- inteligencia artificial
- realidad virtual
- teléfonos
- chips
- memoria
- futuros imaginados
También puede consultarse en:
AIRemember/
├── AIRemember.pdf
├── LICENSE
├── README.md
└── aiRememberUpload.py
Programa principal encargado de:
- cargar las palabras seed
- cargar los ejemplos
- seleccionar entradas al azar
- construir prompts
- llamar a Ollama
- generar texto mediante streaming
- evaluar cada fragmento
- validar las respuestas
- compilar el resultado
Edición del libro producido con el sistema.
git clone https://github.com/ronibandini/AIRemember.git
cd AIRememberComprobar la instalación:
python3 --versionComprobar:
ollama --versionPor ejemplo:
ollama pull dolphin-llama3:8bpip install ollamaEjemplo:
fax
módem
robot
terminal
cassette
internet
disquete
microchip
Una frase por línea.
Ejemplo:
Me acuerdo de las agendas telefónicas junto al teléfono.
Me acuerdo de rebobinar los cassettes con una lapicera.
Me acuerdo de escuchar el módem antes de conectarme a Internet.
En:
aiRememberUpload.py
definir:
modeloChat = "dolphin-llama3:8b"
modeloEvaluacion = "dolphin-llama3:8b"También pueden utilizarse dos modelos diferentes.
Completar:
sistema = "Sos un escritor..."y:
sistemaEvaluacion = "Sos un editor..."python3 aiRememberUpload.pyEl programa muestra:
🧠 AI Remember, Roni Bandini, Abril 2025
Cargados ... sustantivos desde 'sustantivos.csv'.
Cargados ... ejemplos desde 'meacuerdo.csv'.
El libro se produce en 'airemember.txt'.
Luego comienza la generación continua.
Presionar:
CTRL+C
El contenido generado permanece almacenado en:
airemember.txt
El código incluye:
depurar = 0Para visualizar el seed y el ejemplo seleccionados en cada iteración:
depurar = 1La terminal mostrará información similar a:
Seed: 'fax'
Ejemplo: Me acuerdo de...
| Variable | Función | Valor inicial |
|---|---|---|
modeloChat |
LLM generador | "" |
temperatura |
Temperatura de generación | 1 |
topP |
Nucleus sampling | 1 |
tamanioVentanaContexto |
Ventana de contexto | 1024 |
sistema |
Prompt de sistema del escritor | "Sos un escritor..." |
archivoSustantivos |
Archivo de seeds | sustantivos.csv |
archivoEjemplos |
Archivo de ejemplos | meacuerdo.csv |
archivoLog |
Compilación | airemember.txt |
modeloEvaluacion |
LLM editor | "" |
sistemaEvaluacion |
Criterios editoriales | configurable |
depurar |
Mostrar seed y ejemplo | 0 |
El procedimiento contiene varias fuentes de indeterminación:
seed aleatorio
+
ejemplo aleatorio
+
modelo
+
temperatura
+
top_p
+
prompt de sistema
+
muestreo del LLM
Dos ejecuciones realizadas con los mismos archivos pueden producir compilaciones completamente diferentes.
-
📊 Curaduría por puntaje — incorporar al compilado solamente los textos que superen un umbral editorial configurable.
-
🧬 Varias generaciones por seed — generar múltiples recuerdos para una misma combinación y hacer que el modelo editor seleccione uno.
-
📖 Maquetación automática — convertir
airemember.txtdirectamente en PDF o EPUB.
AI Remember: un LLM generador de “Me acuerdo”
Artículo en español sobre el origen del proyecto, sus antecedentes literarios y el proceso de generación con modelos locales.
AI Remember
Publicación de la edición generada en abril de 2025.
AI Remember formó parte del trabajo presentado alrededor de inteligencia artificial, literatura generativa y máquinas literarias durante la 49.ª Feria Internacional del Libro de Buenos Aires.
El 2 de mayo de 2025, la programación del auditorio Ticmas incluyó:
Máquinas literarias, IA y contracultura maker
Un diálogo con Roni Bandini sobre literatura, Inteligencia Artificial y experimentación tecnológica.
Una jornada de inteligencia artificial en el auditorio de Ticmas en la Feria del Libro — Infobae
- Joe Brainard — Library of America
- I Remember Joe Brainard
- Je me souviens — Bibliothèque nationale de France
- Me acuerdo — Impedimenta
- Georges Perec — Oulipo
Otros proyectos de Roni Bandini relacionados con literatura, IA e interfaces no convencionales.
Un Furby de 1998 transformado en un autómata relacionado con Jorge Luis Borges mediante Arduino y audio digital.
Un Kindle Paperwhite jailbreakeado convertido en una máquina de escribir conectada a una Raspberry Pi y una impresora térmica.
github.com/ronibandini/Kindle-Typewriter
ChatGPT ejecutado desde un Kindle Paperwhite jailbreakeado mediante Bash, KTerm y la API de OpenAI.
github.com/ronibandini/JailbreakedKindleGPT
El software de AI Remember se distribuye bajo licencia MIT.
Ver LICENSE.
Los textos, ejemplos y obras literarias utilizados como material de referencia conservan sus respectivos derechos.
Roni Bandini
Maker, desarrollador de IA, artista electrónico y escritor.
- 🐙 GitHub: @ronibandini
- 💼 LinkedIn: Roni Bandini
- 📸 Instagram: @ronibandini
- 🐦 X: @RoniBandini
- ✍️ Medium: bandini.medium.com
Buenos Aires, Argentina.

