Extract Text From Images & PDFs Using AI (n8n tutorial)
1. AI 에이전트의 개요 및 작동 방식
이 AI 에이전트는 텔레그램 메시지를 활용하여 영수증 및 송장 정보를 처리하고, 이를 구글 시트에 체계적으로 정리하는 것을 목표로 합니다. 텔레그램을 통해 PDF 형식의 송장과 이미지 형식의 영수증을 받으면, AI 에이전트는 각 파일 형식에 맞는 도구를 호출하여 필요한 정보를 추출합니다. 이미지 영수증에서는 이미지에서 텍스트를 추출하는 OCR(광학 문자 인식) 기술을 사용하여 데이터를 얻고, PDF 송장에서는 PDF 파싱 기술을 통해 텍스트 정보를 추출합니다. 이렇게 추출된 정보는 구글 시트에 항목별로 정리되어 업로드됩니다.
AI 에이전트의 핵심은 메시지를 수신하고, 문서 또는 이미지 처리에 적합한 도구를 선택하여 데이터를 추출하는 데 있습니다. 예를 들어, PDF 문서를 받으면 PDF 처리 도구를 호출하고, 이미지 영수증을 받으면 이미지 처리 도구를 호출합니다. 각 도구는 필요한 정보를 추출하여 구글 시트에 저장합니다. AI 에이전트는 단순히 텍스트 메시지만 처리하는 것이 아니라, 파일 메시지, 즉 PDF나 이미지 파일 형태로 전달되는 정보를 처리하는 데 중점을 둡니다. 이를 통해 사용자는 텔레그램을 통해 영수증과 송장을 간편하게 전송하고, AI 에이전트가 자동으로 데이터를 추출하여 구글 시트에 정리함으로써 업무 효율성을 높일 수 있습니다. AI 에이전트는 사용자가 원하는 특정 정보를 추출하여 구글 시트에 채울 수 있도록 설계되었으며, 여러 줄의 항목이 있는 경우에도 각 항목을 개별적으로 처리하여 구글 시트에 정확하게 반영합니다.
2. NADN을 이용한 AI 에이전트 구축 및 활용
NADN 플랫폼을 사용하여 AI 에이전트를 구축하는 과정은 크게 세 가지 워크플로우로 구성됩니다. 첫 번째는 텔레그램 메시지를 수신하고 처리하는 메인 AI 에이전트 워크플로우입니다. 두 번째는 이미지 형식의 영수증을 처리하는 워크플로우이고, 세 번째는 PDF 문서를 처리하는 워크플로우입니다. NADN은 다양한 메시징 플랫폼과의 연동을 지원하므로, 텔레그램 외에도 WhatsApp, Twilio(문자 메시지 플랫폼), 심지어 Siri와 같은 음성 인식 시스템을 활용하여 AI 에이전트를 구축할 수 있습니다. 하지만 이 튜토리얼에서는 가장 간편하게 설정할 수 있는 텔레그램을 사용합니다.
텔레그램을 트리거로 사용하여 메시지를 수신하면, AI 에이전트는 메시지 유형에 따라 적절한 도구를 선택합니다. 이때, AI 에이전트가 텔레그램 계정에 접근하여 메시지를 수신할 수 있도록 텔레그램 credentials을 설정해야 합니다. NADN의 공식 문서를 참고하여 봇 파더(BotFather)와의 채팅을 통해 텔레그램 봇을 생성하고, 봇 토큰을 발급받아 NADN에 등록해야 합니다. 텔레그램 봇을 생성한 후, 해당 봇과의 채팅을 시작하면 NADN에서 메시지를 수신할 수 있습니다. 특히, AI 에이전트는 텍스트 메시지뿐만 아니라 PDF, 이미지 등의 파일 메시지를 처리하는 데 중점을 둡니다. 파일 메시지를 처리하기 위해서는 파일 ID를 추출하여 해당 파일을 다운로드하고, 파일 형식에 맞는 도구를 사용하여 데이터를 추출해야 합니다.
3. AI 에이전트의 지능적인 도구 선택 및 프롬프트 설정
AI 에이전트의 핵심 기능 중 하나는 적절한 도구를 선택하여 작업을 수행하는 것입니다. AI 에이전트는 마치 인간의 두뇌처럼 작동하여 메시지를 이해하고, 과거 메시지 이력을 바탕으로 적절한 도구를 선택합니다. 예를 들어, 이미지 영수증을 받으면 이미지 처리 도구를 선택하고, PDF 송장을 받으면 PDF 처리 도구를 선택합니다. 이때, AI 에이전트에게 적절한 프롬프트를 제공하여 어떤 도구를 사용해야 하는지 명확하게 지시해야 합니다.
프롬프트는 AI 에이전트에게 특정 작업을 수행하도록 지시하는 명령어입니다. 예를 들어, “문서 처리 도구를 호출하여 PDF 문서에서 OCR을 수행하십시오.” 또는 “이미지 처리 도구를 호출하여 이미지에서 OCR을 수행하십시오.”와 같은 프롬프트를 사용할 수 있습니다. AI 에이전트는 프롬프트를 기반으로 적절한 도구를 선택하고, 작업을 수행합니다. AI 에이전트는 챗 모델, 메모리, 도구와 같은 구성 요소를 가지고 있습니다. 챗 모델은 메시지를 이해하고 응답을 생성하는 역할을 하고, 메모리는 과거 메시지 이력을 저장하여 AI 에이전트가 문맥을 파악할 수 있도록 돕습니다. 도구는 이미지 처리, PDF 처리 등 특정 작업을 수행하는 데 사용됩니다.
4. PDF 파일 처리를 위한 서브 플로우 구축 및 데이터 추출
PDF 파일 처리 서브 플로우는 메인 AI 에이전트로부터 호출되어 PDF 문서에서 데이터를 추출하는 역할을 수행합니다. 이 서브 플로우는 먼저 메인 AI 에이전트로부터 파일 ID와 메시지를 입력받습니다. 파일 ID는 다운로드할 PDF 파일의 식별자이고, 메시지는 PDF 파일 처리와 관련된 지시 사항입니다. 서브 플로우는 입력 데이터를 기반으로 텔레그램에서 해당 PDF 파일을 다운로드합니다. 다운로드된 PDF 파일은 텍스트로 변환되어야 AI 에이전트가 데이터를 추출할 수 있습니다. 이를 위해 “Extract from PDF”와 같은 OCR 도구를 사용하여 PDF 파일의 텍스트를 추출합니다.
OCR 도구를 통해 추출된 텍스트는 비정형 데이터 형태를 띄게 됩니다. 비정형 데이터는 일정한 형식이 없는 텍스트 덩어리를 의미하며, AI 에이전트가 필요한 정보를 추출하기 어렵습니다. 따라서 비정형 데이터를 정형 데이터로 변환하는 과정이 필요합니다. 정형 데이터는 특정 필드에 맞춰 체계적으로 정리된 데이터를 의미합니다. 예를 들어, 송장 번호, 송장 날짜, 청구 정보, 품목 목록 등이 정형 데이터에 해당합니다. 비정형 데이터를 정형 데이터로 변환하기 위해 OpenAI와 같은 자연어 처리 모델을 사용합니다. 자연어 처리 모델은 텍스트를 이해하고 필요한 정보를 추출하는 데 사용됩니다. OpenAI 모델에게 적절한 프롬프트를 제공하여 PDF 문서에서 송장 번호, 송장 날짜, 품목 목록 등의 정보를 추출하도록 지시할 수 있습니다.
5. OpenAI를 활용한 정형 데이터 추출 및 구글 시트 연동
OpenAI 모델은 입력된 텍스트를 기반으로 JSON 형식의 정형 데이터를 생성합니다. JSON(JavaScript Object Notation)은 데이터를 효율적으로 표현하고 교환하기 위한 텍스트 기반의 데이터 형식입니다. AI 에이전트는 JSON 데이터를 쉽게 파싱하고 필요한 정보를 추출할 수 있습니다. JSON 데이터는 키-값 쌍으로 구성되어 있으며, 각 키는 추출할 정보의 유형을 나타내고, 값은 해당 정보의 실제 값을 나타냅니다. 예를 들어, {“invoice_number”: “12345”, “invoice_date”: “2024-07-26”}와 같은 JSON 데이터는 송장 번호가 “12345”이고, 송장 날짜가 “2024-07-26″임을 나타냅니다.
AI 에이전트는 추출된 JSON 데이터를 구글 시트에 저장하여 데이터를 체계적으로 관리할 수 있습니다. 이를 위해 “Append Row”와 같은 구글 시트 연동 도구를 사용합니다. AI 에이전트는 JSON 데이터에서 각 필드에 해당하는 값을 추출하여 구글 시트의 해당 열에 입력합니다. 예를 들어, “invoice_number” 키에 해당하는 값은 “송장 번호” 열에 입력하고, “invoice_date” 키에 해당하는 값은 “송장 날짜” 열에 입력합니다. 구글 시트에 저장된 데이터는 다양한 방식으로 활용할 수 있습니다. 예를 들어, 재무 보고서를 생성하거나, 송장 지불 현황을 추적하거나, 고객 데이터를 분석하는 데 사용할 수 있습니다.
6. 이미지 파일 처리를 위한 워크플로우 및 문제 해결
이미지 파일 처리 워크플로우는 PDF 파일 처리 워크플로우와 유사하지만, 이미지 파일의 특성을 고려하여 몇 가지 추가적인 단계를 포함합니다. 이미지 파일 처리 워크플로우는 먼저 메인 AI 에이전트로부터 파일 ID와 메시지를 입력받습니다. 그런 다음, 텔레그램에서 해당 이미지 파일을 다운로드합니다. 이미지 파일은 텍스트로 변환되어야 AI 에이전트가 데이터를 추출할 수 있습니다. 이를 위해 OCR 도구를 사용하여 이미지 파일의 텍스트를 추출합니다.
하지만 텔레그램에서 다운로드한 이미지 파일은 MIME 타입 문제로 인해 OpenAI에서 직접 분석할 수 없는 경우가 있습니다. MIME 타입은 파일의 형식을 나타내는 문자열이며, OpenAI는 특정 MIME 타입의 이미지 파일만 처리할 수 있습니다. 이 문제를 해결하기 위해 “Edit Image”와 같은 이미지 처리 도구를 사용하여 이미지 파일의 MIME 타입을 변경합니다. 이미지 처리 도구는 이미지 파일의 내용을 변경하지 않고 MIME 타입만 변경하므로, 데이터 손실 없이 OpenAI에서 분석할 수 있도록 이미지를 준비할 수 있습니다. MIME 타입이 변경된 이미지 파일은 OpenAI 모델을 사용하여 텍스트를 추출하고, JSON 형식의 정형 데이터로 변환합니다. 마지막으로, 추출된 JSON 데이터를 구글 시트에 저장하여 데이터를 체계적으로 관리합니다.
7. AI 에이전트의 확장 가능성 및 다양한 활용 방안
이 AI 에이전트는 다양한 파일 형식을 처리할 수 있도록 확장할 수 있습니다. 예를 들어, 워드 문서, 엑셀 파일, 텍스트 파일 등 다양한 형식의 파일을 처리할 수 있도록 새로운 도구를 추가할 수 있습니다. 또한, 추출된 데이터를 구글 시트 외에도 다양한 시스템과 연동할 수 있습니다. 예를 들어, 퀵북 온라인과 같은 회계 소프트웨어와 연동하여 자동으로 송장 정보를 입력하거나, Gmail과 연동하여 추출된 데이터를 이메일로 전송할 수 있습니다.
AI 에이전트는 다양한 분야에서 활용될 수 있습니다. 예를 들어, 회계 업무 자동화, 고객 데이터 분석, 재무 보고서 생성 등에 활용할 수 있습니다. AI 에이전트를 통해 기업은 업무 효율성을 높이고, 인적 오류를 줄이며, 더 나은 의사 결정을 내릴 수 있습니다. AI 에이전트 구축에 필요한 모든 청사진은 무료로 제공되므로, 누구나 쉽게 AI 에이전트를 구축하고 활용할 수 있습니다. 또한, AI 자동화 여정에 대한 추가적인 도움이나 자료가 필요한 경우, NADN 커뮤니티에 참여하여 다양한 정보와 지원을 얻을 수 있습니다. NADN 커뮤니티에서는 NADN, GHL, Make.com 등 다양한 자동화 도구에 대한 정보와 자료를 제공하며, 매주 그룹 콜을 통해 사용자들의 질문에 답변하고 문제 해결을 돕습니다.