I built Supr Analyst, a natural language to SQL analytics interface. It combines LLM-powered query generation (OpenAI + Claude) with database schema understanding and user-defined metrics for accurate data exploration.
Technical stack:
- FastAPI backend for API endpoints and query processing
- Next.js + Shadcn/UI for a responsive frontend
- PostgreSQL for storing metadata and user configurations
- Custom prompt engineering to handle complex SQL generation
- Table relationship management through foreign key detection and custom mappings
Key features I implemented:
- AI-generated table and column metadata to improve query context
- User-defined example queries that act as few-shot learning examples
- Custom metric definitions that help generate accurate aggregations
- Query validation layer to prevent unsafe operations
- Support for MySQL, Postgres, and Snowflake connections
- Interactive "Try Chat" with sample dataset to test natural language queries
- SQL Playground for trying complex queries and understanding the query generation
Technical stack: - FastAPI backend for API endpoints and query processing - Next.js + Shadcn/UI for a responsive frontend - PostgreSQL for storing metadata and user configurations - Custom prompt engineering to handle complex SQL generation - Table relationship management through foreign key detection and custom mappings
Key features I implemented: - AI-generated table and column metadata to improve query context - User-defined example queries that act as few-shot learning examples - Custom metric definitions that help generate accurate aggregations - Query validation layer to prevent unsafe operations - Support for MySQL, Postgres, and Snowflake connections - Interactive "Try Chat" with sample dataset to test natural language queries - SQL Playground for trying complex queries and understanding the query generation
You can try it live here with sample dataset: Chat: https://supranalyst.com/try-supr-analyst/chat Playground: https://supranalyst.com/try-supr-analyst/playground
Currently in private beta with people. Would appreciate feedback on the approach and UX.
reply