這是一個範例筆記本和 Web 應用程序,展示如何將 Amazon Bedrock 和 Titan 與 Neo4j 結合使用。我們將探索如何利用生成式 AI 在 Neo4j 中建立和使用知識圖。
我們使用的資料集來自 SEC 的 EDGAR 系統。它是使用這些腳本下載的。
此演示中的資料流由兩部分組成:
若要開始設定演示,請將此儲存庫複製到 SageMaker Studio 環境中,然後執行編號為 1 和 2 的筆記本。
該演示需要 Neo4j 實例。您可以使用此處的 AWS Marketplace 清單進行部署。
您在筆電環境中採用的 AWS 身分(可以是 SageMaker 中的Studio/筆記型電腦執行角色,也可以是自我管理筆記型電腦的角色或 IAM 使用者)必須具有足夠的 AWS IAM 權限才能呼叫 Amazon Bedrock 服務。
要授予 Bedrock 存取您身分的權限,您可以:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockFullAccess",
"Effect": "Allow",
"Action": ["bedrock:*"],
"Resource": "*"
}
]
}
️ 注意:使用 Amazon SageMaker,您的筆電執行角色通常與您登入 AWS 主控台所使用的使用者或角色分開。如果您想探索 Amazon Bedrock 的 AWS 控制台,您還需要向您的控制台使用者/角色授予權限。
有關 Bedrock 中細粒度操作和資源權限的更多信息,請查看 Bedrock 開發人員指南。
UI 應用程式基於 Streamlit。在此範例中,我們將展示如何在 AWS EC2 執行個體 (EC2) 虛擬機器上執行它。首先,部署虛擬機器。您可以使用本指南來剝離 Amazon Linux VM
我們將使用 AWS CLI。您需要按照以下步驟設定憑證才能使用 CLI 選項
透過aws
cli 使用 AWS 憑證登入。
aws configure
接下來,使用 AWS CLI 登入新的 VM 實例:
export INSTANCE_ID=
aws ec2-instance-connect ssh --instance-id $INSTANCE_ID
我們將在連接埠 80 上執行應用程式。
sudo su
然後你需要安裝 git 並克隆這個儲存庫:
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
我們先安裝 python 和 pip:
yum install -y python
yum install -y pip
現在,讓我們建立一個虛擬環境來隔離我們的 Python 環境並啟動它
yum install -y virtualenv
python3 -m venv /app/venv/genai
source /app/venv/genai/bin/activate
要安裝 Streamlit 和其他依賴項:
cd ui
pip install -r requirements.txt
透過執行以下命令檢查是否可以從 PATH 存取streamlit
命令:
streamlit --version
如果沒有,您需要將streamlit
二進位檔案新增至 PATH 變量,如下所示:
export PATH="/app/venv/genai/bin:$PATH"
接下來,您需要建立一個機密文件供應用程式使用。打開文件並編輯它:
cd streamlit
cd .streamlit
cp secrets.toml.example secrets.toml
vi secrets.toml
現在您需要編輯該文件以反映您的憑證。該文件具有以下變數:
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"
現在我們可以使用以下命令運行應用程式:
cd ..
streamlit run Home.py --server.port=80
或者,您可以在另一個螢幕會話中運行應用程序,以確保即使您與 ec2 實例斷開連接,應用程式也能繼續運行:
screen -S run_app
cd ..
streamlit run Home.py --server.port=80
您可以使用Ctrl+a
d
在應用程式仍在運行的情況下退出螢幕,然後使用screen -r
返回螢幕。若要終止 screen 會話,請使用指令screen -XS run_app quit
。
在要在連接埠 80 上執行的 VM 上:
部署後,您將能夠看到儀表板和聊天 UI:
在聊天 UI 中,您可以提出以下問題: