# Technische Architektur

Technische Architektur der Plattform
Technische Architektur der Plattform

# Plattform-Komponenten

Die Architektur der Plattform setzt sich aus 5 Kernkomponenten und den zugehörigen Datenbanken für die Datenspeicherung zusammen.

# Chat

Dient als Client für den*die Chatbotnutzer*in zur Kommunikation mit den Backend-Systemen. Die Verbindung findet dabei mittels HTTPS-Verbindung statt und nutzt die Dialog-API (JSON mit XML-Inhalten).

# aiStudio

Ermöglicht den aiStudio-Nutzer*innen der Plattform die Verwaltung der Chatbot-Inhalte, sowie die Auswertung geführter Konversationen. Eine Authentifizierung des*der Administrator*in mittels Benutzername und Passwort ist erforderlich. Die Authentifizierung erfolgt über das Open-Source Identitäts- und Zugriffsmanagement Keycloak. Die Daten des aiStudios (Chatbot-Inhalte) werden dabei in einer MySQL-Datenbank und einer Weaviate-Datenbank gespeichert. Der Zugriff auf die Konversationsdaten erfolgt per REST-Schnittstelle über die API (Moonkin).

# API (Moonkin)

Dient als Router / Koordinator für die anderen Plattform-Komponenten. Moonkin stellt eine HTTP-API (REST-ähnlich) zur Verfügung, welche von den anderen Komponenten genutzt werden. Die angebotenen APIs können zudem unabhängig genutzt und integriert werden. Hierfür steht die API-Dokumentation zur Verfügung. Die Speicherung temporärer Daten erfolgt in der Redis-Datenbank. Moonkin empfängt somit die Anfragen des Chats und leitet diese an den LLM Manager mittels HTTP-Anfrage weiter. Nach erfolgter Prozessierung wird das Ergebnis in der OpenSearch-Datenbank protokolliert und indexiert (Konversationsdaten). Die Daten der OpenSearch-Datenbank können mithilfe der Analytics-API abgefragt werden.

# LLM Manager

Der LLM Manager ermöglicht die Integration von Wissen in das System, entweder durch den Import von Dateien oder das Crawlen von Websites. In beiden Fällen werden die Daten vektorisiert und in einer Vektordatenbank gespeichert. Eine weitere zentrale Aufgabe des LLM Managers ist es, die zugrundeliegenden Sprachmodelle mit relevanten Ergebnissen aus der Wissensdatenbank zu versorgen und so passende Antworten zu generieren. Es steht eine breite Palette an Sprachmodellen zur Verfügung, darunter Modelle von OpenAI wie GPT-4o, GPT-4o Mini und GPT-4 Turbo sowie Open-Source-Modelle wie Llama 3 und Claude 3.5.

# Keycloak

Über das Open-Source Identitäts- und Zugriffsmanagement "Keycloak" werden Rollen & Rechte im aiStudio gemanaged.

# Technologien

Komponente Basis-Technologien / Frameworks Programmiersprachen
aiStudio Frontend Node.js (React) TypeScript
aiStudio Backend Node.js (NestJS) TypeScript
Chat Node.js (Angular) TypeScript
API (Moonkin) Node.js (NestJS) TypeScript
LLM Manager FastAPI Python

# Datenbanken

Komponente Basis-Technologien / Frameworks Genutzt von
Analytics Database OpenSearch API (Moonkin), LLM Manager
Redis (KV-Store) Redis Moonkin
Vektordatenbank Weaviate LLM Manager, Moonkin