Implementando Retrieval Augmented Generation (RAG) con Langchain y Flowise AI

Augusto Romero
4 min readOct 13, 2023

--

La recuperación aumentada con generación (RAG) es una técnica poderosa en IA conversacional que combina la recuperación de documentos relevantes con la generación de texto de alta calidad. En este post, exploraremos cómo implementar un sistema RAG simple usando Langchain y Flowise.

Aprovechando Flowise AI

Flowise presenta una interfaz amigable para el usuario a todos los conceptos ofrecidos por Langchain, facilitando la creación de aplicaciones de IA. Aprovechando nuestros propios datos, Flowise ofrece la posibilidad de subir archivos, desde documentos PDF, páginas web, Notion y muchas otras fuentes de datos a la aplicación. Esta característica allana el camino para conversar directamente con nuestros datos.

Te dejo el enlace al repositorio con las instrucciones para instalar flowise: https://github.com/FlowiseAI/Flowise

Sin embargo, antes de sumergirnos en la construcción del chatbot de documentos, es esencial comprender algunos conceptos fundamentales.

Configurando los componentes

Para implementar RAG, necesitaremos principalmente:

  • Un Document Loader y Text Splitters:para cargar nuestro archivo en en fragmentos fácilmente manejables.
  • Embeddings API: Se encargará de “traducir” nuestro documento al formato que será almacenado en la base de datos.
  • Un modelo de lenguaje (como ChatGPT 3.5 turbo).
  • Una base de datos vectorial: Sin adentrarnos demasiado, las bases de datos vectoriales almacenan datos como arrays vectoriales. Estos arrays son fácilmente interpretables por la IA, ayudando a encontrar documentos similares durante una interacción de chat. En nuestro ejemplo usaremos Pinecone.
  • Una cadena Conversational Retriever: que se encargará de realizar la recuperación de los bloques relevantes de la base de datos (por defecto 4) y usar el modelo de lenguaje para generar una respuesta.

Creando el flujo conversacional en Flowise

A fin de aplicar los conceptos vistos anteriormente usaremos Flowise para crear nuestro flujo conversacional RAG.

Pasos:

  1. Dirígete al tablero de Flowise e inicia un nuevo flujo de chat.
  2. Carga el archivo deseado, asegurándote de que contenga información con la que el modelo de IA no haya sido entrenado.
  3. Establece una cadena para la recuperación conversacional.
  4. Configura la cadena configurando el modelo de lenguaje (en este caso OpenAI) y conectándote a una base de datos de vectores.
  5. Carga documentos en el almacén de vectores, utilizando opcionalmente un divisor de texto para descomponer el contenido.
  6. Implementa la función de embeddings adecuada para convertir el texto en arrays vectoriales.
Chatflow en Flowise para RAG

Ahora veamos como configurar las credenciales de Pinecone y OpenAI en Flowise.

Configurando Pinecone

Usaremos Pinecone para almacenar nuestros documentos fuentes indexados. Esto permite una rápida recuperación de fragmentos relevantes.

Pasos:

  1. Registro: Primero, visita pinecone.io y regístrate de forma gratuita.
  2. Creación de un Nuevo Índice: Una vez dentro, crea un nuevo índice. Para este tutorial, nombramos nuestro índice “flowise”. Asegúrate de crear el indice con una dimensión de 1536 (dimensión usada por la api de Embeddings de OpenAI)
Creando nuevo índice en Pinecone para almacenar documento usando los embeddings de OpenAI

3. Integración con Flowise: Regresa a Flowise y conecta tu cuenta de Pinecone.

Configurando Embeddings API

Usaremos la API de Embeddings API para “traducir” el contenido de nuestro archivo a un formato vectorial.

Pasos:

  1. Registro: Primero, visita platform.openai.com y regístrate de forma gratuita.
  2. Creación de una nueva API key: Una vez dentro, crea una nueva API key.

3. Integración con Flowise: Regresa a Flowise y conecta tu cuenta de OpenAI.

Agrega tu credencial de OpenAI en Flowise

Probándolo todo junto

¡Ahora estamos listos para probar nuestro sistema RAG!

Interactuando con el contenido del paper de RAG

Aqui te dejo el enlace al template del chatflow para que puedas probarlo: https://github.com/elementaryWat/todo-app-demo-agent/blob/main/ragdemo%20Chatflow.json

Conclusión

Langchain, Flowise y Pinecone en conjunto nos permiten implementar sistemas RAG poderosos de forma rápida y sencilla. ¡Las posibilidades son infinitas! Espero que este post te haya dado una idea de cómo comenzar. ¡Nos vemos en el próximo tutorial!

PS: Estoy preparando un curso práctico donde te enseño a construir un aplicaciones que aprovechen los grandes modelos de lenguaje como un chatbot para practicar entrevistas de trabajo. Si deseas recibir novedades sobre el curso, ingresa tus datos en este formulario para estar al tanto del lanzamiento: https://forms.gle/tBWeQyqr7RrV9nbT8

--

--

Augusto Romero

I'm a software developer deeply fascinated by AI. When I'm not coding, you'll find me staying fit or diving into the latest tech and business trends.