Quick Start Guide#
This guide will get you up and running with EngiAI in 5 minutes.
Prerequisites#
Docker Desktop, and the API keys listed below. Nothing else.
What is MMORE? A multimodal RAG (Retrieval-Augmented Generation) service that enables the assistant to search and answer questions about your uploaded documents (PDFs, papers, etc.). It runs from the official upstream image and starts with the rest of the stack — there is nothing to clone and no patches to apply. Docker builds a small local layer over the pinned image (services/mmore/Dockerfile, a few seconds) carrying fixes upstream v2.0.0 needs to start at all.
Expect the first make docker-up to take several minutes: it pulls roughly 1.5 GB of image plus embedding and reranker weights. Later starts reuse the cache in data/mmore/cache/.
🚀 Fastest Way: Docker (Recommended)#
The easiest and most reliable way to get started:
2. Configure Environment#
cp .env.example .env
# Edit .env with your LLM provider configuration
Get API keys from:
Web search uses DuckDuckGo by default and requires no API key. Tavily remains
available by setting SEARCH_PROVIDER=tavily and TAVILY_API_KEY.
Important: Verify MMORE_RAG_URL=http://localhost:8000 in your .env file points to your running MMORE service.
3. Start the Application#
make docker-up
4. Access the UI#
Open your browser: http://localhost:8501
That’s it! The complete AI assistant is now running with all dependencies isolated.
To stop: make docker-down
đź’» Local Development (Alternative)#
For developers who want to modify the code:
1. Set Up Environment#
If you haven’t already, set up the conda environment:
conda create -n engiai python=3.13 -y
conda activate engiai
pip install -e ".[dev,test]"
pre-commit install
See the Installation Guide for detailed instructions.
2. Set Up API Keys#
Create a .env file in the project root:
cp .env.example .env
Edit .env and add your API keys:
# Required
OPENAI_API_KEY=sk-your-key-here
TAVILY_API_KEY=tvly-your-key-here
# Database (for local development, use SQLite)
DATABASE_URL=sqlite:///data/conversations.db
# Optional
WANDB_API_KEY=your-wandb-key
HPC_HOST_ALIAS=your-cluster-name
3. Start the UI#
Launch the Streamlit interface:
streamlit run src/ui/streamlit_app.py
Or use the convenience script:
make run-ui
The UI will open in your browser at http://localhost:8501
Next Steps#
Import Your Documents (Optional)#
To enable document Q&A with your own PDFs:
# 1. Configure paper directory in .env
echo "PAPERS_SOURCE_DIR=/path/to/your/pdfs" >> .env
# 2. Import papers to MMORE
python scripts/import_local_papers.py
# 3. Ask questions about your documents
# In the UI: "What does my research say about topology optimization?"
See the Paper Import Guide for detailed instructions.
Try Your First Query#
Research Workflow#
Search ArXiv: “Find papers on generative design”
Analyze Papers: “Download and analyze the first paper”
Ask Questions: “What methods do they use for optimization?”
Design Workflow#
Generate Design: “Create a 2D beam design”
Optimize: “Optimize for minimal compliance” (works with beams2d, photonics2d)
Export: “Convert to STL for 3D printing”
HPC Training Workflow#
Prepare: “Set up training for [problem_type]” (any supported problem: beams2d, photonics2d)
Submit: “Submit training job to HPC cluster”
Monitor: “Check training status”
Optional: Host Service for GUI Integration#
If you’re using Docker and want to open GUI applications (like PrusaSlicer) on your host machine:
# In a separate terminal:
python services/host_service.py
This allows the containerized assistant to:
âś… Open PrusaSlicer for 3D model slicing
âś… Launch other GUI applications (VS Code, Terminal, etc.)
âś… Execute commands on your host machine
Note: Only needed for Docker deployments and only if you want GUI app integration.
What’s Next?#
Docker Deployment Guide - Production deployment
Configuration Guide - Customize your setup
Agent Documentation - Learn about each agent
Tool Reference - Explore available tools
Architecture Overview - System design
Troubleshooting - Common issues
Tips#
Use natural language - the assistant understands conversational queries
Ask for clarification if you’re unsure about something
Use context - reference previous designs or papers in follow-up questions
Check the chat history in the UI to review past interactions
Need Help?#
Check the
scripts/directory for code examples