[실무 강의] ChatGPT API & 파이썬으로 내 문서에서 핵심 정보만 쏙쏙! 자동 추출 스크립트 만들기 완벽 마스터 튜토리얼

ChatGPT API & 파이썬으로 내 문서에서 핵심 정보만 쏙쏙! 자동 추출 스크립트 만들기

오늘 여러분과 함께 실무에서 바로 활용할 수 있는 강력한 자동화 스크립트를 만들어 볼 것입니다. 방대한 문서 더미 속에서 필요한 정보를 일일이 찾아 헤매는 비효율적인 작업은 이제 그만! ChatGPT API와 파이썬을 활용하여 어떤 문서에서든 핵심 정보를 자동으로 추출해주는 스크립트를 구축하는 방법을 완벽하게 마스터할 것입니다. 이 강의를 통해 여러분은 정보 탐색 시간을 획기적으로 줄이고, 더욱 생산적인 업무에 집중할 수 있는 역량을 갖추게 될 것입니다.

학습 목표

  • ChatGPT API의 기본 개념과 파이썬 연동 방법을 이해합니다.
  • 문서에서 핵심 정보를 효과적으로 추출하기 위한 프롬프트 엔지니어링 전략을 학습합니다.
  • python-dotenv를 활용하여 API 키를 안전하게 관리하는 방법을 익힙니다.
  • 실제 문서 파일에서 텍스트를 읽어와 ChatGPT API에 전달하는 파이썬 스크립트를 작성합니다.
  • API 응답을 파싱하고 핵심 정보를 추출하여 활용하는 방법을 배웁니다.
  • 궁극적으로, 자신만의 자동 문서 정보 추출 도구를 만들고 응용할 수 있는 기반을 다집니다.

사전 준비 사항

본격적인 실습에 앞서 원활한 진행을 위해 다음과 같은 개발 환경 및 도구가 필요합니다. 현재 2026년 기준으로 최적의 환경 설정을 안내해 드립니다.

권장 개발 환경

  • 운영체제 (OS): Windows 10/11, macOS (Ventura 이상), Ubuntu 22.04+ 등 최신 버전의 운영체제
  • 통합 개발 환경 (IDE): Visual Studio Code (VS Code) 최신 버전. 파이썬 확장팩 설치 권장.
  • 파이썬 (Python) 버전: Python 3.9 이상 (Python 3.11 또는 3.12를 권장합니다.)

필수 설치 라이브러리

터미널 또는 명령 프롬프트에서 다음 명령어를 실행하여 필요한 파이썬 라이브러리를 설치합니다.

pip install openai python-dotenv
  • openai: ChatGPT API와 통신하기 위한 공식 파이썬 라이브러리입니다.
  • python-dotenv: API 키와 같은 민감한 정보를 환경 변수로 안전하게 관리하기 위한 라이브러리입니다.

OpenAI API 키 발급

ChatGPT API를 사용하려면 OpenAI 플랫폼에서 API 키를 발급받아야 합니다. OpenAI 계정이 없다면 먼저 가입하고, 다음 단계를 따라 API 키를 생성하세요.

  1. OpenAI 플랫폼 웹사이트 (platform.openai.com)에 접속합니다.
  2. 로그인 후, 좌측 메뉴에서 ‘API keys’ 섹션으로 이동합니다.
  3. ‘Create new secret key’ 버튼을 클릭하여 새로운 API 키를 생성합니다.
  4. 생성된 키는 한 번만 표시되므로, 반드시 안전한 곳에 복사하여 보관해야 합니다. 이 키는 스크립트에서 사용될 것입니다.

단계별 실습 과정

이제 모든 준비가 완료되었으니, 단계별로 스크립트를 작성하고 실행해 보겠습니다.

1단계: OpenAI API 키 설정 및 환경 변수 관리

API 키는 외부에 노출되어서는 안 되는 민감한 정보입니다. .env 파일을 사용하여 환경 변수로 관리하는 것이 가장 안전하고 권장되는 방법입니다.

  1. .env 파일 생성: 프로젝트 루트 디렉터리에 .env 파일을 생성하고, 발급받은 OpenAI API 키를 다음과 같이 저장합니다.
OPENAI_API_KEY="여기에_발급받은_API_키를_붙여넣으세요"

예시: OPENAI_API_KEY="sk-proj-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

  1. .gitignore 설정 (선택 사항이지만 강력 권장): Git을 사용한다면 .gitignore 파일에 .env를 추가하여 API 키가 실수로 버전 관리 시스템에 올라가지 않도록 방지합니다.
.env

2단계: ChatGPT API를 활용한 핵심 정보 추출 프롬프트 설계

API로부터 원하는 결과를 얻기 위해서는 명확하고 구체적인 프롬프트(Prompt)를 설계하는 것이 매우 중요합니다. 우리는 ChatGPT에게 ‘전문 요약가’ 역할을 부여하고, 특정 형식(JSON)으로 정보를 추출하도록 지시할 것입니다.

다음과 같은 system_promptuser_prompt를 구성합니다. response_formatjson_object로 설정하여 API가 반드시 JSON 형식으로 응답하도록 강제하는 것이 핵심입니다.

system_prompt = """
당신은 전문 요약가이자 정보 추출 전문가입니다.
사용자가 제공하는 문서에서 핵심적인 정보, 주요 키워드, 그리고 간략한 요약을 추출하여 JSON 형식으로 반환해야 합니다.
특히 다음 정보에 집중하여 추출하세요:
- 문서의 주된 주제 (main_topic)
- 핵심 키워드 (keywords) - 3~5개
- 요약 (summary) - 2~3문장
- 주요 등장인물 또는 단체 (entities) - 있다면
- 날짜 또는 기간 (dates_or_periods) - 있다면

반드시 JSON 형식으로 응답하며, 한국어로 작성해야 합니다.
예시:
{
    "main_topic": "주제",
    "keywords": ["키워드1", "키워드2"],
    "summary": "요약 내용.",
    "entities": ["인물/단체1"],
    "dates_or_periods": ["2026년"]
}
"""
user_prompt = f"다음 문서에서 핵심 정보를 추출해 주세요:\n\n{document_content}"

이 프롬프트는 API에게 어떤 역할을 수행해야 하는지, 어떤 정보를 추출해야 하는지, 그리고 어떤 형식으로 응답해야 하는지를 명확하게 지시합니다. 특히 JSON 예시를 제공하여 응답의 일관성을 높이는 것이 중요합니다.

3단계: 파이썬 스크립트 작성: API 호출 및 응답 처리

이제 .env 파일에서 API 키를 불러오고, 설계한 프롬프트를 사용하여 ChatGPT API를 호출하는 파이썬 스크립트를 작성할 차례입니다. extract_key_info 함수는 문서 내용을 받아 API를 호출하고, 그 결과를 반환합니다.

document.txt라는 예시 파일을 만들어 그 내용을 읽어오는 read_document 함수도 함께 작성합니다.

import os
from openai import OpenAI
from dotenv import load_dotenv

# 1. 환경 변수 로드
load_dotenv()

# 2. OpenAI 클라이언트 초기화
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def read_document(file_path: str) -> str:
    """
    지정된 파일 경로에서 문서 내용을 읽어옵니다.
    """
    try:
        with open(file_path, 'r', encoding='utf-8') as f:
            return f.read()
    except FileNotFoundError:
        return "오류: 파일을 찾을 수 없습니다. 'document.txt' 파일을 생성하고 내용을 채워주세요."
    except Exception as e:
        return f"오류: 파일 읽기 중 오류 발생: {e}"

def extract_key_info(document_content: str) -> str:
    """
    ChatGPT API를 사용하여 문서에서 핵심 정보를 추출합니다.
    """
    system_prompt = """
    당신은 전문 요약가이자 정보 추출 전문가입니다.
    사용자가 제공하는 문서에서 핵심적인 정보, 주요 키워드, 그리고 간략한 요약을 추출하여 JSON 형식으로 반환해야 합니다.
    특히 다음 정보에 집중하여 추출하세요:
    - 문서의 주된 주제 (main_topic)
    - 핵심 키워드 (keywords) - 3~5개
    - 요약 (summary) - 2~3문장
    - 주요 등장인물 또는 단체 (entities) - 있다면
    - 날짜 또는 기간 (dates_or_periods) - 있다면

    반드시 JSON 형식으로 응답하며, 한국어로 작성해야 합니다.
    예시:
    {
        "main_topic": "주제",
        "keywords": ["키워드1", "키워드2"],
        "summary": "요약 내용.",
        "entities": ["인물/단체1"],
        "dates_or_periods": ["2026년"]
    }
    """
    user_prompt = f"다음 문서에서 핵심 정보를 추출해 주세요:\n\n{document_content}"

    try:
        response = client.chat.completions.create(
            model="gpt-4o", # 2026년 현재 최신 모델 또는 사용 가능한 모델
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": user_prompt}
            ],
            response_format={"type": "json_object"} # JSON 형식 응답 강제
        )
        return response.choices[0].message.content
    except Exception as e:
        return f"오류: API 호출 중 문제 발생: {e}"

if __name__ == "__main__":
    document_file = "document.txt" # 분석할 문서 파일 경로

    print(f"'{document_file}' 파일에서 문서 내용을 읽는 중...")
    content = read_document(document_file)

    if content.startswith("오류:"):
        print(content)
    else:
        print("\n--- 문서 내용 (일부) ---")
        print(content[:500] + "..." if len(content) > 500 else content)
        print("-----------------------\n")

        print("ChatGPT API를 사용하여 핵심 정보 추출 중...")
        extracted_info = extract_key_info(content)

        print("\n--- 추출된 핵심 정보 ---")
        print(extracted_info)
        print("------------------------")

4단계: 문서 파일 준비 및 스크립트 실행

이제 스크립트를 실행하기 전에, 분석하고자 하는 문서 내용을 담은 document.txt 파일을 생성해야 합니다. 프로젝트 루트 디렉터리에 document.txt 파일을 만들고, 다음 예시와 같은 내용을 넣어보세요.

document.txt

2026년 3월 15일, 대한민국 서울에서 '미래 IT 기술 컨퍼런스 2026'이 성황리에 개최되었다. 이번 컨퍼런스는 인공지능(AI), 양자 컴퓨팅, 블록체인, 그리고 메타버스 등 최첨단 기술 동향을 공유하고 미래 산업에 대한 비전을 제시하는 자리였다. 삼성전자, LG전자, 네이버, 카카오 등 국내 주요 IT 기업들이 대거 참여했으며, 특히 'AI 기반의 개인 맞춤형 서비스'에 대한 발표가 많은 주목을 받았다. 기조연설자로 나선 김철수 박사는 "AI는 더 이상 선택이 아닌 필수"라며, "데이터 윤리 및 보안"의 중요성을 강조했다. 참가자들은 새로운 기술 트렌드를 학습하고 네트워크를 확장하는 귀중한 시간을 가졌다.

파일 준비가 완료되었다면, 터미널 또는 명령 프롬프트에서 파이썬 스크립트를 실행합니다.

python your_script_name.py

(your_script_name.py는 여러분이 작성한 파이썬 파일 이름입니다. 예를 들어 extract_info.py)

결과 확인

스크립트가 성공적으로 실행되면, 터미널에 document.txt 파일에서 추출된 핵심 정보가 JSON 형식으로 출력되는 것을 확인할 수 있습니다.

--- 추출된 핵심 정보 ---
{
    "main_topic": "미래 IT 기술 컨퍼런스 2026",
    "keywords": [
        "인공지능(AI)",
        "양자 컴퓨팅",
        "블록체인",
        "메타버스",
        "데이터 윤리"
    ],
    "summary": "2026년 3월 15일 서울에서 개최된 '미래 IT 기술 컨퍼런스 2026'에서는 AI, 양자 컴퓨팅, 블록체인 등 최첨단 기술 동향이 공유되었습니다. 삼성전자, LG전자 등 주요 IT 기업들이 참여했으며, AI 기반 개인 맞춤형 서비스와 데이터 윤리 및 보안의 중요성이 강조되었습니다.",
    "entities": [
        "삼성전자",
        "LG전자",
        "네이버",
        "카카오",
        "김철수 박사"
    ],
    "dates_or_periods": [
        "2026년 3월 15일",
        "2026년"
    ]
}
------------------------

위와 같이 깔끔하게 정돈된 JSON 형태의 결과물을 얻을 수 있습니다. 이 결과는 다른 파이썬 코드나 애플리케이션에서 쉽게 파싱하여 활용할 수 있습니다. 예를 들어, 특정 키워드만 추출하여 데이터베이스에 저장하거나, 요약 내용을 기반으로 보고서를 자동 생성하는 등의 작업에 연동할 수 있습니다.

이 스크립트는 단순한 텍스트 파일뿐만 아니라, PDF 파일이나 웹 페이지 콘텐츠를 읽어오는 기능을 추가하여 확장할 수 있습니다. (예: PyPDF2 라이브러리 사용). 여러분의 필요에 따라 프롬프트의 내용을 더욱 상세하게 조정하여 특정 유형의 정보(예: 재무 보고서의 숫자, 법률 문서의 조항 등)를 추출하도록 정교화할 수 있습니다.

결론

오늘 우리는 ChatGPT API와 파이썬을 활용하여 문서에서 핵심 정보를 자동으로 추출하는 강력한 스크립트를 성공적으로 구축했습니다. 프롬프트 엔지니어링의 중요성, API 키의 안전한 관리, 그리고 실제 코드 구현까지 모든 과정을 직접 경험하며 실무 역량을 한 단계 끌어올렸을 것입니다.

이 기술은 단순한 정보 추출을 넘어, 수많은 문서를 자동으로 분석하고 인사이트를 도출하는 데 무궁무진하게 활용될 수 있습니다. 여러분의 업무 환경에 이 스크립트를 적용하여 생산성을 극대화하고, 더 나아가 여러분만의 혁신적인 자동화 솔루션을 만들어나가시길 바랍니다. 궁금한 점이 있다면 언제든지 질문해 주십시오. 여러분의 성공적인 IT 여정을 응원합니다!

댓글 남기기