Spaces:
Running
Running
| title: ThoughtSpot Demo Builder | |
| emoji: π | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: gradio | |
| sdk_version: "4.44.1" | |
| app_file: app.py | |
| pinned: false | |
| license: mit | |
| python_version: "3.11" | |
| # Demo Wire - AI-Powered Demo Builder | |
| A powerful Gradio-based application that automatically generates and deploys complete demo environments for ThoughtSpot, including Snowflake schemas, data population, and semantic model creation. | |
| > **Deployed on Hugging Face Spaces**: This app can be deployed to HF Spaces for easy access. See [DEPLOYMENT.md](DEPLOYMENT.md) for setup instructions. | |
| ## π Features | |
| - **AI-Powered Research**: Automatically researches companies and industries using LLM | |
| - **Schema Generation**: Creates optimized Snowflake DDL based on business context | |
| - **Data Population**: Generates realistic demo data with strategic outliers | |
| - **ThoughtSpot Integration**: Deploys connections, tables, and semantic models | |
| - **Interactive UI**: Clean, intuitive Gradio interface with real-time progress updates | |
| ## π οΈ Tech Stack | |
| - **Frontend**: Gradio (Python web UI) | |
| - **Backend**: Python 3.12+ | |
| - **Database**: Snowflake | |
| - **Analytics**: ThoughtSpot | |
| - **AI**: OpenAI GPT models | |
| - **Data Generation**: Faker library | |
| ## π Prerequisites | |
| - Python 3.12+ | |
| - Snowflake account with appropriate permissions | |
| - ThoughtSpot Cloud account | |
| - OpenAI API key | |
| ## π Quick Start | |
| 1. **Clone the repository** | |
| ```bash | |
| git clone https://github.com/yourusername/demo-wire.git | |
| cd demo-wire | |
| ``` | |
| 2. **Set up virtual environment** | |
| ```bash | |
| python -m venv demo_wire | |
| source demo_wire/bin/activate # On Windows: demo_wire\Scripts\activate | |
| ``` | |
| 3. **Install dependencies** | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| 4. **Configure environment variables** | |
| ```bash | |
| cp .env.example .env | |
| # Edit .env with your credentials | |
| ``` | |
| 5. **Run the application** | |
| ```bash | |
| python demo_prep.py | |
| ``` | |
| 6. **Open your browser** | |
| Navigate to `http://localhost:7860` | |
| ## βοΈ Configuration | |
| Create a `.env` file with the following variables: | |
| ```env | |
| # OpenAI | |
| OPENAI_API_KEY=your_openai_api_key | |
| # Snowflake | |
| SNOWFLAKE_USER=your_username | |
| SNOWFLAKE_PASSWORD=your_password | |
| SNOWFLAKE_ACCOUNT=your_account | |
| SNOWFLAKE_WAREHOUSE=your_warehouse | |
| SNOWFLAKE_DATABASE=your_database | |
| SNOWFLAKE_SCHEMA=your_schema | |
| # ThoughtSpot | |
| THOUGHTSPOT_URL=your_thoughtspot_url | |
| THOUGHTSPOT_USERNAME=your_username | |
| THOUGHTSPOT_PASSWORD=your_password | |
| ``` | |
| ## π― Usage | |
| 1. **Enter Company Information**: Company name, URL, and industry | |
| 2. **Start Research**: AI analyzes the company and industry | |
| 3. **Create DDL**: Generate optimized Snowflake schema | |
| 4. **Generate Data**: Create realistic demo data with outliers | |
| 5. **Deploy**: Deploy to Snowflake and ThoughtSpot | |
| ## π Project Structure | |
| ``` | |
| demo-wire/ | |
| βββ demo_prep.py # Main Gradio application | |
| βββ schema_utils.py # Schema parsing and generation utilities | |
| βββ thoughtspot_deployer.py # ThoughtSpot deployment logic | |
| βββ snowflake_auth.py # Snowflake authentication | |
| βββ demo_personas.py # Demo persona configurations | |
| βββ prompts.py # LLM prompt templates | |
| βββ requirements.txt # Python dependencies | |
| βββ docs/ # Documentation | |
| βββ tests/ # Test files | |
| βββ results/ # Generated demo results | |
| ``` | |
| ## π§ͺ Testing | |
| Run the test suite: | |
| ```bash | |
| python -m pytest tests/ | |
| ``` | |
| ## π€ Contributing | |
| 1. Fork the repository | |
| 2. Create a feature branch (`git checkout -b feature/amazing-feature`) | |
| 3. Commit your changes (`git commit -m 'Add amazing feature'`) | |
| 4. Push to the branch (`git push origin feature/amazing-feature`) | |
| 5. Open a Pull Request | |
| ## π License | |
| This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. | |
| ## π Acknowledgments | |
| - ThoughtSpot for the analytics platform | |
| - Snowflake for the data warehouse | |
| - OpenAI for the AI capabilities | |
| - Gradio for the web interface | |
| ## π Development Notes | |
| Development notes and sprint planning are stored in `dev_notes/` (not committed to version control). | |
| ## π Support | |
| For support, email support@demo-wire.com or create an issue in this repository. | |
| --- | |
| **Built with β€οΈ for the ThoughtSpot community** | |