Milvus, LlamaIndex, GPT로 세금 이의신청 RAG 구축하기
Zilliz, LlamaIndex, Microsoft, 그리고 Seattle 지역의 열성적인 사람들이 잠재적인 스타트업 아이디어를 탐색하기 위해 매월 Hackathon을 개최합니다. 서로 모르는 네 명이 모여 당일에 나온 아이디어로 작동하는 프로토타입을 만들 가능성은 기껏해야 희박합니다. SaveHaven 프로젝트는 바로 그런 이야기를 보여줍니다.
Product Manager 한 명, LlamaIndex, Zilliz Cloud, 또는 Retrieval Augmented Generation(RAG) 프레임워크에 대해 전혀 모르는 풀스택 개발자 두 명, 그리고 열정적인 AI 개발자가 처음 만나는 장면을 상상해 보세요. RAG 시스템에 대한 소개를 듣고 3~4개의 아이디어를 자유롭게 논의한 뒤, 남은 5시간 안에 실현 가능해 보이는 하나의 아이디어를 선택했습니다. 이것은 그런 팀의 이야기입니다.
관료주의라는 과제
시, 카운티, 주, 연방 관료들은 납세자들의 이의 제기 없이 세금, 부담금, 벌금으로 8,500억 달러 이상을 징수합니다. 대부분의 개인이 제대로 처리하기 어려운 항소, 정보 요청, 이의 제기, 후속 대응이 약 50만 건에 달하며, 그 결과 대부분의 사람들은 공정한 대우를 요구하기보다 문제를 돈으로 해결해 버립니다.
우리가 만든 SaveHaven RAG 앱은 소비자가 이의를 제기하고, 항소하고, 반박을 처리하고, 스스로의 주장을 펼치며, 정부 기관에 “미청구 자금”으로 분류된 초과 징수액 120억 달러 이상을 절감할 수 있도록 도와줌으로써 이 모든 것을 바꿉니다. SaveHaven은 일반 대중이 소득세와 재산세를 절약하도록 도와 개인이 자신의 권리를 지킬 수 있게 합니다. 성공적인 결과는 첫 번째 항소를 제기하고 후속 대응에 효과적으로 응답하는 데 달려 있으며, 이는 1년에 걸쳐 4~5번의 반복 과정을 필요로 합니다.
해결책: 더 쉬운 세금 항소를 위한 RAG 앱, SaveHaven
우리는 개인을 대신해 주장을 펼치는 데 필요한 정보가 각 기관이 규정하고 공개한 규정 및 요구사항뿐 아니라 카운티, 주, 연방 기록에도 존재한다는 점을 파악했습니다. 표적화된 “Freedom of Information Act” 요청을 제출함으로써, 적절한 기관에서 성공한 커뮤니케이션, 항소, 이의 대응, 문서화 사례를 수집할 수 있습니다. RAG 시스템을 활용하면 성공적인 청원, 항소, 항의, 이의 처리 방식을 모방하여, 주장을 펼치는 데 필요한 문서를 작성하는 비용의 극히 일부만으로 긍정적인 결과를 이끌어낼 수 있습니다.
Hackathon에서 우리는 웹 스크래퍼를 조정해 King County의 재산세 항소를 위한 카운티 기록, 규정, 규칙을 가져왔습니다. 그런 다음 제공된 cookbook을 사용해 이 데이터를 벡터 데이터베이스에 입력했습니다. 이후 Reactjs를 사용해 웹 프론트엔드를 만들고, LlamaIndex를 사용해 요청을 오케스트레이션하고 벡터 데이터베이스에서 관련 임베딩을 가져오는 API 세트를 구축했습니다. 우리는 Milvus를 vector database로 사용하고, OpenAPI의 GPT를 LLM으로 사용했습니다.
우리의 솔루션은 간단합니다. 입력값으로 카운티 필지 번호 또는 주소만 요청한 뒤, 비교 가능한 부동산에 대한 카운티 기록을 조회하여 비교 부동산 목록을 사용해 토지 및 부동산 가치를 최소화하도록 규정과 규칙을 준수하는 항소문을 작성합니다.
시연된 출력은 항소 절차를 시작할 수 있는 텍스트를 생성했습니다. 다음 반복 단계에서는 이의 처리 기능을 통합하고, 한 사례에서 재산세를 $19.99 절감하는 데 성공할 것입니다. 재산세는 매년 조정되므로, 이는 지속적인 활동이 될 것으로 예상됩니다. 유사한 문제는 주 및 연방 소득세 사례에서도 발생하며, 이것이 우리의 로드맵이었습니다.
지식 베이스
저희는 오픈 소스 스크래퍼를 활용해 다양한 정부 웹사이트에서 데이터를 가져왔습니다. 그런 다음 데이터를 청킹하고, 벡터 임베딩으로 변환한 뒤, Milvus 벡터 데이터베이스에 저장했습니다. 저희는 이 일회성 지식 베이스를 구축했습니다. 그 위에서, 플랫폼이 사용될 때 더 많은 데이터를 추가함에 따라 계속 개선됩니다.
요청 오케스트레이션
저희는 LlamaIndex를 기본 오케스트레이터로 사용하고 그 위에 몇 가지 요소를 구축했습니다. Milvus에서 관련 지식을 찾지 못하면, LlamaIndex가 관련 데이터를 스크랩하고, 지식 베이스를 업데이트한 다음, 최종 응답을 얻기 위해 LLM과 통신합니다.
APIs
저희는 FastAPI 프레임워크를 사용해 API를 노출했으며, 이러한 모든 구성 요소를 단순하고 빠르게 구현하기 위해 Python3로 구축했습니다.
요약
SaveHaven은 개인이 재산세 및 소득세 평가에 이의를 제기하고 항소할 수 있도록 돕는 RAG 앱입니다. 세금 항소 절차를 간소화하여 일반 대중이 더 쉽게 접근하고 관리할 수 있게 합니다. 이 시스템은 LlamaIndex, Milvus, OpenAI의 GPT와 같은 기술을 사용하여 공공 기록에서 데이터를 수집하고 분석하는 과정을 자동화함으로써 효과적인 세금 항소 준비를 촉진합니다.
SaveHaven 팀은 이 블로그가 향후 창업가들이 저희 경험에서 배우고 의미 있는 혁신을 구축할 수 있는 사례가 되기를 바랍니다. 저희는 GenAI가 우리의 삶을 변화시킬 것이며, LlamaIndex, Microsoft, Zilliz의 기술이 올바른 팀과 함께라면 하루 안에 아이디어에서 작동하는 솔루션으로 나아가는 것을 가능하게 할 것이라고 이해하고 있습니다.
계속 읽기

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

Why Context Engineering Is Becoming the Full Stack of AI Agents
Discover how context engineering unifies prompts, RAG, and tools to build smarter, production-ready AI agents powered by Milvus.


