Il s'agit d'un exemple de bloc-notes et d'application Web qui montre comment Amazon Bedrock et Titan peuvent être utilisés avec Neo4j. Nous explorerons comment tirer parti de l'IA générative pour créer et utiliser un graphe de connaissances dans Neo4j.
L'ensemble de données que nous utilisons provient du système EDGAR de la SEC. Il a été téléchargé à l'aide de ces scripts.
Le flux de données dans cette démo se compose de deux parties :
Pour commencer à configurer la démo, clonez ce dépôt dans un environnement SageMaker Studio, puis exécutez les blocs-notes numérotés 1 et 2.
Cette démo nécessite une instance Neo4j. Vous pouvez le déployer à l'aide de la liste AWS Marketplace ici.
L'identité AWS que vous assumez à partir de votre environnement de notebook (qui est le rôle d'exécution Studio/notebook de SageMaker, ou peut être un rôle ou un utilisateur IAM pour les notebooks autogérés) doit disposer d'autorisations AWS IAM suffisantes pour appeler le service Amazon Bedrock.
Pour accorder à Bedrock l'accès à votre identité, vous pouvez :
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockFullAccess",
"Effect": "Allow",
"Action": ["bedrock:*"],
"Resource": "*"
}
]
}
️ Remarque : avec Amazon SageMaker, votre rôle d'exécution de bloc-notes sera généralement distinct de l'utilisateur ou du rôle avec lequel vous vous connectez à la console AWS. Si vous souhaitez explorer la console AWS pour Amazon Bedrock, vous devrez également accorder des autorisations à votre utilisateur/rôle de console.
Pour plus d'informations sur les actions détaillées et les autorisations de ressources dans Bedrock, consultez le Guide du développeur Bedrock.
L'application d'interface utilisateur est basée sur Streamlit. Dans cet exemple, nous allons montrer comment l'exécuter sur une machine virtuelle AWS EC2 Instance (EC2). Tout d’abord, déployez une VM. Vous pouvez utiliser ce guide pour créer une machine virtuelle Amazon Linux
Nous allons utiliser AWS CLI. Vous devez suivre ces étapes pour configurer les informations d'identification afin d'utiliser l'option CLI
Connectez-vous à l'aide des informations d'identification AWS via aws
cli.
aws configure
Ensuite, connectez-vous à la nouvelle instance de VM à l'aide de l'AWS CLI :
export INSTANCE_ID=
aws ec2-instance-connect ssh --instance-id $INSTANCE_ID
Nous allons exécuter l'application sur le port 80. Cela nécessite un accès root, donc d'abord :
sudo su
Ensuite, vous devrez installer git et cloner ce dépôt :
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
Installons d'abord python et pip :
yum install -y python
yum install -y pip
Maintenant, créons un environnement virtuel pour isoler notre environnement Python et l'activer
yum install -y virtualenv
python3 -m venv /app/venv/genai
source /app/venv/genai/bin/activate
Pour installer Streamlit et d'autres dépendances :
cd ui
pip install -r requirements.txt
Vérifiez si la commande streamlit
est accessible depuis PATH en exécutant cette commande :
streamlit --version
Sinon, vous devez ajouter le binaire streamlit
à la variable PATH comme ci-dessous :
export PATH="/app/venv/genai/bin:$PATH"
Ensuite, vous devrez créer un fichier secret que l'application pourra utiliser. Ouvrez le fichier et modifiez-le :
cd streamlit
cd .streamlit
cp secrets.toml.example secrets.toml
vi secrets.toml
Vous devrez maintenant modifier ce fichier pour refléter vos informations d'identification. Le fichier contient les variables suivantes :
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"
Nous pouvons maintenant exécuter l'application avec les commandes :
cd ..
streamlit run Home.py --server.port=80
Vous pouvez éventuellement exécuter l'application dans une autre session d'écran pour vous assurer qu'elle continue de s'exécuter même si vous vous déconnectez de l'instance ec2 :
screen -S run_app
cd ..
streamlit run Home.py --server.port=80
Vous pouvez utiliser Ctrl+a
d
pour quitter l'écran avec l'application toujours en cours d'exécution et revenir à l'écran avec screen -r
. Pour arrêter la session d'écran, utilisez la commande screen -XS run_app quit
.
Sur la VM à exécuter sur le port 80 :
Une fois déployé, vous pourrez voir le tableau de bord et l'interface utilisateur de chat :
Depuis l'interface utilisateur de Chat, vous pouvez poser des questions telles que :