QLens is an intelligent data analysis platform that allows you to have natural conversations with your data. Upload CSV or Excel files and ask questions in plain English to get insights, visualizations, calculations, and data manipulation results.
QLens now supports intelligent, agentic interactions with your data:
- ๐ Smart Query Understanding: Automatically detects your intent (calculations, visualizations, analysis, etc.)
- ๐งฎ Data Calculations: Ask for totals, averages, counts, and more
- ๐ Data Manipulation: Filter, sort, group, and transform your data
- ๐ Intelligent Analysis: Get AI-powered insights and pattern recognition
- ๐จ Dynamic Visualizations: Generate charts based on your data and queries
Enhanced file viewing capabilities:
- ๐ Interactive Data Tables: View your data with pagination and sorting
- ๐ File Information: See detailed metadata about your uploaded files
- ๐ Column Analysis: Understand data types and column categories
- ๐ฑ Responsive Design: Works seamlessly on desktop and mobile
Ask questions in plain English:
- "What's the total cost?"
- "Show me transactions above $1000"
- "Create a bar chart of expenses by category"
- "Analyze spending patterns"
- "Calculate the average balance"
Get rich, contextual responses:
- Text explanations with insights and analysis
- Interactive charts and visualizations
- Data tables with filtered/sorted results
- Calculations with formatted results
- Statistical summaries and trends
- CSV files (.csv)
- Excel files (.xlsx, .xls)
- Large datasets (up to 50MB)
- Automatic data type detection
- Header recognition and processing
- WebSocket support for real-time responses
- Session management for conversation continuity
- Response type indicators (calculation, visualization, analysis, etc.)
- Error handling with helpful feedback
- LangGraph Orchestrator: Intelligent query routing and processing
- Agentic Service: Handles calculations, data manipulation, and analysis
- LLM Integration: Cerebras AI for natural language understanding
- Code Execution: Safe Python code execution for data processing
- Database: SQLAlchemy with PostgreSQL for data persistence
- Modern UI: Clean, responsive interface with Tailwind CSS
- Real-time Updates: WebSocket integration for live responses
- File Upload: Drag-and-drop interface with progress tracking
- Data Preview: Interactive tables with pagination
- Chart Rendering: Dynamic visualization display
- Python 3.8+
- Node.js 16+
- PostgreSQL (optional, SQLite for development)
cd backend
pip install -r requirements.txt
# Set up environment variables
cp env.example .env
# Edit .env with your configuration
# Run database migrations
alembic upgrade head
# Start the server
python -m uvicorn app.main:app --reloadcd frontend
npm install
npm run devdocker-compose up -d- Upload a CSV or Excel file
- Click the table icon to preview your data
- Explore file information and column details
Try these example queries:
Calculations:
- "What's the total cost?"
- "Calculate the average balance"
- "Show me the maximum transaction amount"
- "Count the number of transactions"
Data Manipulation:
- "Show me transactions above $1000"
- "Sort by date descending"
- "Filter by category 'Food'"
- "Show the top 10 largest transactions"
Analysis:
- "Analyze spending patterns"
- "Find trends in the data"
- "What are the most common categories?"
- "Identify outliers in the data"
Visualizations:
- "Create a bar chart of expenses by category"
- "Show me a line chart of spending over time"
- "Generate a pie chart of budget allocation"
- "Create a scatter plot of income vs expenses"
- Calculation results appear with formatted numbers and units
- Data manipulation shows filtered/sorted tables
- Analysis results provide insights and recommendations
- Charts render dynamically with interactive features
# Database
DATABASE_URL=postgresql://user:password@localhost/qlens
# AI Service
CEREBRAS_API_KEY=your_cerebras_api_key
# File Upload
UPLOAD_DIR=./uploads
MAX_FILE_SIZE=52428800
# CORS
CORS_ORIGINS=["http://localhost:3000"]POST /api/v1/chat/message- Send a messageGET /api/v1/chat/sessions- List chat sessionsGET /api/v1/chat/session/{id}/messages- Get session messages
POST /api/v1/upload/file- Upload a fileGET /api/v1/upload/files- List uploaded filesDELETE /api/v1/upload/file/{id}- Delete a file
POST /api/v1/csv-preview/preview- Get paginated data previewGET /api/v1/csv-preview/file/{id}/info- Get file informationGET /api/v1/csv-preview/file/{id}/columns- Get column details
Run the comprehensive test suite:
# Test agentic features
node test_agentic_features.js
# Test backend
cd backend
pytest
# Test frontend
cd frontend
npm test- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the inline code comments and API docs
- Issues: Report bugs and feature requests on GitHub
- Discussions: Join the community discussions
- Database connection support (PostgreSQL, MySQL)
- Advanced chart types (heatmaps, 3D plots)
- Data export functionality
- Collaborative features
- Mobile app
- API rate limiting and authentication
- Advanced analytics and machine learning
QLens - Making data analysis conversational and accessible to everyone! ๐
