Llm-mem?
Un modelo de idioma mejorado con almacenamiento de memoria semántica
Una implementación basada en Python que aumenta los modelos de lenguaje con memoria semántica persistente utilizando integridades vectoriales y búsqueda de similitud.
? Características
- Formulario semántico de conversaciones utilizando NLTK
- Generación de insertos de vectores utilizando transformadores de oraciones
- Recuperación de contexto basada en la similitud de coseno
- Almacenamiento de memoria persistente utilizando la base de datos Vector
- Inyección de contexto automático para respuestas más coherentes
- Chounking de texto inteligente con preservación de bloque de código
Pila técnica
-
sentence-transformers : para generar integridades semánticas -
nltk : Kit de herramientas de procesamiento de lenguaje natural para la manipulación de texto - Integración de LLM personalizada
- Vector-tienda para almacenar y recuperar incrustaciones
- Puntos finales de API REST para operaciones vectoriales
? Requisitos previos
- transformadores de oraciones
- nltk
- solicitudes
- Google-Generativeai
Comienzo rápido
- Clon el repositorio:
git clone https://github.com/Abhigyan126/LLM-MEM.git
cd LLM-MEM
- Instalar dependencias:
pip install sentence-transformers nltk requests google-generativeai
- Crear archivo .env
- Ejecute el guión principal:
Cómo funciona
- Procesamiento de texto : los mensajes entrantes se procesan y limpian
- Generación de incrustación : convierte el texto en embedidas vectoriales
- Búsqueda semántica : encuentra contextos anteriores relevantes que utilizan la similitud de coseno
- Integración del contexto : fusiona el historial relevante con la consulta actual
- Generación de respuesta : genera respuesta usando LLM con contexto mejorado
- Almacenamiento de memoria : almacena nuevas interacciones para referencia futura
? Configuración
El sistema utiliza varios parámetros configurables:
- Longitud máxima del fragmento: 2000 caracteres
- Tamaño mínimo de la fragmentación: 100 caracteres
- Umbral de similitud: 0.5
- Vecinos más cercanos predeterminados: 10