Это пример блокнота и веб-приложения, который показывает, как Amazon Bedrock и Titan можно использовать с Neo4j. Мы рассмотрим, как использовать генеративный искусственный интеллект для создания и использования графа знаний в Neo4j.
Набор данных, который мы используем, взят из системы EDGAR SEC. Скачивалось с помощью этих скриптов.
Поток данных в этой демонстрации состоит из двух частей:
Чтобы приступить к настройке демо-версии, клонируйте этот репозиторий в среду SageMaker Studio, а затем просмотрите блокноты с номерами 1 и 2.
Для этой демонстрации требуется экземпляр Neo4j. Вы можете развернуть это, используя список AWS Marketplace здесь.
Идентификатор AWS, который вы принимаете из среды своего блокнота (который представляет собой роль выполнения Studio/блокнота из SageMaker или может быть ролью или пользователем IAM для самоуправляемых блокнотов), должен иметь достаточные разрешения AWS IAM для вызова сервиса Amazon Bedrock.
Чтобы предоставить Bedrock доступ к вашей личности, вы можете:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockFullAccess",
"Effect": "Allow",
"Action": ["bedrock:*"],
"Resource": "*"
}
]
}
️ Примечание. В Amazon SageMaker роль выполнения вашего блокнота обычно будет отделена от пользователя или роли, с помощью которой вы входите в консоль AWS. Если вы хотите изучить консоль AWS для Amazon Bedrock, вам также необходимо предоставить разрешения пользователю/роли консоли.
Дополнительную информацию о детальных действиях и разрешениях на ресурсы в Bedrock можно найти в Руководстве разработчика Bedrock.
Приложение пользовательского интерфейса основано на Streamlit. В этом примере мы собираемся показать, как запустить его на виртуальной машине AWS EC2 Instance (EC2). Сначала разверните виртуальную машину. Вы можете использовать это руководство для выделения виртуальной машины Amazon Linux.
Мы собираемся использовать AWS CLI. Вам необходимо выполнить следующие шаги, чтобы настроить учетные данные для использования опции CLI.
Войдите в систему, используя учетные данные AWS через интерфейс aws
.
aws configure
Затем войдите в новый экземпляр виртуальной машины с помощью AWS CLI:
export INSTANCE_ID=
aws ec2-instance-connect ssh --instance-id $INSTANCE_ID
Мы собираемся запустить приложение на порту 80. Для этого требуется root-доступ, поэтому сначала:
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
Проверьте, доступна ли streamlit
из PATH, выполнив эту команду:
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 -XS run_app quit
.
На виртуальной машине для запуска на порту 80:
После развертывания вы сможете увидеть панель управления и пользовательский интерфейс чата:
В пользовательском интерфейсе чата вы можете задавать такие вопросы, как: