본문 바로가기

[7] AI 카피라이터 만들기 - 프롬프트 엔지니어링 (1)

들어가며

🏫 전체 강의 영상 youtube

✍️ 마케팅 문구 생성기 사용해보기

 ▶️  강의 영상 유튜브

 

이번 챕터에서는 마케팅 문구를 생성하기 위한 프롬프트를 작성해보겠습니다.

chatGPT API 사용 설정

openai 라이브러리를 import하고 미리 환경변수에 등록해 둔 api key를 지정해주겠습니다.

import openai
import os

openai.api_key = os.environ["OPENAI_API_KEY"]

chatGPT API 요청 함수화

그 다음, chatGPT API에 요청을 넣어주는 함수를 작성하겠습니다. 이 때 prompt, system_role, model, stream을 모두 파라미터화 하여 전달받도록 합니다. 그리고 파라미터의 기본값들을 설정해서 평상시에는 프롬프트만 전달해서 텍스트를 생성할 수 있도록 하였습니다.

def request_chat_completion(
    prompt, 
    system_role="당신은 유용한 도우미입니다.", 
    model="gpt-3.5-turbo",
    stream=False
):
    messages = [
        {"role": "system", "content": system_role},
        {"role": "user", "content": prompt}
    ]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        stream=stream
    )
    return response

스트리밍 출력 함수화

그리고 스트리밍 방식으로 내려받은 응답을 출력하는 함수도 작성해줍니다.

def print_streaming_response(response):
    for chunk in response:
        delta = chunk.choices[0]["delta"]
        if "content" in delta:
            print(delta["content"], end="")
        else:
            break

프롬프트 엔지니어링

프롬프트 작성

"카누" 라는 커피 브랜드의 광고 문구를 작성해달라는 간단한 프롬프트를 넣어서 텍스트를 생성해보겠습니다.

prompt = "'카누'라는 커피믹스 브랜드의 SNS 마케팅을 위한 카피를 3개 생성해줘"
response = request_chat_completion(prompt, stream=True)
print_streaming_response(response

>>
1. "매일 아침, 향긋한 커피향에 일어나는 여운을 느껴보세요. 카누의 커피믹스는 당신의 아침을 완벽하게 만들어줄 것입니다. 풍부한 맛과 향을 가진 카누로 당신의 하루를 시작해보세요!"

2. "커피를 즐기는 새로운 방법을 찾고 있다면, 카누의 다양한 커피믹스를 만나보세요. 높은 품질의 커피 원두로 만들어진 카누는 아늑한 가정에서도 프로의 맛을 즐길 수 있는 최고의 선택입니다. 당신의 커피 경험을 한 단계 업그레이드 해보세요!"

3. "여러분, 카누는 커피에 대한 열정과 소중한 시간을 지닌 분들을 위해 준비되었습니다. 카누의 커피믹스는 세련된 맛과 향을 가지고 있어, 당신의 커피 탐험을 도와줄 것입니다. 매일의 일상에서도 특별함을 느끼고 싶다면, 카누가 함께할 거예요!"

마케팅 문구를 만들어주는 모습을 확인할 수 있습니다. 그런데 다른 제품의 문구를 만들기 위해서는 프롬프트를 처음부터 다시 작성해야하는 불편함이 있습니다. 프롬프트를 템플릿화 하고, 데이터만 끼워넣으면 편리하겠죠?

프롬프트 템플릿화

제품명과 제품에 대한 설명을 파라미터로 전달받아서 프롬프트를 생성하는 템플릿을 작성하겠습니다. AI에게 먼저 수행해야할 지시를 알려주어야 합니다. 지시 다음 부분에 생성되는 텍스트가 어떤 느낌이 나면 좋겠다는 걸 적어주세요. 그 다음 구분자를 사용해서 그 사이에 파라미터를 지정해주는 것이 좋습니다.

prompt_template = """
제품 혹은 브랜드를 SNS에 광고하기 위한 문구를 생성해주세요.
자극적이고 창의적으로 작성하세요.
명사 위주로 간결하게 작성하세요.
---
제품명: {product_name}
제품설명: {product_desc}
---
""".strip()
prompt = prompt_template.format(
    product_name="카누",
    product_desc="집에서도 카페 느낌의 아메리카노 맛을 내는 커피 믹스"
)
print(prompt)

>>
제품 혹은 브랜드를 SNS에 광고하기 위한 문구를 생성해주세요.
자극적이고 창의적으로 작성하세요.
명사 위주로 간결하게 작성하세요.
---
제품명: 카누
제품설명: 집에서도 카페 느낌의 아메리카노 맛을 내는 커피 믹스
---

이렇게 템플릿화 시키면 제품명과 제품 설명만 갈아끼워서 프롬프트를 만들 수 있습니다.

response = request_chat_completion(prompt, stream=True)
print_streaming_response(response)

>>
"집에서도 찰떡같은 아메리카노 맛! #카누로 풍요로운 커피 라이프를 즐겨보세요. ☕️✨"

정리

지금까지 마케팅 문구를 생성하기 위한 프롬프트 엔지니어링을 배워봤습니다. 아직은 우리가 원하는 마케팅 문구를 얻지는 못했습니다. 다음 챕터에서 이어서 진행하겠습니다.