업무에서 PDF 계약서, Word 보고서, Excel 데이터 시트를 다루신 적이 있으신가요? 이 파일들에서 필요한 정보를 하나하나 복사해서 정리하는 것이 얼마나 번거로운 일인지 알고 있습니다. 이번 튜토리얼에서는 AI를 활용하여 이 문제를 자동화하는 방법을 알려드리겠습니다.

완전 초보자도 따라할 수 있도록 단계별로 설명드리니 편하게 읽어 주세요.

Claude API란? 왜 문서解析에 유용한가요?

API는 쉽게 말해서 "AI와 대화하는 전화번호"라고 생각하시면 됩니다. 우리가 앱에 메시지를 보내면 답장이 오는 것처럼, 코드에서 Claude에게 문서를 보내면 내용을 이해하고 분석한 결과를 돌려받을 수 있습니다.

Claude API가 문서解析에 뛰어난 이유:

HolySheep AI에서 Claude API 키 발급받기

Claude API를 사용하려면 먼저 API 키가 필요합니다. HolySheep AI를 통해 간단하게 발급받을 수 있습니다.

순서:

  1. 지금 가입 페이지에 접속합니다
  2. 이메일과 비밀번호로 계정을 만듭니다 (해외 신용카드 불필요)
  3. 로그인 후 대시보드에서 "API Keys" 메뉴를 클릭합니다
  4. "새 키 생성" 버튼을 누르고 키 이름을 입력합니다
  5. 화면에 표시되는 키를 복사하여 안전한 곳에 저장합니다
💡 힌트: API 키는 비밀번호와 같습니다. 다른 사람과 공유하지 말고, 코드에 직접 쓰지 말고 환경 변수로 관리하세요.

개발 환경 준비하기

코드 작성을 위해 필요한 도구들을 설치하겠습니다. 처음 접하시는 분들도 걱정 마세요. 하나씩 따라하시면 됩니다.

1단계: Python 설치 확인

터미널(명령 프롬프트)을 열고 다음 명령어를 입력하세요:

python --version

버전 번호가 보이면 이미 설치되어 있습니다. 버전이 안 보이면 Python 공식 사이트에서 다운로드하여 설치하세요.

2단계: 필요한 라이브러리 설치

Python에서 문서를 다루는 데 필요한 도구들을 설치합니다. 터미널에 아래 명령어를 한 줄씩 입력하세요:

pip install python-docx openpyxl pdfplumber anthropic python-dotenv

설치 과정에서 오류가 나면 아래 명령어를 시도하세요:

pip install --user python-docx openpyxl pdfplumber anthropic python-dotenv

3단계: 프로젝트 폴더 만들기

문서解析을 위한 폴더를/desktop/docparser" target="_blank">이 예제처럼 만들어 주세요. 그 안에 다음 파일들을 만들겠습니다:

첫 번째 코드: API 연결 확인하기

가장 먼저 HolySheep AI의 Claude API에 정상적으로 연결되는지 확인하는 코드를 작성하겠습니다.

import anthropic
from dotenv import load_dotenv
import os

.env 파일에서 API 키 불러오기

load_dotenv() api_key = os.getenv("HOLYSHEEP_API_KEY")

HolySheep AI 서버에 연결

client = anthropic.Anthropic( api_key=api_key, base_url="https://api.holysheep.ai/v1" )

간단한 테스트 메시지 보내기

message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=100, messages=[ {"role": "user", "content": "안녕하세요! 연결 테스트입니다. '성공'이라고만 답해주세요."} ] ) print("연결 성공!") print("AI 응답:", message.content[0].text)

이제 apikey.env 파일에 API 키를 저장하겠습니다:

HOLYSHEEP_API_KEY=sk-your-holysheep-api-key-here

코드 실행 결과로 "연결 성공! AI 응답: 성공"이라고 나오면 정상입니다.

💡 힌트: sk-your-holysheep-api-key-here 부분을 실제 API 키로 교체하세요. 키는 HolySheep AI 대시보드에서 복사할 수 있습니다.

PDF 파일에서 텍스트 추출하기

PDF는 가장 많이 사용하는 문서 형식입니다. pdfplumber 라이브러리를 사용하면 텍스트를 쉽게 추출할 수 있습니다.

import pdfplumber

def extract_text_from_pdf(pdf_path):
    """PDF 파일에서 모든 텍스트 추출"""
    all_text = []
    
    with pdfplumber.open(pdf_path) as pdf:
        print(f"총 {len(pdf.pages)} 페이지의 PDF입니다.")
        for page_num, page in enumerate(pdf.pages, 1):
            text = page.extract_text()
            if text:
                all_text.append(f"[페이지 {page_num}]\n{text}")
    
    return "\n\n".join(all_text)

사용 예시

pdf_text = extract_text_from_pdf("sample.pdf") print("추출된 텍스트 미리보기:") print(pdf_text[:500] if pdf_text else "텍스트가 없습니다.")

Word 문서 분석하기

Word 파일(.docx)은 python-docx 라이브러리로 처리합니다. 표와 문단을 모두 읽어보겠습니다.

from docx import Document

def extract_text_from_word(docx_path):
    """Word 문서에서 텍스트와 표 추출"""
    doc = Document(docx_path)
    content = []
    
    for element in doc.element.body:
        if element.tag.endswith('p'):  # 문단(paragraph)
            text = doc.paragraphs[len(content)].text.strip()
            if text:
                content.append({"type": "text", "content": text})
        
        # 표가 있으면 표도 추가
        for table in doc.tables:
            table_data = []
            for row in table.rows:
                row_data = [cell.text.strip() for cell in row.cells]
                table_data.append(" | ".join(row_data))
            if table_data:
                content.append({"type": "table", "content": "\n".join(table_data)})
    
    return content

사용 예시

word_content = extract_text_from_word("sample.docx") print(f"총 {len(word_content)}개 요소 발견") for item in word_content[:3]: print(f"[{item['type']}]: {item['content'][:100]}...")

Excel 데이터 구조화하기

Excel 파일(.xlsx)은 openpyxl로 읽습니다. 여러 시트와 표 형태 데이터를 깔끔하게 추출합니다.

import openpyxl

def extract_data_from_excel(xlsx_path):
    """Excel 파일에서 모든 시트의 데이터 추출"""
    wb = openpyxl.load_workbook(xlsx_path)
    all_data = {}
    
    for sheet_name in wb.sheetnames:
        sheet = wb[sheet_name]
        rows = []
        
        for row in sheet.iter_rows(values_only=True):
            # 빈 행 제외하고 데이터 수집
            if any(cell is not None for cell in row):
                rows.append([str(cell) if cell is not None else "" for cell in row])
        
        if rows:
            all_data[sheet_name] = rows
    
    return all_data

사용 예시

excel_data = extract_data_from_excel("sample.xlsx") for sheet_name, data in excel_data.items(): print(f"\n=== {sheet_name} 시트 ===") for row in data[:5]: # 처음 5행만 표시 print(" | ".join(row))

실전 프로젝트: 문서 자동 분석기 만들기

이제 위에서 만든 함수들을 결합하여 PDF, Word, Excel을 자동으로 분석하는 도구를 만들겠습니다. Claude AI가 문서의 핵심 내용을 정리해줍니다.

import anthropic
from dotenv import load_dotenv
import os
import pdfplumber
from docx import Document
import openpyxl
import json

load_dotenv()
api_key = os.getenv("HOLYSHEEP_API_KEY")

client = anthropic.Anthropic(
    api_key=api_key,
    base_url="https://api.holysheep.ai/v1"
)

def read_any_document(file_path):
    """모든 문서 형식 읽기"""
    if file_path.endswith('.pdf'):
        with pdfplumber.open(file_path) as pdf:
            return "\n".join(page.extract_text() or "" for page in pdf.pages)
    elif file_path.endswith('.docx'):
        doc = Document(file_path)
        return "\n".join(para.text for para in doc.paragraphs)
    elif file_path.endswith('.xlsx'):
        wb = openpyxl.load_workbook(file_path)
        result = []
        for sheet in wb.sheetnames:
            result.append(f"[{sheet}]")
            for row in wb[sheet].iter_rows(values_only=True):
                if any(cell for cell in row):
                    result.append(" | ".join(str(c) if c else "" for c in row))
        return "\n".join(result)
    else:
        with open(file_path, 'r', encoding='utf-8') as f:
            return f.read()

def analyze_with_claude(document_text, file_name):
    """Claude API로 문서 분석"""
    prompt = f"""다음 문서를 분석해서 주요 정보를 정리해주세요.

파일명: {file_name}

【분석 항목】
1. 문서 종류와 목적
2. 핵심 내용 요약 (3줄 이내)
3. 주요 인물/조직/날짜/금액 등 중요 정보
4. 표나 데이터가 있으면 구조화

문서 내용:
{document_text[:3000]}"""

    response = client.messages.create(
        model="claude-sonnet-4-20250514",
        max_tokens=1000,
        messages=[{"role": "user", "content": prompt}]
    )
    
    return response.content[0].text

메인 실행

print("📄 문서 자동 분석기へようこそ!") print("-" * 40) files = ["sample.pdf", "sample.docx", "sample.xlsx"] for file_path in files: try: print(f"\n📎 {file_path} 분석 중...") text = read_any_document(file_path) result = analyze_with_claude(text, file_path) print(f"\n【{file_path} 분석 결과】") print(result) except Exception as e: print(f"❌ {file_path} 처리 중 오류: {e}") print("\n✨ 모든 문서 분석 완료!")

자주 발생하는 오류 해결

오류 1: "API 키를 찾을 수 없습니다"

원인: .env 파일을 만들지 않았거나 파일 이름이 다른 경우

해결 방법:

  1. 프로젝트 폴더에 "apikey.env" 파일이 있는지 확인하세요
  2. 파일 내용 첫 줄에 정확히 이렇게 적었는지 확인하세요: HOLYSHEEP_API_KEY=여기에_키_적기
  3. 코드 첫 줄에 load_dotenv()가 있는지 확인하세요

오류 2: "Cannot connect to host"

원인: base_url이 잘못되었거나 네트워크 문제

해결 방법:

  1. base_url이 정확히 https://api.holysheep.ai/v1인지 확인하세요
  2. openai.com이나 anthropic.com으로 되어 있으면 HolySheep 주소로 수정하세요
  3. 인터넷 연결이 정상인지 확인하세요

오류 3: "No module named 'pdfplumber'"

원인: 라이브러리가 설치되지 않음

해결 방법:

pip install pdfplumber python-docx openpyxl

여전히 안 되면:

pip install --user pdfplumber python-docx openpyxl

오류 4: "Document is empty" 또는 텍스트가 안 나옴

원인: PDF가 이미지 스캔본이거나 문서에 텍스트가 없는 경우

해결 방법:

오류 5: "Rate limit exceeded"

원인: 너무 많은 요청을 빠르게 보냄

해결 방법:

응용 아이디어

여기까지 따라오시느ة 수고하셨습니다. 이제 더 고급인 활용법을 알려드리겠습니다.

정리하며

이번 튜토리얼에서는:

을 배웠습니다. 이 기본 구조를 응용하면 다양한 문서 처리 자동화를 만들 수 있습니다.

HolySheep AI의 단일 API 키로 Claude뿐만 아니라 GPT, Gemini, DeepSeek 등 다양한 AI 모델도同一个 키로 사용할 수 있습니다. 필요에 따라 모델을 바꿔가며 테스트해보세요!

不明한 점이 있으면 HolySheep AI 웹사이트의 문서나 고객 지원을 이용해주세요. Happy coding!