382 lines
No EOL
13 KiB
Markdown
382 lines
No EOL
13 KiB
Markdown
# PowerOn AI Platform - Dokumentation
|
|
|
|
## Inhaltsverzeichnis
|
|
|
|
1. [Übersicht](#übersicht)
|
|
2. [Architektur](#architektur)
|
|
3. [Kernmodule](#kernmodule)
|
|
4. [Benutzeroberfläche](#benutzeroberfläche)
|
|
5. [Datenmodell](#datenmodell)
|
|
6. [Multi-Agent Workflow-System](#multi-agent-workflow-system)
|
|
7. [Externe Connectors](#externe-connectors)
|
|
8. [Installation und Konfiguration](#installation-und-konfiguration)
|
|
9. [API-Endpunkte](#api-endpunkte)
|
|
10. [Sicherheitskonzept](#sicherheitskonzept)
|
|
|
|
## Übersicht
|
|
|
|
Die PowerOn AI Platform ist eine umfassende Anwendung zur Verwaltung und Durchführung von Multi-Agent-Workflows für komplexe Datenanalyse- und Verarbeitungsaufgaben. Die Plattform ermöglicht die Nutzung von verschiedenen AI-Modellen, Web-Scraping und Datenverarbeitung innerhalb einer benutzerfreundlichen Oberfläche.
|
|
|
|
### Hauptfunktionen
|
|
|
|
- **Multi-Agent-Workflows**: Koordination verschiedener spezialisierter AI-Agenten für komplexe Aufgaben
|
|
- **Web-Scraping**: Integration von Online-Recherche in Workflows
|
|
- **Dokumentenverarbeitung**: Analyse und Verarbeitung von Dokumenten und Bildern
|
|
- **Workspace-Management**: Organisation von Projekten in Workspaces
|
|
- **Benutzerverwaltung**: Mehrstufiges Benutzermanagement mit Mandantenstruktur
|
|
- **Modernes Frontend**: Responsive Benutzeroberfläche mit dynamischen Komponenten
|
|
|
|
## Architektur
|
|
|
|
Die PowerOn AI Platform ist als modulare Webanwendung mit einer klaren Trennung zwischen Frontend und Backend konzipiert.
|
|
|
|
### Backend
|
|
|
|
Das Backend basiert auf FastAPI (Python) und bietet folgende Komponenten:
|
|
|
|
- **Gateway-Interface**: Zentrale Komponente für Authentifizierung und Mandantenverwaltung
|
|
- **LucyDOM-Interface**: Datenbank-Interface für Workspaces, Agenten, Files und Prompts
|
|
- **Agent-Service**: Orchestrierung und Ausführung von Multi-Agent-Workflows
|
|
- **Connector-Module**: Integration mit externen Diensten (OpenAI, Anthropic, Web-Scraping)
|
|
- **JSON-Datenbank**: Lokale Datenspeicherung für Entwicklung und Deployment
|
|
|
|
### Frontend
|
|
|
|
Das Frontend wurde mit modernem JavaScript entwickelt:
|
|
|
|
- **Modularer Aufbau**: Klar strukturierte JS-Module mit ES6-Import/Export
|
|
- **Responsive Design**: Anpassungsfähige UI für verschiedene Bildschirmgrössen
|
|
- **Dynamische Komponenten**: Flexible UI-Elemente für verschiedene Anwendungsfälle
|
|
- **REST-API Integration**: Kommunikation mit dem Backend über standardisierte API-Aufrufe
|
|
|
|
## Kernmodule
|
|
|
|
### Gateway-Interface
|
|
|
|
Das Gateway-Interface (`gateway_interface.py`) ist verantwortlich für:
|
|
|
|
- Benutzerauthentifizierung und -autorisierung
|
|
- Mandantenverwaltung (Multi-Tenant-Architektur)
|
|
- Basisinitialisierung der Datenbank
|
|
|
|
### LucyDOM-Interface
|
|
|
|
Das LucyDOM-Interface (`lucydom_interface.py`) verwaltet:
|
|
|
|
- Workspaces und deren Inhalte
|
|
- Agenten und deren Konfiguration
|
|
- Dateiverwaltung und -zuordnung
|
|
- Prompts und Templates
|
|
|
|
### Agent-Service
|
|
|
|
Der Agent-Service (`agentservice_interface.py`) orchestriert:
|
|
|
|
- Ausführung von Multi-Agent-Workflows
|
|
- Koordination spezialisierter Agenten über einen Moderator
|
|
- Verarbeitung von Dateien und Prompts
|
|
- Sammlung und Speicherung von Workflow-Ergebnissen
|
|
- Interaktion mit dem Benutzer während eines Workflows
|
|
|
|
### Connector-Module
|
|
|
|
Verschiedene Connectors verbinden die Plattform mit externen Diensten:
|
|
|
|
- **AI-Chat-Connectors**: Integration mit OpenAI/Anthropic für die Agentenverarbeitung
|
|
- **Web-Scraping-Connector**: Durchführung von Online-Recherchen
|
|
- **DB-Connector**: JSON-basierte Datenspeicherung
|
|
|
|
## Benutzeroberfläche
|
|
|
|
Die Benutzeroberfläche ist modular aufgebaut und bietet verschiedene funktionale Bereiche:
|
|
|
|
### Navigation
|
|
|
|
- Hierarchische Menüstruktur mit Modulen und Untermenüs
|
|
- Workspace-Auswahl und -Verwaltung
|
|
- Benutzer- und Mandantenkontextverwaltung
|
|
|
|
### Module
|
|
|
|
#### Workspaces
|
|
|
|
- Erstellung und Verwaltung von Arbeitsbereichen
|
|
- Zentrale Organisation für Agenten, Dateien und Prompts
|
|
|
|
#### Agenten
|
|
|
|
- Verwaltung verschiedener spezialisierter Agenten
|
|
- Konfiguration von Agentenfähigkeiten und -beschreibungen
|
|
- Standardagenten: Initialisierung, Organisator, Entwickler, Webscraper, Datenanalyst, Textgenerator, Visualisierer
|
|
|
|
#### Dateien
|
|
|
|
- Upload und Verwaltung von Dokumenten und Bildern
|
|
- Integration in Workflows für Datenverarbeitung
|
|
|
|
#### Prompts
|
|
|
|
- Erstellung und Verwaltung von Template-Prompts
|
|
- Wiederverwendung in verschiedenen Workflows
|
|
|
|
#### Workflow
|
|
|
|
Das Workflow-Modul ist das Herzstück der Anwendung und ermöglicht:
|
|
|
|
- Auswahl von Agenten für spezifische Aufgaben
|
|
- Eingabe von Prompts und Anweisungen
|
|
- Auswahl relevanter Dateien für die Verarbeitung
|
|
- Echtzeit-Überwachung des Workflow-Fortschritts
|
|
- Interaktion mit dem Workflow während der Ausführung
|
|
- Anzeige und Speicherung von Ergebnissen
|
|
|
|
### Admin-Module
|
|
|
|
#### Mandantenverwaltung
|
|
|
|
- Erstellung und Konfiguration von Mandanten (nur für SysAdmin)
|
|
- Zuweisung von Standardressourcen für neue Mandanten
|
|
|
|
#### Benutzerverwaltung
|
|
|
|
- Erstellung und Verwaltung von Benutzern
|
|
- Rechteverwaltung mit drei Stufen: Benutzer, Admin, SysAdmin
|
|
|
|
## Datenmodell
|
|
|
|
Die PowerOn AI Platform verwendet ein strukturiertes Datenmodell:
|
|
|
|
### Mandanten (Mandates)
|
|
|
|
- **id**: Eindeutige ID
|
|
- **name**: Name des Mandanten
|
|
- **language**: Standardsprache
|
|
- **disabled**: Flag für deaktivierte Mandanten
|
|
- **contact_email**: Kontakt-E-Mail
|
|
|
|
### Benutzer (Users)
|
|
|
|
- **id**: Eindeutige ID
|
|
- **mandate_id**: Zugehöriger Mandant
|
|
- **username**: Eindeutiger Benutzername
|
|
- **hashed_password**: Gehashtes Passwort (Argon2)
|
|
- **email**: E-Mail-Adresse
|
|
- **full_name**: Vollständiger Name
|
|
- **disabled**: Flag für deaktivierte Benutzer
|
|
- **language**: Bevorzugte Sprache
|
|
- **privilege**: Berechtigungsstufe (user, admin, sysadmin)
|
|
|
|
### Workspaces
|
|
|
|
- **id**: Eindeutige ID
|
|
- **mandate_id**: Zugehöriger Mandant
|
|
- **user_id**: Ersteller des Workspace
|
|
- **name**: Name des Workspace
|
|
- **created_at**: Erstellungszeitpunkt
|
|
|
|
### Agenten (Agents)
|
|
|
|
- **id**: Eindeutige ID
|
|
- **mandate_id**: Zugehöriger Mandant
|
|
- **user_id**: Ersteller des Agenten
|
|
- **name**: Name des Agenten
|
|
- **type**: Typ des Agenten (initialisierung, organisator, entwickler, scraper, usw.)
|
|
- **workspace_id**: Zugehöriger Workspace
|
|
- **capabilities**: Fähigkeiten des Agenten
|
|
- **description**: Beschreibung des Agenten
|
|
- **instructions**: Anweisungen für den Agenten
|
|
|
|
### Dateien (Files)
|
|
|
|
- **id**: Eindeutige ID
|
|
- **mandate_id**: Zugehöriger Mandant
|
|
- **user_id**: Hochladender Benutzer
|
|
- **name**: Dateiname
|
|
- **type**: Dateityp (document, image, usw.)
|
|
- **content_type**: MIME-Typ
|
|
- **size**: Dateigrösse
|
|
- **path**: Speicherort der Datei
|
|
- **upload_date**: Hochladezeitpunkt
|
|
|
|
### Prompts
|
|
|
|
- **id**: Eindeutige ID
|
|
- **mandate_id**: Zugehöriger Mandant
|
|
- **user_id**: Ersteller des Prompts
|
|
- **content**: Prompt-Text
|
|
- **workspace_id**: Zugehöriger Workspace
|
|
- **created_at**: Erstellungszeitpunkt
|
|
- **name**: Name des Prompts
|
|
|
|
### Workflows
|
|
|
|
- **id**: Eindeutige ID (uuid)
|
|
- **mandate_id**: Zugehöriger Mandant
|
|
- **user_id**: Ausführender Benutzer
|
|
- **status**: Status (running, completed, failed, stopped)
|
|
- **progress**: Fortschritt (0.0-1.0)
|
|
- **started_at**: Startzeitpunkt
|
|
- **completed_at**: Abschlusszeitpunkt
|
|
- **agent_statuses**: Status der einzelnen Agenten
|
|
- **logs**: Ausführungsprotokolle
|
|
- **results**: Ergebnisse der Agenten
|
|
- **data_stats**: Statistiken zur Datenübertragung
|
|
- **chat_history**: Chat-Verlauf zwischen Agenten
|
|
|
|
## Multi-Agent Workflow-System
|
|
|
|
Das Multi-Agent-System ist das zentrale Element der PowerOn AI Platform und ermöglicht die Zusammenarbeit verschiedener spezialisierter Agenten.
|
|
|
|
### Workflow-Ablauf
|
|
|
|
1. **Initialisierung**: Nutzer wählt Agenten, Files und gibt einen Prompt ein
|
|
2. **Moderator-Phase**: Moderator koordiniert den Einsatz verschiedener Agenten
|
|
3. **Agentenausführung**: Spezifische Agenten führen ihre Aufgaben aus
|
|
4. **Benutzerinteraktion**: Bei Bedarf kann der Benutzer in den Workflow eingreifen
|
|
5. **Ergebnissammlung**: Ergebnisse werden aggregiert und gespeichert
|
|
|
|
### Verfügbare Standardagenten
|
|
|
|
Die Plattform bietet folgende vordefinierte Agentenrollen:
|
|
|
|
1. **Initialisierung**: Analysiert Anfragen, plant Aufgaben und beantwortet einfache Fragen
|
|
2. **Organisator**: Koordiniert komplexe Anfragen und erstellt strukturierte Arbeitspläne
|
|
3. **Entwickler**: Erstellt Programmcode und technische Implementierungen
|
|
4. **Webscraper**: Führt Web-Recherchen durch und bereitet Informationen auf
|
|
5. **Datenanalyst**: Analysiert Daten, identifiziert Muster und erstellt Berichte
|
|
6. **Textgenerator**: Erstellt qualitativ hochwertige Texte in verschiedenen Formaten
|
|
7. **Visualisierer**: Erstellt Datenvisualisierungen und visuelle Darstellungen
|
|
|
|
### User Agent
|
|
|
|
Ein besonderer Agententyp ist der "User Agent", der Benutzerinteraktionen während eines laufenden Workflows ermöglicht:
|
|
|
|
- Beantwortung von Fragen des Moderators oder anderer Agenten
|
|
- Bereitstellung zusätzlicher Dateien während der Ausführung
|
|
- Bestätigung von Ergebnissen oder Anforderung weiterer Analysen
|
|
|
|
## Externe Connectors
|
|
|
|
Die Plattform integriert verschiedene externe Dienste:
|
|
|
|
### AI-Chat-Connectors
|
|
|
|
- **OpenAI-Connector**: Integration mit OpenAI-API (Standard)
|
|
- **Anthropic-Connector**: Alternative Integration mit Anthropic's Claude-Modellen
|
|
|
|
Diese Connectors bieten:
|
|
- Verarbeitung von Text-Prompts
|
|
- Verarbeitung von Bildern und multimodalen Inhalten
|
|
- Anpassbare Parameter (temperature, max_tokens)
|
|
|
|
### Web-Scraping-Connector
|
|
|
|
Der Web-Scraping-Connector ermöglicht:
|
|
- Suche nach relevanten Websites basierend auf Keywords
|
|
- Extraktion von Inhalten aus Webseiten
|
|
- Bewertung und Strukturierung von Online-Informationen
|
|
|
|
### JSON-DB-Connector
|
|
|
|
Der JSON-Datenbank-Connector bietet:
|
|
- Persistente Datenspeicherung in JSON-Dateien
|
|
- Unterstützung für Multi-Tenant-Architektur
|
|
- Kontextbasierte Datenfilterung
|
|
|
|
## Installation und Konfiguration
|
|
|
|
### Systemanforderungen
|
|
|
|
- Python 3.8+ für das Backend
|
|
- Moderne Browser für das Frontend
|
|
- Ausreichend Speicherplatz für Dateiuploads und Datenbank
|
|
|
|
### Konfiguration
|
|
|
|
Die Konfiguration erfolgt über eine `config.ini`-Datei mit folgenden Sektionen:
|
|
|
|
- **Connector_AiOpenai**: API-Schlüssel und Parameter für OpenAI
|
|
- **Connector_AiWebscraping**: Parameter für Web-Scraping (Timeout, User-Agent, etc.)
|
|
- **Module_AgentserviceInterface**: Parameter für den Agent-Service
|
|
|
|
## API-Endpunkte
|
|
|
|
Die PowerOn AI Platform bietet eine umfassende REST-API:
|
|
|
|
### Authentifizierung
|
|
|
|
- **POST /api/token**: Login und Token-Generierung
|
|
|
|
### Benutzer
|
|
|
|
- **GET /api/user/me**: Informationen zum aktuellen Benutzer
|
|
- **GET /api/user**: Liste aller Benutzer (Admin)
|
|
- **POST /api/user**: Neuen Benutzer erstellen
|
|
- **PUT /api/user/{id}**: Benutzer aktualisieren
|
|
- **DELETE /api/user/{id}**: Benutzer löschen
|
|
|
|
### Mandanten
|
|
|
|
- **GET /api/mandates**: Liste aller Mandanten (SysAdmin)
|
|
- **POST /api/mandates**: Neuen Mandanten erstellen
|
|
- **PUT /api/mandates/{id}**: Mandant aktualisieren
|
|
- **DELETE /api/mandates/{id}**: Mandant löschen
|
|
|
|
### Workspaces
|
|
|
|
- **GET /api/workspaces**: Liste aller Workspaces
|
|
- **POST /api/workspaces**: Neuen Workspace erstellen
|
|
- **PUT /api/workspaces/{id}**: Workspace aktualisieren
|
|
- **DELETE /api/workspaces/{id}**: Workspace löschen
|
|
|
|
### Agenten
|
|
|
|
- **GET /api/agents**: Liste aller Agenten
|
|
- **POST /api/agents**: Neuen Agenten erstellen
|
|
- **PUT /api/agents/{id}**: Agenten aktualisieren
|
|
- **DELETE /api/agents/{id}**: Agenten löschen
|
|
|
|
### Dateien
|
|
|
|
- **GET /api/files**: Liste aller Dateien
|
|
- **POST /api/files/upload**: Datei hochladen
|
|
- **GET /api/files/{id}/download**: Datei herunterladen
|
|
- **DELETE /api/files/{id}**: Datei löschen
|
|
|
|
### Prompts
|
|
|
|
- **GET /api/prompts**: Liste aller Prompts
|
|
- **POST /api/prompts**: Neuen Prompt erstellen
|
|
- **PUT /api/prompts/{id}**: Prompt aktualisieren
|
|
- **DELETE /api/prompts/{id}**: Prompt löschen
|
|
|
|
### Workflows
|
|
|
|
- **POST /api/workflows/run**: Workflow starten
|
|
- **GET /api/workflows/{id}/status**: Workflow-Status abfragen
|
|
- **GET /api/workflows/{id}/logs**: Workflow-Logs abrufen
|
|
- **GET /api/workflows/{id}/results**: Workflow-Ergebnisse abrufen
|
|
- **POST /api/workflows/{id}/stop**: Workflow stoppen
|
|
- **POST /api/workflows/{id}/user-input**: Benutzereingabe senden
|
|
|
|
## Sicherheitskonzept
|
|
|
|
Die PowerOn AI Platform implementiert mehrere Sicherheitsebenen:
|
|
|
|
### Authentifizierung
|
|
|
|
- **Token-basierte Authentifizierung**: JWT-Tokens für API-Zugriff
|
|
- **Sichere Passworthashes**: Argon2-Algorithmus für Passwort-Hashing
|
|
- **Automatische Tokenaktualisierung**: Token-Aktualisierung bei Ablauf
|
|
|
|
### Autorisierung
|
|
|
|
- **Rollenbasierte Zugriffskontrolle**:
|
|
- **User**: Standardbenutzer mit Zugriff auf eigene Ressourcen
|
|
- **Admin**: Verwaltung von Benutzern und Ressourcen im eigenen Mandanten
|
|
- **SysAdmin**: Vollständige Systemverwaltung und Mandantenverwaltung
|
|
|
|
### Mandantenisolierung
|
|
|
|
- **Strikte Datentrennung**: Jeder Mandant hat nur Zugriff auf eigene Daten
|
|
- **Kontextbasierte Filterung**: Automatische Filterung von Abfrageergebnissen basierend auf Mandantenzugehörigkeit |