카테고리 없음

📘 8강: ChatGPT 자동화 웹앱 만들기

lastdetective 2025. 4. 25. 14:24
반응형

✅ 들어가며

이번 강의에서는 Flask를 사용해서 웹 기반 ChatGPT 자동화 시스템을 만들 거야.
웹 앱에서 버튼 클릭을 통해 GPT 실행 → 결과 확인 → 파일로 저장까지 전부 처리되게 할 거야.

  • 목표:
    웹 브라우저에서 ChatGPT를 실행하고, 결과를 바로 웹 페이지로 보여주고,
    엑셀 파일로 저장할 수 있는 웹 앱 만들기.

🧰 준비 사항

항목설명
Flask 웹 프레임워크 (간단한 웹 애플리케이션 개발용)
openai ChatGPT 호출용 라이브러리
openpyxl 엑셀 파일 생성용 라이브러리
python-dotenv 환경변수 설정 (API 키 보안)

📦 필요한 패키지 설치


pip install flask openai openpyxl python-dotenv
    

💻 1. Flask 웹앱 만들기

Flask 웹 앱을 설정하고, HTML 폼을 통해 사용자가 요청을 보내면 ChatGPT가 결과를 생성하고, 그 결과를 엑셀 파일로 다운로드할 수 있게 할 거야.

🚀 Flask 앱 코드 작성


import os
import openai
from flask import Flask, render_template, request, send_file
from openpyxl import Workbook
from datetime import datetime
from dotenv import load_dotenv

# 환경 변수로 API 키 로딩
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

# Flask 앱 설정
app = Flask(__name__)

# 홈 페이지
@app.route('/')
def home():
    return render_template('index.html')

# GPT 요약 생성 및 엑셀 저장
@app.route('/generate_report', methods=['POST'])
def generate_report():
    prompt = request.form['prompt']  # HTML 폼에서 입력받은 프롬프트

    # ChatGPT API 호출
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "user", "content": prompt}
        ]
    )
    text = response['choices'][0]['message']['content']
    lines = text.strip().split("\n")

    # 엑셀 파일 생성
    wb = Workbook()
    ws = wb.active
    ws.title = "Generated Report"

    for i, line in enumerate(lines, start=1):
        ws.cell(row=i, column=1, value=line)

    # 파일명에 날짜 추가
    filename = f"report_{datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx"
    wb.save(filename)

    # 엑셀 파일 전송
    return send_file(filename, as_attachment=True)

if __name__ == "__main__":
    app.run(debug=True)
    

📂 프로젝트 구조


chatgpt_automation/
├── app.py
├── .env
├── templates/
│   └── index.html
├── static/
│   └── style.css (선택사항)
    

🖥 2. HTML 템플릿 만들기

templates/index.html 파일을 생성하고, 사용자로부터 프롬프트를 입력받을 수 있는 간단한 폼을 만들자.

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ChatGPT 자동화</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
    <div class="container">
        <h1>ChatGPT 자동화 보고서 생성기</h1>
        <form action="/generate_report" method="POST">
            <textarea name="prompt" placeholder="GPT에게 생성할 내용을 입력하세요..." required></textarea>
            <button type="submit">보고서 생성</button>
        </form>
    </div>
</body>
</html>

🌐 3. 웹 앱 실행하기

  1. 위 코드를 저장한 후, Flask 서버를 실행해 보자.

python app.py
    
  1. 브라우저에서 http://127.0.0.1:5000/로 접속하면, 사용자 인터페이스가 나타날 거야.

📂 결과

  1. 웹 페이지에서 사용자가 텍스트를 입력하고 "보고서 생성" 버튼을 클릭하면,
  2. ChatGPT가 해당 내용을 바탕으로 보고서를 작성하고,
  3. 그 보고서를 엑셀 파일로 변환하여 즉시 다운로드할 수 있어.

💡 실전 활용 예시

기능예시
부서별 보고서 생성 특정 부서의 주간 보고서를 자동으로 작성하고 엑셀로 다운로드
회의록 요약 회의 내용을 요약하여 바로 엑셀로 저장
고객 서비스 응답 요약 고객 피드백을 GPT로 분석하고 엑셀로 요약하여 저장

🛠 확장 아이디어

  • 👉 HTML 폼에 추가 입력 필드를 추가해서, 사용자가 원하는 양식으로 프롬프트를 세분화할 수 있도록 할 수 있어.
  • 👉 파일 업로드 기능: 사용자가 엑셀 파일을 업로드하고, 이를 분석해서 자동으로 요약 결과를 제공할 수 있어.
  • 👉 배포: Flask 앱을 Heroku, AWS, 또는 Docker를 이용해 배포하여 실제 서비스를 제공할 수 있어.

🏁 마무리

이제 웹 기반 ChatGPT 자동화 시스템을 만들었고, 웹에서 버튼 클릭만으로 GPT 실행 → 결과 저장 → 엑셀 다운로드까지 완료할 수 있어!

다음 강의에서는 배포와 확장성을 고려한 클라우드 배포실제 서비스화에 대해 다룰 예정이에요.

👉 [9강 보러 가기]


💬 웹앱 사용 중 궁금한 점, 추가하고 싶은 기능은 댓글로!
웹 자동화 시스템도 확장성이 무궁무진하니까 여러분의 아이디어를 추가할 수 있어요 😎


💡 다음 강의 주제: 클라우드 배포 + 실제 서비스화!
이 웹앱을 Heroku나 AWS에 배포하고, 실제 서비스처럼 운영할 수 있는 방법을 다뤄볼 예정!

728x90
반응형