Vision과 LLM 통합: 새로운 영역
요약
본 문서는 Vision과 LLM을 통합하여 영수증 이미지를 분석하고 구조화된 JSON 형태로 재무 데이터를 추출하는 'Visual Expense Auditor' 구축 과정을 설명합니다. OpenAI SDK를 사용하여 Oxlo.ai의 비전 기능을 활용하며, 시스템 프롬프트와 JSON 모드 설정을 통해 정확한 데이터 파싱 및 이상 징후 감지 기능을 구현할 수 있습니다.
핵심 포인트
- Oxlo.ai API를 이용해 영수증 이미지에서 재무 데이터를 추출하는 에이전트 구축 방법 제시
- 시스템 프롬프트를 활용하여 모델에게 구조화된 JSON 출력과 이상 감지 역할을 부여함
- JSON 모드와 비전 기능을 결합하여 수동 데이터 입력 작업을 자동화하고 비용 예측성을 높임
우리는 영수증 이미지를 입력받아 품목별 내역, 총액, 그리고 이상 징후가 표시된 구조화된 JSON을 반환하는 Visual Expense Auditor를 구축할 것입니다. 이는 재무팀의 수동 데이터 입력 작업과 개인 예산 관리 앱의 부담을 줄여줍니다. 이 과정을 마치면 Oxlo.ai의 비전 기능을 갖춘 모델로 작동하는 에이전트를 갖게 될 것입니다.
준비물
- Python 3.10 이상
- https://portal.oxlo.ai에서 받은 Oxlo.ai API 키
- OpenAI SDK:
pip install openai - JPEG 또는 PNG 형식의 샘플 영수증 이미지
1단계: Oxlo.ai 클라이언트 설정
먼저 OpenAI SDK를 가져와서 Oxlo.ai를 가리키도록 설정합니다. 기본 URL과 API 키만 변경하면 Oxlo.ai를 드롭인(drop-in) 대체재로 사용할 수 있습니다.
from openai import OpenAI
import os
...
2단계: 시스템 프롬프트 작성
시스템 프롬프트는 모델에게 구조화된 추출기이자 이상 감지기 역할을 하도록 지시합니다. 저는 다운스트림 코드가 정규 표현식(regex) 없이 파싱할 수 있도록 순수 JSON을 요구합니다.
SYSTEM_PROMPT = """You are a Visual Expense Auditor. Analyze the provided receipt image and extract the following fields in JSON format:
- merchant: string
- date: string in ISO 8601 format
...
3단계: 이미지 페이로드 준비
Oxlo.ai는 표준 OpenAI image_url 형식을 사용하여 base64로 인코딩된 이미지를 인라인으로 받습니다. 파일을 로드하고, 이를 인코딩하며, 사용자 메시지를 구성합니다.
import base64
def encode_image(image_path):
...
4단계: 비전 모델 호출
저는 비전과 장문 컨텍스트 추론을 모두 처리할 수 있기 때문에 Oxlo.ai에서 kimi-k2.6을 사용합니다. 유효한 출력을 강제하기 위해 response_format을 JSON 모드로 설정합니다.
import json
def audit_receipt(image_path):
...
5단계: 결과 파싱 및 감사
파싱된 JSON에는 추출된 영수증 데이터와 모든 이상 징후가 포함되어 있습니다. 저는 사용자가 원시 JSON을 읽지 않고도 모델이 무엇을 발견했는지 볼 수 있도록 형식화된 요약을 출력합니다.
def print_audit(report):
receipt = report.get("receipt", {})
anomalies = report.get("anomalies", [])
...
실행하기
실행하기
스크립트를 auditor.py로 저장하고 API 키를 설정한 다음, 샘플 영수증으로 실행해 보세요. 일반적인 식당 영수증의 출력 결과는 다음과 같습니다.
$ export OXLO_API_KEY="sk-oxlo.ai-..."
$ python auditor.py
...
마무리
이 에이전트는 지루한 수동 작업 흐름을 Oxlo.ai로의 단일 API 호출로 대체합니다. Oxlo.ai는 요청당 평면 요금(flat per-request pricing)을 사용하기 때문에, 긴 영수증이나 다중 페이지 인보이스 스캔을 처리하더라도 비용이 예측 가능하게 유지됩니다.
다음 단계로는 이를 FastAPI 엔드포인트에 연결하여 모바일 앱에서 이미지를 POST할 수 있도록 하거나, 또는 영수증 폴더를 일괄 처리(batch-process)하고 결과를 CSV 파일로 저장하여 회계 처리에 사용할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기