Ir al contenido principal
Versión: 2.0.0

DynamicRAG

DynamicRAG es una aplicación web basada en React que implementa un sistema dinámico de Retrieval-Augmented Generation (RAG). Permite a los usuarios introducir texto, procesarlo en incrustaciones y realizar tareas de respuesta a preguntas mediante una combinación de búsqueda vectorial y Large Language Models.

información

El código fuente completo y las instrucciones detalladas para configurar y ejecutar este ejemplo se pueden encontrar en el repositorio Gaia Cookbook.

Capturas de pantalla

Texto de entrada basado en RAG dinámico

screencapture-localhost-3000-2024-12-24-00_55_11

Repo de Github a RAG dinámico

imagen

Características

  • Tratamiento de textos y fragmentación en tiempo real
  • Creación de bases de datos vectoriales dinámicas con Qdrant
  • Tratamiento por lotes de grandes volúmenes de texto
  • Integración con un nodo Gaia local
  • Análisis de repositorios de GitHub con GitIngest
  • Seguimiento del progreso y gestión de errores
  • Interfaz de usuario limpia y con capacidad de respuesta mediante CSS de Tailwind y componentes shadcn/ui.

Requisitos previos

  • Node.js (v16 o superior)
  • Python (para la instalación de GitIngest)
  • Una instancia Qdrant en ejecución (local o remota)
  • Un servidor LLM local a través de Gaia ejecutándose en el puerto 8080 (Tutorial: https://docs.gaianet.ai/node-guide/quick-start)
  • En nomic-embed modelo de incrustación (autodescargado en gaianet cuando se instala Gaia CLI)
  • En llama 3.2 modelo lingüístico (autodescargado en gaianet cuando se instala Gaia CLI. Puede sustituir el modelo en función de su caso de uso)

Configurar

  1. Clonar el repositorio:
git clone https://github.com/harishkotra/dynamic-rag-gaia
cd dynamic-rag
  1. Instalar dependencias:
npm instalar
  1. Instale GitIngest:
pip install gitingest
  1. Asegúrese de que su servidor Qdrant está funcionando y accesible en http://localhost:6333
  2. Asegúrese de que su nodo Gaia está funcionando y es accesible en http://localhost:8080 (Tutorial: https://docs.gaianet.ai/node-guide/quick-start)
  3. Inicie el servidor de desarrollo:
npm run dev

Utilización

  1. Seleccione el modo de entrada:
    • Introducción de texto: Pegue el texto de su base de conocimientos en el área de texto de entrada
    • Repositorio GitHub: Introduzca la URL de un repositorio GitHub para analizar su contenido
  2. Formule preguntas: Introduzca su consulta en el campo de preguntas.
  3. Procesar: Haga clic en "Enviar" para procesar su consulta. El sistema lo hará:
    • Para introducir texto: Divide el texto de entrada en trozos manejables.
    • Para los repositorios de GitHub: Obtención y procesamiento del contenido del repositorio mediante GitIngest
    • Crear incrustaciones para cada trozo
    • Almacenar incrustaciones en una colección Qdrant temporal
    • Encontrar el contexto pertinente mediante la búsqueda de similitud vectorial
    • Generar una respuesta utilizando el Nodo Gaia local
  4. Ver resultados: El sistema mostrará la respuesta generada en función del contexto relevante encontrado.

Detalles técnicos

Tratamiento de textos

  • Tamaño máximo del trozo: 2000 caracteres
  • Tamaño del procesamiento por lotes: 3 trozos cada vez
  • Los fragmentos se crean a partir de los límites naturales del texto (párrafos y frases).

Base de datos vectorial

  • Utiliza Qdrant para el almacenamiento de vectores y la búsqueda de similitudes
  • Crea colecciones temporales para cada sesión de consulta
  • Limpia automáticamente las colecciones tras su uso
  • Utiliza vectores de 768 dimensiones para las incrustaciones

Integración API

  • Compatible con puntos finales de API de tipo OpenAI
  • Admite tanto incrustaciones como puntos finales de finalización de chat
  • Utiliza el nomic-embed modelo para incrustaciones
  • Utiliza el llama modelo de generación de textos
  • Integración con GitIngest para el análisis de repositorios
  • Rutas API de NextJS para la integración de herramientas de línea de comandos

Componentes

  • DynamicRAG.js: Componente principal de aplicación del sistema GAR
  • app/api/gitingest/route.js: Ruta API para el procesamiento de repositorios GitHub
  • Tratamiento y validación de entradas
  • Seguimiento del progreso y visualización de errores
  • Gestión de bases de datos vectoriales
  • Integración LLM

Tratamiento de errores

El sistema incluye un completo tratamiento de errores para:

  • Fallos en el tratamiento de textos
  • Errores de obtención y análisis del repositorio GitHub
  • Errores de creación de incrustaciones
  • Operaciones con bases de datos vectoriales
  • Fallos en la consulta LLM
  • Problemas de red

Dependencias

  • Reaccione
  • Tailwind CSS
  • componentes shadcn/ui
  • Lodash para funciones de utilidad
  • Varios componentes de interfaz de usuario (@/components/ui/*)
información

El código fuente completo y las instrucciones detalladas para configurar y ejecutar este ejemplo se pueden encontrar en el repositorio Gaia Cookbook.