Asistente de trapo de cartera de carrera
Un sistema de generación acuático (RAG) de recuperación que permite la consulta del lenguaje natural de los datos de cartera de carrera almacenados en las bases de datos de nociones. El sistema utiliza los servicios de incrustación/LLM de Llamaindex y OpenAI para proporcionar respuestas inteligentes sobre experiencia laboral, proyectos y habilidades.
Descripción general
Este sistema consta de dos componentes principales:
ETL Tipeline : extrae datos de las bases de datos de nociones, los procesa en insertos y los almacena en una base de datos vectorial
Interfaz de consulta : una aplicación web optimista que permite la interacción del lenguaje natural con los datos de la cartera
Características clave
- Consulta de lenguaje natural inteligente de los datos de la cartera
- Arquitectura de doble índice (texto y palabras clave) para una recuperación mejorada
- Transmisión de respuesta en tiempo real
- Panel de depuración para la transparencia en el proceso RAG
- Consultas de muestra para demostrar capacidades
- Variables a través de variables de entorno
Estructura de proyectos
Archivos principales
notion_data_etl.ipynb : cuaderno de Jupyter para extraer y procesar datos de nociones
- Maneja la autenticación y las conexiones de la base de datos
- Procesa documentos en nodos de texto y palabras clave
- Crea índices vectoriales para una recuperación eficiente
streamlit_app_rag.py : interfaz principal de la aplicación web
- Implementa la interfaz de usuario del asistente de trapo
- Administra la historia del chat y la producción de depuración
- Maneja la transmisión de respuesta en tiempo real
prompts.py : contiene indicaciones del sistema para:
- Configuración de contexto para el LLM
- Extracción de palabras clave
Componentes clave
Clase de Nocressor Prop.
Una clase integral de procesamiento de datos que:
- Extrae datos de las bases de datos de nociones
- Maneja las estructuras de contenido anidado
- Procesa texto y metadatos
- Admite múltiples modos de extracción (encabezado, entero, granular)
Clase de ragapp
La clase de aplicación principal que:
- Administra la interfaz de transmisión
- Maneja las interacciones de chat
- Proporciona capacidades de depuración
- Mantiene el estado de la sesión
Requisitos de configuración
Variables de entorno
NOTION_TOKEN=your_notion_api_token
NOTION_PROJECTS_DATABASE_ID=notion_database_id_for_projects
NOTION_EXPERIENCE_DATABASE_ID=notion_database_id_for_experiences
QDRANT_URL=your_qdrant_url
QDRANT_API_KEY=your_qdrant_api_key
OPENAI_API_KEY=your_openai_api_key
Dependencias
- Python 3.10+
- Llamado
- Opadai
- Racionalizar
- Qdrant
- Canter de API de noción
Uso
- Configurar las variables de entorno
- Ejecute el cuaderno ETL para procesar datos de noción
- Ejecute la aplicación Streamlit para interactuar con los datos
streamlit run streamlit_app_rag.py
Arquitectura
El sistema utiliza una arquitectura de doble índice:
- Índice de texto : almacena contenido completo para recuperación detallada
- Índice de palabras clave : las tiendas extraían palabras clave para una coincidencia semántica mejorada
Las consultas se procesan a través de ambos índices para proporcionar respuestas integrales y precisas.
Características de depuración
El sistema incluye un panel de depuración integral que muestra:
- Pasos de procesamiento de consultas
- Detalles del proceso de recuperación
- Generación de respuesta
- Cualquier error o advertencia