Коротко
Автор за выходные создал на AWS приложение, которое извлекает из уведомления о выселении срок ответа и объясняет документ простым языком. Главный принцип: даты и другие факты определяет код, а языковая модель только переводит и пересказывает их, чтобы уменьшить риск выдуманных сведений.
Контекст
Автор — разработчик, участвовавший в хакатоне AWS Zero to Shipped в категории Social Good, направление Community. Отказавшись от идеи отчёта по безопасности AWS из-за уже существующих аналогов, он сделал DueDate для арендаторов, которым трудно понять уведомление или вовремя отреагировать. В статье приводится оценка, что примерно четверть дел о выселении заканчивается решением по умолчанию, когда ответчик не участвует в разбирательстве.
Главное
- Проект DueDate создан за выходные для хакатона AWS Zero to Shipped; автор выбрал социальную задачу вместо отчёта по безопасности AWS.
- Приложение предназначено для арендаторов, получивших уведомление о выселении; в статье указаны около 3,6 млн дел о выселении в США за типичный год и примерно 1 дело из 4 с решением по умолчанию.
- Ключевое архитектурное правило: код определяет факты и сроки, а модель отвечает только за понятный пересказ и перевод.
- Amazon Textract распознаёт документ построчно и выдаёт идентификаторы L1, L2, L3 и оценки уверенности; идентификаторы используются как ссылки на источники фактов.
- Движок на обычном коде классифицирует тип уведомления, извлекает суммы и участников и вычисляет дату только при наличии необходимых входных данных.
- Bedrock-модель — Nova 2 Lite — формулирует объяснение на английском или испанском примерно на уровне шестого класса; фильтр удаляет предложения, ссылающиеся на несуществующие факты.
- Система показывает чек-лист, подтверждённые уведомлением права, раздел о недостающих сведениях и ссылки на бесплатную юридическую помощь; вход и аккаунт не требуются.
- Стек включает CloudFront, закрытый S3-бакет с Origin Access Control, Lambda Function URL, Textract, Bedrock и AWS CDK; API Gateway и постоянно работающие серверы не используются.
- Восемь тестов движка проходят без вызовов AWS. Они проверяют, среди прочего, отсутствие выдуманного срока, наличие цитат и отказ от классификации при недостатке данных.
- Оценка стоимости — менее $0.005 за анализ: $0.0015 за страницу Textract плюс короткий вызов Nova 2 Lite; цены токенов указаны как $0.30 за 1 млн входных и $2.50 за 1 млн выходных токенов.
Как сделано
Пользователь вставляет текст уведомления и выбирает язык; приложение работает без входа и возвращает срок, чек-лист, подтверждённые документом права, панель о том, чего уведомление не сообщает, и ссылки на бесплатную юридическую помощь. Интерфейс размещён в S3 за CloudFront. Запрос проходит через AWS Lambda Function URL: Textract распознаёт строки и присваивает им идентификаторы и оценки уверенности, затем детерминированный код классифицирует уведомление, извлекает суммы и стороны и вычисляет срок. Например, если указано «within THREE (3) days» и дата уведомления — January 6, 2026, код вычисляет дату по документированному правилу; если исходных данных не хватает, срок не показывается.
Amazon Bedrock с Nova 2 Lite переводит и упрощает уже найденные факты примерно до уровня чтения шестого класса на английском или испанском. После генерации фильтр удаляет предложения со ссылками на несуществующие идентификаторы фактов. Каждый показанный факт привязан к строке документа; пользователь может сверить её и оценку уверенности. Отдельный небольшой справочник направляет к бесплатной юридической помощи по штату, указанному в уведомлении.
Инфраструктура описана в AWS CDK и разворачивается командой cdk deploy. Lambda использует IAM-разрешения textract:DetectDocumentText и bedrock:InvokeModel. Автор также сообщает о двух исправленных проблемах: для Nova 2 Lite с идентификатором модели us. потребовались ARN профиля межрегионального вывода и ARN моделей в нескольких регионах; дублирующиеся CORS-заголовки исчезли после удаления CORS-настроек из Lambda и оставления одного источника — Function URL.
Результаты
Автор сообщает, что приложение работает как бессерверный сервис и не несёт расходов в простое. Один анализ оценивается менее чем в половину цента: чтение одной страницы Textract стоит $0.0015, а короткий вызов Nova 2 Lite — значительно меньше десятой части цента при указанных тарифах $0.30 за 1 млн входных и $2.50 за 1 млн выходных токенов. Несколько сотен демонстрационных запусков, по оценке автора, обходятся менее чем в $1 в месяц. В локальных тестах движка прошли все 8 проверок, включая тесты на отказ от выдуманной даты и требование цитировать извлечённые факты.
Ограничения
Автор прямо отмечает, что Textract может неверно прочитать смятое или некачественно снятое уведомление; приложение показывает распознанную строку и уверенность, но пользователю всё равно нужно сверять результат с оригиналом. Статья описывает тесты движка, но не приводит независимой оценки точности распознавания, вычисления сроков или качества переводов на реальных документах. Срок зависит от заданного правила расчёта и извлечённых исходных данных; сервис не является юридической консультацией и перенаправляет к специалистам. Стоимость приведена как оценка автора, а не как измеренный бюджет при масштабной эксплуатации.
Что взять себе
- Для чувствительных документов разделяйте извлечение фактов и генерацию текста: сначала проверяемая логика, потом пересказ моделью.
- Привязывайте ответы к конкретным фрагментам источника и явно показывайте отсутствие данных вместо попытки заполнить пробел догадкой.
- Не полагайтесь только на инструкции в промпте: проверяйте результат фильтром и тестами, в том числе тестами на нежелательные выдумки.
- Для юридически значимых сроков показывайте исходную строку, уверенность распознавания и правило вычисления; обозначайте границы автоматического объяснения.
Читать оригинал, если…
Откройте оригинал, если нужны исходный код, CDK-конфигурация, тесты, спецификация EARS, скриншоты или подробности настройки IAM и межрегионального Bedrock.