A Flask-based web interface for Bee AI, enabling you to:
- Log in using your Bee API key
- Browse, paginate, end/retry/delete conversations
- Export conversations as PDFs
- Manage "Facts" (CRUD operations and filtering)
- Manage "To-Dos" (CRUD operations)
- Browse paginated "Locations"
- Semantic Dashboard Search: perform semantic search across conversations, facts, and to-dos locally without external API calls
- Markdown Rendering: automatically render Markdown content in templates using a custom filter
- Prerequisites
- Installation
- Configuration
- Running the App
- Usage
- Getting Your Bee API Key
- Project Structure
- Notes
- License
- Python 3.10+
- pip or pipenv
- wkhtmltopdf (for PDF export)
- faiss-cpu (for vector search functionality)
- sentence-transformers (for local embedding model)
- PyTorch (automatically installed as a dependency of sentence-transformers)
Ubuntu / Debian
sudo apt-get update
sudo apt-get install -y wkhtmltopdfmacOS (Homebrew)
brew install wkhtmltopdf# Clone the repository
git clone https://github.com/chartmann1590/bee-ai-web.git
cd bee-ai-web
# Using pipenv
pipenv install
pipenv shell
# Or using venv
python3 -m venv env
source env/bin/activate
pip install -r requirements.txtCreate a .env file in the project root:
# Secret key for signing Flask session cookies
FLASK_SECRET_KEY=your_random_secret_hereWarning: Without setting
FLASK_SECRET_KEY, the app defaults todev_secret, which is insecure for production.
Activate your virtual environment, then:
export FLASK_APP=app.py
export FLASK_ENV=development # Optional for debug mode and auto-reload
flask run --host=0.0.0.0 --port=5000Access the app at http://localhost:5000.
- Login: Paste your Bee API key on the home page and submit.
- Dashboard:
-
Displays an overview and quick navigation links.
-
Search: Use the search box to perform a local semantic search over your conversations, facts, and to-dos. Results are ranked by relevance and presented with a snippet and link to the source.
-
- Conversations:
- Lists conversations with pagination.
- End, retry, or delete conversations.
- Export conversations to PDF.
- Facts:
- View, filter (by "confirmed"), and paginate facts.
- Perform CRUD operations.
- To-Dos:
- View all tasks.
- Perform CRUD operations.
- Locations:
- Paginated location browsing.
- Visit the Bee Developer Portal.
- Sign in or create an account.
- Under API Keys, click Create new key.
- Copy and paste the key into the app login form.
.
├── app.py
├── requirements.txt
├── .env.example # Template for your .env file
├── .gitignore
├── templates/
│ ├── index.html
│ ├── dashboard.html
│ ├── conversations.html
│ ├── conversation_detail.html
│ ├── conversation_pdf.html
│ ├── facts.html
│ ├── fact_form.html
│ ├── todos.html
│ ├── todo_form.html
│ └── locations.html
└── static/
├── css/
└── js/
- Sessions store API keys securely in signed cookies; they are not saved to disk.
- The dashboard leverages FAISS and SentenceTransformer to build a local semantic index on first search and serve results without external calls.
- Markdown content in messages and facts is rendered via a custom Jinja filter.
- PDF export functionality relies on wkhtmltopdf and pdfkit.
- For production use, set FLASK_ENV=production and deploy with a WSGI server such as Gunicorn.
MIT © Charles Hartmann