Ini adalah contoh buku catatan dan aplikasi web yang menunjukkan bagaimana Amazon Bedrock dan Titan dapat digunakan dengan Neo4j. Kami akan mempelajari cara memanfaatkan AI generatif untuk membangun dan menggunakan grafik pengetahuan di Neo4j.
Dataset yang kami gunakan berasal dari sistem EDGAR SEC. Itu diunduh menggunakan skrip ini.
Aliran data dalam demo ini terdiri dari dua bagian:
Untuk mulai menyiapkan demo, kloning repo ini ke lingkungan SageMaker Studio lalu jalankan melalui notebook bernomor 1 dan 2.
Demo ini memerlukan instance Neo4j. Anda dapat menerapkannya menggunakan daftar AWS Marketplace di sini.
Identitas AWS yang Anda ambil dari lingkungan notebook Anda (yang merupakan Peran Eksekusi Studio/notebook dari SageMaker, atau dapat berupa peran atau Pengguna IAM untuk notebook yang dikelola sendiri), harus memiliki izin AWS IAM yang memadai untuk memanggil layanan Amazon Bedrock.
Untuk memberikan akses Bedrock ke identitas Anda, Anda dapat:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockFullAccess",
"Effect": "Allow",
"Action": ["bedrock:*"],
"Resource": "*"
}
]
}
️ Catatan: Dengan Amazon SageMaker, peran eksekusi notebook Anda biasanya akan terpisah dari pengguna atau peran yang Anda gunakan untuk masuk ke Konsol AWS. Jika Anda ingin menjelajahi Konsol AWS untuk Amazon Bedrock, Anda juga harus memberikan izin kepada pengguna/peran Konsol Anda.
Untuk informasi lebih lanjut tentang tindakan terperinci dan izin sumber daya di Bedrock, lihat Panduan Pengembang Bedrock.
Aplikasi UI didasarkan pada Streamlit. Dalam contoh ini kami akan menunjukkan cara menjalankannya pada VM Instans AWS EC2 (EC2). Pertama, terapkan VM. Anda dapat menggunakan panduan ini untuk melakukan spin off VM Amazon Linux
Kami akan menggunakan AWS CLI. Anda perlu mengikuti langkah-langkah ini untuk mengonfigurasi kredensial untuk menggunakan opsi CLI
Masuk menggunakan kredensial AWS melalui aws
cli.
aws configure
Selanjutnya, login ke instans VM baru menggunakan AWS CLI:
export INSTANCE_ID=
aws ec2-instance-connect ssh --instance-id $INSTANCE_ID
Kita akan menjalankan aplikasi pada port 80. Itu memerlukan akses root, jadi pertama-tama:
sudo su
Maka Anda harus menginstal git dan mengkloning repo ini:
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
Mari kita instal python & pip terlebih dahulu:
yum install -y python
yum install -y pip
Sekarang, mari buat Lingkungan Virtual untuk mengisolasi lingkungan Python kita dan mengaktifkannya
yum install -y virtualenv
python3 -m venv /app/venv/genai
source /app/venv/genai/bin/activate
Untuk menginstal Streamlit dan dependensi lainnya:
cd ui
pip install -r requirements.txt
Periksa apakah perintah streamlit
dapat diakses dari PATH dengan menjalankan perintah ini:
streamlit --version
Jika tidak, Anda perlu menambahkan biner streamlit
ke variabel PATH seperti di bawah ini:
export PATH="/app/venv/genai/bin:$PATH"
Selanjutnya Anda harus membuat file rahasia agar aplikasi dapat digunakan. Buka file dan edit:
cd streamlit
cd .streamlit
cp secrets.toml.example secrets.toml
vi secrets.toml
Anda sekarang perlu mengedit file itu untuk mencerminkan kredensial Anda. File tersebut memiliki variabel berikut:
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"
Sekarang kita dapat menjalankan aplikasi dengan perintah:
cd ..
streamlit run Home.py --server.port=80
Secara opsional, Anda dapat menjalankan aplikasi di sesi layar lain untuk memastikan aplikasi terus berjalan meskipun Anda memutuskan sambungan dari instans EC2:
screen -S run_app
cd ..
streamlit run Home.py --server.port=80
Anda dapat menggunakan Ctrl+a
d
untuk keluar dari layar dengan aplikasi masih berjalan dan masuk kembali ke layar dengan screen -r
. Untuk menghentikan sesi layar, gunakan perintah screen -XS run_app quit
.
Pada VM yang akan dijalankan pada port 80:
Setelah diterapkan, Anda akan dapat melihat Dasbor dan UI Obrolan:
Dari UI Obrolan, Anda dapat mengajukan pertanyaan seperti: