Udhaar Khata: 아버지에게 사용하기 위한 음성 AI 디지털 장부 (Gemma 2 + Whisper 활용)
요약
본 글은 아버지의 소규모 가게 외상값 관리를 돕기 위해 'Udhaar Khata'라는 음성 기반 디지털 장부를 개발한 과정을 소개합니다. 이 시스템은 로컬 오픈-웨이트 AI와 Whisper를 활용하여, 복잡한 수동 기록 대신 자연스러운 음성 명령만으로 부채 기록 및 정산을 처리할 수 있게 합니다.
핵심 포인트
- 음성 우선 인터페이스로 현장 사용성을 극대화했습니다.
- 오픈-웨이트 모델과 로컬 처리를 통해 개인 정보 보호를 보장합니다.
- Whisper와 AI 추출 기능을 결합하여 음성 명령을 구조화된 데이터로 변환합니다.
_이 글은 Hacktoberfest Weekend Challenge: Build for a Friend에 제출하는 내용입니다.
제가 만든 것 (What I Built)
저는 **Udhaar Khata (उधार खाता)**를 만들었습니다. 이것은 저의 아버지만을 위해 특별히 제작된, 음성 기반의 100% 로컬 오픈-웨이트 디지털 장부이자 신용 기록 장부입니다.
제 아버지는 인도에서 동네 가게를 운영하십니다. 수백만 개의 소규모 사업주나 지역 사회 원로들처럼, 매일 고객들의 외상값(udhaar)을 관리하는 것은 끊임없는 도전 과제입니다. 고객들은 필수품(식량, 식료품, 우유)을 외상으로 가져가고 나중에 잔액을 정산합니다.
수십 년 동안 아버지는 해진 종이 공책(bahi khata)에 모든 것을 기록해 오셨습니다. 제가 상업 회계 앱들을 제안할 때마다 아버지는 다음과 같은 이유로 불편함을 느끼셨습니다:
- 손으로 상품을 다루고 고객들이 줄 서서 기다리는 상황에서 스마트폰 터치 키보드는 어색하고 느립니다.
- 메뉴에는 영어 중심의 비즈니스 전문 용어와 광고가 너무 많습니다.
- 가장 중요한 것은, 고객들의 개인 전화번호와 부채 기록을 알 수 없는 제3자 클라우드 서버에 업로드하는 아이디어를 싫어하셨다는 것입니다.
Udhaar Khata는 음성 우선의 오픈-웨이트 AI를 통해 이 모든 문제를 완벽하게 해결합니다.
제 아버지는 단순히 마이크를 누르고 일상적인 힌디어 또는 힝글리시(Hinglish)로 자연스럽게 말하기만 하면 됩니다:
- _
🎥 엔드투엔드 워크스루 (음성 입력, 확인, 알림 및 정산)
-
음성 및 음성 입력 허브 (Voice & Speech Input Hub): 오디오 파형 애니메이션이 있는 맥동하는 마이크 버튼, 이중 언어 음성 인식 기능, 즉각적인 샘플 칩 제공.
-
AI 추출 및 확인 카드 (AI Extraction & Confirmation Card): 장부에 기록하기 전에 감지된 고객 이름, 금액, 신용/차변 토글을 표시하고 오디오 확인 피드백 제공.
-
고객 디렉토리 및 잔액 명세서 (Customer Directory & Balance Sheet): Kispar kitna baaki hai (누가 무엇을 빚졌는지)를 즉시 보여주며, Lena hai (징수할 금액)는 빨간색, Hisaab chukta (정산 완료)는 녹색으로 색상 코딩됨.
-
문화적으로 존중하는 결제 알림 (Culturally Respectful Payment Reminders) (तगादा): 3가지의 뚜렷한 톤(विनम्र / 공손, मित्रतापूर्ण / 친근, व्यावसायिक / 격식)으로 알림을 생성하며, 사용자 지정 AI 초안 작성 기능과 직접적인 원클릭 WhatsApp 공유 버튼 제공.
-
**원클릭 정산 (
-
우리는 Apple Silicon의 Metal GPU 가속을 통해 Ollama에서 Google의 Gemma 2 2B (
gemma2:2b)를 로컬로 실행합니다. -
Gemma 2는 구어체 인도 금융 용어(udhaar, jama, chukta, baaki, rokda, saman)를 이해하도록 프롬프트 처리되며,
customer_name,amount,type,note를 포함하는 엄격하게 구조화된 JSON을 출력합니다. -
콜드 스타트(cold-start) 조건에서도 100% 가동 시간과 밀리초 이하의 응답성을 보장하기 위해, Gemma 2에 결정론적 인도어 자연어 처리 (Indic-NLP) 이중 언어 규칙 엔진을 결합했습니다.
2. 음성 인식 (Open-Weight OpenAI Whisper)
- 오디오 전사(transcription)는 오픈 웨이트 faster-whisper (
ctranslate2+ int8 양자화)와 브라우저 Web Speech API를 통해 실행되어, 저희 아버지가 아무것도 입력하지 않고도 자연스럽게 힌디어(hi-IN)와 힝글리시(Hinglish)로 말할 수 있게 합니다.
3. 공손한 힌디어 알림 생성기
- 인도의 비즈니스 문화에서 고객에게 외상 대금을 상환해 달라고 요청하는 것은 어색하거나 사회적으로 민감하게 느껴질 수 있습니다.
- Gemma 2 2B를 사용하여, 앱은 세 가지 미리 정의된 톤(공손한, 친근한, 격식 있는)의 문화적 뉘앙스가 담긴 결제 알림을 초안 작성할 뿐만 아니라 사용자 지정 프롬프트(예: _
- 금융 주권 및 절대적 프라이버시: 작은 상점의 외상 장부에는 기밀 부채 기록, 개인적인 신뢰 네트워크, 고객 전화번호가 담겨 있습니다. 이 민감한 금융 원장을 OpenAI나 Claude 같은 제3자 독점 API로 전송하는 것은 불필요한 사생활 및 신뢰 위험입니다. Gemma 2와 Whisper를 로컬에서 실행함으로써, 아버지의 기록은 100% 그의 기기에 남아있습니다.
- 인터넷이 없는 시장에서도 작동: 인도 현지 시장과 작은 마을에서는 광대역 인터넷 끊김이나 불안정한 모바일 수신 환경을 자주 경험합니다. 폐쇄형 API는 와이파이가 끊기는 순간 실패합니다. 오픈 웨이트 추론(inference)을 로컬에서 실행함으로써, Udhaar Khata는 인터넷 연결 없이도 24시간 연중무휴로 원활하게 작동합니다.
- 운영 비용 제로 (영원히 ₹0): 빠듯한 마진으로 운영하는 작은 동네 상점 주인은 토큰 사용량에 따라 청구되는 요금이나 월 $20의 SaaS 구독료를 지불할 수 없습니다. 오픈 웨이트는 이 애플리케이션이 소비자급 하드웨어에서 영구적으로 무료로 실행될 수 있도록 합니다.
- 일상 언어적 자유: 오픈 모델 덕분에 임의의 API 검열이나 금융 용어를 둘러싼 경직된 가드레일(guardrails)에 부딪히지 않고, 구어체 힌글리시 방언에 맞춰 시스템 프롬프트를 미세 조정할 수 있었습니다.
나의 에이전트 세션
저는 페어 프로그래밍과 브라우저 자동화로 이 프로젝트를 구축했습니다. 전체 세션 기록은 여기에서 확인할 수 있습니다:
Udhaar-Khata 구축: 로컬 Gemma 2 및 Whisper를 사용한 아버지용 음성 AI 디지털 장부
나
저는 '친구를 위한 개발(Build for a Friend)' 해크토버페스트 주간 챌린지에 참여하고 있습니다. 로컬 오픈 웨이트 AI 모델(폐쇄형 API 없음)을 사용하여 아버지에게 Udhaar Khata를 구축하고 있습니다. 아버지는 'Ramesh ne 200 udhaar liya' 또는 'Sunita ne 500 wapas kiye'와 같이 힌디어/힌글리시로 말씀하십니다.
에이전트
정보 추출 및 정중한 알림 초안 작성을 위해 Apple Silicon에서 Ollama를 통해 실행되는 Google Gemma 2 (2B), 로컬 음성-텍스트 변환을 위한 OpenAI Whisper, 그리고 SQLite 로컬 스토리지를 갖춘 이중 언어 React 인터페이스로 Udhaar Khata 아키텍처링.
Ollama에 gemma2:2b를 로컬로 설치하고 구성했습니다. 하위 초 단위의 Hindi/Hinglish 거래 파싱 및 개체 추출을 통해 로컬 추론이 성공적으로 이루어졌음을 확인했습니다.
Agent
다양한 문화적 존중도가 담긴 Hindi 톤(Vinamra, Mitratapoorna, Vyavsayik)의 정중한 결제 알림 생성기와 원클릭 WhatsApp 심층 통합 기능을 구현했습니다. 브라우저 자동화를 통해 엔드투엔드 테스트를 진행했습니다.
4 of 4 메시지
수상 부문
- Gemma 활용 최우수: (주요 부문)
- 종합 Hacktoberfest 우승작
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기
