Building a Self-Hosted AI WhatsApp Agent for Structured Invoice Extraction

개요

WhatsApp Business API와 n8n, Gemini 1.5 Flash를 활용하여 사진으로 받은 송장 정보를 자동으로 추출하고 구조화하여 데이터베이스에 기록하는 자체 호스팅 AI 에이전트가 개발되었습니다.

주요 내용

* 시스템 아키텍처: WhatsApp Business API Cloud Webhooks를 통한 수신, 자체 호스팅 n8n 환경에서의 오케스트레이션 및 데이터 흐름 처리, Gemini 1.5 Flash를 이용한 인지 계층, n8n Code Node (JavaScript)를 통한 데이터 형식 지정으로 구성됩니다.
* WhatsApp 개발자 설정: Meta for Developers 포털에서 개발자 계정 생성, 앱 생성, WhatsApp 제품 추가를 통해 무료 테스트 번호와 테스트 Business Account(WABA)를 발급받고, n8n 웹훅 URL로 설정을 구성합니다.
* 멀티모달 입력 처리: WhatsApp에서 송장 이미지 또는 PDF 수신 시, 웹훅은 미디어 ID를 전달하며, 이를 Meta Access Token을 사용하여 다운로드 URL을 요청하고 이진 데이터를 가져와 AI 노드로 전달합니다.
* 시스템 프롬프트 설계: Gemini 1.5 Flash에 공급업체 이름, 송장 날짜(YYYY-MM-DD 형식), 총 금액(부동 소수점), 개별 라인 아이템(설명, 수량, 총 가격 포함 배열) 등 특정 형식으로 데이터를 정확하게 추출하도록 지시하는 시스템 프롬프트를 사용합니다.
* 데이터 형식화: Gemini의 텍스트 응답을 n8n Code Node (JavaScript)로 파이프라인하여 외부 서버 없이 모델의 출력을 직접 처리하고, JSON 파싱, 안전 유효성 검사, 대상 데이터베이스/시트에 맞는 형식으로 데이터를 가공합니다.
* 프로덕션 환경 고려 사항: 실제 배포 시에는 동시 웹훅 처리를 위한 Redis 큐를 사용한 속도 제한 및 개인 정보 보호를 위한 데이터 보안(처리 후 즉시 임시 저장소에서 삭제)을 설계해야 합니다.

시사점

이 패턴은 강력한 시스템 프롬프트와 간단한 인라인 JavaScript 엔지니어링을 결합하면 시각적 워크플로우 관리자 내에서 자체 호스팅 AI 에이전트를 구축할 수 있음을 증명하며, 반복적인 비즈니스 프로세스를 자동화하는 데 유용합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions