파이썬 ChatGPT API 자동 요약봇 만들기: 아침 1시간 업무를 20초로 줄인 전체 코드


매일 아침 1시간짜리 뉴스 스크랩 노동을 코드로 끝내버렸다

입사 6개월 차. 팀에서 막내인 나의 아침 루틴은 정해져 있었다. 업계 동향 기사 수십 건과 PDF 리포트를 읽고, 핵심 세 줄을 정리해서 사내 메신저에 올리는 것. 처음엔 챗GPT 창 두 개를 나란히 띄워놓고 텍스트를 복사해 붙이는 방식으로 버텼다. 그런데 텍스트가 조금만 길어지면 답변이 중간에 잘렸고, 피크 시간대에는 사이트가 아예 응답을 안 했다. 오전 업무 시간 절반을 그 단순 작업에 갈아 넣고 있었다.

어느 날 퇴근길에 결심했다. “이걸 코드로 자동화하면 어떻게 되지?” 파이썬을 켜고 무작정 시작했다. 결과적으로 50줄도 안 되는 스크립트 하나가 내 아침 업무 시간을 1시간에서 20초로 압축했다. ChatGPT API와 파이썬을 연동해서 자동 텍스트 요약봇을 만드는 전 과정을 — 삽질과 에러까지 전부 포함해서 — 그대로 공개한다.



1. 개발 환경 세팅 및 사전 준비

백엔드 깊은 지식은 필요 없다. 파이썬에서 변수를 쓰고 함수를 만들고 파일을 읽을 줄 안다면 이 튜토리얼을 전부 소화할 수 있다. 실제로 매일 스크립트를 돌리는 환경은 아래와 같다.

  • 운영체제: Windows 11 Pro (Mac에서도 코드 100% 동일 작동)
  • Python 버전: 3.11.4
  • 코드 편집기: VS Code
  • 필수 라이브러리: openai (API 호출), python-dotenv (API 키 보안 관리)
  • OpenAI 계정: platform.openai.com에서 API 키 발급, 최소 5달러 크레딧 충전 필요

한 가지 짚고 넘어갈 것이 있다. OpenAI API는 챗GPT 웹 사이트 계정과 완전히 별개다. 웹에서 플러스 구독을 쓰고 있어도 API는 따로 발급받고 충전해야 한다. 이걸 몰라서 처음에 30분을 헤맸다.

2. 자동 요약봇 전체 코드 단계별 실습

1단계: 패키지 설치 및 API 키 환경변수 설정

VS Code 터미널을 열고 아래 명령어로 두 라이브러리를 설치한다.

pip install openai python-dotenv

코드 폴더 안에 .env 파일을 만들고 OpenAI API 키를 저장한다. 따옴표 없이 입력하는 것이 핵심이다. 따옴표를 넣으면 파이썬이 기호까지 키 문자열로 읽어 인증 에러를 낸다.

OPENAI_API_KEY=sk-proj-여기에_실제_API_키를_입력하세요

2단계: 요약봇 전체 코드 작성

auto_summarizer.py 파일을 만들고 아래 코드를 붙여 넣는다. 특정 폴더의 raw_text.txt를 읽어 요약한 뒤 summary_result.txt로 자동 저장하는 완전한 파이프라인이다.

import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def read_file(file_path):
    # 한글 깨짐 방지: encoding='utf-8' 필수
    with open(file_path, 'r', encoding='utf-8') as f:
        return f.read()

def save_to_file(file_path, content):
    with open(file_path, 'w', encoding='utf-8') as f:
        f.write(content)

def summarize_text(raw_text):
    system_prompt = """
    너는 글로벌 IT 기업의 수석 전략 분석가야.
    제공된 텍스트를 읽고 반드시 다음 형식으로 한국어 요약해줘:
    1. 핵심 주제 (1문장)
    2. 주요 내용 요약 (3개 불릿 포인트)
    3. 비즈니스 인사이트 (1문장)
    """
    response = client.chat.completions.create(
        model="gpt-4o-mini",  # 속도와 비용 효율 최상
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": f"다음 텍스트를 요약해줘:\n\n{raw_text}"}
        ],
        temperature=0.3  # 팩트 기반 요약이므로 낮게 설정
    )
    return response.choices[0].message.content

if __name__ == "__main__":
    input_file = "raw_text.txt"
    output_file = "summary_result.txt"
    print("요약봇 시작: 파일을 읽어옵니다...")
    try:
        text = read_file(input_file)
        print("ChatGPT API가 분석 중입니다...")
        summary = summarize_text(text)
        save_to_file(output_file, summary)
        print(f"완료! '{output_file}'에 저장되었습니다.")
    except FileNotFoundError:
        print(f"오류: '{input_file}' 파일이 없습니다.")
    except Exception as e:
        print(f"알 수 없는 오류: {e}")

⚠ 프롬프트 엔지니어링을 빼먹으면 안 되는 이유

“이거 요약해 줘”라고만 보내면 AI는 매번 다른 형식으로 자유롭게 대답한다. 어떤 날은 문단으로, 어떤 날은 번호 목록으로. 팀 보고용 자료로 쓰려면 형식이 일관돼야 한다. system_prompt페르소나(수석 전략 분석가)를 부여하고 출력 포맷을 명시적으로 고정해야 매일 균질한 품질의 요약본이 나온다. 이 한 줄 차이가 실무 투입 가능 여부를 가른다.

3. 직접 겪은 치명적 오류 2가지와 해결법

오류 ① 한글이 깨지는 UnicodeDecodeError

영문 코드 예제를 그대로 가져다 썼더니, 메모장에 깔끔하게 정리해 둔 한글 기사를 파이썬이 읽지 못했다. UnicodeDecodeError: 'cp949' codec can't decode...라는 에러가 터미널을 가득 채웠다. Windows 파이썬은 기본 인코딩으로 CP949를 쓰는데, 웹에서 복사한 텍스트는 대부분 UTF-8 포맷이라 충돌이 난 것이다. 해결책은 허무할 만큼 간단했다. open() 함수 안에 encoding='utf-8' 옵션 하나를 추가하는 것. 그게 전부였다. 2시간을 그 에러 메시지와 씨름했는데 말이다.

오류 ② 50페이지 PDF를 던졌더니 토큰 초과 에러

분량이 방대한 리포트를 텍스트로 변환해 봇에 통째로 던졌더니 API가 처리 불가 에러를 뱉었다. gpt-4o-mini의 컨텍스트 윈도우는 128,000토큰으로 넓지만, 너무 긴 텍스트는 중간 내용을 흘리는 ‘Lost in the Middle’ 현상을 일으킨다. 그때부터 파이썬 슬라이싱으로 원본 텍스트를 5,000자 단위 청크로 잘라 순차 요약한 뒤, 그 요약본들을 다시 합쳐 최종 요약하는 2단계 파이프라인으로 코드를 업그레이드했다. 덩어리째 집어넣는 대신 씹어서 넣는 방식이다.

4. 한 달 운영 결과 — 시간과 비용 수치

사내 PC에 스크립트를 세팅하고 약 한 달간 실제 업무에 투입한 결과는 숫자로 확인됐다.

  • 업무 시간: 매일 1시간 가까이 걸리던 기사 수집·요약 작업이 스크립트 실행 대기 시간인 약 20초로 압축됐다. 남은 시간에 기획안 디테일을 잡으면서 팀 내 평가도 달라졌다
  • API 비용: 한 달간 업계 기사와 리포트 300건 이상을 요약시킨 청구 금액은 1.2달러(약 1,600원)였다. 챗GPT 플러스 월정액 20달러와 비교하면, 필요한 만큼만 호출하는 API의 경제성이 얼마나 다른지 체감할 수 있다
  • 품질 일관성: 시스템 프롬프트로 형식을 고정한 덕분에 300건 모두 동일한 포맷으로 출력됐다. 팀장이 “요약 포맷이 훨씬 읽기 좋아졌다”고 말한 것도 이 시점이었다

5. 이 봇이 진짜 빛나는 상황과 아닌 상황

파이썬 ChatGPT API 자동 요약봇이 가장 강력한 위력을 발휘하는 대상은 명확하다.

  • 강력 추천: 매일 반복적인 리서치 업무에 치이는 주니어 직장인, 대량의 해외 기사를 번역·요약해야 하는 콘텐츠 마케터, 산업 트렌드 분석가
  • 비추천: 단발성 이메일 초안 작성이나 간단한 아이디어 구상이 목적이라면 파이썬 환경 세팅 비용이 효익을 넘어선다. 그 경우엔 챗GPT 웹 인터페이스가 훨씬 빠른 선택이다

한 번만 고생해서 이 환경을 구축해 두면, 불평 없이 밥도 안 먹고 하루 종일 일하는 AI 비서를 고용하는 것과 같다. 월정액 없이, 쓴 만큼만 내면서. encoding='utf-8' 한 줄과 시스템 프롬프트 템플릿 하나가 그 차이를 만든다.