Introducción Recuperación aumentada por generación RAG es una técnica que aporta una base de conocimiento a tu modelo LLM para incluir información contextual y específica en las preguntas y respuestas. En este artículo explicamos cómo configurar un endpoint que ofrezca respuestas actualizadas sobre la documentación de Genkit usando RAG con Firebase y Genkit.
Requisitos previos Cuenta con un proyecto de Firebase con facturación habilitada para poder usar Firestore y Cloud Functions sin limitaciones. Instala Genkit, que es una biblioteca open source que abstrae gran parte del trabajo repetitivo al construir aplicaciones impulsadas por IA y añade observabilidad y herramientas para desarrolladores. Necesitas un entorno de desarrollo Node.js local y la CLI de gcloud para ciertas operaciones administrativas.
Obtención de los datos y fragmentación Genkit organiza contenido en Flows. La documentación de Genkit se publica en formato llms.txt, es decir la documentación completa está segmentada en documentos Markdown. Para el ejemplo nos centraremos en la parte de JavaScript usando la URL especializada para llms-js.txt. Como el contenido está en texto Markdown no necesitamos APIs complejas, el LLM lo entiende bien. Para aportar contexto específico dividimos el documento grande en fragmentos o chunks. Usamos una estrategia sencilla: separar por oraciones con longitud mínima de 1000 caracteres y máxima de 2000, y solapamiento de 100 caracteres para mantener coherencia entre fragmentos.
Configuración de chunking y parámetros típicos minLength 1000 maxLength 2000 splitter sentence overlap 100 collection genkitDocs contentField text vectorField embedding embedder gemini-embedding-001 outputDimensionality 2048
Embeddings Los modelos no interpretan el texto como nosotros, por eso convertimos el contenido en vectores que facilitan la búsqueda de fragmentos relevantes. Con Genkit es sencillo usar el modelo gemini-embedding-001 para transformar los chunks en embeddings. Es importante usar outputDimensionality 2048 cuando Firestore actúa como base de datos vectorial.
Indexado en Firestore El flujo de indexado consiste en descargar el archivo llms, fragmentarlo, eliminar documentos anteriores para evitar duplicados, crear documentos a partir de los chunks y guardar en Firestore tanto el texto original como el vector. Guardar el texto permite mostrar la fuente al usuario o enlazar a la sección precisa junto a la respuesta generada.
Comando para crear el índice en Firestore gcloud firestore indexes composite create --project YOUR_PROJECT_ID --collection-group genkitDocs --query-scope COLLECTION --field-config vector-config=dimension:2048,flat:{} --field-path embedding Asegúrate de adaptar el identificador de proyecto y los nombres de campo si usas una configuración distinta.
Retriever y recuperación de datos En RAG creamos Retrievers para obtener documentos relevantes por similitud. Genkit incluye un retriever ya preparado para Firestore. Configura el retriever con la colección genkitDocs, los campos content y embedding, el embedder gemini-embedding-001 y usa medida COSINE para la búsqueda de similitud.
Flujo de preguntas y respuestas El flujo genkitQA recibe la consulta, utiliza el retriever para obtener los k documentos más relevantes por ejemplo k 3 y envía los fragmentos recuperados al LLM gemini-2.5-flash para generar la respuesta. Es buena práctica indicarle al modelo que use solo el contexto proporcionado para evitar alucinaciones.
Prueba y puesta en marcha Puedes ejecutar la UI de desarrollo de Genkit con genkit start -- tsx --watch src/genkit-sample.ts y abrir la interfaz en https://localhost:4000. Desde ahí lanza el flujo de indexado indexGenkit para descargar, fragmentar e indexar la documentación. Tras indexar pasa al flujo genkitQA y prueba preguntas sobre la documentación, observando en la interfaz cómo entran los retrievers, embeddings y la llamada final al API de Gemini.
Buenas prácticas y escalado Para conjuntos de datos grandes considera paralelizar la creación de embeddings, usar batch processing y optimizar la escritura en Firestore. Mantén control de versiones de los documentos indexados y diseña políticas de reindexado que eviten sobrecarga innecesaria.
Sobre Q2BSTUDIO En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y servicios cloud. Podemos ayudarte a integrar RAG en proyectos reales, a diseñar arquitecturas de IA para empresas y a desplegar soluciones seguras y escalables. Si necesitas desarrollar soluciones personalizadas ofrecemos software a medida y aplicaciones a medida y además proporcionamos soluciones de inteligencia artificial adaptadas a procesos de negocio.
Palabras clave y servicios incluidos En nuestros proyectos combinamos experiencia en inteligencia artificial, ia para empresas, agentes IA, servicios cloud aws y azure, ciberseguridad y pentesting, inteligencia de negocio y power bi para ofrecer soluciones completas. Si buscas automatizar procesos, mejorar la seguridad o sacar partido a tus datos disponemos de equipos especializados en implementación y operación.
Conclusión RAG con Genkit y Firebase es una solución práctica para convertir documentación larga en una base de conocimiento utilizable por LLMs. Con un pipeline que descarga, fragmenta, embebe e indexa en Firestore se pueden construir asistentes capaces de responder con contexto preciso. Contacta con Q2BSTUDIO si quieres llevar este tipo de proyecto a producción con garantías de seguridad, rendimiento y adaptación a tus necesidades de negocio.


.jpg)
