Employee Productivity GenAI Assistant Beispiel ist ein innovatives Codebeispiel, das die Effizienz und Effektivität von Schreibaufgaben durch die Integration von KI-Technologien steigern soll. Dieses auf AWS-Benutzer zugeschnittene Assistentenbeispiel nutzt Amazon Bedrock und generative KI-Modelle, um die Erstellung erster Vorlagen zu automatisieren, die auch an Ihre eigenen Bedürfnisse angepasst werden können. Benutzer können sowohl Text als auch Bilder eingeben und profitieren dabei von den multimodalen Fähigkeiten modernster KI wie der Claude 3-Familie, die die dynamische Interaktion mit mehreren Datentypen unterstützt.
Das Beispiel des Employee Productivity GenAI Assistant basiert auf robusten serverlosen AWS-Technologien wie Lambda, API Gateway, DynamoDB und S3 und gewährleistet Skalierbarkeit, hohe Verfügbarkeit und Sicherheit durch Cognito. Diese Technologien bilden eine Grundlage, die es dem Employee Productivity GenAI Assistant-Beispiel ermöglicht, bei Bedarf auf Benutzeranforderungen zu reagieren und gleichzeitig strenge Sicherheitsstandards einzuhalten. Der Kern seiner generativen Fähigkeiten basiert auf den leistungsstarken KI-Modellen von Amazon Bedrock, die dabei helfen, schnell maßgeschneiderte und qualitativ hochwertige Inhalte bereitzustellen.
Beispiel für den Mitarbeiterproduktivitäts-GenAI-Assistenten demonstriert seine Funktionalitäten durch eine Reihe interaktiver GIFs und macht es für Benutzer einfach, seine Funktionen zu verstehen und zu nutzen:
Durch die Bereitstellung einer optimierten Benutzeroberfläche und umfassender Tools vereinfacht Employee Productivity GenAI Assistant example nicht nur die Erstellung komplexer Dokumente, sondern steigert auch die Produktivität und Kreativität der Benutzer. Dieses GitHub-Repository dient als Leitfaden für die Bereitstellung dieser Lösung auf benutzereigenen AWS-Konten und stellt sicher, dass jeder die erweiterten Funktionen dieses KI-gestützten Schreibassistenten einrichten und davon profitieren kann.
Architekturmuster und wiederverwendbare Komponenten
Zusätzlich zu den interaktiven Funktionen bietet das Beispiel „Employee Productivity GenAI Assistant“ ein robustes Architekturmuster für die Erstellung generativer KI-Lösungen auf AWS. Durch die Nutzung serverloser Dienste von Amazon Bedrock und AWS wie Lambda, API Gateway und DynamoDB demonstriert das Beispiel einen skalierbaren und sicheren Ansatz für die Bereitstellung generativer KI-Anwendungen. Dieses Architekturmuster kann als Grundlage für den Aufbau verschiedener generativer KI-Lösungen verwendet werden, die auf verschiedene Anwendungsfälle zugeschnitten sind. Darüber hinaus umfasst die Lösung eine wiederverwendbare komponentengesteuerte Benutzeroberfläche, die auf dem React-Framework basiert und es Entwicklern ermöglicht, die Benutzeroberfläche einfach zu erweitern und an ihre spezifischen Anforderungen anzupassen. Das Beispiel zeigt auch die Implementierung der Streaming-Unterstützung mithilfe von WebSockets, die Echtzeitantworten sowohl bei chatbasierten Interaktionen als auch bei einmaligen Anfragen ermöglicht und so das Benutzererlebnis und die Reaktionsfähigkeit des generativen KI-Assistenten verbessert.
improve-employee-productivity-using-genai/
│
├── backend/ - Contains all backend related files.
│ ├── artifacts/ - Artifacts such as screenshots
│ ├── src/ - Source code for Lambda functions.
│ ├── utils/ - Utility scripts such as helper to create Cognito users
│ ├── layer/ - Code for Lambda layers.
│ └── template.yaml - Main SAM template for Infrastructure as Code (IaC) deployment.
│
└── frontend/ - Houses the frontend React application.
│ ├── src/ - Main folder for React code.
│ └── App.js - Entry point for the React application.
│ └── .env - Environment variables created on deployment (auto-generated).
│
├── deploy.sh - Single bash script for deploying both backend and frontend.
└── default_templates.json - Default templates that gets uploaded to DynamoDB at deployment for bootstrap.
Bevor Sie mit der Bereitstellung und Entwicklung des Beispiels „Employee Productivity GenAI Assistant“ beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:
pip
installiert ist und funktioniertBitte stellen Sie sicher, dass diese installiert und ordnungsgemäß konfiguriert sind, bevor Sie mit der Bereitstellung oder Entwicklung des Beispiels „Employee Productivity GenAI Assistant“ fortfahren.
️ Wichtig : Bevor Sie mit der Bereitstellung fortfahren, stellen Sie sicher, dass Sie alle Voraussetzungen erfüllt haben.
Das Beispiel für die Bereitstellung des Mitarbeiterproduktivitäts-GenAI-Assistenten umfasst die Ausführung eines Bash-Skripts, das die Einrichtung sowohl des Backends als auch des Frontends übernimmt. Nachfolgend finden Sie die detaillierten Schritte, die das Skript ausführt:
Um das Beispiel „Employee Productivity GenAI Assistant“ bereitzustellen, verwenden Sie die folgenden Befehle in Ihrem Terminal, einschließlich der AWS-Region als erforderliches Argument:
./deploy.sh --region=your-aws-region --email=your-email
./deploy.sh --backend --region=your-aws-region --email=your-email
./deploy.sh --frontend --region=your-aws-region --email=your-email
./deploy.sh --delete --region=your-aws-region --email=your-email
./deploy.sh --container --region=your-aws-region --email=your-email
Ersetzen Sie your-aws-region
durch die entsprechende AWS-Region (z. B. us-east-1
).
Stellen Sie sicher, dass Sie diese Befehle im Stammverzeichnis des Projektverzeichnisses ausführen und your-aws-region
durch die tatsächliche AWS-Region ersetzen, die Sie verwenden möchten.
Sobald Sie die Bereitstellung abgeschlossen haben, befolgen Sie die nachstehenden Anweisungen zu den Schritten nach der Bereitstellung.
Einige Details zur Funktionsweise des Skripts finden Sie unten:
--delete
verwendet wird, fordert das Skript zur Bestätigung auf, dass der angegebene AWS-Stack gelöscht werden soll.--backend
angegeben ist) :sam build --template "$SAM_TEMPLATE" --parallel --cached
--container
in ./deploy.sh
angegeben ist, wird die Ausführung des SAM wie folgt ausgelöst: sam build --template "$SAM_TEMPLATE" --parallel --cached --use-container
--frontend
angegeben ist) :.env
Datei im Frontend-Verzeichnis mit diesen Ausgaben.aws-exports.json
für die AWS-Konfiguration.AWS CloudShell ermöglicht Ihnen den Zugriff auf eine kostenlose und sofortige Linux-Umgebung über Ihre AWS-Konsole. Um die Lösung mit AWS CloudShell zu installieren, führen Sie bitte die folgenden Schritte der Reihe nach aus.
Abhängigkeiten installieren : Stellen Sie zunächst sicher, dass Sie die erforderlichen Entwicklungstools und Bibliotheken installiert haben. Öffnen Sie AWS CloudShell und führen Sie die folgenden Befehle aus:
# Install Development Tools
sudo yum groupinstall " Development Tools " -y &&
# Install necessary libraries
sudo yum install openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel ncurses-devel readline-devel sqlite-devel -y
Installieren von Python 3.11 mit PyEnv : AWS CloudShell wird nicht mit Python 3.11 geliefert, daher müssen wir PyEnv installieren, um dann Python 3.11 als Standard-Python-Version in unserer Shell zu installieren und festzulegen.
# Install PyEnv
git clone https://github.com/pyenv/pyenv.git ~ /.pyenv
# Set .bash_profile env
echo ' ' >> ~ /.bash_profile
echo ' # Pyenv Configuration ' >> ~ /.bash_profile
echo ' export PYENV_ROOT="$HOME/.pyenv" ' >> ~ /.bash_profile
echo ' export PATH="$PYENV_ROOT/bin:$PATH" ' >> ~ /.bash_profile
echo ' eval "$(pyenv init -)" ' >> ~ /.bash_profile
# Reinitialize your Shell
source ~ /.bash_profile
# Install Python 3.11
pyenv install 3.11
# Set Python 3.11 as default with PyEnv
pyenv global 3.11
Erstellen Sie einen neuen Arbeitsordner in CloudShell : Das AWS CloudShell-Home-Verzeichnis verfügt nur über 1 GB Speicher. Wir müssen den temporären Speicher verwenden, um diese Anwendung zu erstellen und bereitzustellen. Lassen Sie uns zunächst einen Ordner im Stammverzeichnis erstellen und die entsprechenden Benutzerberechtigungen festlegen.
# Folder creation
sudo mkdir /aws-samples &&
# Setting folder permissions
sudo chown cloudshell-user -R /aws-samples
Repository klonen und Lösung bereitstellen : Nachdem wir nun einen Ordner und alle Abhängigkeiten installiert haben, gehen wir Schritt für Schritt vor, wie die Lösung mithilfe von AWS CloudShel bereitgestellt wird.
# Navigate to the newly created folder
cd /aws-samples
# Clone the repo in the /aws-samples folder
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai.git
# Navigate to the git folder
cd improve-employee-productivity-using-genai/
# Before running the deployment command, set the maximum npm memory to 1024MB to avoid OOM error
export NODE_OPTIONS= " --max_old_space_size=1024 "
Stellen Sie das Backend der Lösung bereit : Nachdem wir nun alle Abhängigkeiten zum Bereitstellen unserer Anwendung haben, können wir das Backend unserer Lösung mit dem folgenden Befehl bereitstellen. Wir verwenden die Bereitstellungsoption für das Backend und dann für das Frontend, da Cloudshell nicht über genügend Speicher verfügt, um beide mit demselben Befehl bereitzustellen. Bitte ändern Sie die Region und die E-Mail-Adresse, bevor Sie den folgenden Befehl ausführen.
# Run the deployment command for the backend
./deploy.sh --backend --region=your-aws-region --email=your-email
Bereitstellen des Frontends der Lösung : Als letztes müssen Sie nun noch das Frontend der Lösung bereitstellen. Bitte verwenden Sie dieselbe Region und E-Mail-Adresse, die Sie oben im Backend-Befehl ausgeführt haben.
# Run the deployment command for the frontend
./deploy.sh --frontend --region=your-aws-region --email=your-email
Die Bereitstellung kann zwischen 15 und 30 Minuten dauern. Bitte beachten Sie, dass Ihre CloudShell-Umgebung gelöscht wird, wenn Sie länger als 20 Minuten nicht mit AWS CloudShell interagieren. Es wird empfohlen, dass Sie eine zweite CloudShell-Registerkarte geöffnet haben und alle 10 Minuten einige Befehle ausführen, um ein automatisches Herunterfahren zu vermeiden.
Hinweis : Wenn dieser Befehl fehlschlägt, weil CloudShell nicht über genügend Speicher verfügt, führen Sie bitte den Befehl
--frontend
erneut aus und es sollte funktionieren.
Sobald die Bereitstellung abgeschlossen ist, werden Ihnen die CloudFront-URL, der Benutzername und das temporäre Passwort für den Zugriff auf die Lösung angezeigt. Bitte überprüfen Sie den Abschnitt „Nach der Bereitstellung“.
Die Bereitstellung des Beispiels „Employee Productivity GenAI Assistant“ mit AWS Cloud9 bietet eine optimierte und konsistente Einrichtung der Entwicklungsumgebung. Befolgen Sie diese detaillierten Schritte, um Ihre Cloud9-Umgebung einzurichten und die Anwendung effizient bereitzustellen.
Hinweis: Die Größe des EBS-Volumes wird automatisch geändert :
Öffnen Sie die AWS Cloud9-Konsole :
Erstellen Sie eine neue Umgebung :
GenAI-Productivity-Env
, und klicken Sie auf Nächster Schritt .Konfigurieren Sie die Umgebung :
t3/t3.medium
oder größer aus, um sicherzustellen, dass Sie über genügend Rechenleistung verfügen.AWS System Manager (SSM)
aus Überprüfen und erstellen :
Sobald Ihre Umgebung bereit ist, müssen Sie sie für die Bereitstellung des Beispiels „Employee Productivity GenAI Assistant“ vorbereiten.
Greifen Sie auf Ihre Cloud9-Umgebung zu :
Klonen Sie das Projekt-Repository :
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai
cd improve-employee-productivity-using-genai
Sie können sowohl das Backend als auch das Frontend bereitstellen oder sie separat verwalten.
So stellen Sie sowohl Backend als auch Frontend bereit (empfohlen) :
./deploy.sh --container --region= < your-aws-region > --email= < your-email >
Ersetzen Sie es durch Ihre AWS-Region (z. B. us-east-1) und durch Ihre tatsächliche E-Mail-Adresse.
So stellen Sie nur das Backend bereit: :
./deploy.sh --backend --container --region= < your-aws-region > --email= < your-email >
Ersetzen Sie es durch Ihre AWS-Region (z. B. us-east-1) und durch Ihre tatsächliche E-Mail-Adresse.
So stellen Sie nur das Frontend bereit: :
./deploy.sh --frontend --region= < your-aws-region > --email= < your-email >
Ersetzen Sie es durch Ihre AWS-Region (z. B. us-east-1) und durch Ihre tatsächliche E-Mail-Adresse.
Nachdem das Bereitstellungsskript abgeschlossen ist, fahren Sie mit dem nächsten Abschnitt „Schritte nach der Bereitstellung“ fort
Nach erfolgreicher Bereitstellung des Employee Productivity GenAI Assistant-Beispiels folgen Sie bitte diesen Schritten, um zusätzliche Cognito-Benutzer zu erstellen, um Zugriff auf Ihre Employee Productivity GenAI Assistant-Beispielbereitstellung zu gewähren, da bei der Bereitstellung standardmäßig NUR der Admin-Benutzer auf Cognito erstellt wird:
Greifen Sie auf die Anwendung zu :
Melden Sie sich bei der Anwendung an :
<your-email>
).Entdecken Sie die Anwendung :
Erstellen Sie zusätzliche Benutzer (optional) :
EmployeeProductivityGenAIAssistantExample
aus.Benutzerrollen zuweisen (optional) :
? Herzlichen Glückwunsch zum Bereitstellen und Einrichten des GenAI Assistant-Beispiels für Mitarbeiterproduktivität! Entdecken Sie seine Möglichkeiten und genießen Sie die Erfahrung.
.env
und aws-exports.json
im Frontend-Verzeichnis überprüfen. Entdecken Sie die Möglichkeiten des Beispiels „Employee Productivity GenAI Assistant“ mit diesen spannenden Demonstrationen. Jede Funktion wird durch interaktive GIFs hervorgehoben, die das System in Aktion zeigen:
Benutzerfreundlichkeit des Spielplatzes :
Vorlagenerstellung :
Vorlageanwendung in Aktivität :
Aktivitätsverlaufsfunktion :
Interaktiver Chat mit Vorlagen :
Multimodalitätseingabe :
Diese Tools sollen Ihre Produktivität und Kreativität steigern, indem sie Ihre Interaktion mit KI-Modellen in einer serverlosen Umgebung optimieren.
Die Kosten für die Ausführung des Beispiels „Employee Productivity GenAI Assistant“ können je nach Ihren Nutzungsmustern und den spezifischen Amazon Bedrock-Modellen, die Sie nutzen möchten, variieren. Um eine grobe Schätzung bereitzustellen, haben wir einen Link zur Kostenschätzung erstellt, der ein Szenario mit 50 Benutzern berücksichtigt, von denen jeder das Tool fünfmal am Tag mit durchschnittlich 500 Eingabe-Tokens und 200 Ausgabe-Tokens nutzt.
Die geschätzten monatlichen Kosten basieren auf den folgenden Annahmen:
Die Bedrock-Preise finden Sie auf der Seite „AWS Bedrock-Preise“. Die geschätzten Kosten für das gegebene Szenario sind wie folgt:
Claude 3 Haiku-Modell :
Claude 3 Sonett-Modell :
Claude 3.5 Sonettmodell :
Claude 3 Opus-Modell :
Hinweise : Während die Kostenschätzungen anhand eines einzigen Modells berechnet werden, haben Sie die Flexibilität, bei Bedarf zwischen den Modellen zu wechseln. Wenn Sie beispielsweise für eine bestimmte Anfrage ein erweitertes Modell wie Opus benötigen, wird Ihnen nur diese Nutzung in Rechnung gestellt. Für die meisten Anfragen können Sie kostenoptimiertere Modelle wie Haiku verwenden, die dazu beitragen, die Gesamtkosten des Tools niedriger und für Ihre Bedürfnisse optimiert zu halten.
Hinweis : Die Schätzung berücksichtigt nicht das kostenlose AWS-Kontingent für berechtigte Dienste. Ihre tatsächlichen Kosten können niedriger sein, wenn Sie sich noch innerhalb der Grenzen des kostenlosen Kontingents befinden. Bitte beachten Sie auch, dass sich die Preise für AWS-Dienste im Laufe der Zeit ändern können, sodass die tatsächlichen Kosten von diesen Schätzungen abweichen können.
Es ist wichtig zu beachten, dass es sich dabei lediglich um eine Schätzung handelt und nicht die genauen Kosten darstellt. Der Zweck besteht darin, eine allgemeine Vorstellung von den potenziellen Kosten basierend auf dem gegebenen Szenario zu liefern. Die tatsächlichen Kosten variieren je nach Ihrem spezifischen Nutzungsverhalten und den von Ihnen gewählten Amazon Bedrock-Modellen.
Einer der großen Vorteile der Cloud- und serverlosen Architektur ist die Möglichkeit, Ressourcen je nach Bedarf zu vergrößern oder zu verkleinern. Dadurch steigen oder sinken die Kosten der Lösung entsprechend, sodass Sie nur für die Ressourcen bezahlen, die Sie verbrauchen.
Darüber hinaus fallen für einige Komponenten der Lösung, wie AWS Lambda, S3, CloudFront, DynamoDB und Amazon Cognito, möglicherweise keine zusätzlichen Kosten an, wenn Sie sich noch innerhalb der AWS-Grenzwerte für das kostenlose Kontingent befinden.
Link zur Kostenschätzung : https://calculator.aws/#/estimate?id=5fa739dd54db78d439bb602e17bd8af8a1d78f07
Hinweis : Der Kostenvoranschlag berücksichtigt nicht die Gebühren für Amazon Bedrock, da die Claude-Modelle im Rechner noch nicht unterstützt werden.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der LIZENZ-Datei.
Wir freuen uns über Beiträge zum Beispiel „Mitarbeiterproduktivität GenAI-Assistent“! Wenn Sie Vorschläge haben oder Probleme melden möchten, können Sie gerne eine Pull-Anfrage oder ein Problem eröffnen.
Bei der Implementierung von Lösungen ist es wichtig, Best Practices zu befolgen, um Sicherheit, Zuverlässigkeit und Beobachtbarkeit zu gewährleisten. Im Folgenden finden Sie einige Empfehlungen. Beachten Sie jedoch, dass diese Liste keinen Anspruch auf Vollständigkeit erhebt und möglicherweise noch mehr zu berücksichtigen ist.
Um die Datensicherheit zu erhöhen, sollten Sie die Aktivierung der Verschlüsselung mithilfe eines vom Kunden verwalteten Schlüssels (Customer Managed Key, CMK) in Betracht ziehen, der im AWS Key Management Service (KMS) für verschiedene Dienste gespeichert ist. Dies bietet eine zusätzliche Sicherheitsebene, da Sie den Zugriff auf die Verschlüsselungsschlüssel kontrollieren können.
Die Implementierung robuster Beobachtbarkeits- und Protokollierungsmechanismen ist für die Überwachung, Fehlerbehebung und Sicherheitsüberprüfung von entscheidender Bedeutung.
AccessLogSetting
Eigenschaft, um Zugriffsanfragen zu protokollieren.Stellen Sie für Lambda-Funktionen, die in einer Virtual Private Cloud (VPC) ausgeführt werden, sicher, dass die VPC-Endpunkte ordnungsgemäß konfiguriert sind, um eine sichere und effiziente Kommunikation zu ermöglichen. Dies kann dazu beitragen, dass alle Aufrufe innerhalb der VPC erfolgen und die Verwendung öffentlicher AWS-Endpunkte vermieden wird.
Durch die Implementierung dieser Best Practices können Sie die Sicherheit, Zuverlässigkeit und Beobachtbarkeit Ihrer Umgebung erheblich verbessern. Berücksichtigen Sie stets die spezifischen Anforderungen Ihrer Anwendung und Infrastruktur, um die am besten geeigneten Konfigurationen zu ermitteln.