Лютор: юридическая тряпичная система
Обзор
Lutor-это система извлечения из поиска генерации (RAG), предназначенная для юридических фирм, позволяющая юристам эффективно «говорить со своими данными». Эта система позволяет специалистам-юристам загружать документы (например, записки) в векторную базу данных, хранящуюся в Pinecone, и впоследствии запрашивают эту информацию, используя интерфейс, похожий на чат-бот, построенный с потоковой дорожкой.
Функции
- Загрузка и обработка документа (поддерживает файлы .txt, .pdf и .docx)
- Текстовая предварительная обработка и сегментация
- Генерация вектора встраивания с использованием API OpenAI
- Эффективное хранение и поиск документов с помощью PineCone
- Интерфейс запроса естественного языка
- Контекстное генерация ответов
Компоненты
- Data Loader (
src/data_loader.py ): обрабатывает чтение различных форматов файлов. - Препроцессор (
src/preprocessor.py ): готовит текст для внедрения и хранения. - Основное приложение (
app.py ): интерфейс Streamlit для загрузки и запросов документов. - Утилиты Openai : обрабатывает взаимодействие API для внедрения и генерации ответов.
- Утилиты Pinecone : управляет операциями векторной базы данных.
Системная архитектура
Лютор развернут на AWS с использованием контейнерной архитектуры:
- Amazon ECS (служба упругого контейнера) с Fargate: запускает контейнер для приложения Lutor.
- Amazon ECR (реестр эластичных контейнеров) : хранит изображение Docker для приложения Lutor.
- Балансировщик нагрузки приложения : распределяет входящий трафик по нескольким экземплярам.
- AWS Secrets Manager : надежно магазины и управляет клавишами API.
AWS инфраструктура
- Кластер ECS: управляет задачами FARGATE, работающих с контейнерами Lutor.
- Репозиторий ECR: размещает изображение Lutor Docker.
- Балансировщик нагрузки приложения: маршрутирует трафик к задачам ECS.
- VPC и группы безопасности: обеспечить сетевую изоляцию и безопасность.
- IAM Роли: Управление разрешениями для задач ECS и других услуг AWS.
Настраивать
Предварительные условия
- Учетная запись AWS
- AWS CLI настроен с соответствующими разрешениями
- Докер установил локально
Установка
Клонировать репозиторий:
git clone https://github.com/boemer00/luthor.git
cd luthor
Создайте изображение Docker:
Нажмите изображение на Amazon ECR:
aws ecr get-login-password --region [your-region] | docker login --username AWS --password-stdin [your-account-id].dkr.ecr.[your-region].amazonaws.com
docker tag luthor:latest [your-account-id].dkr.ecr.[your-region].amazonaws.com/luthor:latest
docker push [your-account-id].dkr.ecr.[your-region].amazonaws.com/luthor:latest
Настройте диспетчер Secrets AWS: Создайте секреты для openai_api_key, pinecone_api_key и pinecone_environment.
Развернуть определение задачи ECS:
aws ecs register-task-definition --cli-input-json file://infrastructure/ecs-task-definition.json
Создайте сервис ECS:
aws ecs create-service --cluster [your-cluster-name] --service-name luthor-service --task-definition luthor-app --desired-count 1 --launch-type FARGATE --network-configuration "awsvpcConfiguration={subnets=[subnet-xxxxxxxx,subnet-yyyyyyyy],securityGroups=[sg-xxxxxxxxxxxxxxxx]}" --load-balancers "targetGroupArn=arn:aws:elasticloadbalancing:[region]:[account-id]:targetgroup/[target-group-name]/[target-group-id],containerName=luthor-app,containerPort=8501"
Использование
Получите доступ к приложению Lutor через имя DNS нагрузки приложения.
Загрузка документа :
- Используйте загрузчик файла в интерфейсе для загрузки юридических документов (.txt, .pdf или .docx).
- Система будет обрабатывать документ, генерировать вставки и хранить их в Pinecone.
Запрос :
- Введите свой юридический запрос в поле текстового ввода.
- Необязательно, используйте боковую панель, чтобы уточнить свой поиск по диапазону дат, типа документа или юридическую область.
- Система будет извлекать соответствующие куски документов, генерировать ответ и отобразить его вместе с источником информации.
Ограничения и будущие улучшения
- В настоящее время система не обрабатывает документов дедупликации эффективно.
- Параметры уточнения поиска (диапазон дат, тип документа, юридическая область) не полностью реализованы в бэкэнд.
- Обработка ошибок и ведение журнала может быть улучшено для лучшей отладки и отзывов пользователей.
- Система может извлечь выгоду из более продвинутых методов НЛП для лучшего понимания юридического контекста.
- Рассмотрим реализацию автоматического масштаба для службы ECS на основе моделей трафика.
- Реализуйте конвейер CI/CD для автоматического развертывания.
Лицензия
Все права защищены.
Этот код и все связанные файлы являются эксклюзивным свойством Renato Boemer. Никакая часть этого кода, в любой форме или любым способом, не может быть скопирована, воспроизведена, изменена, адаптирована, хранится в системе поиска или передана без предварительного письменного разрешения Renato Boemer.