API de RAG (Chat con archivos)
API de Generación Aumentada por Recuperación (RAG) para la indexación y recuperación de documentos utilizando Langchain y FastAPI. Esta API se integra con LibreChat para proporcionar respuestas basadas en el contexto a partir de archivos subidos por el usuario.
La API de RAG (Retrieval-Augmented Generation) es una herramienta potente que se integra con LibreChat para proporcionar respuestas conscientes del contexto basadas en archivos subidos por el usuario.
Aprovecha LangChain, PostgresQL + PGVector y Python FastAPI para indexar y recuperar documentos relevantes, mejorando la experiencia conversacional.
Para más detalles, consulte la guía de configuración proporcionada aquí: RAG API Configuration
Actualmente, esta función está disponible a través de Agents, así como a través de Custom Endpoints, OpenAI, Azure OpenAI, Anthropic y Google.
Los Assistants de OpenAI tienen su propia implementación de RAG a través de la capacidad "Retrieval". Obtén más información al respecto aquí.
Aún será útil implementar el uso de la API de RAG con la Assistants API, ya que OpenAI cobra tanto por el almacenamiento de archivos como por el uso de "Retrieval", y esto se introducirá en una futura actualización.
¿Todavía confundido sobre RAG? Lee la sección que escribí abajo explicando el concepto general con más detalle junto con un enlace a un video útil.
¿Qué es RAG?
RAG, o Generación Aumentada por Recuperación (Retrieval-Augmented Generation), es un marco de trabajo de IA diseñado para mejorar la calidad y la precisión de las respuestas generadas por modelos de lenguaje de gran tamaño (LLMs). Esto se logra fundamentando el LLM en fuentes externas de conocimiento, complementando la representación interna de información del modelo.
Características
- Indexación de documentos: La API de RAG indexa los archivos subidos por el usuario, creando embeddings para una recuperación eficiente.
- Búsqueda semántica: Realiza una búsqueda semántica sobre los documentos indexados para encontrar la información más relevante basada en la entrada del usuario.
- Respuestas conscientes del contexto: Al aumentar el prompt del usuario con información recuperada, la API permite a LibreChat generar respuestas más precisas y contextualmente relevantes.
- Procesamiento asíncrono: La API admite operaciones asíncronas para mejorar el rendimiento y la escalabilidad.
- Configuración flexible: Permite la personalización de varios parámetros como el tamaño de fragmento (chunk size), el solapamiento (overlap) y los modelos de embedding.
Beneficios clave de RAG
- Acceso a hechos actualizados y fiables: RAG garantiza que el LLM tenga acceso a la información más actual y fiable mediante la recuperación de hechos relevantes de una base de conocimientos externa.
- Transparencia y confianza: Los usuarios pueden acceder a las fuentes del modelo, lo que les permite verificar la precisión de las respuestas generadas y fomentar la confianza en el sistema.
- Reducción de la fuga de datos y alucinaciones: Al basar el LLM en un conjunto de hechos externos y verificables, RAG reduce las posibilidades de que el modelo filtre datos confidenciales o genere información incorrecta o engañosa.
- Menores costos computacionales y financieros: RAG reduce la necesidad de entrenamiento continuo y actualización de los parámetros del modelo, lo que potencialmente disminuye los costos computacionales y financieros de ejecutar chatbots basados en LLM en un entorno empresarial.
Cómo funciona RAG
RAG consta de dos fases principales: recuperación y generación de contenido.
- Fase de recuperación: Los algoritmos buscan y recuperan fragmentos de información relevantes para el prompt o la pregunta del usuario desde una base de conocimientos externa. En un entorno de dominio abierto para el consumidor, estos hechos pueden provenir de documentos indexados en internet. En un entorno de dominio cerrado para empresas, normalmente se utiliza un conjunto más limitado de fuentes para mayor seguridad y fiabilidad.
- Fase Generativa: El conocimiento externo recuperado se añade al prompt del usuario y se pasa al LLM. El LLM utiliza entonces el prompt aumentado y su representación interna de sus datos de entrenamiento para sintetizar una respuesta personalizada y atractiva para el usuario. La respuesta puede enviarse a un chatbot con enlaces a sus fuentes.
Desafíos e investigación en curso
Aunque RAG es actualmente una de las herramientas más conocidas para fundamentar los LLM en información reciente y verificable, y para reducir los costos de reentrenamiento y actualización constantes, no es perfecta. Algunos desafíos incluyen:
- Reconocimiento de preguntas sin respuesta: Los LLM necesitan ser entrenados explícitamente para reconocer preguntas que no pueden responder basándose en la información disponible. Esto puede requerir un ajuste fino (fine-tuning) con miles de ejemplos de preguntas que se pueden responder y preguntas que no.
- Mejora de la recuperación y generación: La investigación en curso se centra en innovar en ambos extremos del proceso RAG: mejorar la recuperación de la información más relevante posible para alimentar al LLM y optimizar la estructura de esa información para obtener las respuestas más completas del LLM.
En resumen, RAG es un marco de trabajo potente que mejora las capacidades de los LLM al basarlos en conocimiento externo y verificable. Ayuda a garantizar respuestas más precisas, actualizadas y confiables, al tiempo que reduce los costos asociados con el reentrenamiento continuo de los modelos. A medida que la investigación en esta área progresa, podemos esperar más mejoras en la calidad y eficiencia de los sistemas de IA conversacional basados en LLM.
Para una explicación más detallada sobre RAG, puedes ver este video informativo de IBM en Youtube:
Conclusión
La RAG API es una potente incorporación a LibreChat, que permite obtener respuestas basadas en el contexto a partir de archivos cargados por el usuario. Al aprovechar Langchain y FastAPI, proporciona capacidades eficientes de indexación, recuperación y generación de documentos. Con sus opciones de configuración flexibles y su integración perfecta, la RAG API mejora la experiencia conversacional en LibreChat.
Para obtener información más detallada sobre la RAG API, incluyendo los endpoint de la API, los formatos de solicitud/respuesta y la configuración avanzada, por favor consulte la documentación oficial de la RAG API.
¿Qué te parece esta guía?