DEV Community на русском
Подписаться
Создание системы искусственного интеллекта для анализа документов: архитектура, LangChain и уроки внедрения в продакшн
Многие организации сталкиваются с проблемой информации, запертой в документах, что затрудняет сотрудникам эффективный поиск конкретных деталей. Традиционный ручной поиск отнимает много времени, а коммерческие продукты на основе ИИ для работы с документами часто имеют непрозрачное ценообразование и вызывают опасения по поводу резидентности данных. Для решения этой проблемы автор разработал AI-DocumentIntelligence — открытую, саморазмещаемую и независимую от поставщика платформу RAG. Эта платформа призвана быть прозрачной, взаимозаменяемой и проверяемой для работы с конфиденциальными документами. Основная функциональность включает в себя загрузку документов, их разделение на осмысленные фрагменты, встраивание этих фрагментов в PostgreSQL с использованием pgvector и ответы на вопросы на естественном языке. Ключевой особенностью является возможность переключения между поставщиками LLM, такими как OpenAI и Anthropic, с помощью простой конфигурации. Технологический стек намеренно стандартный, с использованием React, Node.js, LangChain и PostgreSQL, что облегчает развертывание для команд, уже знакомых с этими технологиями. Архитектура разделяет слои пользовательского интерфейса, API, обработки документов и ИИ, при этом процессы извлечения и генерации являются отдельными для облегчения отладки. Ключевые выводы подчеркивают важность абстракции поставщика, хорошо настроенного разделения на фрагменты и надежных локальных сред разработки. Разработка с использованием API, защищенных учетными данными, представляла трудности, что привело к проверке с помощью локальных моделей встраивания. Автор рассматривает этот проект как часть более масштабных усилий по применению оркестровки LLM для решения реальных проблем рабочего процесса, возникающих при предоставлении цифровых услуг. Проект доступен на GitHub для локальной разработки и внесения вклада, с подробными инструкциями по настройке в README.