Создание RAG для налоговых апелляций с Milvus, LlamaIndex и GPT
Zilliz, LlamaIndex, Microsoft и энтузиасты из района Сиэтла ежемесячно проводят хакатоны, чтобы исследовать потенциальные идеи для стартапов. Шансы на то, что четыре незнакомца соберутся вместе и создадут работающий прототип для идеи, возникшей в тот же день, в лучшем случае невелики. Проект SaveHaven демонстрирует именно такую историю.
Представьте себе Product Manager, пару full-stack разработчиков, не имеющих представления о LlamaIndex, Zilliz Cloud или фреймворке Retrieval Augmented Generation (RAG), и увлеченного AI-разработчика, которые впервые встречаются. После знакомства с системой RAG и обсуждения 3-4 идей мы остановились на одной, которая казалась осуществимой за оставшиеся 5 часов. Это история такой команды.
Проблема бюрократии
Городские, окружные, штатные и федеральные бюрократы собирают более $850 миллиардов в виде налогов, сборов и штрафов, не оспариваемых налогоплательщиками. Около полумиллиона апелляций, запросов информации, возражений и последующих обращений, с которыми большинство людей не очень хорошо подготовлены справляться, приводят к тому, что большинство людей просто оплачивают проблему вместо того, чтобы требовать справедливого отношения.
Созданное нами RAG-приложение SaveHaven меняет это, помогая потребителям оспаривать, подавать апелляции, обрабатывать возражения, выстраивать свою позицию и экономить более $12 миллиардов избыточных взысканий, отмеченных государственными органами как “unclaimed money”. Помогая обычным людям экономить на подоходном налоге и налоге на недвижимость, SaveHaven помогает людям отстаивать свои права. Успешные результаты зависят от подачи первой апелляции и эффективных ответов на последующие запросы, что занимает 4–5 итераций в течение года.
Решение: SaveHaven, RAG-приложение для более простого обжалования налогов
Мы поняли, что информация для построения аргументации от имени людей доступна в окружных, штатных и федеральных записях, а также в правилах и требованиях, предписанных и опубликованных соответствующими ведомствами. Подавая целевые запросы по “Freedom of Information Act”, мы можем собирать примеры коммуникаций, апелляций, ответов на возражения и документации, которые успешно работают с нужным ведомством. Используя систему RAG, мы можем имитировать успешные ходатайства, апелляции, протесты и обработку возражений, чтобы добиваться положительных результатов за малую долю стоимости создания документов, необходимых для построения дела.
На хакатоне мы адаптировали веб-скрейпер для загрузки окружных записей, нормативов и правил по апелляциям налога на недвижимость в округе King County. Затем мы загрузили эти данные в векторную базу данных, используя предоставленный cookbook. После этого мы использовали Reactjs для создания веб-фронтенда и построили набор API, которые использовали LlamaIndex для оркестрации запросов и получения релевантных embeddings из векторных баз данных; мы использовали Milvus как векторную базу данных и GPT от OpenAPI в качестве LLM.
Наше решение простое: мы запрашиваем только кадастровый номер участка в округе или адрес в качестве входных данных, а затем обращаемся к окружным записям по сопоставимым объектам недвижимости, чтобы составить апелляцию, соответствующую нормативам и правилам, с целью минимизировать стоимость земли и недвижимости с использованием списков сопоставимых объектов.
Продемонстрированный результат сгенерировал текст, который запускал бы процесс апелляции. В следующей итерации мы бы добавили обработку возражений и успешно снизили налог на недвижимость на $19.99 для одного случая. Поскольку налоги на недвижимость корректируются ежегодно, ожидается, что это будет постоянной деятельностью. Похожие проблемы встречаются в случаях штатного и федерального подоходного налога, что входило в нашу дорожную карту.
База знаний
Мы использовали open-source scrappers для получения данных с различных государственных веб-сайтов. Затем мы разбили данные на фрагменты, преобразовали их в векторные embeddings и сохранили их в векторной базе данных Milvus. Мы создали эту одноразовую базу знаний. Кроме того, она продолжает улучшаться по мере того, как мы добавляем всё больше и больше данных во время использования платформы.
Оркестрация запросов
Мы использовали LlamaIndex в качестве базового оркестратора и создали поверх него несколько компонентов. Если мы не находим релевантные знания в Milvus, LlamaIndex выполнит scrape релевантных данных, обновит базу знаний, а затем обратится к LLM, чтобы получить финальный ответ.
API
Мы использовали фреймворк FastAPI, чтобы предоставлять наши API, и создали все эти компоненты с использованием Python3, чтобы они оставались простыми и быстрыми в реализации.
Итоги
SaveHaven — это RAG-приложение, которое может помочь частным лицам оспаривать и обжаловать начисления по налогу на недвижимость и подоходному налогу. Оно упрощает процесс налогового обжалования, делая его более доступным и управляемым для широкой публики. Система использует такие технологии, как LlamaIndex, Milvus и GPT от OpenAI, чтобы автоматизировать сбор и анализ данных из публичных записей, тем самым облегчая подготовку эффективных налоговых апелляций.
Команда SaveHaven намеревается сделать этот блог примером, чтобы будущие предприниматели могли учиться на нашем опыте и создавать значимые инновации. Мы понимаем, что GenAI преобразит нашу жизнь, а технологии LlamaIndex, Microsoft и Zilliz позволят перейти от идеи к работающему решению в течение одного дня при наличии подходящей команды.
Читать далее

My Wife Wanted Dior. I Spent $600 on Claude Code to Vibe-Code a 2M-Line Database Instead.
Write tests, not code reviews. How a test-first workflow with 6 parallel Claude Code sessions turns a 2M-line C++ codebase into a daily shipping pipeline.

How to Improve Retrieval Quality for Japanese Text with Sudachi, Milvus/Zilliz, and AWS Bedrock
Learn how Sudachi normalization and Milvus/Zilliz hybrid search improve Japanese RAG accuracy with BM25 + vector fusion, AWS Bedrock embeddings, and practical code examples.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.


