12 de septiembre de 2026 · Por YasKad
pathwaycom/llm-app

llm-app: plantillas RAG listas para desplegar sobre Pathway

pathwaycom/llm-app · 58.898★ · 1.500 forks

llm-app es la colección de plantillas oficiales de aplicaciones de IA sobre el Pathway Live Data Framework (pathwaycom/pathway, el motor hermano que contiene la librería y el motor en Rust): RAG, búsqueda de documentos y video, e índices en tiempo real que se mantienen siempre sincronizados con las fuentes de datos. Cada plantilla es un contenedor Docker listo para desplegar que expone una API HTTP e incorpora el índice de vectores, el índice híbrido y la caché dentro de la propia librería, sin montar una base de datos vectorial, un caché ni un framework de API por separado.

Origen

El repositorio fue creado el 19 de julio de 2023 por la organización pathwaycom (la empresa Pathway, pathway.com), ocho meses después de que existiera el marco base pathwaycom/pathway (creado el 27 de noviembre de 2022). Ocho días después de su creación, el 27 de julio de 2023, Pathway presentó la primera versión en Hacker News: «Show HN: LLM App – build a realtime LLM app in 30 lines, with no vector database» (hilo 36894142), con 11 puntos y 8 comentarios.

El hilo inaugural fija la narrativa desde el título: una aplicación LLM en tiempo real en ~30 líneas sin base de datos vectorial. En él, el usuario Arimbr preguntó qué era exactamente el paquete Pathway, y janchorowski (Pathway) respondió que es un marco de procesamiento de datos que unifica el procesamiento stream y batch de grandes conjuntos, dejando al desarrollador centrarse en la lógica sin rastrear manualmente los cambios de datos.

El repositorio ha evolucionado como catálogo: la presentación original era un solo ejemplo «30 líneas»; hoy (2026) agrupa diez plantillas. Las siguientes apariciones en Hacker News siguen el mismo patrón de «Show HN» por plantilla: 38304483 (2023-11-17, alertas en RAG en tiempo real, 8 pts / 5 com), 40987194 (2024-07-17, RAG privado con Mistral y Ollama, 5 pts / 0 com) y 42318221 (2024-12-04, plantillas YAML, 8 pts / 2 com). En el hilo del marco base —40669434 «Show HN: Pathway – Build Mission Critical ETL and RAG in Python (NATO, F1 Used)» (73 pts, 19 comentarios, 2024-06-13)— el propio equipo defiende que el producto está en uso en clientes que el titular resume como «NATO y F1»; es la aparición pública más visible de la familia.

Filosofía y principios

El README condensa la filosofía en varias ideas verificables:

  • Conocimiento siempre al día: el valor central es que los documentos se re-indexan en tiempo real ante cualquier adición, eliminación o cambio en la fuente. No hay un paso ETL por separado ni un «batch nocturno»; el índice refleja el estado actual de la fuente.
  • Sin infraestructura auxiliar: el README lo expresa textualmente tachando el stack habitual: «Vector Database (p. ej. Pinecone/Weaviate/Qdrant) + Cache (p. ej. Redis) + API Framework (p. ej. Fast API)». El índice de vectores, el índice híbrido y la caché están integrados en la librería (por defecto usearch para el índice KNN y Tantivy para la búsqueda de texto completo híbrida).
  • Plantillas «una línea»: los README afirman que cambiar un paso del pipeline es «un cambio de una línea», y que las plantillas solo difieren en su archivo app.yaml.
  • Escala declarada: el README declara que las plantillas escalan «hasta millones de páginas de documentos».

El principio de incrementalidad es transversal: cualquier cambio en los archivos de origen fluye de inmediato a través del parseo, la incrustación, el índice y las respuestas del LLM.

Una detallada visualización cyberpunk oscura de un motor de datos luminoso con múltiples fuentes de datos convergiendo como flujos neón —carpeta local, unidad en la nube, bucket S3, flujo Kafka, cilindro PostgreSQL, nodo de API en vivo— hacia un motor central que emite una respuesta holográfica hacia una interfaz tipo chat, con una cápsula Docker y una puerta de API HTTP orbitando cerca, fondo azul marino y negro, acentos neón cian, violeta, ámbar y magenta, micro-circuitería ultra detallada, iluminación volumétrica, 8K

Cómo funciona

Cada plantilla funciona como un contenedor Docker que expone una API HTTP (algunas incluyen una UI de Streamlit opcional). Todo depende del Pathway Live Data Framework, una librería de Python con un motor en Rust integrado que sincroniza fuentes y sirve peticiones.

El pipeline documentado en la plantilla por defecto (question_answering_rag) tiene cinco etapas:

  1. Ingesta de datos: las fuentes se definen en app.yaml (directorios locales, Google Drive, SharePoint, S3, Kafka, PostgreSQL, APIs). El código encadena estos orígenes a intervalos configurables y re-indexa en tiempo real.
  2. Parseo y troceado: con Docling (vía DoclingParser) y TokenCountSplitter.
  3. Incrustación: por defecto OpenAIEmbedder; sustituible por otro incrustador.
  4. Indexado: USearchKnnFactory para el índice vectorial; opcionalmente un índice híbrido que combina USearchKNN con TantivyBM25 mediante HybridIndex.
  5. Servicio: SummaryQuestionAnswerer maneja preguntas y resúmenes, y QASummaryRestServer expone los endpoints.

Una visualización cyberpunk detallada de sincronización de datos en tiempo real para un sistema RAG en vivo, un índice holográfico central de documentos recibiendo actualizaciones simultáneas de varios nodos fuente brillantes —directorio local, unidad en la nube, bucket S3, flujo de mensajes Kafka, base de datos PostgreSQL, endpoint de API en vivo— cada uno emitiendo un pulso neón fino ante cada cambio de documento, fondos oscuros, estelas de luz cian y magenta, planos de cuadrícula sutiles, neblina volumétrica, paneles tecnológicos ultra detallados, 8K

Endpoints por defecto de la plantilla por defecto:

CategoríaEndpointUso
Indexado de documentos/v1/retrieveBúsqueda por similitud
/v1/statisticsEstadísticas básicas del índice
/v2/list_documentsMetadatos de todos los archivos procesados
LLM / RAG/v2/answerPreguntar a los documentos o hablar con el LLM
/v2/summarizeResumir una lista de textos

Una ilustración conceptual oscura de una arquitectura de backend de IA integrada que elimina la necesidad de infraestructura separada, un módulo cristalino central con tres cámaras internas —índice vectorial, índice híbrido de palabras clave y capa de caché— fusionadas en un solo motor compacto, tachaduras holográficas rojas tenues cruzando componentes externos abstractos como un servidor de base de datos vectorial y una caché independiente, paleta negro y azul profundo con resaltados neón teal, líneas futuristas limpias, cámaras internas brillantes, renderizado 3D ultra detallado, 8K

Las diez plantillas del repositorio (verificado en templates/):

PlantillaDescripción (según su README)
question_answering_ragRAG end-to-end básico: responde sobre PDF/DOCX de una fuente en vivo
document_indexingIndexado en vivo que actúa como almacén vectorial / recuperador (backend para LangChain o LlamaIndex)
multimodal_ragRAG multimodal con GPT-4o; extrae tablas y gráficas de documentos financieros
unstructured_to_sql_on_the_flyConvierte datos financieros no estructurados en SQL + carga en PostgreSQL
adaptive_ragRAG con Adaptive RAG para reducir el coste en tokens hasta 4× manteniendo precisión
private_ragRAG totalmente privado/local con Mistral y Ollama
slides_ai_searchIndexado multimodal de diapositivas (PowerPoint y PDF) con índice en vivo
video_rag_twelvelabsRAG sobre video con TwelveLabs
document_store_mcp_serverExpone el indexado en vivo como servidor MCP (tres herramientas, filtrado por JMESPath)
drive_alertRAG sobre Google Drive con alertas en tiempo real (Slack) cuando las respuestas cambian

Un pipeline de datos de IA de cinco etapas renderizado como un sistema transportador cyberpunk brillante: ingesta de datos en vivo desde múltiples fuentes, parseo y troceado de documentos con fragmentos de página abstractos dividiéndose en bloques estructurados, generación de embeddings representada como densos clústeres de puntos vectoriales brillantes, indexado mostrado como una red combinada semántica y de palabras clave, y servicio mostrado como un flujo de respuesta de API hacia una interfaz de chat, cada etapa un módulo neón distinto conectado por flujos de datos, fondo oscuro, acentos cian eléctrico, ámbar y violeta, estética industrial-tech ultra detallada, profundidad cinematográfica, 8K

El ecosistema

Repositorio hermano principal (el motor). pathwaycom/llm-app es el catálogo de plantillas de pathwaycom/pathway, el marco base que contiene la librería y el motor en Rust: «Python ETL framework for stream processing, real-time analytics, LLM pipelines, and RAG»; 62.344 estrellas, 1.686 bifurcaciones, creado el 27 de noviembre de 2022, licencia personalizada (marcada NOASSERTION por la API), última versión publicada v0.32.1 (1 de agosto de 2026), distribuido en PyPI como paquete pathway.

Un contenedor Docker futurista actuando como servicio de aplicación de IA autocontenido, una cápsula brillante y elegante con paredes translúcidas revelando un motor interno estilo Pathway, índice vectorial, índice híbrido, caché y capa de servicio LLM, en el exterior varios endpoints de API HTTP aparecen como puertos o puertas iluminadas enviando y recibiendo flujos neón de petición-respuesta, la cápsula descansa en un rack de servidor oscuro con iluminación cyberpunk sutil, negro, grafito, azul eléctrico, cian y magenta, renderizado 3D ultra detallado, brillo suave, superficies reflectantes, 8K

Otros repositorios de la organización pathwaycom (estrellas según la API de GitHub, de mayor a menor): pathwaycom/arc-task-gen — 10.565 estrellas — «Generates original ARC-AGI-1-style tasks»; pathwaycom/bdh — 3.544 estrellas — «BDH (Dragon Hatchling) – Architecture and Code»; pathwaycom/pathway-benchmarks — 302 estrellas; pathwaycom/cookiecutter-pathway — 277 estrellas; pathwaycom/serviette — 4 estrellas — «Universal RAG tool».

Un catálogo holográfico de diez plantillas de aplicaciones de IA dispuestas en un panel cyberpunk oscuro, diez tarjetas brillantes en cuadrícula, cada una con un icono abstracto distinto —burbuja de chat, red vectorial, documento con gráficas, flujo de conversión a SQL, bucle adaptativo de ahorro de coste, nodo local seguro, diapositiva de presentación, línea de tiempo de video, servidor de protocolo, pulso de advertencia— flotando sobre una superficie reflectante oscura con bordes neón, fondo oscuro, acentos cian y violeta, 8K

Bibliotecas externas que la arquitectura incorpora: usearch (unum-cloud/usearch) para el índice KNN por defecto, Tantivy (quickwit-oss/tantivy) para el índice híbrido, y Docling (docling.ai) para el parseo de documentos. Integraciones documentadas: LangChain y LlamaIndex (la plantilla document_indexing puede servir de backend de recuperación para ambas), TwelveLabs (RAG de video), el Model Context Protocol (MCP), Slack (alertas en drive_alert), y proveedores de LLM OpenAI, Mistral y Ollama.

Un diagrama de ecosistema de una familia de frameworks de IA de una organización de software, renderizado como una constelación tecnológica cósmica oscura, un núcleo central potente basado en Rust brillando con energía azul profundo y cian representando el marco principal, satélites orbitantes de repositorios y herramientas más pequeños —un catálogo de plantillas, una suite de benchmarks, una herramienta de scaffolding, una utilidad RAG universal, un proyecto experimental de generación de tareas— líneas luminosas finas conectando los nodos, un flujo prominente desde infraestructura de empaquetado tipo PyPI hacia el motor central, campo de estrellas, constelaciones tipo circuito, luz volumétrica, estilo cyberpunk oscuro ultra detallado, 8K

Estado oficial / semioficial

llm-app es un producto de primera parte de Pathway: el README termina con la sección «Supported and maintained by» que acredita explícitamente a Pathway, y el repositorio es el canal oficial de plantillas (pathway.com/developers/templates/). No existe una «aceptación en un marketplace» de terceros; su estatus es el de repositorio oficial de referencia de la empresa para construir apps RAG sobre su propio marco.

En la práctica: es el conjunto de implementaciones de referencia que Pathway mantiene y respalda (los bugs se abren en el tracker del marco base, no en llm-app); el marco subyacente se distribuye como paquete oficial pathway en PyPI; el conector de SharePoint está gated tras una license key Scale o Enterprise (Pathway ofrece una clave Scale gratuita); y el marco base aparece en Trendshift como repositorio en tendencia.

Una escena de vault de datos cyberpunk segura para un sistema RAG local, privado y aislado, en el centro un nodo de servidor compacto contiene motores de modelo local, un índice vectorial, un índice híbrido y una caché, todo autocontenido, documentos entrando desde una carpeta local o espejo de nube local, siendo parseados y embebidos dentro del vault, respuestas devueltas a una interfaz local sin cruzar un límite de nube externa, barreras hexagonales tipo escudo y campos de exclusión rojos tenues «sin nube externa», superficies de grafito oscuro, acentos neón verde y cian, iconos de candado sutiles, piso reflectante, iluminación volumétrica, renderizado tech ultra detallado, 8K

Guía rápida de uso

Instalación y primer arranque

# 1. Clonar el repositorio
git clone https://github.com/pathwaycom/llm-app.git

# 2. Entrar a la plantilla
cd templates/question_answering_rag

# 3. Instalar dependencias (solo para ejecución local, no Windows)
pip install -r requirements.txt

# 4. Configurar la clave de OpenAI en .env  ->  OPENAI_API_KEY=sk-...

# 5. Ejecutar
python app.py

O bien con Docker (única vía documentada para Windows):

docker compose build
docker compose up

En el primer arranque verás en los logs el parseo y la incrustación de los documentos de ejemplo. Cuando aparezca 0 entries (x minibatch(es)) have been... y dejen de llegar actualizaciones, la app está lista:

curl -X POST http://localhost:8000/v1/statistics \
  -H 'accept: */*' -H 'Content-Type: application/json'

Flujos de trabajo habituales

  • Listar documentos indexados: POST /v2/list_documents → metadatos de todos los archivos procesados.
  • Buscar por similitud: POST /v1/retrieve -d '{"query": "tu pregunta", "k": 6}' → chunks más parecidos (admite metadata_filter por JMESPath y filepath_globpattern).
  • Preguntar con RAG: POST /v2/answer y POST /v2/summarize.
  • Cambiar el modelo: en app.yaml, editar el campo model del bloque $llm (por defecto gpt-4.1-mini; ejemplos con gpt-5, gpt-4.1, gpt-4o, o LiteLLMChat apuntando a Ollama local).

Configuración esencial

  • app.yaml: define orígenes de datos, LLM, incrustador e índice; el único archivo que difiere entre plantillas.
  • .env: OPENAI_API_KEY obligatorio (y para drive_alert, slack_alert_channel_id y slack_alert_token).
  • $sources en app.yaml: local, Google Drive (refresh_interval por defecto 30 s), o SharePoint (requiere clave de licencia).
  • host / port: por defecto 0.0.0.0 / 8000.
  • Cache / persistencia: persistence_mode, persistence_backend (p. ej. Backend.filesystem).

Trampas frecuentes y soluciones

  • Windows no soporta ejecución local: el README indica usar Docker.
  • Consultar antes de que termine el indexado inicial: esperar al mensaje 0 entries (x minibatch(es)) have been....
  • SharePoint requiere licencia: sin clave Scale/Enterprise ese conector no funciona.
  • Google Drive exige cuenta de servicio: se necesita object_id y credenciales válidas.
  • Deduplicación de alertas basada en LLM: en el hilo 38304483, el usuario pstorm propuso comparar similitud de embebidos en lugar de gastar llamadas LLM para detectar cambios; janchorowski respondió que el criterio es fácilmente intercambiable y que la vía LLM es más rápida para empezar, pero que con el tiempo se puede entrenar un criterio sobre embebidos.

Una representación futurista de un almacén de documentos en vivo expuesto como servidor MCP con capacidades de alerta en tiempo real, un módulo servidor central conectado a tres puertas de herramientas brillantes —consultas de recuperación, consultas de estadísticas, consultas de entrada— un panel de filtro con forma de estructura de consulta estilo JMESPath, a la derecha un pulso de alerta en tiempo real viajando desde una fuente tipo Google Drive a través del índice hacia un canal de notificación tipo Slack, activado cuando un cambio de documento altera una respuesta, modo oscuro, estética cyberpunk, neón cian, ámbar y magenta, paneles 3D ultra detallados, superficies reflectantes, 8K

Integraciones y migración

  • Backend de recuperación de LlamaIndex / LangChain: la plantilla document_indexing sirve como almacén vectorial / recuperador desde cualquier frontend o app LlamaIndex/LangChain.
  • MCP: document_store_mcp_server expone el indexado en vivo con tres herramientas (retrieve_query, statistics_query, inputs_query).
  • Slack: drive_alert envía notificaciones cuando una respuesta cambia.
  • Deployment en la nube: guías de despliegue en GCP, AWS Fargate, Azure (ACI) y Render.
  • Sustitución de componentes: migrar de un índice vectorial a uno híbrido, o de OpenAI a Ollama/Mistral local, es un cambio en el YAML sin tocar app.py.

Métricas actuales

Medición: 4 de septiembre de 2026, API de GitHub.

MétricaValor
Estrellas58.937
Bifurcaciones1.478
Suscriptores94
Commits253
Incidencias abiertas indicadas por la API8
Lenguaje principalJupyter Notebook (409.401 bytes); secundarios: Python (68.370), Dockerfile (3.888)
LicenciaMIT
Creación19 de julio de 2023
Último empuje5 de julio de 2026
Última publicaciónNinguna: no usa releases ni tags versionados

Los principales contribuidores fueron berkecanrizai (48), szymondudycz (45), pw-ppodhajski (33), dxtrous (19), olruas (14), Boburmirzo (9), janchorowski (9) y embe-pw (9). El conteo de 253 commits se obtuvo de la cabecera de paginación del endpoint de commits. open_issues_count puede incluir solicitudes de cambios abiertas. watchers_count replica las estrellas, por lo que se informa por separado subscribers_count como suscriptores reales.

Recepción de la comunidad

La evidencia recuperada procede de varios hilos de Hacker News, todos con audiencia pequeña-moderada, más un hilo del marco base que sí alcanzó una cifra notable:

Reconocimiento:

  • En el hilo del marco base 40669434 (73 pts, 19 comentarios), articsputnik escribió que es «impresionante ver una herramienta de Python para tareas de ETL y RAG con features tan sólidas» y que centrarse en seguridad y rendimiento, «especialmente con pipelines de RAG self-hosted, es fantástico».
  • pipboyguy, en el mismo hilo, aportó un caso de uso real: «I’ve built DE and AI solutions based on Pathway for multiple clients. It’s robust and fast.»
  • devnull777: «Los ejemplos de tu sitio se ven fáciles de reproducir. Por cierto, ¡qué web tan bonita y clara!».
  • En 36894142 (11 pts, 8 comentarios), Arimbr se mostró interesado y anupsurendran cerró el intercambio diciendo que «entiende mucho mejor» la distinción índice/base de datos tras la respuesta del equipo.

Crítica y escepticismo concreto:

  • En 40669434, snowpid reaccionó con escepticismo a la etiqueta «NATO»: «Good old “Enterprise” NATO! Always good for a surprise», y suziemanul respondió bromeando que «algunos dicen que no es Fortune 100 sino Fortune 1». El equipo no desmintió la afirmación del titular.
  • threecheese, en el mismo hilo, preguntó por la RAM del plan «Community» (8 GB) y señaló que el motor Rust está «shipped as compiled executable, con comprobación de licencia»; dxtrous (Pathway) respondió que el factor principal del consumo de RAM es el tamaño de los datos alimentados.
  • En 42318221 (8 pts, 2 comentarios), Arimbr pidió «ver en un solo lugar todos los campos y valores soportados»; janchorowski respondió que lo harían.
  • En 38304483 (8 pts, 5 comentarios), pstorm cuestionó el enfoque de deduplicación, y bobur_umurzokov amplió el alcance proponiéndolo para detección de fraude, soporte al cliente, diagnóstico médico y mantenimiento predictivo.

El balance: entusiasmo técnico y casos de uso reales, con audiencia mayoritariamente modesta en las plantillas, pero un hilo del marco base con 73 puntos y 19 comentarios que introduce escepticismo razonado sobre el titular corporativo y el modelo de hosting/licencia.

Comparación con proyectos similares

ProyectoCoincidencia verificableDiferencia verificable
Stack RAG clásico: Pinecone / Weaviate / Qdrant / pgvector + Redis + FastAPITodos resuelven «RAG sobre documentos corporativos» con base vectorial + caché + API.El README declara que no requiere montar esos componentes por separado: índice vectorial, índice híbrido y caché van integrados en la librería.
LlamaIndex / LangChainAmbos son frameworks de recuperación de documentos para LLM.llm-app los trata como clientes de su índice, y aporta la sincronización en tiempo real de las fuentes.
pathwaycom/pathway (repositorio hermano)Mismo marco subyacente; llm-app solo contiene plantillas sobre él.pathway es la librería/motor (Python + Rust, PyPI); llm-app es el catálogo «listo para desplegar» de apps.
TwelveLabs (RAG de video)Ofrece RAG sobre video.llm-app consume a TwelveLabs dentro de su plantilla video_rag_twelvelabs; no compite, lo integra.

La comparación más útil: llm-app destaca cuando el requisito es RAG que se mantiene sincronizado en tiempo real con fuentes corporativas, sin montar infraestructura vectorial/caché/API por separado.

Cómo contribuir

  • Acepta contribuciones de documentación, funcionalidades, correcciones, limpieza de código, pruebas y revisiones.
  • La vía recomendada para contribuciones que requieren más trabajo es señalarlo en el servidor de Discord de Pathway (canal #get-help) antes de empezar.
  • Los bugs y feedback se abren en el tracker del marco base (pathwaycom/pathway/issues), no en llm-app.
  • Al ser plantillas con un único app.yaml por plantilla, la forma práctica de contribuir una variación es partir de una plantilla existente y ajustar su YAML.

No se encontró un CONTRIBUTING.md ni una plantilla de PR específica en el repositorio.

Casos de uso y a quién puede ayudar este repositorio

  • Equipos que montan RAG sobre documentos corporativos vivos (SharePoint, Google Drive, S3, Kafka, PostgreSQL, APIs): question_answering_rag + el conector correspondiente da un índice que se actualiza solo. document_indexing reutiliza ese índice como backend de una app LlamaIndex/LangChain existente.
  • Departamentos financieros / analistas: multimodal_rag extrae tablas y gráficas de documentos financieros; unstructured_to_sql_on_the_fly estructura informes PDF en PostgreSQL.
  • Equipos con restricciones de privacidad / residencia de datos: private_rag (Mistral + Ollama) permite un pipeline totalmente local.
  • Quienes buscan reducir coste en tokens: adaptive_rag declara una reducción hasta 4× manteniendo precisión.
  • Integradores de agentes LLM / MCP: document_store_mcp_server expone el indexado en vivo como servidor MCP.
  • Equipos que monitorizan cambios en la base de conocimiento: drive_alert envía alertas a Slack tras una modificación de documento.
  • Contenutistas / búsqueda sobre presentaciones y video: slides_ai_search y video_rag_twelvelabs.

Recursos


Nota: este artículo combina el README de pathwaycom/llm-app, los README de las plantillas, la API de GitHub, los hilos de Hacker News y PyPI, consultados el 4 de septiembre de 2026. Las cifras de estrellas y versiones cambian con el tiempo.

Comentarios