Приложение на базе многомодального RAG: Amazon Bedrock

Сегодня организациям приходится иметь дело с огромными объемами неструктурированных данных, которые существуют в различных форматах, включая документы, изображения, аудиофайлы и видеофайлы. В прошлом извлечение значимых сведений из данных в этих различных форматах требовало сложных процессов обработки и значительных усилий по разработке. Однако технология генеративного искусственного интеллекта (Generative AI) радикально меняет эту область, предлагая мощные возможности для автоматической обработки, анализа и извлечения сведений из этих различных форматов документов, что значительно сокращает объем ручной работы и повышает точность и масштабируемость.

С помощью Amazon Bedrock Data Automation и Amazon Bedrock Knowledge Bases теперь можно с легкостью создавать мощные многомодальные RAG-приложения. Вместе они позволяют организациям эффективно обрабатывать, систематизировать и извлекать информацию из своего многомодального контента, изменяя способ управления и использования неструктурированных данных.

В этой статье описывается создание полнофункционального приложения, которое использует Amazon Bedrock Data Automation для обработки многомодального контента, хранит извлеченную информацию в Amazon Bedrock Knowledge Bases и обеспечивает интерфейс вопросов и ответов на естественном языке на основе RAG.

Примеры практического применения

Интеграция Amazon Bedrock Data Automation и Amazon Bedrock Knowledge Bases предоставляет мощное решение для работы с большими объемами неструктурированных данных в различных отраслях, например:

  • В сфере здравоохранения организациям необходимо обрабатывать огромные объемы записей пациентов, включая медицинские формы, диагностические изображения и записи консультаций. Amazon Bedrock Data Automation может автоматически извлекать и структурировать эту информацию, а Amazon Bedrock Knowledge Bases позволяет медицинским работникам использовать запросы на естественном языке, например: «Каким было последнее измерение артериального давления у пациента?» или «Показать историю лечения пациента с диабетом».
  • Финансовые учреждения ежедневно обрабатывают тысячи документов, от заявок на кредит до финансовых отчетов. Amazon Bedrock Data Automation может извлекать ключевые финансовые показатели и информацию о соответствии требованиям, а Amazon Bedrock Knowledge Bases позволяет аналитикам задавать такие вопросы, как: «Какие факторы риска упоминаются в последнем квартальном отчете?» или «Показать все заявки на кредит с высоким кредитным рейтингом».
  • Юридическим фирмам необходимо обрабатывать большое количество дел, содержащих судебные документы, фотографии доказательств и свидетельские показания. Amazon Bedrock Data Automation может обрабатывать эти различные источники, а Amazon Bedrock Knowledge Bases позволяет юристам запрашивать: «Какие доказательства были представлены относительно инцидента 15 марта?» или «Найти все свидетельские показания, в которых упоминается обвиняемый».
  • Медиакомпании могут использовать эту интеграцию для реализации интеллектуальной контекстной рекламы. Amazon Bedrock Data Automation обрабатывает видеоконтент, субтитры и аудио для понимания контекста сцены, диалогов и эмоций, а также анализирует рекламные активы и требования рекламных кампаний. Затем Amazon Bedrock Knowledge Bases позволяет выполнять сложные запросы для сопоставления рекламы с подходящими моментами контента, например: «Найти сцены позитивных мероприятий на открытом воздухе, содержащие рекламу спортивного оборудования» или «Определить рекламные ролики туристических компаний, в которых обсуждается индустрия туризма». Такое интеллектуальное контекстное соответствие обеспечивает более релевантную и эффективную рекламу, сохраняя при этом безопасность бренда.

Эти примеры показывают, как сочетание функций извлечения Amazon Bedrock Data Automation с запросами на естественном языке Amazon Bedrock Knowledge Bases может изменить способ взаимодействия организаций со своими неструктурированными данными.

Обзор решения

Это комплексное решение демонстрирует расширенные возможности Amazon Bedrock в обработке и анализе многомодального контента (документов, изображений, аудио- и видеофайлов), используя три ключевых компонента: Amazon Bedrock Data Automation, Amazon Bedrock Knowledge Bases и базовые модели, предоставляемые Amazon Bedrock. Пользователи могут загружать различные типы контента, включая аудиофайлы, изображения, видео или PDF-файлы, для автоматической обработки и анализа.

При загрузке контента Amazon Bedrock Data Automation обрабатывает его с помощью стандартных или настраиваемых схем для извлечения ценной информации. Извлеченная информация хранится в формате JSON в корзине Amazon Simple Storage Service (Amazon S3), а состояние задачи отслеживается с помощью Amazon EventBridge и сохраняется в Amazon DynamoDB. Решение выполняет пользовательский анализ извлеченного JSON для создания документов, совместимых с базой знаний, которые затем хранятся в Amazon Bedrock Knowledge Bases и индексируются.

Благодаря интуитивно понятному пользовательскому интерфейсу решение отображает как загруженный контент, так и извлеченную из него информацию. Пользователи могут взаимодействовать с обработанными данными с помощью системы вопросов и ответов на основе генерации на основе расширенного поиска (RAG), которая поддерживается базовой моделью Amazon Bedrock. Такой интегрированный подход позволяет организациям эффективно обрабатывать, анализировать и получать информацию из различных форматов контента, используя при этом надежную и масштабируемую инфраструктуру, развернутую с помощью AWS Cloud Development Kit (AWS CDK).

Архитектура

На следующей схеме архитектуры показан процесс решения:

  1. Пользователь взаимодействует с внешним приложением, проходя аутентификацию с помощью Amazon Cognito.
  2. Запросы API обрабатываются Amazon API Gateway и функциями AWS Lambda.
  3. Файлы загружаются в корзину S3 для обработки.
  4. Amazon Bedrock Data Automation обрабатывает файлы и извлекает информацию.
  5. EventBridge управляет состоянием задач и запускает постобработку.
  6. Состояние задачи хранится в DynamoDB, а обработанный контент — в Amazon S3.
  7. Функция Lambda анализирует обработанный контент и индексирует его в Amazon Bedrock Knowledge Bases.
  8. Система вопросов и ответов на основе RAG использует базовую модель Amazon Bedrock для ответа на запросы пользователей.

Необходимые условия

Бэкэнд

Для бэкэнда вам необходимы следующие необходимые условия:

  • Аккаунт AWS.
  • Python 3.11 или более поздней версии.
  • Docker.
  • GitHub (если используется репозиторий кода).
  • AWS CDK. Для получения более подробной информации и необходимых условий см. Начало работы с AWS CDK.
  • Включите доступ к базовым моделям в Amazon Bedrock:
    • Claude 3.5 Sonnet v2.0 от Anthropic
    • Amazon Nova Pro v1.0
    • Claude 3.7 Sonnet v1.0 от Anthropic

Фронтенд

Для фронтенда необходимы следующие условия:

  • Node/npm: v18.12.1
  • Развернутый бэкэнд.
  • Как минимум один пользователь добавлен в соответствующий пул пользователей Amazon Cognito (необходим для вызовов API, прошедших аутентификацию).

Все необходимое доступно в виде кода с открытым исходным кодом в нашем репозитории GitHub.

Руководство по развертыванию

Этот пример кодовой базы приложения организован в следующие ключевые папки:

samples/bedrock-bda-media-solution