Nova is a Python-based system for processing, storing, and searching notes and documents using vector embeddings. It provides a robust API for integrating with various tools and services.
-
Vector Store:
- ChromaDB-based storage
- Semantic search capabilities
- Document chunking and embedding
- Metadata management
-
Processing Pipeline:
- Multi-format document support
- Intelligent chunking
- Metadata extraction
- Tag processing
-
MCP Server:
- FastAPI-based implementation
- RESTful API endpoints
- Async operation support
- Structured error handling
-
Monitoring System:
- Health checks
- Performance metrics
- Resource monitoring
- Log management
- Python 3.11+
- ChromaDB
- Sentence Transformers
- FastAPI
- Rich (for logging)
- ChromaDB backend
- Persistent storage in .nova/vectors
- Memory-efficient operation
- Automatic cleanup
- Semantic similarity search
- Tag-based filtering
- Relevance scoring
- Result ranking
- Chunk storage
- Metadata indexing
- Version tracking
- Cache management
- Markdown processor
- PDF processor
- Office formats
- Plain text
- Smart text splitting
- Heading preservation
- Context maintenance
- Metadata extraction
- Automatic tagging
- Tag inheritance
- Tag normalization
- Tag search
- RESTful endpoints
- Async operations
- JSON responses
- Error handling
- /search
- /health
- /monitor
- /process
- Input validation
- Rate limiting
- Error boundaries
- Safe defaults
- Python SDK
- CLI tools
- HTTP clients
- WebSocket support
- JSON structure
- Status codes
- Error messages
- Metadata
- Memory Monitor:
- Usage tracking and trends
- Peak detection
- Warning thresholds
- Disk Monitor:
- Space utilization
- Directory health
- Vector Store Monitor:
- Document statistics
- Chunk distribution
- Performance metrics
- Process Monitor:
- CPU usage
- Response times
- Error rates
- Document metrics
- Processing performance
- Search efficiency
- Resource utilization
- Pytest-based test suite
- Async test support with pytest-asyncio
- FastAPI TestClient integration
- Temporary directory fixtures
- Vector store test fixtures
- Tool Function Tests:
- Input validation
- Error handling
- Response formats
- Edge cases
- Integration Tests:
- Server initialization
- Tool registration
- Vector store operations
- File system operations
- Health Check Tests:
- Component status
- Metric collection
- Log management
- Vector Store:
- Temporary database
- Test collections
- Cleanup handling
- File System:
- Temporary directories
- Test files
- Cleanup management
- Server:
- Test client
- Tool registration
- Response validation
- Core requirements in pyproject.toml
- Development dependencies
- Optional features
- Version constraints
- uv-based installation
- Development setup
- Test environment
- Documentation build