LLM-MEM ?
An Enhanced Language Model with Semantic Memory Storage
A Python-based implementation that augments Language Models with persistent semantic memory using vector embeddings and similarity search.
? Features
- Semantic chunking of conversations using NLTK
- Vector embeddings generation using Sentence Transformers
- Cosine similarity-based context retrieval
- Persistent memory storage using vector database
- Automatic context injection for more coherent responses
- Smart text chunking with code block preservation
Technical Stack
sentence-transformers: For generating semantic embeddings
nltk: Natural Language Processing toolkit for text manipulation
- Custom LLM integration
- Vector-store for storing and retrieving embeddings
- REST API endpoints for vector operations
? Prerequisites
- sentence-transformers
- nltk
- requests
- google-generativeai
Quick Start
- Clone the repository:
git clone https://github.com/Abhigyan126/LLM-MEM.git
cd LLM-MEM
- Install dependencies:
pip install sentence-transformers nltk requests google-generativeai
- create .env file
- Run the main script:
How It Works
- Text Processing: Incoming messages are processed and cleaned
- Embedding Generation: Converts text into vector embeddings
- Semantic Search: Finds relevant previous contexts using cosine similarity
- Context Integration: Merges relevant history with current query
- Response Generation: Generates response using LLM with enhanced context
- Memory Storage: Stores new interactions for future reference
? Configuration
The system uses several configurable parameters:
- Maximum chunk length: 2000 characters
- Minimum chunk size: 100 characters
- Similarity threshold: 0.5
- Default nearest neighbors: 10