Produtividade do funcionário O exemplo do GenAI Assistant é um exemplo de código inovador projetado para elevar a eficiência e a eficácia das tarefas de escrita por meio da integração de tecnologias de IA. Feito sob medida para usuários da AWS, este exemplo de assistente utiliza Amazon Bedrock e modelos generativos de IA para automatizar a criação de modelos iniciais, que também podem ser personalizados de acordo com suas próprias necessidades. Os usuários podem inserir texto e imagens, beneficiando-se dos recursos multimodais da IA de ponta, como a família Claude 3, que suporta interação dinâmica com vários tipos de dados.
O exemplo do Employee Productivity GenAI Assistant é baseado em tecnologias robustas sem servidor da AWS, como Lambda, API Gateway, DynamoDB e S3, garantindo escalabilidade, alta disponibilidade e segurança por meio do Cognito. Essas tecnologias fornecem uma base que permite que o exemplo do assistente GenAI de produtividade do funcionário responda sob demanda às necessidades do usuário, mantendo padrões de segurança rígidos. O núcleo de suas habilidades generativas deriva dos poderosos modelos de IA disponíveis no Amazon Bedrock, que ajudam a fornecer conteúdo personalizado e de alta qualidade rapidamente.
Produtividade do funcionário O exemplo do GenAI Assistant mostra suas funcionalidades por meio de uma série de GIFs interativos, facilitando a compreensão e a utilização de seus recursos pelos usuários:
Ao fornecer uma interface simplificada e ferramentas abrangentes, o exemplo do assistente GenAI de produtividade do funcionário não apenas simplifica a geração de documentos complexos, mas também aumenta a produtividade e a criatividade do usuário. Este repositório GitHub serve como um guia para implantar esta solução em contas AWS de propriedade do usuário, garantindo que qualquer pessoa possa configurar e começar a se beneficiar dos recursos avançados deste assistente de escrita baseado em IA.
Padrões arquitetônicos e componentes reutilizáveis
Além dos recursos interativos, o exemplo do Employee Productivity GenAI Assistant fornece um padrão de arquitetura robusto para a construção de soluções de IA generativa na AWS. Ao aproveitar os serviços sem servidor Amazon Bedrock e AWS, como Lambda, API Gateway e DynamoDB, o exemplo demonstra uma abordagem escalonável e segura para implantar aplicativos de IA generativa. Este padrão de arquitetura pode ser usado como base para construir várias soluções de IA generativa adaptadas a diferentes casos de uso. Além disso, a solução inclui uma UI reutilizável baseada em componentes construída na estrutura React, permitindo que os desenvolvedores estendam e personalizem facilmente a interface para atender às suas necessidades específicas. O exemplo também mostra a implementação de suporte de streaming usando WebSockets, permitindo respostas em tempo real tanto em interações baseadas em chat quanto em solicitações únicas, melhorando a experiência do usuário e a capacidade de resposta do assistente de IA generativa.
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.
Antes de começar com a implantação e desenvolvimento do Exemplo de Assistente GenAI de Produtividade do Funcionário, certifique-se de ter os seguintes pré-requisitos configurados:
pip
instalado e funcionandoCertifique-se de que eles estejam instalados e configurados corretamente antes de prosseguir com a implantação ou desenvolvimento do exemplo do Employee Productivity GenAI Assistant.
️ Importante : Antes de prosseguir com a implantação, certifique-se de ter atendido todos os pré-requisitos.
O exemplo de implantação do assistente GenAI de produtividade do funcionário envolve a execução de um script bash que trata da configuração do back-end e do front-end. Abaixo estão as etapas detalhadas que o script executa:
Para implantar o exemplo do Employee Productivity GenAI Assistant, use os seguintes comandos em seu terminal, incluindo a região da AWS como argumento obrigatório:
./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
Substitua your-aws-region
pela região apropriada da AWS (por exemplo, us-east-1
)
Certifique-se de executar esses comandos na raiz do diretório do projeto e substitua your-aws-region
pela região real da AWS que você pretende usar.
Depois de concluir a implantação, siga as instruções abaixo nas etapas pós-implantação.
Para alguns detalhes sobre o que o script faz, veja abaixo:
--delete
for usado, o script solicitará confirmação para excluir a pilha AWS especificada.--backend
for especificado) :sam build --template "$SAM_TEMPLATE" --parallel --cached
--container
for especificado o ./deploy.sh
ele acionará a execução do SAM como: sam build --template "$SAM_TEMPLATE" --parallel --cached --use-container
--frontend
for especificado) :.env
no diretório frontend com essas saídas.aws-exports.json
para configuração da AWS.O AWS CloudShell permite que você tenha um ambiente Linux gratuito e instantâneo, acessível no console AWS. Para instalar a solução usando AWS CloudShell, siga as etapas abaixo na ordem.
Instalando dependências : primeiro, certifique-se de ter as ferramentas e bibliotecas de desenvolvimento necessárias instaladas. Abra o AWS CloudShell e execute os seguintes comandos:
# 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
Instalando o Python 3.11 com PyEnv : AWS CloudShell não vem com o Python 3.11, então precisaremos instalar o PyEnv para então instalar e definir o Python 3.11 como a versão padrão do Python em nosso shell.
# 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
Crie uma nova pasta de trabalho no CloudShell : o diretório inicial do AWS CloudShell tem apenas 1 GB de armazenamento, precisaremos usar o armazenamento temporário para construir e implantar este aplicativo. Primeiro, vamos criar uma pasta no diretório raiz e definir a permissão de usuário adequada.
# Folder creation
sudo mkdir /aws-samples &&
# Setting folder permissions
sudo chown cloudshell-user -R /aws-samples
Clonar repositório e implantar solução : Agora que temos uma pasta e todas as dependências instaladas, vamos passo a passo como implantar a solução usando AWS CloudShel.
# 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 "
Implantar o backend da solução : Agora que temos todas as dependências para implantar nossa aplicação podemos implantar o backend de nossa solução usando o comando abaixo. Estamos usando a opção de implantação para backend e depois frontend porque o Cloudshell não tem memória suficiente para manter a implantação de ambos no mesmo comando. Altere a região e o e-mail antes de executar o comando abaixo.
# Run the deployment command for the backend
./deploy.sh --backend --region=your-aws-region --email=your-email
Implantar o Frontend da solução : Finalmente, a última coisa que resta é implantar o Frontend da solução. Use a mesma região e e-mail que você executou no comando Backend acima.
# Run the deployment command for the frontend
./deploy.sh --frontend --region=your-aws-region --email=your-email
A implantação pode levar de 15 a 30 minutos. Esteja ciente de que se você não interagir com o AWS CloudShell por mais de 20 minutos, seu ambiente CloudShell será excluído. É recomendado que você tenha uma segunda guia do CloudShell aberta e execute alguns comandos uma vez a cada 10 minutos para evitar o desligamento automático.
Nota : Se este comando falhar devido à falta de memória do CloudShell, basta executar novamente o comando
--frontend
e ele deverá funcionar.
Assim que a implantação for concluída, você verá o URL do CloudFront, o nome de usuário e a senha temporária para acessar a solução. Por favor, verifique a seção Pós-implantação
A implantação do exemplo do Employee Productivity GenAI Assistant usando o AWS Cloud9 fornece uma configuração de ambiente de desenvolvimento simplificada e consistente. Siga estas etapas detalhadas para configurar seu ambiente Cloud9 e implantar o aplicativo com eficiência.
Nota: O volume do EBS é redimensionado automaticamente :
Abra o console do AWS Cloud9 :
Crie um novo ambiente :
GenAI-Productivity-Env
e clique em Próxima etapa .Configure o ambiente :
t3/t3.medium
ou maior para garantir que você tenha capacidade de computação suficiente.AWS System Manager (SSM)
como tipo de conexão Revise e crie :
Assim que seu ambiente estiver pronto, você precisará prepará-lo para implantar o exemplo do Employee Productivity GenAI Assistant.
Acesse seu ambiente Cloud9 :
Clone o repositório do projeto :
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai
cd improve-employee-productivity-using-genai
Você pode implantar o back-end e o front-end ou tratá-los separadamente.
Para implantar back-end e front-end (recomendado) :
./deploy.sh --container --region= < your-aws-region > --email= < your-email >
Substitua pela sua região da AWS (por exemplo, us-east-1) e pelo seu endereço de e-mail real.
Para implantar apenas o back-end:
./deploy.sh --backend --container --region= < your-aws-region > --email= < your-email >
Substitua pela sua região da AWS (por exemplo, us-east-1) e pelo seu endereço de e-mail real.
Para implantar apenas o front-end::
./deploy.sh --frontend --region= < your-aws-region > --email= < your-email >
Substitua pela sua região da AWS (por exemplo, us-east-1) e pelo seu endereço de e-mail real.
Após a conclusão do script de implantação, vá para a próxima seção Etapas pós-implantação
Depois de implantar com êxito o exemplo do Employee Productivity GenAI Assistant, uma vez que a implantação cria por padrão APENAS o usuário Admin no Cognito, siga estas etapas para criar usuários Cognito adicionais para dar acesso à implantação do exemplo do Employee Productivity GenAI Assistant:
Acesse o Aplicativo :
Faça login no aplicativo :
<your-email>
) para fazer login.Explore o aplicativo :
Crie usuários adicionais (opcional) :
EmployeeProductivityGenAIAssistantExample
.Atribuir funções de usuário (opcional) :
? Parabéns pela implantação e configuração do exemplo do assistente GenAI de produtividade do funcionário! Explore suas capacidades e aproveite a experiência.
.env
e aws-exports.json
no diretório front-end. Explore os recursos do exemplo do assistente GenAI de produtividade do funcionário com estas demonstrações envolventes. Cada recurso é destacado por meio de GIFs interativos que mostram o sistema em ação:
Usabilidade do parque infantil :
Criação de modelo :
Aplicativo de modelo em atividade :
Recurso de histórico de atividades :
Bate-papo interativo com modelos :
Entrada multimodalidade :
Essas ferramentas foram projetadas para aumentar sua produtividade e criatividade, simplificando sua interação com modelos de IA em um ambiente sem servidor.
O custo de execução do exemplo do Employee Productivity GenAI Assistant pode variar com base nos seus padrões de uso e nos modelos específicos do Amazon Bedrock que você escolher utilizar. Para fornecer uma estimativa aproximada, criamos um link de estimador de custos que considera um cenário com 50 usuários, cada um utilizando a ferramenta 5 vezes ao dia com uma média de 500 tokens de entrada e 200 tokens de saída.
O custo mensal estimado baseia-se nos seguintes pressupostos:
Os preços do Bedrock podem ser vistos na página de preços do AWS Bedrock. Os custos estimados para o cenário dado são os seguintes:
Modelo Claude 3 Haiku :
Modelo do Soneto Claude 3 :
Modelo do Soneto Claude 3.5 :
Modelo Claude 3 Opus :
Notas : Embora as estimativas de custos sejam calculadas usando um único modelo, você tem a flexibilidade de alternar entre modelos conforme necessário. Por exemplo, se você precisar de um modelo mais avançado como o Opus para uma solicitação específica, só será cobrado por esse uso. Para a maioria das solicitações, você pode utilizar modelos mais econômicos, como o Haiku, que ajudará a manter o custo geral da ferramenta mais baixo e otimizado para suas necessidades.
Observação : a estimativa não considera o nível gratuito da AWS para serviços qualificados. Seus custos reais poderão ser menores se você ainda estiver dentro dos limites do nível gratuito. Observe também que os preços dos serviços da AWS podem mudar ao longo do tempo, portanto, os custos reais podem variar em relação a essas estimativas.
É importante observar que esta é apenas uma estimativa e não representa o custo exato. O objetivo é fornecer uma ideia de alto nível do custo potencial com base no cenário determinado. O custo real irá variar dependendo de seus padrões de uso específicos e dos modelos Amazon Bedrock que você escolher utilizar.
Uma das grandes vantagens da arquitetura em nuvem e sem servidor é a capacidade de aumentar ou diminuir os recursos com base na demanda. Como resultado, o custo da solução aumentará ou diminuirá de acordo, garantindo que você pague apenas pelos recursos que consumir.
Além disso, alguns componentes da solução, como AWS Lambda, S3, CloudFront, DynamoDB e Amazon Cognito, podem não incorrer em custos adicionais se você ainda estiver dentro dos limites do nível gratuito da AWS.
Link do estimador de custos : https://calculator.aws/#/estimate?id=5fa739dd54db78d439bb602e17bd8af8a1d78f07
Nota : O estimador de custos não inclui os encargos do Amazon Bedrock, pois os modelos Claude ainda não são suportados na calculadora.
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para obter detalhes.
Congratulamo-nos com contribuições para o Exemplo de Assistente GenAI de Produtividade do Funcionário! Se você tiver sugestões ou quiser relatar problemas, sinta-se à vontade para abrir uma solicitação pull ou problema.
Ao implementar soluções, é essencial seguir as práticas recomendadas para garantir segurança, confiabilidade e observabilidade. Abaixo estão algumas recomendações, mas observe que esta lista não é exaustiva e pode haver mais a considerar.
Para aprimorar a segurança dos dados, considere habilitar a criptografia usando uma chave gerenciada pelo cliente (CMK) armazenada no AWS Key Management Service (KMS) para vários serviços. Isso fornece uma camada adicional de segurança, permitindo controlar o acesso às chaves de criptografia.
A implementação de mecanismos robustos de observabilidade e registro é crucial para monitoramento, solução de problemas e auditoria de segurança.
AccessLogSetting
para registrar solicitações de acesso.Para funções Lambda executadas em uma nuvem privada virtual (VPC), garanta a configuração adequada dos endpoints VPC para facilitar a comunicação segura e eficiente. Isso pode ajudar a manter todas as chamadas internas à VPC e evitar o uso de endpoints públicos da AWS.
Ao implementar essas práticas recomendadas, você pode melhorar significativamente a segurança, a confiabilidade e a observabilidade do seu ambiente. Sempre considere as necessidades específicas da sua aplicação e infraestrutura para determinar as configurações mais adequadas.