Dies ist ein Beispiel-Notebook und eine Webanwendung, die zeigt, wie Amazon Bedrock und Titan mit Neo4j verwendet werden können. Wir werden untersuchen, wie wir generative KI nutzen können, um einen Wissensgraphen in Neo4j zu erstellen und zu nutzen.
Der von uns verwendete Datensatz stammt aus dem EDGAR-System der SEC. Es wurde mit diesen Skripten heruntergeladen.
Der Datenfluss in dieser Demo besteht aus zwei Teilen:
Um mit der Einrichtung der Demo zu beginnen, klonen Sie dieses Repo in eine SageMaker Studio-Umgebung und führen Sie dann die Notebooks mit den Nummern 1 und 2 durch.
Für diese Demo ist eine Neo4j-Instanz erforderlich. Sie können dies mithilfe der AWS Marketplace-Liste hier bereitstellen.
Die AWS-Identität, die Sie von Ihrer Notebook-Umgebung übernehmen (die Studio-/Notebook-Ausführungsrolle von SageMaker oder eine Rolle oder ein IAM-Benutzer für selbstverwaltete Notebooks) muss über ausreichende AWS IAM-Berechtigungen verfügen, um den Amazon Bedrock-Service aufzurufen.
Um Bedrock Zugriff auf Ihre Identität zu gewähren, können Sie:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockFullAccess",
"Effect": "Allow",
"Action": ["bedrock:*"],
"Resource": "*"
}
]
}
️ Hinweis: Bei Amazon SageMaker ist Ihre Notebook-Ausführungsrolle normalerweise von dem Benutzer oder der Rolle getrennt , mit dem Sie sich bei der AWS-Konsole anmelden. Wenn Sie die AWS-Konsole für Amazon Bedrock erkunden möchten, müssen Sie auch Ihrem Konsolenbenutzer/Ihrer Konsolenrolle Berechtigungen erteilen.
Weitere Informationen zu den differenzierten Aktions- und Ressourcenberechtigungen in Bedrock finden Sie im Bedrock Developer Guide.
Die UI-Anwendung basiert auf Streamlit. In diesem Beispiel zeigen wir, wie es auf einer AWS EC2 Instance (EC2)-VM ausgeführt wird. Stellen Sie zunächst eine VM bereit. Mit dieser Anleitung können Sie eine Amazon Linux-VM ausgliedern
Wir werden AWS CLI verwenden. Sie müssen diese Schritte ausführen, um die Anmeldeinformationen für die Verwendung der CLI-Option zu konfigurieren
Melden Sie sich mit AWS-Anmeldeinformationen über die aws
CLI an.
aws configure
Melden Sie sich als Nächstes mit AWS CLI bei der neuen VM-Instanz an:
export INSTANCE_ID=
aws ec2-instance-connect ssh --instance-id $INSTANCE_ID
Wir werden die Anwendung auf Port 80 ausführen. Dafür ist Root-Zugriff erforderlich, also zuerst:
sudo su
Dann müssen Sie Git installieren und dieses Repo klonen:
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
Lassen Sie uns zuerst Python und Pip installieren:
yum install -y python
yum install -y pip
Erstellen wir nun eine virtuelle Umgebung, um unsere Python-Umgebung zu isolieren und zu aktivieren
yum install -y virtualenv
python3 -m venv /app/venv/genai
source /app/venv/genai/bin/activate
So installieren Sie Streamlit und andere Abhängigkeiten:
cd ui
pip install -r requirements.txt
Überprüfen Sie, ob streamlit
Befehl über PATH zugänglich ist, indem Sie diesen Befehl ausführen:
streamlit --version
Wenn nicht, müssen Sie die streamlit
Binärdatei wie folgt zur PATH-Variablen hinzufügen:
export PATH="/app/venv/genai/bin:$PATH"
Als Nächstes müssen Sie eine Secrets-Datei erstellen, die die App verwenden kann. Öffnen Sie die Datei und bearbeiten Sie sie:
cd streamlit
cd .streamlit
cp secrets.toml.example secrets.toml
vi secrets.toml
Sie müssen diese Datei nun bearbeiten, um Ihre Anmeldeinformationen widerzuspiegeln. Die Datei enthält die folgenden Variablen:
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"
Jetzt können wir die App mit den folgenden Befehlen ausführen:
cd ..
streamlit run Home.py --server.port=80
Optional können Sie die App in einer anderen Bildschirmsitzung ausführen, um sicherzustellen, dass die App auch dann weiter ausgeführt wird, wenn Sie die Verbindung zur ec2-Instanz trennen:
screen -S run_app
cd ..
streamlit run Home.py --server.port=80
Sie können Ctrl+a
d
verwenden, um den Bildschirm zu verlassen, während die App noch läuft, und mit screen -r
wieder zum Bildschirm zurückzukehren. Um die Bildschirmsitzung zu beenden, verwenden Sie den Befehl screen -XS run_app quit
.
Auf der VM zur Ausführung auf Port 80:
Nach der Bereitstellung können Sie das Dashboard und die Chat-Benutzeroberfläche sehen:
Über die Chat-Benutzeroberfläche können Sie Fragen stellen wie: