-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
This page provides an overview of the architectural design and principles guiding the development of the VR4VET Chat-Service.
The Chat-Service adopts a Microservice Architecture. This approach was chosen over a multi-tier architecture to better suit the existing larger codebase and to leverage the benefits of microservices for developing the chatbot application, particularly with Python's strengths in AI and rapid development.
- Single Responsibility: Each microservice is designed to perform one main function. This keeps the codebase for each service small and easier to maintain.
- Independent Deployment: Services can be refactored, redeployed, or scaled without impacting other parts of the system. Failure in one microservice doesn’t necessarily bring down the entire system.
- Loose Coupling and Autonomy: Microservices communicate through well-defined APIs and do not depend on each other’s internal implementations. This allows for flexibility in technology choices, enabling the use of Python for AI-related services alongside a C# frontend.
The architecture is shaped by several key drivers, including functional requirements, quality attributes, and business needs. For a comprehensive list, please refer to the Architectural Drivers / Architectural Significant Requirements document.
Some notable drivers include:
- RAG (Retrieval-Augmented Generation): The system must allow uploading, indexing, and retrieving information from documents to enhance chatbot responses.
- Microservices for Chatbot/LLM: A dedicated Python backend handles chatbot requests, keeping the Unity client lightweight.
- Cost Management: Prioritizing low-cost or open-source solutions.
For visual representations of the architecture, including component, deployment, and process views, please see the Diagrams page.
The design and development of the Chat-Service are influenced by various stakeholders, each with specific interests and concerns. Understanding these helps to clarify architectural decisions. For full details, see the Stakeholders Document.
-
Developers (IT2901 Group 11):
- Concerns: Deployability, scalability, maintainability, modifiability, and technology choices.
-
End Users (Young Job Seekers, Vocational Students, Career Counselors):
- Concerns: Usability (including accessibility and Universal Design), performance, availability, and robustness of the chatbot.
-
IMTEL Vr4vet Product Owner:
- Concerns: Strategic alignment of the project with organizational goals, compliance, and financial oversight.
-
Regulatory Bodies:
- Concerns: Compliance with legal and regulatory standards, particularly data privacy (GDPR), security, and copyright law.
Authors:
Peter Olai Johnsen
Tobias Fremming
Erik Le Blanc Pleym
About Chat-Service
Core Components
Development
Codebase Details
- Codebase Architecture
- Routes
- Command-py
- Config-py
- Context Upload-py
- LLM-py
- Main-py
- Pipeline-py
- Streaming WS-py
- Transcribe-py
Deployment and Operations