Archivos
Un corpus privado con más de 1.000 enseñanzas llega en muchos formatos — Word, PDF, RTF, HTML, imágenes escaneadas, archivos anidados.

Sistema privado de conocimiento
Convertir más de 1.000 archivos en un sistema de conocimiento buscable con IA.
Quería reunir textos budistas a los que volvía una y otra vez — los relatos de las vidas anteriores del Buda, sutras de archivos de dominio público y otro material disperso en la web o guardado en PDF. Diseñé y construí Dharma Sky: una biblioteca privada donde esos archivos se pueden explorar, buscar y consultar mediante una interfaz de IA fundamentada en el material original.
Rol: Product Designer · Constructor de productos de IA
El desafio
El material ya existía libremente online o en archivos — en formatos y páginas distintas. Encontrar un artículo o tema concreto, comparar pasajes relacionados o responder una pregunta precisa significaba buscar a mano en un acervo que ninguna interfaz humana podía navegar de forma razonable.
Era un problema de arquitectura de información: cómo hacer accesible un gran cuerpo de conocimiento no estructurado sin pedir que alguien recuerde nombres de archivo, fechas o en qué documento estaba cada idea.
La idea
En lugar de pedir que las personas busquen documentos uno a uno, Dharma Sky procesa el corpus en una capa de conocimiento indexada — y ofrece una superficie de producto calmada para navegación, exploración temática y preguntas fundamentadas.
El sistema
La historia central del producto es el pipeline de indexación. Todo lo que la persona experimenta — búsqueda, Ask, temas — depende de lo que ocurre aquí.
Pipeline de indexación
Un corpus privado con más de 1.000 enseñanzas llega en muchos formatos — Word, PDF, RTF, HTML, imágenes escaneadas, archivos anidados.
Cada archivo se expande, se extrae el texto (incluido OCR para imágenes) y el contenido se normaliza en texto legible de la enseñanza.
La enseñanza se divide en fragmentos para recuperación, se convierte en embeddings para búsqueda vectorial y también recibe un índice a nivel de documento: términos clave, una sinopsis fiel y un embedding de enrutamiento.
Una pregunta primero selecciona las enseñanzas más relevantes y luego busca pasajes dentro de ellas — para que las respuestas se mantengan fundamentadas en las fuentes correctas.
El modelo responde solo a partir de los pasajes recuperados, con citas de las enseñanzas originales — sin inventar contenido más allá de la biblioteca.
Segmentación
Las enseñanzas se dividen en unidades de recuperación con solapamiento, dimensionadas para embedding — manteniendo el contexto de página cuando está disponible.
Embeddings
Los fragmentos e índices de documento reciben embeddings para que el significado — y no solo las palabras clave — se pueda buscar.
Recuperación jerárquica
Primero selecciona las enseñanzas, luego recupera pasajes dentro de ellas. Diversifica las fuentes para que un solo archivo no domine la respuesta.
El punto para un reclutador que nunca ha construido infraestructura de IA: entiendo lo que ocurre entre que una persona hace una pregunta y la IA produce una respuesta — y diseñé ese camino como producto.
Evolución de la arquitectura
A medida que creció el corpus, eliminé la dependencia exclusiva de Supabase para la recuperación. Ahora cada servicio realiza el trabajo que mejor sabe hacer, mientras el producto mantiene una experiencia coherente.
Fuente oficial de datos
La autenticación, el almacenamiento privado de archivos, los metadatos estructurados, los temas y los datos de usuarios permanecen en Supabase.
Motor de recuperación
Los embeddings de documentos y fragmentos viven en Qdrant. El texto de los pasajes y los metadatos de la fuente acompañan cada resultado vectorial, eliminando una consulta adicional a la base de datos en el flujo de preguntas.
Capa de experiencia
Las lecturas del catálogo, las enseñanzas y los temas usan almacenamiento temporal en el servidor con etiquetas. Los cambios en los archivos activan una revalidación firmada, para mantener eficiente la navegación repetida sin mostrar contenido desactualizado.
Migración por etapas
Una interfaz de recuperación compartida puede dirigir las búsquedas a Qdrant o a las funciones vectoriales existentes de Postgres según la configuración. Esto separó el comportamiento del producto de la elección de almacenamiento y permitió una migración gradual.
Efecto en la experiencia
Las personas mantienen el mismo modelo simple — explorar, preguntar y verificar fuentes — mientras el almacenamiento temporal y los resultados vectoriales con datos completos reducen el trabajo evitable del servidor.
Escala
1,000+
archivos
A esta escala, buscar manualmente el material de origen ya no es una interfaz práctica.
El producto necesitaba una forma estructurada de procesar, indexar, recuperar y presentar el conocimiento correcto — para que una pregunta o tema pudiera abrir el archivo sin exigir que alguien supiera dónde vivía cada enseñanza.
Producto y UX
La interfaz es intencionalmente silenciosa: biblioteca, navegación, temas, Ask. La complejidad se queda en el pipeline; el producto solo pide la intención.

Las preguntas en lenguaje natural se convierten en una búsqueda en dos etapas: encontrar las enseñanzas correctas y luego citar los pasajes coincidentes.

Búsqueda semántica ordenada por relevancia temática — sinopsis y términos clave hacen que una biblioteca grande se pueda recorrer sin abrir cada archivo.

Filtros de catálogo por año, evento, tipo y tema. Las páginas de detalle abren el archivo completo con resúmenes opcionales por IA.

Temas reunidos entre enseñanzas, con el Constructor de Temas vinculando cada tema a pasajes de apoyo.
Explorar
Vista previa anonimizada
El voto del monje celoso · Relato Jataka
Un monje deja que los celos lo lleven a calumniar a un compañero que había ganado respeto. El relato gira en torno a la confesión, la reparación y la elección de un camino hacia el despertar.
Confesión y redención · Relato Jataka
Después de admitir su error, el monje ofrece lo que puede, renueva su voto y recibe ánimo — mientras otros personajes también hacen votos.
Interacción con IA
Ask Dharma no es un clon genérico de chat. Está diseñado para una tarea: responder desde esta biblioteca, mostrar los pasajes que sustentan la respuesta y negarse a inventar enseñanzas que no están ahí.
De la biblioteca
En el voto del monje celoso, los celos empujan a un monje a calumniar a un compañero que había ganado más respeto — acusándolo falsamente en lugar de enfrentar su propia envidia. Las fuentes recuperadas muestran cómo la admiración puede convertirse en acusación cuando los celos no se controlan.
Pasajes de apoyo
“Los celos lo llevaron a calumniar a un compañero que había ganado respeto, acusándolo falsamente de un error.”
Intercambio ilustrativo — no se muestra el contenido del corpus privado.
Bajo la superficie: la pregunta recibe embedding, las enseñanzas candidatas se seleccionan del índice de documentos (y por solapamiento léxico de términos clave), se recuperan los fragmentos coincidentes, se diversifican las fuentes y solo entonces el modelo escribe — limitado a esos pasajes.
El modelo no “conoce” los archivos. Responde a partir de lo que devuelve la recuperación.
Construyendo el producto
Usé herramientas asistidas por IA para pasar del concepto de producto y UX a una aplicación funcionando — schema, pipeline de ingestión, recuperación e interfaz.
Lo importante no es que la IA escribió código. Es que pude dirigir el ciclo completo: definir el problema, diseñar la experiencia, decidir cómo debía indexarse y recuperarse el conocimiento, y lanzar un producto privado que la gente realmente pueda usar.
Decisiones de diseño
Las personas nunca ven embeddings, límites de fragmentos ni puntuaciones vectoriales. Ven búsqueda, respuestas y fuentes.
El modelo no se trata como si “conociera” el corpus. Primero se recuperan los pasajes; la respuesta se limita a esos pasajes.
Los pasajes de apoyo aparecen bajo cada respuesta, vinculados a los títulos de las enseñanzas — la confianza viene de la procedencia, no del brillo.
La relevancia a nivel de documento encuentra las enseñanzas correctas; la búsqueda a nivel de fragmento encuentra las líneas exactas para citar.
Acceso autenticado, almacenamiento privado y sin registro público — el corpus permanece una biblioteca cerrada.
La carga (“Buscando las enseñanzas…”), los resultados vacíos y los fallos de recuperación se diseñan como momentos de producto, no como errores genéricos.
Supabase gestiona el contenido privado y los datos relacionales; Qdrant se encarga de la recuperación semántica y devuelve los datos de los pasajes con cada resultado.
Las lecturas estables de la biblioteca se almacenan temporalmente por etiqueta y se revalidan automáticamente cuando cambian los archivos de enseñanzas.
Lo que aprendí
Diseñar un producto de IA significa diseñar el sistema en torno a la IA — recuperación, fundamentación y citas — no soltar un chatbot sobre una pila de documentos.
La calidad de la recuperación es la calidad del producto. Si aparecen los pasajes equivocados, la respuesta se siente rota aunque la UI sea calmada.
Una buena UX de IA hace invisible la infraestructura compleja. Las personas deben sentirse guiadas, no impresionadas por jerga.
Las decisiones de arquitectura deben traducirse en valor para las personas: menos consultas al servidor y la invalidación planificada del almacenamiento temporal sostienen una biblioteca más ágil y fiable.
El desarrollo asistido por IA cambió la velocidad con la que pude pasar del concepto de producto y UX a un sistema funcionando en el que pudiera iterar.