Este es un cuaderno de muestra y una aplicación web que muestra cómo se pueden utilizar Amazon Bedrock y Titan con Neo4j. Exploraremos cómo aprovechar la IA generativa para crear y consumir un gráfico de conocimiento en Neo4j.
El conjunto de datos que estamos utilizando proviene del sistema EDGAR de la SEC. Se descargó usando estos scripts.
El flujo de datos de esta demostración consta de dos partes:
Para comenzar a configurar la demostración, clone este repositorio en un entorno de SageMaker Studio y luego ejecute los cuadernos numerados 1 y 2.
Esta demostración requiere una instancia de Neo4j. Puede implementarlo utilizando la lista de AWS Marketplace aquí.
La identidad de AWS que asume desde su entorno de notebook (que es el rol de ejecución de Studio/notebook de SageMaker, o podría ser un rol o usuario de IAM para notebooks autoadministrados) debe tener suficientes permisos de AWS IAM para llamar al servicio Amazon Bedrock.
Para otorgarle a Bedrock acceso a su identidad, puede:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockFullAccess",
"Effect": "Allow",
"Action": ["bedrock:*"],
"Resource": "*"
}
]
}
️ Nota: Con Amazon SageMaker, su función de ejecución de cuaderno normalmente estará separada del usuario o función con el que inicia sesión en la consola de AWS. Si desea explorar la consola de AWS para Amazon Bedrock, también deberá otorgar permisos al usuario/rol de su consola.
Para obtener más información sobre los permisos detallados de acciones y recursos en Bedrock, consulte la Guía para desarrolladores de Bedrock.
La aplicación UI está basada en Streamlit. En este ejemplo, mostraremos cómo ejecutarlo en una máquina virtual de instancia AWS EC2 (EC2). Primero, implemente una máquina virtual. Puede utilizar esta guía para escindir una máquina virtual de Amazon Linux
Usaremos AWS CLI. Debe seguir estos pasos para configurar las credenciales para usar la opción CLI
Inicie sesión con las credenciales de AWS a través de aws
cli.
aws configure
A continuación, inicie sesión en la nueva instancia de VM mediante AWS CLI:
export INSTANCE_ID=
aws ec2-instance-connect ssh --instance-id $INSTANCE_ID
Ejecutaremos la aplicación en el puerto 80. Eso requiere acceso de root, así que primero:
sudo su
Luego necesitarás instalar git y clonar este repositorio:
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
Primero instalemos python y pip:
yum install -y python
yum install -y pip
Ahora, creemos un entorno virtual para aislar nuestro entorno Python y activarlo.
yum install -y virtualenv
python3 -m venv /app/venv/genai
source /app/venv/genai/bin/activate
Para instalar Streamlit y otras dependencias:
cd ui
pip install -r requirements.txt
Compruebe si se puede acceder al comando streamlit
desde PATH ejecutando este comando:
streamlit --version
De lo contrario, debe agregar el binario streamlit
a la variable PATH como se muestra a continuación:
export PATH="/app/venv/genai/bin:$PATH"
A continuación, deberá crear un archivo secreto para que lo utilice la aplicación. Abra el archivo y edítelo:
cd streamlit
cd .streamlit
cp secrets.toml.example secrets.toml
vi secrets.toml
Ahora deberá editar ese archivo para reflejar sus credenciales. El archivo tiene las siguientes variables:
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"
Ahora podemos ejecutar la aplicación con los comandos:
cd ..
streamlit run Home.py --server.port=80
Opcionalmente, puede ejecutar la aplicación en otra sesión de pantalla para garantizar que continúe ejecutándose incluso si se desconecta de la instancia ec2:
screen -S run_app
cd ..
streamlit run Home.py --server.port=80
Puede usar Ctrl+a
d
para salir de la pantalla con la aplicación aún ejecutándose y volver a ingresar a la pantalla con screen -r
. Para finalizar la sesión de pantalla, use el comando screen -XS run_app quit
.
En la VM para ejecutar en el puerto 80:
Una vez implementado, podrá ver el panel y la interfaz de usuario del chat:
Desde la interfaz de usuario del chat, puedes hacer preguntas como: