No description
Find a file
2026-02-27 13:57:19 +00:00
.vscode Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
apps Modified id usage to uuids, reset migrations, removed token from invites 2026-02-27 12:53:19 +00:00
compose Added ignore paths, reduced prod inference compose and Dockerfile complexity 2026-02-27 11:42:26 +00:00
config Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
data Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
docs Updated readme and added subdocs 2026-02-27 02:09:54 +00:00
notebooks Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
requirements Revised all files to reduce bloat + optimized workflow 2026-02-26 01:32:04 +00:00
site Added favicons and webmanifest 2026-02-27 13:57:19 +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 Added cd for node check 2026-02-26 12:29:39 +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 Updated readme and added subdocs 2026-02-27 02:09:54 +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

Placeholder slots for final screenshots.

Home Page

Home Page Placeholder

Organization Page

Organization Page Placeholder

Onboarding Loading / Generation State

Onboarding Loading Placeholder

Onboarding Content Flow

Onboarding Flow Placeholder


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:


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