No description
Find a file
2026-03-11 14:01:49 +00:00
.vscode Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
apps Added changes for onboarding checking, content validation and progress monitoring pages, with tests and migration changes 2026-03-11 13:19:31 +00:00
compose Added ignore paths, reduced prod inference compose and Dockerfile complexity 2026-02-27 11:42:26 +00:00
config Added extended results 2026-03-11 14:01:49 +00:00
data Reset all passwords (again) 2026-03-11 13:02:02 +00:00
docs Added notable branches and demo screenshots 2026-03-07 18:05:49 +00:00
notebooks Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
report Added report tex and diagrams with ignore 2026-03-09 23:09:24 +00:00
requirements Added specific filters for fields 2026-02-27 14:23:26 +00:00
site Added changes for onboarding checking, content validation and progress monitoring pages, with tests and migration changes 2026-03-11 13:19:31 +00:00
.dockerignore Added ignore paths, reduced prod inference compose and Dockerfile complexity 2026-02-27 11:42:26 +00:00
.editorconfig Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
.env.example Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
.env.template Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
.gitignore Added huggingface cache path 2026-02-27 00:44:24 +00:00
.gitlab-ci.yml Made requirement optional 2026-02-27 15:11:18 +00:00
download_model.py Added download script and updated management command 2026-02-26 11:38:04 +00:00
gpu_server.py Added onboarding role check, health endpoint and json check for gpu 2026-02-27 00:45:34 +00:00
manage.py Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
package-lock.json Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
package.json Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
README.md Added notable branches and demo screenshots 2026-03-07 18:05:49 +00:00

Dynavera: Distributed Agentic Onboarding System

Dynavera is a multi-agent onboarding platform that combines role-specific training flows, retrieval from organization documents, and LLM-powered guidance. The system is intentionally distributed so that app orchestration and heavy inference can run independently.

Repository: https://git.cs.bham.ac.uk/projects-2025-26/vxn217


Table of Contents


At a Glance

Dynavera focuses on one question: how do we deliver onboarding that is role-aware, context-aware, and operationally practical?

The platform does this by combining:

  • A Django management layer for accounts, roles, sessions, and APIs
  • An agentic orchestration loop over WebSockets for responsive interactions
  • A retrieval layer using pgvector and organization-provided documents
  • A GPU inference service for chat completions, embeddings, and chunking support

Inspector & Supervisor Notes

Primary locations relevant to technical quality, architecture reasoning, and evaluation:

  • Setup, context, and high-level flow: this README.md
  • Architecture notes: docs/
  • Orchestration runtime: apps/onboarding/consumers.py
  • Retrieval bridge and tool routing: apps/onboarding/mcp.py
  • Ingestion and vectorization pipeline: apps/knowledge/tasks.py
  • Inference service entrypoint: gpu_server.py

Evaluation-relevant themes represented in the codebase:

  • Role-scoped onboarding generation and progression
  • Retrieval grounding through uploaded training files
  • Separation of management services and inference services
  • End-to-end flow from upload to onboarding completion

Screenshots

Home Page

Home Page

Organization Page

Organization Page

Onboarding Loading / Generation State

Onboarding Loading

Onboarding Content Flow

Onboarding Flow


System Architecture (High-Level)

At a high level, Dynavera is split into a management side and an inference side. The orchestrator coordinates user interaction, tool calls, and model responses between the two.

High Level System Architecture

For the fuller architecture narrative (runtime flow and component placement), see:


Project Goals

  • Distributed orchestration across VPS and GPU nodes
  • Context-aware onboarding with RAG (semantic chunking + vector search)
  • Stateful agent workflow over WebSockets
  • Automated ingestion from role training documents (PDF/TXT)

Tech Stack

  • Backend: Django, Django REST Framework, Django Channels
  • Frontend: Vue 3, Vite, Pinia
  • Database: PostgreSQL with pgvector
  • AI/ML: FastAPI, Sentence Transformers, llama.cpp-compatible serving
  • Infra: Docker, Redis, Celery

Repository Guide

Key areas in the repo:

  • apps/accounts: user model, organization/role ownership, membership flows
  • apps/knowledge: file ingestion, chunking pipeline, vector document persistence
  • apps/onboarding: role flows, sessions, websocket orchestration, MCP-style tool routing
  • config/: settings, API/ASGI routing, environment wiring
  • compose/: development and production deployment manifests
  • gpu_server.py: inference and embedding service

For a more detailed breakdown:


Notable Branches

These remote branches are useful for understanding how the project evolved:

  • origin/main: stable integration branch used for the current baseline.
  • origin/feature/node-setup: early full-stack setup work introducing the initial frontend/backend server shape.
  • origin/feature/agents: branch focused on agent-related backend changes, including pgvector-oriented database work.
  • origin/feature/mcp-workflow: workflow iteration branch around MCP/testing flow changes.
  • origin/feature/model-rag: branch associated with the model/RAG stream and related frontend scaffolding during that phase.

Run git branch -r to view all remote branches.

However, the main branch will be the primary focus as a lot of the code contained in the feature branches was used for testing different approaches and iterations, which then got consolidated or removed as the project evolved. The code in these branches may not be in a fully working state, and some of the approaches explored there were ultimately not used in the final implementation.


Evaluation Credentials

Role Email Password
Admin admin@example.com admin
Manager haleisaac@example.com password
User j.thompson@example.com password

Manager registration code: MANAGER2026


  1. Open https://fyp.viswamedha.com
  2. Log in as Manager and open the target organization
  3. Upload a role-relevant document (PDF recommended)
  4. Wait for ingestion and embedding completion
  5. Start role onboarding and trigger generation
  6. Check if responses are grounded in uploaded material
  7. Optionally review progress details and logs

If the hosted deployment is unavailable, local setup is documented below.


Local Setup (Cross-Platform)

Prerequisites

  • Docker Engine / Docker Desktop
  • NVIDIA drivers + NVIDIA Container Toolkit (for GPU inference)

1) Clone

git clone https://git.cs.bham.ac.uk/projects-2025-26/vxn217
cd vxn217

2) Create .env

PowerShell

Copy-Item .env.template .env

CMD

copy .env.template .env

macOS/Linux

cp .env.template .env

Then update .env values for your environment.

3) Start services (development)

docker compose -f compose/dev/docker-compose.yml --env-file .env up -d --build

4) Access endpoints

5) Optional: reset seeded passwords

docker exec -it fyp-django-dev python manage.py reset_passwords

Reset defaults:

  • Admin users: admin
  • Manager and user accounts: password

Common Commands

Stop services:

docker compose -f compose/dev/docker-compose.yml --env-file .env down

Tail logs:

docker compose -f compose/dev/docker-compose.yml --env-file .env logs -f

Run migrations:

docker exec -it fyp-django-dev python manage.py migrate

Additional Documentation