Orb[AI]t is a platforms that allows users to share their individual data, AI models, and whole Retrieval Augmented Generation (RAG) systems, called RAG bundles with other users within their organisation. Data is integrated in a standardised way via the External Retrieval Interface (ERI), while models are made accessible via the open source tool Ollama. RAG bundles consist of model, data and prompt.
This repository bundles two FastAPI services plus a React/Svelte frontend:
-
External Retrieval Interface (ERI)
A standalone FastAPI “rag‑test” server implementing the OpenAPI‑based contract for data providers. ERI. -
OpenWebUI
The main FastAPI + SPA (Svelte) application delivering your chat UI, document upload, RAG, etc. Open WebUI.
- Node.js (v16+)
- Python 3.11+
miniconda
- Git
orbait/
├── open_webui # Cloned Open WebUI repository (contains frontend and backend)
│ ├── backend/ # FastAPI backend
│ ├── build/ # Frontend build output (generated via npm run build)
│ ├── ... # Other folders (src, static, etc.)
├── legacy-frontend/ # React + TypeScript (kept as reference)
│ ├── src/ # Components, Styles
│ ├── public/
│ └── package.json
├── README.md
external-retrieval-interface/
├── src # ERI "rag-test" project (FastAPI code)
To make it easy for you to get started with this Project, here's a list of recommended next steps.
The FastAPI backend serves both the API and the frontend (as a Single Page Application, SPA).
The SPA is mounted at /
and the API documentation can be accessed (in dev mode) via /docs
.
# create and activate virtual environment
conda create --name backend python=3.11
conda activate backend
# Install dependencies
cd open_webui
pip install -r backend/requirements.txt
# Start FastAPI
PYTHONPATH=backend ENV=dev uvicorn open_webui.main:app --reload --port 40300
cd external-retrieval-interface/rag-test
# create and activate virtual environment
conda create --name eri python=3.11
conda activate eri
# Install dependencies
pip install -r requirements.txt
# Start the ERI FastAPI server
cd src
python main.py
-
Frontend
http://localhost:40300
-
Backend
http://localhost:40300/docs
-
Open ERI API docs
http://localhost:40304/panda#/
In case you lose access to your Open WebUI user account (e.g., password forgotten or no admin user exists anymore), you can reset the user database and allow re-registration.
Follow these steps carefully:
python3 -c "import sqlite3; conn = sqlite3.connect('./open_webui/backend/data/webui.db'); conn.execute('DELETE FROM user;'); conn.commit(); conn.close()"
Check if the user table is now empty:
python3 -c "import sqlite3; conn = sqlite3.connect('./open_webui/backend/data/webui.db'); count = conn.execute('SELECT COUNT(*) FROM user;').fetchone()[0]; conn.close(); print(f'User count: {count}')"
It should print User count: 0
Update the database to set enable_signup
to true
:
python3 -c "import sqlite3, json; conn = sqlite3.connect('./open_webui/backend/data/webui.db'); row = conn.execute('SELECT * FROM config WHERE id = 1').fetchone(); data = json.loads(row[1]); data['ui']['enable_signup'] = True; conn.execute('UPDATE config SET data = ? WHERE id = 1', (json.dumps(data),)); conn.commit(); conn.close()"
PYTHONPATH=backend ENV=dev uvicorn open_webui.main:app --reload --port 40300
- Open your browser at
http://localhost:40300
- You should now see the signup page.
- Register a new admin account.
After successfully creating the new admin, disable registration:
python3 -c "import sqlite3, json; conn = sqlite3.connect('./open_webui/backend/data/webui.db'); row = conn.execute('SELECT * FROM config WHERE id = 1').fetchone(); data = json.loads(row[1]); data['ui']['enable_signup'] = False; conn.execute('UPDATE config SET data = ? WHERE id = 1', (json.dumps(data),)); conn.commit(); conn.close()"
Restart the server again.
In the code, the frontend is mounted from the build directory at the root URL(/
) so that the FastAPI server delivers the SPA.
An additional route /api-docs
(redirect to /docs
) is implemented.
The legacy-frontend/
folder contains a previosly developed React/TypeScript frontend for reference and is not actively used at the moment.
Orb[AI]t is a product of the DLR FM project. The development of the platform is being actively advanced within the project.