4.4 코드 예제: 요약, 번역, 설명, Q&A, 문서 작성
이번 절에서는 OpenAI의 핵심 API 중 하나인 Chat Completions API를 활용한 실제 예제를 통해, 다양한 생성형 기능들을 어떻게 구현할 수 있는지 살펴보겠습니다. 각 예제는 다음과 같은 과제를 다루며, 실제 어플리케이션 개발에 필요한 요소들을 설명과 함께 코드로 제공합니다:
텍스트 요약
번역
개념 설명
질문과 답변 (Q&A)
문서 작성 (각종 양식 자동화 포함)
예제는 Python 언어 기반으로, 공식 OpenAI Python SDK(openai 패키지)를 사용합니다. 사전에 openai 라이브러리를 pip install openai로 설치해주시고, API 키를 환경 변수로 등록해 주세요. 예:
export OPENAI_API_KEY="your-api-key-here"
또는 코드에서 직접 설정도 가능하지만 보안상의 이유로 환경 변수 사용을 권장합니다.
🧩 기본 환경 설정
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
이제 본격적으로 항목별 실습에 진입하겠습니다.
4.4.1 텍스트 요약 (Summarization)
많은 비즈니스나 학술 애플리케이션에서 긴 텍스트를 간결하게 요약하는 기능은 매우 유용합니다. Chat Completions API를 활용하면 간단한 프롬프트 설계로 요약 작업을 수행할 수 있습니다.
예제 1: 뉴스 기사 요약
article = """
지난 금요일, 서울시는 도심 지역의 미세먼지 농도가 다시 나빠질 것으로 예보됨에 따라, 차량 2부제를 실시하고 대중교통 요금을 할인을 제공하기로 했습니다. 또한 초등학교 및 유치원에는 실외 수업 자제를 권고했습니다. 이러한 조치는 최근 계속된 대기 정체로 인한 초미세먼지 급증에 대응하기 위한 것입니다.
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "당신은 훌륭한 문서 요약 전문가입니다."},
{"role": "user", "content": f"다음 기사 내용을 요약해 주세요:\n\n{article}"}
],
temperature=0.5,
max_tokens=200
)
print(response['choices'][0]['message']['content'])
보충 설명
system 역할에서 모델의 역할을 “요약 전문가”로 정의합니다.
temperature는 낮게 설정하여 안정된 결과를 유도합니다.
보다 짧은 요약이 필요하면 max_tokens 값을 줄이면 됩니다.
4.4.2 번역 (Translation)
GPT 계열 모델은 다국어 번역에도 매우 뛰어난 성능을 보입니다. Prompt를 통해 번역의 목적 혹은 스타일까지 지정할 수 있습니다.
예제 2: 한글 → 영어 번역
korean_text = "이 보고서는 2024년 1분기의 매출 실적을 포함하고 있습니다."
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "당신은 정확한 문서 번역가입니다."},
{"role": "user", "content": f"다음을 영어로 번역해 주세요:\n\n{korean_text}"}
],
temperature=0.3,
max_tokens=200
)
print(response['choices'][0]['message']['content'])
고급 팁
형식 유지를 원할 경우 "문장 구조를 유지해서 번역해 주세요", "비즈니스 문서 스타일로 번역하세요" 등 지시어를 함께 사용하세요.
구어체 vs 문어체 번역 컨트롤도 system 프롬프트 또는 user 프롬프트에 명시적으로 표시할 수 있습니다.
4.4.3 개념 설명 (Explain a Concept)
이용자가 복잡하거나 어려운 개념을 설명해주는 챗봇을 만들 때 유용합니다.
🧪 예제 3: ‘벡터 연산’을 초등학생에게 설명
concept = "벡터 연산"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "당신은 초등학생에게 어려운 개념을 쉽게 설명하는 선생님입니다."},
{"role": "user", "content": f"{concept}에 대해 초등학생도 이해할 수 있게 설명해 주세요."}
],
temperature=0.7,
max_tokens=250
)
print(response['choices'][0]['message']['content'])
팁
대상 독자층에 따라 “비전공자 대상”, “임원 대상”, “고등학생 수준” 등 시스템 지시어를 조정하세요.
그림으로 설명이 필요한 경우 Vision API와 결합이 가능합니다 (8장 참고).
────────────────────────────────────────
4.4.4 질문과 답변 (Q&A)
질의응답 기능은 검색, 고객 지원, 인터랙티브 학습 도구 등 다양한 도메인에 적용 가능합니다.
예제 4: 전문적인 Q&A 시스템
question = "GPT와 BERT의 가장 큰 차이점은 무엇인가요?"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "당신은 인공지능 관련 질문에 전문가 수준으로 대답하는 Q&A 어시스턴트입니다."},
{"role": "user", "content": question}
],
temperature=0.6,
max_tokens=400
)
print(response['choices'][0]['message']['content'])
요점 정리
비즈니스 도메인에 맞춰 system 역할을 “세무 관련 상담가”, “보험담당 상담원” 등으로 구체화 가능
Embedding과 결합해 특정 문서 기반 응답만 활성화하는 QA 시스템도 구현 가능(6장 참조)
4.4.5 문서 작성 (Document Drafting)
서식 기반 문서, 이메일, 제안서, 보고서 작성 등을 Chat API로 자동화할 수 있습니다.
예제 5: 협업 제안 이메일 자동 생성
email_context = """
우리 회사는 HR SaaS 플랫폼을 운영 중이며, 귀사의 인사관리 솔루션과의 연동을 통해 시너지를 기대하고 있습니다.
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "당신은 전문적인 비즈니스 이메일 작성자입니다."},
{"role": "user", "content": f"다음 내용을 바탕으로 협업 제안 이메일 초안을 작성해 주세요:\n\n{email_context}"}
],
temperature=0.5,
max_tokens=300
)
print(response['choices'][0]['message']['content'])
예제 6: 이력서 항목 추천
resume_context = "소프트웨어 엔지니어로 백엔드 분야에서 3년 경력, Python과 Node.js 사용, PostgreSQL 경험 있음"
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "당신은 이력서 작성을 도와주는 커리어 코치입니다."},
{"role": "user", "content": f"다음 정보를 바탕으로 이력서의 ‘주요 역량’ 항목을 작성해 주세요:\n\n{resume_context}"}
],
temperature=0.4,
max_tokens=200
)
print(response['choices'][0]['message']['content'])
문서 자동화 팁
항목별 구조가 필요한 경우 JSON 형식 반환 요구도 가능 (7장에서 JSON Mode 설명).
사용자 입력이 여러 필드로 분리되는 경우, 구조화된 프롬프트 또는 Function Calling API 활용을 고려하세요.
정리
Chat Completions API는 단순한 대화 응답을 넘어, 다양한 형태의 자연어 생성 작업에 폭넓게 활용될 수 있습니다. 본 절에서 살펴본 요약, 번역, 설명, 질의응답, 문서 생성 등은 대부분의 AI 서비스에서 기본적으로 요구되는 기능이며, 사용자의 목적과 문맥에 따라 프롬프트 설계 및 파라미터 조절을 통해 정확도 및 만족도를 높일 수 있습니다. 다음 장에서는 이러한 활용을 더 정교하게 만드는 프롬프트 엔지니어링 기법을 살펴보겠습니다. (Chapter 5 참조)
Last updated