Spaces:
Runtime error
Runtime error
Getting Started
Follow these steps to set up the WSQ Courseware Generator on your local machine.
Prerequisites
- Python 3.11+
- Git
- uv (Recommended package manager)
- Node.js (Required for MCP servers)
1. Installation
Recommended Method (uv)
# Clone the repository
git clone https://github.com/alfredang/courseware_openai_agents.git
cd courseware_openai_agents
# Initialize environment
uv venv
source .venv/bin/activate
# Install dependencies
uv pip install -r requirements.txt
Manual Method (pip)
git clone https://github.com/alfredang/courseware_openai_agents.git
cd courseware_openai_agents
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
2. Configuration
API Keys
The application supports multiple providers. You can configure them via the UI:
- Run the app:
streamlit run app.py - Navigate to Settings → API Keys
- Input your keys for OpenRouter, OpenAI, or Gemini.
Database Configuration
To store company settings and model configurations, ensure your DATABASE_URL (PostgreSQL) is set in .streamlit/secrets.toml or as an environment variable.
3. NotebookLM Setup (Required for Slides Generation)
The Generate Slides module uses Google NotebookLM to create slide decks. This requires a one-time login with a Google account.
Step 1: Install NotebookLM library
pip install notebooklm-py[browser]
Step 2: Run the login script
python notebooklm-mcp/login_windows.py
This will:
- Open a Chromium browser window
- Navigate to Google NotebookLM
Step 3: Sign in with your Google account
- Complete the Google login in the browser window
- Wait until you see the NotebookLM homepage
- Press Enter in the terminal to save your session
Your session is saved locally at ~/.notebooklm/storage_state.json. This file is not pushed to GitHub — each user must log in on their own machine.
Notes
- Any Google account works (personal or workspace Gmail)
- The login only needs to be done once per machine
- If your session expires, simply run the login script again
- The slides module also works in non-agentic mode (no LLM API tokens needed)
- Agentic mode (AI-enhanced) requires an OpenRouter API key configured in Settings (Gemini 2.0 Flash is free)
4. Running the App
streamlit run app.py
Open your browser to http://localhost:8501.