Este é um exemplo de notebook e aplicativo da web que mostra como Amazon Bedrock e Titan podem ser usados com Neo4j. Exploraremos como aproveitar a IA generativa para construir e consumir um gráfico de conhecimento no Neo4j.
O conjunto de dados que usamos é do sistema EDGAR da SEC. Ele foi baixado usando esses scripts.
O fluxo de dados nesta demonstração consiste em duas partes:
Para começar a configurar a demonstração, clone este repositório em um ambiente SageMaker Studio e, em seguida, execute os notebooks numerados 1 e 2.
Esta demonstração requer uma instância do Neo4j. Você pode implantar isso usando a listagem do AWS Marketplace aqui.
A identidade da AWS que você assume em seu ambiente de notebook (que é a função de execução do Studio/notebook do SageMaker ou pode ser uma função ou usuário do IAM para notebooks autogerenciados) deve ter permissões de IAM da AWS suficientes para chamar o serviço Amazon Bedrock.
Para conceder à Bedrock acesso à sua identidade, você pode:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockFullAccess",
"Effect": "Allow",
"Action": ["bedrock:*"],
"Resource": "*"
}
]
}
️ Observação: com o Amazon SageMaker, a função de execução do notebook normalmente será separada do usuário ou da função com a qual você faz login no Console AWS. Se quiser explorar o Console AWS para Amazon Bedrock, você também precisará conceder permissões ao usuário/função do console.
Para obter mais informações sobre ações refinadas e permissões de recursos no Bedrock, consulte o Guia do desenvolvedor do Bedrock.
O aplicativo UI é baseado em Streamlit. Neste exemplo, mostraremos como executá-lo em uma VM AWS EC2 Instance (EC2). Primeiro, implante uma VM. Você pode usar este guia para criar uma VM Amazon Linux
Vamos usar AWS CLI. Você precisa seguir estas etapas para configurar as credenciais para usar a opção CLI
Faça login usando credenciais da AWS por meio do aws
cli.
aws configure
Em seguida, faça login na nova instância de VM usando AWS CLI:
export INSTANCE_ID=
aws ec2-instance-connect ssh --instance-id $INSTANCE_ID
Estaremos executando o aplicativo na porta 80. Isso requer acesso root, então primeiro:
sudo su
Então você precisará instalar o git e clonar este repositório:
yum install -y git
mkdir -p /app
cd /app
git clone https://github.com/neo4j-partners/neo4j-generative-ai-aws.git
cd neo4j-generative-ai-aws
Vamos instalar python e pip primeiro:
yum install -y python
yum install -y pip
Agora, vamos criar um ambiente virtual para isolar nosso ambiente Python e ativá-lo
yum install -y virtualenv
python3 -m venv /app/venv/genai
source /app/venv/genai/bin/activate
Para instalar o Streamlit e outras dependências:
cd ui
pip install -r requirements.txt
Verifique se o comando streamlit
está acessível em PATH executando este comando:
streamlit --version
Caso contrário, você precisa adicionar o binário streamlit
à variável PATH como abaixo:
export PATH="/app/venv/genai/bin:$PATH"
Em seguida, você precisará criar um arquivo de segredos para uso do aplicativo. Abra o arquivo e edite-o:
cd streamlit
cd .streamlit
cp secrets.toml.example secrets.toml
vi secrets.toml
Agora você precisará editar esse arquivo para refletir suas credenciais. O arquivo possui as seguintes variáveis:
SERVICE_NAME = "" #e.g. bedrock-runtime
REGION_NAME = "" #e.g. us-west-2
CYPHER_MODEL = "" #e.g. anthropic.claude-v2
ACCESS_KEY = "AWS ACCESS KEY" #provide the access key with bedrock access
SECRET_KEY = "AWS SECRET KEY" #provide the secret key with bedrock access
NEO4J_HOST = "" #NEO4J_AURA_DS_URL
NEO4J_PORT = "7687"
NEO4J_USER = "neo4j"
NEO4J_PASSWORD = "" #Neo4j password
NEO4J_DB = "neo4j"
Agora podemos executar o aplicativo com os comandos:
cd ..
streamlit run Home.py --server.port=80
Opcionalmente, você pode executar o aplicativo em outra sessão de tela para garantir que o aplicativo continue em execução mesmo se você se desconectar da instância ec2:
screen -S run_app
cd ..
streamlit run Home.py --server.port=80
Você pode usar Ctrl+a
d
para sair da tela com o aplicativo ainda em execução e voltar à tela com screen -r
. Para encerrar a sessão da tela, use o comando screen -XS run_app quit
.
Na VM para execução na porta 80:
Depois de implantado, você poderá ver o painel e a interface do bate-papo:
Na interface do bate-papo, você pode fazer perguntas como: