Skip to content

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.

Notifications You must be signed in to change notification settings

DLR-SC/orb-ai-t

 
 

Repository files navigation

Discover
orbait logo
Gravity for your AI, freedom for your innovation.

Based on Open WebUI Models via Ollama Data via ERI Svelte code


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:

  1. External Retrieval Interface (ERI)
    A standalone FastAPI “rag‑test” server implementing the OpenAPI‑based contract for data providers. ERI.

  2. OpenWebUI
    The main FastAPI + SPA (Svelte) application delivering your chat UI, document upload, RAG, etc. Open WebUI.

Requirements

  • Node.js (v16+)
  • Python 3.11+
  • miniconda
  • Git

Project Structure

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) 


Getting started

To make it easy for you to get started with this Project, here's a list of recommended next steps.

1. Start the Backend Server

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

2. Start ERI Server

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

3. Accessing the Application

  • Frontend http://localhost:40300

  • Backend http://localhost:40300/docs

  • Open ERI API docs http://localhost:40304/panda#/

Resetting the Open WebUI User (in case of login issues)

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:

1. Deleta all users from the database

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

2. Allow new user registration

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()"

3. Restart the Backend Server

PYTHONPATH=backend ENV=dev uvicorn open_webui.main:app --reload --port 40300

4. Create an Admin

  • Open your browser at http://localhost:40300
  • You should now see the signup page.
  • Register a new admin account.

5. Disable registration again

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.

Dev Notes

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.

Contribution

Orb[AI]t is a product of the DLR FM project. The development of the platform is being actively advanced within the project.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 39.0%
  • Svelte 28.7%
  • Python 23.2%
  • TypeScript 5.1%
  • CSS 3.6%
  • Shell 0.2%
  • Other 0.2%