APP LLM de resumo de texto
- Licença: (MIT), Copyright (C) 2024, Autor Phil Chen
- Este é um exemplo de aplicação, o autor deste repositório não se responsabiliza por danos ou perdas decorrentes do uso ou incapacidade de uso do código.
Descrição
Este repositório é um aplicativo de exemplo que mostra o resumo de texto aproveitando o modelo Minstral Large disponível no AWS Bedrock. Para a UI frontend, Streamlit está sendo usado.
Pré-requisitos para configuração local do macOS
- Conta de serviços da Amazon Web
- Habilite o acesso ao Amazon Bedrock (especificamente Mistral-Large), consulte: Gerenciar o acesso aos modelos de base do Amazon Bedrock
- AWS CLI instalada
- Usuário AWS CLI IAM com acesso completo ao Amazon Bedrock
- Verificado em Python 3.10, 3.11, 3.12
- Anaconda ou Miniconda instalada
- A região padrão da AWS está definida como us-east-1, você pode alterar a região no arquivo
text_summarization_llm_app.py
em region_name='us-east-1'
Pré-requisitos para configuração da instância do EC2 Ubuntu Linux
- Conta de serviços da Amazon Web
- Habilite o acesso ao Amazon Bedrock (especificamente Mistral-Large), consulte: Gerenciar o acesso aos modelos de base do Amazon Bedrock
- Função de instância EC2 com política AmazonBedrockFullAccess anexada (observe que você pode tornar isso mais seguro criando uma política personalizada)
- Verificado em Python 3.10, 3.11, 3.12
- Verificado na instância EC2 Ubuntu 22.04 e Ubuntu 24.04
- Virtualenv
- A região padrão da AWS está definida como us-east-1, você pode alterar a região no arquivo
text_summarization_llm_app.py
em region_name='us-east-1'
Custo de recursos da AWS
Tal como acontece com a maioria dos serviços AWS, você incorrerá em custos de uso.
- Preço:
- https://aws.amazon.com/bedrock/pricing/
- https://aws.amazon.com/ec2/pricing/on-demand/
configuração local do laptop macOS
conda create -n "text-summarization-llm-app" python=3.11.0
git clone [email protected]:nethacker/text-summarization-llm-app.git
cd text-summarization-llm-app
pip install -r requirements.txt
Execute a configuração local do laptop macOS
Para executar o resumo de texto aproveitando o AWS Bedrock (Mistral-Large)
streamlit run text_summarization_llm_app.py
Você pode acessar o aplicativo em http://localhost:8501/
Etapas de configuração da instância Linux do EC2 Ubuntu
(supõe que você tenha um usuário do Ubuntu com/home/ubuntu)
Instale algumas dependências
sudo apt -y update
sudo apt -y install build-essential openssl
sudo apt -y install libpq-dev libssl-dev libffi-dev zlib1g-dev
sudo apt -y install python3-pip python3-dev
sudo apt -y install nginx
sudo apt -y install virtualenvwrapper
Clonar o repositório GIT
cd /home/ubuntu
git clone https://github.com/nethacker/text-summarization-llm-app.git
Configure o ambiente Python
virtualenv text-summarization-llm-app_env
source text-summarization-llm-app_env/bin/activate
Instalar as dependências do pacote do aplicativo Text Summarization LLM
cd /home/ubuntu/text-summarization-llm-app
pip install -r requirements.txt
Configure o systemd para daemonizar o aplicativo Text Summarization LLM (porta 8080)
sudo cp systemd/text-summarization-llm-app.service /etc/systemd/system/
sudo systemctl start text-summarization-llm-app
sudo systemctl enable text-summarization-llm-app.service
Instale o NGINX para ajudar a dimensionar e gerenciar conexões (porta 80)
sudo cp nginx/nginx_text-summarization-llm-app.conf /etc/nginx/sites-available/nginx_text-summarization-llm-app.conf
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/nginx_text-summarization-llm-app.conf /etc/nginx/sites-enabled
sudo systemctl restart nginx
Você pode acessar o aplicativo em http://{yourhost}
.
Notas
- Certifique-se de abrir a porta 80 no seu grupo de segurança EC2 associado à instância.
- Para HTTPS (TLS), você pode usar AWS ALB ou AWS CloudFront
- Este aplicativo não leva em consideração controles de segurança, isso é de sua responsabilidade.
- Leia as perguntas frequentes do Amazon Bedrock para perguntas gerais sobre os recursos do AWS LLM usados.