huiy-1 / app.py
magictreee's picture
Update app.py
7a25612 verified
import gradio as gr
import os
import asyncio
import aiohttp
from dotenv import load_dotenv
load_dotenv()
openai_api_key = os.getenv("OPENAI_API_KEY")
# OpenAI API ๋น„๋™๊ธฐ ํ˜ธ์ถœ ํ•จ์ˆ˜
async def call_openai_api_async(session, prompts, max_tokens, temperature, top_p):
try:
async with session.post(
"https://api.openai.com/v1/chat/completions",
headers={"Authorization": f"Bearer {openai_api_key}"},
json={
"model": "gpt-4o-mini",
"messages": prompts,
"max_tokens": max_tokens,
"temperature": temperature,
"top_p": top_p,
}
) as response:
result = await response.json()
if 'choices' not in result:
print("Unexpected API response:", result)
return "API ์‘๋‹ต ์˜ค๋ฅ˜"
return result['choices'][0]['message']['content']
except Exception as e:
print(f"API ํ˜ธ์ถœ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}")
return "API ํ˜ธ์ถœ ์˜ค๋ฅ˜"
# ์ „์ฒด ๋ถ„์„ ํ•จ์ˆ˜ (๋น„๋™๊ธฐ)
async def analyze_all_async(combined_output, progress=gr.Progress()):
async with aiohttp.ClientSession() as session:
tasks = []
for label, setting in settings.items():
prompts_item = [
{"role": "system", "content": setting["system_message"]},
{"role": "user", "content": combined_output}
]
task = asyncio.create_task(call_openai_api_async(
session,
prompts_item,
setting["max_tokens"],
setting["temperature"],
setting["top_p"]
))
tasks.append((label, task))
results = {}
total_steps = len(settings)
completed_tasks = 0
for label, task in tasks:
try:
result = await task
results[label] = result
except Exception as e:
print(f"API ํ˜ธ์ถœ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ({label}): {str(e)}")
results[label] = "API ํ˜ธ์ถœ ์˜ค๋ฅ˜"
completed_tasks += 1
progress((completed_tasks / total_steps), desc="๋ถ„์„ ์ค‘...")
progress(1.0, desc="๋ถ„์„ ์™„๋ฃŒ!")
return results
# ๊ฐœ๋ณ„ ๋ถ„์„ ํ•จ์ˆ˜ (๋น„๋™๊ธฐ)
async def analyze_single_async(combined_output, analysis_type, progress=gr.Progress()):
async with aiohttp.ClientSession() as session:
setting = settings.get(analysis_type)
if not setting:
return "์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์€ ๋ถ„์„ ํƒ€์ž…"
prompts_single = [
{"role": "system", "content": setting["system_message"]},
{"role": "user", "content": combined_output}
]
result = await call_openai_api_async(
session,
prompts_single,
setting["max_tokens"],
setting["temperature"],
setting["top_p"]
)
return result
# ๊ฐœ๋ณ„ ๋ถ„์„ ๋ž˜ํผ ํ•จ์ˆ˜ ์ƒ์„ฑ๊ธฐ
def get_analyze_single_wrapper(analysis_type):
async def wrapper(combined_output):
result = await analyze_single_async(combined_output, analysis_type)
return result
return wrapper
# ์ž…๋ ฅ๊ฐ’๋“ค์„ ๊ฒฐํ•ฉํ•˜๋Š” ํ•จ์ˆ˜
def generate_combined_output(product, nuance, target, features, reviews):
# ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •
product_placeholder = "์ดˆ์ŒํŒŒ ๊ฐ€์Šต๊ธฐ"
nuance_placeholder = "๊ธฐ๋Šฅ์  ์ค‘์‹ฌ ๋ถ„์„"
target_placeholder = "์ผ๋ฐ˜์ธ"
features_placeholder = """
[์ œํ’ˆ ์ •๋ณด]
1. ์ œํ’ˆ์˜ ๋ธŒ๋žœ๋“œ๋Š” (ETS ๊ฐ€์Šต๊ธฐ)์ž…๋‹ˆ๋‹ค.
2. ETS์˜ ๋ธŒ๋žœ๋“œ ๊ฐ€์น˜๋Š” (์ฒญ์ •์˜ ์•ฝ์†์„ ๋‹ด๋‹ค)๋ฅผ ์ž˜ ๋…น์˜€์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.
3. ์ œํ’ˆ์˜ ์žฅ์ (์ŠคํŽ™)
1) 3๋‹จ๊ณ„ ๋ถ„๋ฌด๋Ÿ‰ ์กฐ์ ˆ๊ฐ€๋Šฅ
- 1๋‹จ๊ณ„: 100ml, 2๋‹จ๊ณ„: 200ml, 3๋‹จ๊ณ„: 300ml
2) ๋Œ€์šฉ๋Ÿ‰ ์ˆ˜์กฐ๋กœ 3์ผ ์ด์ƒ ๋ณด์ถฉ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ
- 4.2L (๋Œ€์šฉ๋Ÿ‰ ์ˆ˜์กฐ)
3) ๊ฐ€์Šต๋ ฅ์ด ๊ฒฝ์Ÿ์‚ฌ๋ณด๋‹ค ํ’๋ถ€
- ์ตœ๋Œ€๊ฐ€์Šต๋Ÿ‰ : 300ml
4) ์„ธ์ฒ™ ๊ด€๋ฆฌ๊ฐ€ ๋งค์šฐ ์‰ฝ๋‹ค.
- ๋ถ„๋ฆฌํ˜• ๊ตฌ์กฐ (๊ฐ„ํŽธ ์„ธ์ฒ™)
5) ์Šต๋„์กฐ์ ˆ์„ผ์„œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ์กฐ์ ˆ ๋ฐ OFF๊ฐ€ ๊ฐ€๋Šฅ
- AI ์ž๋™ ์Šต๋„ ์กฐ์ ˆ, ํƒ€์ด๋จธ ๊ธฐ๋Šฅ
6) ๋ฌผ ๋ณด์ถฉ์ด ๋งค์šฐ ์‰ฝ๋‹ค.
- ์ƒ๋ถ€ ๊ตฌ์กฐ ๊ธ‰์ˆ˜ ๋ฐฉ์‹
7) ๊ฐ€์—ด์‹ ๊ฐ€์Šต๊ธฐ์— ๋น„ํ•ด ์—๋„ˆ์ง€ ์†Œ๋น„ ๋‚ฎ์Œ, ์†Œ์Œ ์ ์Œ, ๊ฐ€์—ด์„ ํ•˜์ง€ ์•Š์•„ ์•ˆ์ „ํ•จ
- ์ดˆ์ŒํŒŒ ๊ฐ€์Šต๊ธฐ ์กฐ์šฉ
8) ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ๊ตญ๋‚ด ์ œ์ž‘ ๋ฐ AS
- ๊ตญ๋‚ด ์ œ์ž‘"""
reviews_placeholder = """
[๋ฆฌ๋ทฐ]
1. ๋งค์šฐ ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์Šต๋Ÿ‰๋„ ๋งŽ๊ณ  ์„ธ์ฒ™๋„ ํŽธ๋ฆฌํ•ด์š”.
2. ๋‹ค๋ฅธ ์ œํ’ˆ์— ๋น„ํ•ด ์†Œ์Œ์ด ์ ๊ณ  ๋””์ž์ธ๋„ ์˜ˆ๋ป์š”.
3. ๋ฌผ ๋ณด์ถฉ์ด ์‰ฝ๊ณ  ์˜ค๋ž˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์„œ ์ข‹์•„์š”.
"""
product = product if product else product_placeholder
nuance = nuance if nuance else nuance_placeholder
target = target if target else target_placeholder
features = features if features else features_placeholder
reviews = reviews if reviews else reviews_placeholder
combined_output = f"Product: {product}\nNuance: {nuance}\nTarget Audience: {target}\nFeatures: {features}\nReviews: {reviews}"
return combined_output
# โ˜… UI ๋ฆฌ์…‹ ํ•จ์ˆ˜ (๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ update ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉ)
def ui_reset_all():
# reset ์ˆœ์„œ: [product_input (Textbox),
# nuance_options (Dropdown),
# target_options (Dropdown),
# features_input (Textbox),
# reviews_input (Textbox),
# combined_output (Textbox)] +
# [๊ฐ ํ”„๋กฌํ”„ํŠธ๋ณ„ ์ถœ๋ ฅ(Textbox) (len(prompts)๊ฐœ)] +
# [final_output (Textbox)]
resets = []
resets.append(gr.Textbox.update(value="")) # product_input
resets.append(gr.Dropdown.update(value="์˜ˆ์ œ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”")) # nuance_options
resets.append(gr.Dropdown.update(value="์˜ˆ์ œ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”")) # target_options
resets.append(gr.Textbox.update(value="")) # features_input
resets.append(gr.Textbox.update(value="")) # reviews_input
resets.append(gr.Textbox.update(value="")) # combined_output
resets.extend([gr.Textbox.update(value="") for _ in range(len(prompts))]) # ๊ฐ ํ”„๋กฌํ”„ํŠธ๋ณ„ ์ถœ๋ ฅ
resets.append(gr.Textbox.update(value="")) # final_output
return tuple(resets)
# ํ”„๋กฌํ”„ํŠธ ์ •์˜
prompts = {
"1๏ธโƒฃํšŒ์‚ฌ ์Šฌ๋กœ๊ฑด": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋„ˆ๋Š” ์„ธ๊ณ„์ ์œผ๋กœ ์œ ๋ช…ํ•œ ๋งˆ์ผ€ํ„ฐ์ด์ž, ์นดํ”ผ๋ผ์ดํ„ฐ์ด๋‹ค.
3. ์ƒ์„ธํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ํ•ญ๋ชฉ์€ "slogan."์ด๋‹ค.
4. ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ธ์ •์ ์ธ ๋ฉ”์„ธ์ง€์™€ ๊ฐ•๋ ฅํ•œ ์ž„ํŒฉํŠธ๊ฐ€ ์žˆ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
5. 2์ค„ ์ด๋‚ด๋กœ ๊ฐ„๋žตํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋ผ.
6. 10๊ฐ€์ง€ ์Šฌ๋กœ๊ฑด์„ ์ถœ๋ ฅํ•˜๋ผ.(๊ฒฐ๊ณผ๋ฌผ ์•ž์— ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ)
7. ์ƒํ’ˆ๋ช…(์ƒํ’ˆํ‚ค์›Œ๋“œ)๋Š” ์ œ์™ธํ•˜๋ผ.
8. Target์„ ๋ฐ˜๋“œ์‹œ ๋ฐ˜์˜ํ•˜๋ผ.
9. ์ฝ๊ธฐ ์‰ฝ๊ณ , ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๋ผ.
10. [์ข‹์€ ์Šฌ๋กœ๊ฑด์˜ ์›์น™]์„ ์ฐธ๊ณ ํ•˜๋ผ.
[์ถœ๋ ฅํ˜•์‹]
1. ์Šฌ๋กœ๊ฑด 10๊ฐœ ์ด์™ธ์—๋Š” ๋‹ค๋ฅธ ์–ด๋–ค ๋‚ด์šฉ๋„ ์ถœ๋ ฅํ•˜์ง€ ๋ง ๊ฒƒ.
2. ์ผ์ฐจ์›์ , ์ง๊ด€์  ์–ธ์–ด๋กœ ์ž‘์„ฑํ•˜๋ผ.
[์ข‹์€ ์Šฌ๋กœ๊ฑด์˜ ์›์น™]
1. ๊ฐ„๊ฒฐ์„ฑ : ์งง๊ณ  ๊ฐ„๊ฒฐํ•ด์•ผํ•œ๋‹ค. "Just Do It"์ฒ˜๋Ÿผ ๋‹จ ๋ช‡ ๊ฐœ์˜ ๋‹จ์–ด๋กœ๋„ ํฐ ์˜๋ฏธ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
2. ๋ช…๋ฃŒ์„ฑ : ๋ช…๋ฃŒํ•ด์•ผํ•œ๋‹ค. ์•„๋ฌด๋ฆฌ ๋ฉ‹์ง„ ๋ฌธ์žฅ์ด๋ผ๋„ ๊ทธ ์˜๋ฏธ๊ฐ€ ๋ชจํ˜ธํ•˜๋‹ค๋ฉด ์‚ฌ๋žŒ๋“ค์€ ๊ทธ ๋ธŒ๋žœ๋“œ๋ฅผ ๊ธฐ์–ตํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
- ๋”ฐ๋ผ์„œ ๋‹จ์–ด ์„ ํƒ์ด ์ค‘์š”ํ•˜๋‹ค, ๋ช…๋ฃŒํ•œ ๋ฉ”์„ธ์ง€๋กœ ์ธ์ง€๋„๋ฅผ ๋†’์—ฌ์•ผํ•œ๋‹ค.
3. ๊ธฐ์–ต๋ ฅ : ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฌ์›Œ์•ผํ•œ๋‹ค. ์ข‹์€ ์Šฌ๋กœ๊ฑด์€ ์‚ฌ๋žŒ๋“ค์ด ํ•œ๋ฒˆ ๋“ค์–ด๋„ ์žŠ์ง€ ๋ชปํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋งค๋ ฅ์ด ์žˆ๋‹ค.
4. ์ œํ’ˆ์˜ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ํฌ์ธํŠธ๋ฅผ ๋‹ด๋Š”๋‹ค.
5. ํ•ต์‹ฌ ๊ฐ€์น˜๋‚˜ ๋น„์ „์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ‚ค์›Œ๋“œ๋‚˜ ํ‘œํ˜„์„ ์ฐพ๋Š”๋‹ค.
6. ๊ฐ์ •์ ์ธ์—ฐ๊ฒฐ ์š”์†Œ๋ฅผ ๋งŒ๋“ ๋‹ค.
[์‹ค์ œ ์‚ฌ์šฉ์ค‘์ธ ์Šฌ๋กœ๊ฑด ์˜ˆ์‹œ]
1. ํ•€ํฌ: "์•Œ์•„์„œ ์ฑ™๊ฒจ์ฃผ๋Š” ๋‚˜๋งŒ์˜ ๋จธ๋‹ˆ ํŠธ๋ ˆ์ด๋„ˆ"
2. ๋””์ฆˆ๋‹ˆ๋žœ๋“œ: "์ง€๊ตฌ์—์„œ ๊ฐ€์žฅ ํ–‰๋ณตํ•œ ๊ณณ"
3. ๋ฐ€๋ฆฌ์˜ ์„œ์žฌ: "๋…์„œ๊ฐ€ ์ทจ๋ฏธ๊ฐ€ ๋˜๋Š” ๋‹น์‹ ์„ ๋งŒ๋‚˜๋ณด์„ธ์š”"
4. ์‚ผ์„ฑ ๊ทธ๋ž‘๋ฐ ๊ฑด์กฐ๊ธฐ: "์šฐ๋ฆฌ๊ฐ€ ํ‚ค์šด๊ฑด ๋‹จ์ง€ ๊ฑด์กฐ๊ธฐ์˜ ํฌ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๊นจ๋—ํ•จ์˜ ํฌ๊ธฐ"
5. ๋…ธ์ŠคํŽ˜์ด์Šค: "์˜ฌ ๊ฒจ์šธ ์šฐ๋ฆฌ์˜ ์‹ฌ์žฅ์€ ํ•จ๊ป˜ ๋›ด๋‹ค"
6. ๋‰ด๋ผ๋ฏธ์Šค: "์–ผ๊ตด์€. ์›ƒ์„๋•Œ. ๊ฐ€์žฅ ๋งค๋ ฅ์ ์ด๋‹ค. ํ”ผ๋ถ€์†๊นŒ์ง€ ์›ƒ์ž!"
7. ํŒŒ์›Œ์—์ด๋“œ: "๊ฒฝ๊ธฐ๋Š” ๊ณ„์†๋˜์–ด์•ผ ํ•œ๋‹ค."
8. ์˜ค๋šœ๊ธฐ: "์นด๋ ˆ๊ฐ€ ๋ง›์žˆ์–ด์•ผ ์นด๋ ˆ๊ฐ€ ๋ง›์žˆ์ง€์š”"
9. ์œ ํ•œํ‚ด๋ฒŒ๋ฆฌ ๋‹ฅํ„ฐ๋งˆ๋ฐ: "์—„๋งˆ์™€ ๋‹ฅํ„ฐ๊ฐ€ ์•„๊ธฐ๋ฌผํ‹ฐ์Šˆ๋ฅผ ์—ฐ๊ตฌํ•ฉ๋‹ˆ๋‹ค"
10. ๋งˆ์ผ“์ปฌ๋ฆฌ: "์žฅ๋ณด๊ธฐ๋ฅผ ์ƒˆ๋กญ๊ฒŒ, ํ€„๋ฆฌํ‹ฐ ์žˆ๊ฒŒ"
11. ์˜ฅ์…˜: "์˜ฅ์…˜์˜ ๋ฒ•์น™ : ํŒŒ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ฒฝ์Ÿํ•˜๋ฉด ๊ฐ€๊ฒฉ์€ ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค"
""",
"2๏ธโƒฃ์ƒํ’ˆ์„ ๋Œ€ํ‘œํ•˜๋Š” ๋ฌธ๊ตฌ": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋‹น์‹ ์€ ์œ ๋ช…ํ•œ ๋งˆ์ผ€ํ„ฐ์ด์ž, ์นดํ”ผ๋ผ์ดํ„ฐ์ด๋‹ค.
3. ์ถœ๋ ฅ ๋˜๋Š” ๋ชจ๋“  ๋‚ด์šฉ์€ '๋งค์Šฌ๋กœ์šฐ์˜ ์š•๊ตฌ 5๋‹จ๊ณ„' ๊ด€์ ์— ๋งž๋„๋ก [์ถœ๋ ฅํ˜•์‹]์— ๋งž๋„๋ก ์นดํ”ผ๋ฅผ ์ƒ์„ฑํ•˜๋ผ
4. ๋ฐ˜๋“œ์‹œ ์ƒํ’ˆ๋ช…(์ƒํ’ˆํ‚ค์›Œ๋“œ)๋Š” ์ œ์™ธํ•˜๋ผ.
5. ์–ธ์–ด์ ์ธ ๋Š๋‚Œ์€ ๋Œ€ํ•œ๋ฏผ๊ตญ(ํ•œ๊ตญ)์—์„œ ์“ฐ๋Š” ๋Š๋‚Œ์œผ๋กœ ์ƒ์„ฑํ•˜๋ผ.
6. ํ•ต์‹ฌ ๋ฉ”์‹œ์ง€ 1๊ฐ€์ง€์”ฉ์„ ๋ฐ˜์˜ํ•˜๋ผ.
7. '์นดํ”ผ๋ผ์ดํŒ… ํฌ์ธํŠธ'๋ฅผ ๋ฐ˜์˜ํ•˜๋ผ.
8. Target์„ ๋ฐ˜๋“œ์‹œ ๋ฐ˜์˜ํ•˜๋ผ.
[์นดํ”ผ๋ผ์ดํŒ… ํฌ์ธํŠธ]
1. ํ˜ธ๊ธฐ์‹ฌ์„ ์ž๊ทนํ•˜๋ผ.
2. ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ผ.
3. ์งˆ๋ฌธ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•˜๋ผ.
4. ๊ฐ์„ฑ์„ ์ž๊ทนํ•˜๋ผ.
5. ์–ป๊ฒŒ๋  ์ด์ ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ผ.
6. ๋†“์น˜๋ฉด ์†ํ•ด๋˜๋Š” ํฌ์ธํŠธ๋ฅผ ์ œ์‹œํ•˜๋ผ.
7. ๋ฐ˜๋“œ์‹œ ์ƒํ’ˆ๋ช…(์ƒํ’ˆํ‚ค์›Œ๋“œ)๋Š” ์ œ์™ธํ•˜๋ผ.
8. ๊ฐ์„ฑ์ ์ด๊ณ  ์€์œ ์ ์ธ ํ‘œํ˜„์œผ๋กœ ์ถœ๋ ฅํ•˜๋ผ.
[๋งค์Šฌ๋กœ์šฐ์˜ ์š•๊ตฌ 5๋‹จ๊ณ„]
1. ์ƒ๋ฆฌ์  ์š•๊ตฌ
2. ์•ˆ์ „์˜ ์š•๊ตฌ
3. ์‚ฌ๋ž‘๊ณผ ์†Œ์†์˜ ์š•๊ตฌ
4. ์กด๊ฒฝ์˜ ์š•๊ตฌ
5. ์ž์•„์‹คํ˜„์˜ ์š•๊ตฌ
[์ถœ๋ ฅํ˜•์‹]
1. ๋งค์Šฌ๋กœ์šฐ์˜ ์š•๊ตฌ 5๋‹จ๊ณ„์˜ ๊ฐ ํ•ญ๋ชฉ๋งˆ๋‹ค 5๊ฐœ์”ฉ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋ฐ˜๋“œ์‹œ ์ƒํ’ˆ๋ช…(์ƒํ’ˆํ‚ค์›Œ๋“œ)๋Š” ์ œ์™ธํ•˜๋ผ.
3. ์ค‘๊ตญ์–ด(ํ•œ์ž), ์ผ๋ณธ์–ด(ํžˆ๋ผ๊ฐ€๋‚˜)๋Š” ์ œ์™ธํ•˜๋ผ.
[์˜ˆ์‹œ]
1. ๋งค์ผ๋งค์ผ ์ฒญ๋Ÿ‰ํ•˜๊ณ  ๊ฐ€๋ณ๊ฒŒ ์ฆ๊ฒจ์š”!
""",
"3๏ธโƒฃ์ด๋Ÿฐ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋„ˆ๋Š” ๊ณ ์•ก๋งค์ถœ์˜ ์˜จ๋ผ์ธ ํŒ๋งค์ž์ด๋ฉฐ ์œ ๋ช…ํ•œ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
3. ์ƒํ’ˆ ํŒ๋งค๋ฅผ ์ด‰์ง„์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ƒ์„ธํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑ ํ•œ๋‹ค. ํ•ญ๋ชฉ์€ "์ด๋Ÿฐ๋ถ„๋“ค์—๊ฒŒ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค."์ด๋‹ค.
4. ๋ฐ˜๋“œ์‹œ ์ œ๊ณตํ•œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ 20๊ฐœ ์ž‘์„ฑํ•˜๋ผ.
5. Target์„ ๋ฐ˜์˜ํ•˜๋ผ.
[์ถœ๋ ฅ ์กฐ๊ฑด]
1. ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํƒ€๊ฒŸ์ด ์–ป๊ฒŒ๋  ์ด์ ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋ผ.
2. ๊ฐ ํ•ญ๋ชฉ๋งˆ๋‹ค ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์— "~๋ถ„", "~๋ถ„์—๊ฒŒ ์ถ”์ฒœ" ์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋๋‚˜๋„๋ก ์ƒ์„ฑํ•˜๋ผ.
3. ๋ฐ˜๋“œ์‹œ ๋ฌธ์žฅ ์•ž์ชฝ์˜ ๋‚ด์šฉ๊ณผ ์–ด์šธ๋ฆฌ๋„๋ก ๋ฌธ์žฅ ๋’ค์ชฝ์— ํƒ€๊ฒŸ ๋Œ€์ƒ์„ ๋ฐฐ์น˜ํ•˜๋ผ.
4. ๋ฐ˜๋“œ์‹œ ํ•œ์ค„๋กœ ์ž‘์„ฑํ•˜๋ผ(์ตœ๋Œ€ 35์ž)
5. ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ์™€ [์˜ˆ์‹œ]๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ 20๊ฐœ ์ƒ์„ฑํ•˜๋ผ
[์ถœ๋ ฅ ๊ธˆ์ง€ ์กฐ๊ฑด]
1. ์ ˆ๋Œ€๋กœ '์ถœ๋ ฅ ๊ธˆ์ง€ ์กฐ๊ฑด'์— ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ฌธ์žฅ์„ ์ž‘์„ฑํ•˜์ง€ ๋ง ๊ฒƒ.
2. '๋ถ€๋ถ€๋ถ„(๋ถ€๋ถ€+๋ถ„)'์ฒ˜๋Ÿผ ์ž์—ฐ์Šค๋Ÿฝ์ง€ ์•Š์€ ํ•œ๊ตญ์–ด
3. 'ํ•ฉ๋‹ˆ๋‹ค', '~๋‹ค', '~์š”'์˜ ํ˜•ํƒœ
4. 'A/S', '๋ณด์ฆ์„œ', '์†ํŽธ์ง€'๋“ฑ์˜ ์ด์ ์ด ํฌํ•จ๋œ ๋ฌธ์žฅ.
5. '์•„์ด ํ‚ค์šฐ๋Š” ์ฃผ๋ถ€', '์‹ ํ˜ผ๋ถ€๋ถ€', '์„ ๋ฌผ์šฉ' ๋“ฑ์˜ ๋‹จ์ˆœํ•œ ํƒ€๊ฒŸ
6. '์ถœ๋ ฅ ๊ธˆ์ง€ ์กฐ๊ฑด'์— ํ•ด๋‹น๋˜๋ฉด ๋ฌธ์žฅ์„ ์ถœ๋ ฅํ•˜์ง€ ๋ง๋ผ.
[์˜ˆ์‹œ]
1. ์ž๋™์Šต๋„ ์กฐ์ ˆ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜์‹ ๋ถ„
2. ์ฒญ์†Œ ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ํŽธ๋ฆฌํ•œ ์ œํ’ˆ์„ ์ฐพ์œผ์‹œ๋Š” ๋ถ„
3. ๊ณฐํŒก์ด ๊ฑฑ์ • ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹๊ธฐ๊ฑด์กฐ๋Œ€๊ฐ€ ํ•„์š”ํ•˜์‹ ๋ถ„
4. ์ €๋… ์‹œ๊ฐ„์—๋„ ์กฐ์šฉํ•˜๊ฒŒ ์ฒญ์†Œ๊ธฐ๋ฅผ ๋Œ๋ฆฌ๊ณ  ์‹ถ์€ ๋งž๋ฒŒ์ด ๋ถ€๋ถ€์—๊ฒŒ ์ถ”์ฒœ
5. ์Šค๋งˆํŠธํ•œ ๋งตํ•‘ ๊ธฐ๋Šฅ์œผ๋กœ ํšจ์œจ์ ์ธ ์ฒญ์†Œ๋ฅผ ํ•˜๊ณ  ์‹ถ์€ ๋ถ„
""",
"4๏ธโƒฃ์ด๋Ÿฐ๊ฒƒ ์•„์„ธ์š”?": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋„ˆ๋Š” ์ธํ„ฐ๋„ท ๊ธฐ์‚ฌ์„ ์š”์•ฝํ•˜๊ณ  ์ •๋ฆฌํ•˜๋Š” ์–ธ๋ก ์‚ฌ ํŽธ์ง‘์žฅ์ด๋‹ค.
3. ๋ฐ˜๋“œ์‹œ ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณตํฌ๋งˆ์ผ€ํŒ… ์นดํ”ผ๋ผ์ดํŒ…์„ ์ž‘์„ฑํ•˜๋ผ.
4. ๋ฐ˜๋“œ์‹œ ๋Œ€ํ•œ๋ฏผ๊ตญ(ํ•œ๊ตญ)์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์  ํ‘œํ˜„์œผ๋กœ ์ž‘์„ฑํ•˜๋ผ.
[์ถœ๋ ฅํ˜•์‹]
1. ๊ฐ ์นดํ”ผ๋‹น 30์ž ๋‚ด์™ธ๋กœ 30๊ฐœ ์ƒ์„ฑํ•˜๋ผ.
2. ๋ฐ˜๋“œ์‹œ 10๊ฐœ ์ด์ƒ์€ ๊ตฌ์ฒด์  ์ˆ˜์น˜๋ฅผ ํฌํ•จํ•˜๋ผ.
3. ๊ณตํฌ ๋งˆ์ผ€ํŒ…(Fear marketing)์„ ํ•˜๊ธฐ ์œ„ํ•œ ํ—ค๋“œ์นดํ”ผ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
4. [๊ณตํฌ๋งˆ์ผ€ํŒ… ๋ฐฉ๋ฒ•], [๊ณตํฌ๋งˆ์ผ€ํŒ… ํ™œ์šฉ์‚ฌ๋ก€]๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ—ค๋“œ์นดํ”ผ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
5. ์งˆ๋ณ‘์œ ๋ฐœ, ์ฆ์ƒ, ์œ„ํ—˜์š”์†Œ, ์•ˆ์ „์š”์†Œ๋“ฑ์— ์ˆ˜์น˜๋ฅผ ๋„ฃ์–ด์„œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š”๊ฒƒ์„ ๋”์šฑ ๊ฐ•์กฐํ•˜์—ฌ ํ—ค๋“œ์นดํ”ผ๋ฅผ ์ƒ์„ฑํ•˜๋ผ.
6. ์นดํ”ผ์™ธ์— ๋‹ค๋ฅธ ๋ง์€ ์ถœ๋ ฅํ•˜์ง€ ๋ง๋ผ.
7. ๋งจ ์•ž์— ์ˆœ๋ฒˆ์„ ํ‘œ์‹œํ•˜๋ผ.
8. ์ถœ๋ ฅ ์ œ์™ธ ์กฐ๊ฑด์— ํ•ด๋‹น๋˜๋Š” ๋ฌธ์žฅ์€ ์ถœ๋ ฅํ•˜์ง€ ๋ง ๊ฒƒ.
[์ถœ๋ ฅ ์ œ์™ธ ์กฐ๊ฑด ์‹œ์ž‘]
1. ๊ธ์ •์ ์ธ ๋Š‰์•™์Šค(nuance)์˜ ๋ฌธ์žฅ
2. ์˜ˆ์‹œ : "99% ์„ธ๊ท  ์ œ๊ฑฐ"๋กœ ์•ˆ์‹ฌ ์„ธ์ฐจํ•˜์„ธ์š”!
3. ์˜ˆ์‹œ : "์„ธ๊ท ์˜ ์˜จ์ƒ" ์„ธ์ฐจ์žฅ, ๊ฐ„ํŽธ ์„ธ์ฐจ๋กœ ์˜ˆ๋ฐฉํ•˜์„ธ์š”!
[์ถœ๋ ฅ ์ œ์™ธ ์กฐ๊ฑด ๋]
[๊ณตํฌ๋งˆ์ผ€ํŒ… ๋ฐฉ๋ฒ•]
1๋‹จ๊ณ„ : ๊ณ ๊ฐ์ด ํ˜„์žฌ ์œ„ํ—˜์— ๋…ธ์ถœ๋˜์–ด ์žˆ์Œ์„ ์•Œ๋ฆฐ๋‹ค.
2๋‹จ๊ณ„ : ๊ณ ๊ฐ์ด ํ˜„์žฌ ๋…ธ์ถœ๋œ ์œ„ํ—˜์œผ๋กœ๋ถ€ํ„ฐ ๋ฒ—์–ด๋‚˜๋ ค๋ฉด ํ–‰๋™์„ ์ทจํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์•Œ๋ฆฐ๋‹ค.
3๋‹จ๊ณ„ : ๊ณ ๊ฐ์„ ์œ„ํ—˜์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•ด ์ค„ ๊ตฌ์ฒด์ ์ธ ํ–‰๋™์„ ์•Œ๋ ค์ค€๋‹ค.
4๋‹จ๊ณ„ : ๊ณ ๊ฐ์ด ์ด๋Ÿฌํ•œ ๊ตฌ์ฒด์ ์ธ ํ–‰๋™์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž๊ทนํ•œ๋‹ค.
[๊ณตํฌ๋งˆ์ผ€ํŒ… ํ™œ์šฉ์‚ฌ๋ก€]
1. ์—ฌ์„ฑ์šฉ ๋ฉด๋„๊ธฐ : ์—ฌ์„ฑ์˜ ๋…ธ์ถœ์ด ๋งŽ์•„์ง€๋Š” ํŒจ์…˜์ด ์œ ํ–‰ํ•˜๋ฉด์„œ ๊ฒจ๋“œ๋ž‘์ด ํ„ธ์„ ์ œ๋ชจํ•˜๋Š” ํ๋ฆ„์ด ์ƒ๊ฒจ๋‚ฌ๊ณ , ์งˆ๋ ˆํŠธ๋Š” ์ด ๊ธฐํšŒ๋ฅผ ๋…ธ๋ ค ๊ฒจ๋“œ๋ž‘์ด ํ„ธ๊ณผ ๋ถˆ์พŒ๊ฐ์„ ์—ฐ๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๊ฒจ๋“œ๋ž‘์ด ํ„ธ์„ ๋‚จ์—๊ฒŒ ๋ณด์ด๋Š” ๊ฒƒ์€ ๋น„๋งค๋„ˆ์ด๊ฑฐ๋‚˜ ๊ฒŒ์œผ๋ฅธ ๊ฒƒ์ฒ˜๋Ÿผ ๊ณตํฌ ๋งˆ์ผ€ํŒ…์„ ์ง„ํ–‰ํ•˜์˜€๊ณ  ์ด๋ฅผ ํ†ตํ•ด์„œ ์—ฌ์„ฑ์šฉ ๋ฉด๋„๊ธฐ ๋ฐ ์ œ๋ชจ ์ƒํ’ˆ์˜ ๋งค์ถœ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
2. ํƒˆ๋ชจ์ƒดํ‘ธ : ํƒˆ๋ชจ์ƒดํ‘ธ๋ฅผ ๋งˆ์ผ€ํŒ…ํ•  ๋•Œ ๊ทธ ์ œํ’ˆ์˜ ํšจ๋Šฅ๊ณผ ํšจ๊ณผ๋ฅผ ๋”์šฑ ์–ดํ•„ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์ƒ๊ธฐ๋Š” ๋ถˆ์ด์ต์„ ์–ธ๊ธ‰ํ•จ์œผ๋กœ์จ ์šฐ๋ฆฌ์˜ ๊ณตํฌ์‹ฌ์„ ์ž๊ทนํ•ฉ๋‹ˆ๋‹ค.
'์ด ์ƒดํ‘ธ๋Š” ~ํ•œ ์„ฑ๋ถ„์ด ๋“ค์–ด์žˆ์Šต๋‹ˆ๋‹ค.'๋ณด๋‹ค๋Š” '์ด ์ƒดํ‘ธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฐฉ์น˜ํ•œ๋‹ค๋ฉด ์นœ๊ตฌ๋“ค์— ๋น„ํ•ด 10๋…„์€ ๋‚˜์ด ๋“ค์–ด ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.'์ฒ˜๋Ÿผ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถˆ์ด์ต์„ ๊ฐ•์กฐํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์˜ ๋ฐ˜์‘์„ ์ด๋Œ์–ด ๋ƒ…๋‹ˆ๋‹ค.
3. ๊ตฌ๊ฐ•์ฒญ๊ฒฐ์ œ : ๊ตฌ๊ฐ•์ฒญ๊ฒฐ์ œ๋Š” ๊ธฐ์กด์— ์—†๋˜ ์ƒˆ๋กœ์šด ์œ„ํ˜‘์š”์†Œ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์–ดํ•„ํ•œ ์‚ฌ๋ก€์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
๋ฏธ๊ตญ์˜ ๋Œ€ํ‘œ์ ์ธ ๊ตฌ๊ฐ•์ฒญ๊ฒฐ์ œ์ธ ๋ฆฌ์Šคํ…Œ๋ฆฐ์€ ์ฒ˜์Œ ์ถœ์‹œ๋˜์—ˆ์„ ๋•Œ ๊ด‘๊ณ ๋ฅผ ํ†ตํ•ด ์‚ฌ๋žŒ๋“ค ์‚ฌ์ด์—์„œ ์ž… ๋ƒ„์ƒˆ๋กœ ์ธํ•˜์—ฌ ๋Œ€์ธ๊ด€๊ณ„๊ฐ€ ์•…ํ™”๋˜๋Š” ๋ชจ์Šต์„ ์ง€์†์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ง€๋…ํ•œ ์ž… ๋ƒ„์ƒˆ๋กœ ์ธํ•ด์„œ ์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์„ ๋‚˜์˜๊ฒŒ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‘๋ ค์›€์„ ํŒŒ๊ณ ๋“ค์–ด ๋งˆ์ผ€ํŒ…์— ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
[์˜ˆ์‹œ]
1. ๊ฐ€์Šต๊ธฐ 2์ผ๋งŒ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„๋„ "์„ธ๊ท  ๋ฒ”๋ฒ…"
2. ๋ฐ”๋‹ค ํ™˜๊ฒฝ์˜ค์—ผ, ์‹ํƒ์œผ๋กœ ๋˜๋Œ์•„์˜จ๋‹ค. ํ”Œ๋ผ์Šคํ‹ฑ ์‚ฌ์šฉ ์ด๋Œ€๋กœ ๊ดœ์ฐฎ์€๊ฐ€์š”?
3. "๋งฅ์ฃผ ํ•œ์ž”์ด๋ผ๋„ ๋‚ ๋งˆ๋‹ค ์ˆ ์ด ๋•ก๊ธด๋‹ค๋ฉด? ์ด๊ฒƒ ์˜์‹ฌํ•ด์•ผ"
4. ํ•˜๋ฃจ์— ๋ฐฅ ํ•œ ๊ณต๊ธฐ๋งŒ ์ค„์—ฌ๋„ ์˜ค๋ž˜ ์‚ฐ๋‹ค๋Š” ์—ฐ๊ตฌ๊ฒฐ๊ณผ๋„ ์žˆ๊ณ , ์„œ์šธ๋Œ€๋ณ‘์› ์•”์„ผํ„ฐ์˜ ์•”์˜ˆ๋ฐฉ 10๊ณ„๋ช… ์ค‘์—๋„ '์ ์ ˆํ•œ ์ฒด์ค‘๊ด€๋ฆฌ'๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
5. 5์‚ด ์•„์ด์˜ ๋ˆˆ์— ์†์„ธ์ •์ œ๊ฐ€ ๋“ค์–ด๊ฐ€ ๊ฐ๋ง‰์ด ๋ฒ—๊ฒจ์ง€๋Š” ์‚ฌ๊ณ 
6. "์˜ค์—ผ์ˆ˜ ์†Œ์‹ ๋“ค์—ˆ์ฃ ? ์•”๋ณดํ—˜ ๋“ค์–ด๋‘์„ธ์š”"
7. ์ฃผ๋ฐฉ ์„ธ๊ท , "2๋ฐฐ" ๋น ๋ฅธ ์†๋„๋กœ ์ฆ์‹! ์šฐ๋ฆฌ ์ง‘์€ ์•ˆ์ „์ง€๋Œ€?
8. "200๋ฐฐ" ๊ฐ•ํ•œ ์„ธ๊ท , ์šฐ๋ฆฌ ์ง‘ ์‹๊ธฐ๊ฑด์กฐ๋Œ€์—?
""",
"5๏ธโƒฃ์ด ์ƒํ’ˆ ์‚ฌ์šฉํ›„ ์ด๋ ‡๊ฒŒ ๋‹ฌ๋ผ์กŒ์–ด์š”": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋‹น์‹ ์€ ์ œํ’ˆ์„ ๊ตฌ๋งคํ•˜๊ณ  ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•œ ํ›„ ๋„ˆ๋ฌด ๋งŒ์กฑํ•œ ๊ณ ๊ฐ์ด๋‹ค.
3. ์ถœ๋ ฅ ๋˜๋Š” ๋ชจ๋“  ๋‚ด์šฉ์€ USP(Unique Selling Proposition)๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋ผ.
4. "์ด ์ œํ’ˆ์„ ์‚ฌ์šฉ ํ›„ ๋งŒ์กฑํ•˜๋Š” ๋ถ€๋ถ„์„ ํ‘œํ˜„ํ•˜๊ณ , ์‹ค์ƒํ™œ์ด ์–ผ๋งˆ๋‚˜, ์–ด๋–ป๊ฒŒ ๋ณ€ํ–ˆ๋Š”์ง€"๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
5. ๋ณ€ํ™”๋œ ํฌ์ธํŠธ๋ฅผ ๊ฐ•์กฐํ•˜์—ฌ ์ž‘์„ฑํ•˜๋ผ.
6. ์ œ๊ณต๋œ ์‹ค์ œ ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ์—์„œ ์žฅ์ (์ข‹์€ ์ )์„ ๋ฐ˜์˜ํ•˜์—ฌ ์ž‘์„ฑํ•˜๋ผ.
[์ถœ๋ ฅ์กฐ๊ฑด]
1. ๋ชจ๋“  ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” ๋ฐ˜๋“œ์‹œ ์‚ฌ์‹ค(๋ฐ์ดํ„ฐ๊ธฐ๋ฐ˜)์ด์–ด์•ผ ํ•œ๋‹ค.
2. ๊ฐ ํ›„๊ธฐ๋ณ„ ํ•œ์ค„ ์ œ๋ชฉ์„ ๋จผ์ € ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์•„๋ž˜์— ์ธํ„ฐ๋ทฐ ๋‹ต๋ณ€ ํ˜•ํƒœ์˜ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
3. ์ธํ„ฐ๋ทฐ ์ œ๋ชฉ์—๋งŒ ์ ์ ˆํ•˜๊ณ  ์ด๋ชจ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ผ(์ด๋ชจ์ง€๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ํ•˜๋ผ)
- ์ธํ„ฐ๋ทฐ ๋‹ต๋ณ€ ๋‚ด์šฉ์—๋Š” ์ด๋ชจ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง ๊ฒƒ.
4. '#', '##'์€ ์ถœ๋ ฅํ•˜์ง€ ๋ง๊ฒƒ.
5. ๋ฐ˜๋“œ์‹œํ•œ๊ตญ์–ด(ํ•œ๊ธ€)๋กœ ์ถœ๋ ฅํ•˜๋ผ.
6. ์ค‘๊ตญ์–ด(ํ•œ์ž), ์ผ๋ณธ์–ด(ํžˆ๋ผ๊ฐ€๋‚˜)๋Š” ์ œ์™ธํ•˜๋ผ.
[์ถœ๋ ฅํ˜•์‹]
1. ์ƒ์ƒํ•˜๊ณ  ๊ธ์ •์ ์ธ ์ธํ„ฐ๋ทฐ ๋‹ต๋ณ€ ํ˜•ํƒœ์˜ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
- ์งˆ๋ฌธ์€ ์ถœ๋ ฅํ•˜์ง€ ๋ง๋ผ.
2. "๐ŸŽค ๊ฐ์„ฑ์ ์ธ ๊ด€์ ์˜ ์ธํ„ฐ๋ทฐ" ํ›„๊ธฐ 5๊ฐœ ์ƒ์„ฑํ•˜๋ผ.
3. "๐ŸŽค ๊ธฐ๋Šฅ์ ์ธ ๊ด€์ ์˜ ์ธํ„ฐ๋ทฐ" ํ›„๊ธฐ 5๊ฐœ ์ƒ์„ฑํ•˜๋ผ.
4. "๐ŸŽค ํƒ€์ผ“ ๋งž์ถค ์ธํ„ฐ๋ทฐ" ํ›„๊ธฐ 5๊ฐœ ์ƒ์„ฑํ•˜๋ผ.
- ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด ์ œํ’ˆ์˜ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํƒ€๊ฒŸ์„ ์˜ˆ์ธกํ•˜์—ฌ ๊ทธ์— ๋งž๋Š” ์ธํ„ฐ๋ทฐ ํ›„๊ธฐ๋ฅผ 5๊ฐœ ์ƒ์„ฑํ•˜๋ผ.
""",
"6๏ธโƒฃ์ƒํ’ˆ ์„ค๋ช…": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋„ˆ๋Š” ๊ณ ์•ก๋งค์ถœ์˜ ์˜จ๋ผ์ธ ํŒ๋งค์ž์ด๋ฉฐ ์œ ๋ช…ํ•œ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
3. ์ƒํ’ˆ์˜ ์˜จ๋ผ์ธ ํŒ๋งค๋ฅผ ์ด‰์ง„์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ƒ์„ธํŽ˜์ด์ง€๋ฅผ ์ œ์ž‘ํ•œ๋‹ค.
4. ๊ณ ๊ฐ์ด ์–ด๋–ค ์ œํ’ˆ์„ ๊ตฌ๋งคํ• ์ง€ ๊ณ ๋ฏผํ• ๋•Œ ๊ณ ๋ฏผํ•˜๋Š” ํ•ญ๋ชฉ์„ ์งˆ๋ฌธ์œผ๋กœ ์—ญ์ œ์•ˆ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
5. 10๊ฐœ์”ฉ 2๊ฐœ ์ฃผ์ œ, ์ด 20๊ฐœ์˜ ๋‹ต๋ณ€ ์ด์™ธ์—๋Š” ๋‹ค๋ฅธ ๋‹ต๋ณ€์„ ํ•˜์ง€ ๋ง ๊ฒƒ.
[์ถœ๋ ฅ์กฐ๊ฑด]
1. ์ค‘๊ตญ์–ด(ํ•œ์ž), ์ผ๋ณธ์–ด๋Š” ์ œ์™ธํ•˜๋ผ.
2. [์ œํ’ˆ์„ ์„ ํƒํ•˜์‹ค ๋•Œ ์–ด๋–คํ•ญ๋ชฉ์„ ์ฒดํฌํ•˜์‹œ๋‚˜์š”?]๊ณผ [์–ด๋–ค ์ œํ’ˆ์„ ๊ตฌ์ž…ํ•˜๊ณ  ์‹ถ์œผ์„ธ์š”?]์˜ ์ฃผ์ œ๋กœ ์ž‘์„ฑํ•˜๋ผ.
3. ๋ฐ˜๋“œ์‹œ ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ๋งŒ ๋ฐ˜์˜ํ•˜๋ผ.
4. ์ด์ ์„ ๊ฐ•์กฐํ•˜๊ณ , ์‹ค์ œ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋ผ.
[์ œํ’ˆ์„ ์„ ํƒํ•˜์‹ค ๋•Œ ์–ด๋–คํ•ญ๋ชฉ์„ ์ฒดํฌํ•˜์‹œ๋‚˜์š”?]
1. ๋ฐ˜๋“œ์‹œ ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์— "์ฃผ๋‚˜์š”?", "ํ•˜๋‚˜์š”?", "์žˆ๋‚˜์š”?", "์•Š๋‚˜์š”"๋กœ ๋๋‚ด๋ผ
2. 20~35์ž๋กœ 10๊ฐœ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
3. ์ˆœ๋ฒˆ์„ ์ž‘์„ฑํ•˜๋ผ.
4. ์ž…๋ ฅ๋œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ธฐ๋Šฅ์  ํฌ์ธํŠธ๋ฅผ ๊ฐ•์กฐํ•˜๋ผ.
5. ๋งˆ์ผ€ํŒ… ํฌ์ธํŠธ๋ฅผ ๋ฐ˜์˜ํ•˜๋ผ.
6. ์ œํ’ˆ์˜ ์ฐจ๋ณ„์ ์„ ๋ฐ˜์˜ํ•˜๋ผ.
[์˜ˆ์‹œ]
- ์„ธ์ฒ™๊ด€๋ฆฌ๊ฐ€ ํŽธํ•˜๋‚˜์š”?
- 3์ผ ์ด์ƒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?
- ๊ตญ๋‚ด์ œ์ž‘์ธ๊ฐ€์š”?
- ํ™”์žฌ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „ํ•œ๊ฐ€์š”?
- ์œ ํ•ด์„ฑ๋ถ„ ์—†์ด ์•ˆ์ „ํ•œ๊ฐ€์š”?
- ์†์— ๋‹ฟ์•„๋„ ์•ˆ์ „ํ•œ๊ฐ€์š”?
- ์•„๊ธฐ๊ฐ€ ์žˆ๋Š” ๊ณณ์—์„œ๋„ ๊ดœ์ฐฎ๋‚˜์š”?
[์–ด๋–ค ์ œํ’ˆ์„ ๊ตฌ์ž…ํ•˜๊ณ  ์‹ถ์œผ์„ธ์š”?]
1. ๋ฐ˜๋“œ์‹œ ๋งˆ์ง€๋ง‰ ๋ฌธ์žฅ์— "์ข‹๊ฒ ์–ด์š”", "ํ•„์š”ํ•ด์š”", "์ธ๊ฑฐ์š”", "์›ํ•ด์š”","์‹ถ์–ด์š”","์ฐพ์•„์š”"๋กœ ๋๋‚ด๋ผ
2. 20~35์ž๋กœ 10๊ฐœ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
3. ์ˆœ๋ฒˆ์„ ์ž‘์„ฑํ•˜๋ผ.
4. ์ž…๋ ฅ๋œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ธฐ๋Šฅ์  ํฌ์ธํŠธ๋ฅผ ๊ฐ•์กฐํ•˜๋ผ.
5. ๋งˆ์ผ€ํŒ… ํฌ์ธํŠธ๋ฅผ ๋ฐ˜์˜ํ•˜๋ผ.
6. ์ œํ’ˆ์˜ ์ฐจ๋ณ„์ ์„ ๋ฐ˜์˜ํ•˜๋ผ.
[์˜ˆ์‹œ]
- ํ•œ๋ฒˆ ์„ธ์ฐฉํ•˜๋ ค๋ฉด ํž˜์ด๋“œ๋Š”๋ฐ ์„ธ์ฒ™์ด ํŽธํ–ˆ์œผ๋ฉด ์ข‹๊ฒ ์–ด์š”
- ์†Œ์Œ์ด ํฌ์ง€ ์•Š์•˜์œผ๋ฉด ์ข‹๊ฒ ์–ด์š”
- ๋ถ„๋ฌด๋Ÿ‰์ด ์กฐ์ •๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์–ด์š”
- ๋…น์ด ์ƒ๊ธฐ์ง€ ์•Š๊ณ  ๋ฐ˜์˜๊ตฌ์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉด ์ข‹๊ฒ ์–ด์š”
- ๋ชจ๊ธฐ ๋ฐ ํ•ด์ถฉ์„ ๋น ๋ฅด๊ฒŒ ํ‡ด์น˜ํ•˜๋ฉด ์ข‹๊ฒ ์–ด์š”
- 360๋„ ์ „๋ฐฉํ–ฅ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ œํ’ˆ์„ ์ฐพ์•„
- ๋””์ž์ธ๋„ ์˜ˆ์˜๊ณ  ์„ฑ๋Šฅ๋„ ์ข‹์€ ์ œํ’ˆ์ด ํ•„์š”ํ•ด์š”
""",
"7๏ธโƒฃ์ƒํ’ˆ ์„ค๋ช…[์ž์„ธํžˆ]": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋„ˆ๋Š” ๊ณ ์•ก๋งค์ถœ์˜ ์˜จ๋ผ์ธ ํŒ๋งค์ž์ด๋ฉฐ ์œ ๋ช…ํ•œ ๋งˆ์ผ€ํ„ฐ์ด๋‹ค.
3. ์ถœ๋ ฅ ๋˜๋Š” ๋ชจ๋“  ๋‚ด์šฉ์€ USP(Unique Selling Proposition)๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋ผ.
4. ์ฐจ๋ณ„ํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ฐธ์‹ ํ•˜๊ณ  ํญ๋ฐœ์ ์ด๋ฉฐ, ๋งคํ˜น์ ์ด๊ฒŒ ์ž…๋ ฅ๋œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜ ์ž‘์„ฑํ•˜๋ผ.
5. ์ถœ๋ ฅ๋˜๋Š” ์–ธ์–ด์˜ ํ‘œํ˜„์€ ๋Œ€ํ•œ๋ฏผ๊ตญ(ํ•œ๊ตญ)์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋Š๋‚Œ์œผ๋กœ ์ž‘์„ฑํ•˜๋ผ.
[์ถœ๋ ฅ์กฐ๊ฑด]
1. ์•„๋งˆ์กด๋‹ท์ปด์—์„œ ๊ณ ๊ฐ์ด hook๋  ์ˆ˜ ์žˆ๋„๋ก ๋งค์šฐ ๊ฐ•ํ•œ ์นดํ”ผ๋ผ์ดํŒ…์„ 10๊ฐœ๋ฅผ ์ƒ์„ฑํ•˜๋ผ.
2. ๋ฉ”์ธ์นดํ”ผ(30์ž ๋‚ด์™ธ), ์„œ๋ธŒ์นดํ”ผ(100์ž ๋‚ด์™ธ)๋กœ ์ž‘์„ฑํ•˜๋ผ.
3. '๋ฉ”์ธ์นดํ”ผ', '์„œ๋ธŒ์นดํ”ผ' ๋‹จ์–ด๋Š” ์ œ์™ธํ•˜๋ผ.
4. ์ค‘๊ตญ์–ด(ํ•œ์ž), ์ผ๋ณธ์–ด(ํžˆ๋ผ๊ฐ€๋‚˜, ๊ฐ€ํƒ€์นด๋‚˜)๋Š” ์ œ์™ธํ•˜๋ผ.
5. '#', '##'์€ ์ œ์™ธํ•˜๋ผ.
[์ถœ๋ ฅ์˜ˆ์‹œ]
1. ํ”„๋กœ์ฒญ์†Œ๋Ÿฌ์˜ ๋น„๋ฒ•, ๋“œ๋ฆฌ๋ฏธ!
- ๋งž๋ฒŒ์ด ๋ถ€๋ถ€์™€ ์ฃผ๋ถ€์˜ ๊ณ ๋ฏผ์„ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ๋“œ๋ฆฌ๋ฏธ! ํ”„๋กœ์ฒญ์†Œ๋Ÿฌ์˜ ๋น„๋ฒ•์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค!
2. ๋“œ๋ฆฌ๋ฏธ๋กœ ๋Œ€์ถฉ ์ฒญ์†Œํ• ๋ž˜์š”!
- ๋Œ€์ถฉ ์ฒญ์†Œํ•ด๋„ ๋จผ์ง€, ๋ฌผ๊ฑธ๋ ˆ, ๊ฑด์กฐ๊ฐ€ ์™„๋ฒฝ! ์ฒญ์†Œํ•˜๋Š” ์ฒ™, ๊ทธ๋Ÿด์‹ธํ•˜๊ฒŒ!
3. ๋กœ๊ธด์ด ์„ ๋ฌผํ•˜๋Š” ํŽธ๋ฆฌํ•œ ์ฃผ๋ฐฉ ๋ผ์ดํ”„
- ๋งž๋ฒŒ์ด ๋ถ€๋ถ€์™€ ์ฃผ๋ถ€๋‹˜๋“ค์˜ ๊ณ ๋ฏผ์„ ํ•ด๊ฒฐํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๋กœ๊ธด ์‹๊ธฐ๊ฑด์กฐ๋Œ€๋Š” ๋Œ€์šฉ๋Ÿ‰ ์ˆ˜๋‚ฉ์€ ๋ฌผ๋ก , ๋ฌผ๋ฐ›์ด ํ˜ธํ™˜๊ณผ ํŽธ๋ฆฌํ•œ ๋ฌผ๋น ์ง ๊ธฐ๋Šฅ์œผ๋กœ ์„ค๊ฑฐ์ง€ ํ›„ ๊ฑด์กฐ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ํŽธ๋ฆฌํ•˜๊ฒŒ! ์ด์ œ ๋กœ๊ธด๊ณผ ํ•จ๊ป˜ ํŽธ๋ฆฌํ•œ ์ฃผ๋ฐฉ ๋ผ์ดํ”„๋ฅผ ์ฆ๊ธฐ์„ธ์š”!
""",
"8๏ธโƒฃ๊ณ ๊ฐ์˜ ์ƒ์ƒํ•œ ํ›„๊ธฐ": """[์ค‘์š” ํ”„๋กฌํ”„ํŠธ]
1. ๋ฐ˜๋“œ์‹œ ํ•œ๊ตญ์–ด๋กœ ์ถœ๋ ฅํ•˜๋ผ.
2. ๋„ˆ๋Š” ์œ ๋ช…ํ•œ ์˜จ๋ผ์ธ ์ฝ˜ํ…์ธ  ๋งˆ์ผ€ํŒ… ๋Œ€ํ–‰์‚ฌ๋ฅผ ์šด์˜ํ•˜๋Š” ๋Œ€ํ‘œ์ด์ž ๋งˆ์ผ€ํ„ฐ๋‹ค.
3. ๋งˆ์ผ€ํŒ…์— ๋„์›€์ด ๋˜๋Š”, ๊ณ ๊ฐ์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์  ์ค‘์‹ฌ์œผ๋กœ ์ œํ’ˆํ›„๊ธฐ๋ฅผ ์ƒ์„ฑํ•˜๋ผ.
4. ๊ณ ๊ฐ ํ›„๊ธฐ๋Š” ์ง„์งœ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•˜๋Š” ๋Š๋‚Œ์ด ๋“ค ์ˆ˜ ์žˆ๋„๋ก ์ž‘์„ฑํ•˜๊ณ ,
์ธ์œ„์ ์ธ ๋Š๋‚Œ์ด ๋‚˜์ง€ ์•Š๊ณ  ๋ฐ˜๋ณต์ ์ธ ๋‹จ์–ด๊ฐ€ ์—†๋„๋กํ•˜๋ฉฐ,
์†”์งํ•˜๊ณ  ์‹ค๊ฐ๋‚˜๊ฒŒ ํ•œ๊ตญ์ธ์ด ์ž‘์„ฑํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ธํ„ฐ๋„ท ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์žฅ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ผ.
5. ๊ธฐ๋Šฅ์„ ๋„ˆ๋ฌด ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ง€ ๋ง๊ณ , ์ด๋Ÿฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋‹ˆ ์ด๋Ÿฐ ๋ถ€๋ถ„์ด ์ข‹์•˜๋‹ค(๋งŒ์กฑ)์˜ ๋Š๋‚Œ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผํ•œ๋‹ค.
6. ์ž…๋ ฅ๋œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ฐธ๊ณ ํ•˜์—ฌ[50~100์ž] ๋‚ด์™ธ๋กœ 10๊ฐœ์˜ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜๋ผ.
7. ๋„ˆ์˜ ์†Œ๊ฐœ๋Š” ํ•˜์ง€ ๋ง ๊ฒƒ.
[์ถœ๋ ฅํ˜•์‹]
1. ๋ฐ˜๋“œ์‹œ ์ œ๊ณต๋œ ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ์˜ ํ•œ๊ตญ์–ด ํ‘œํ˜„ ํ˜•ํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋ผ.
2. ๋ฐ˜๋“œ์‹œ ์ œ๊ณต๋œ ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ˜์˜ํ•˜๋ผ.
3. ํŒ๋งค์ž๊ฐ€ ์•„๋‹Œ ์‹ค์ œ ๊ตฌ๋งคํ•˜์—ฌ ์‚ฌ์šฉํ•œ ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ์ž‘์„ฑํ•˜๋ผ.
4. ํŒ๋งค์ž๊ฐ€ ํ™๋ณดํ•˜๋Š” ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŒ์กฑํ•œ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๋ผ.
5. ์˜ˆ์ƒ QnA๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ.(๋ฐ˜๋“œ์‹œ ์ œ๊ณต๋œ ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์œผ๋กœ๋งŒ ์ž‘์„ฑํ•˜๋ผ)
6. ์‚ฌ์šฉ์ „๊ณผ ์‚ฌ์šฉํ›„์˜ ํฌ์ธํŠธ๋ฅผ ๊ฐ•์กฐํ•˜๋ผ.
7. ์ ์ ˆํ•œ ์ด๋ชจ์ง€๋ฅผ ์ œ๋ชฉ ๊ฐ€์žฅ ์•ž์— ์ถœ๋ ฅํ•˜๋ผ.
[์ถœ๋ ฅ์˜ˆ์‹œ]
๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ ์•„์ด ์žˆ๋Š” ์ง‘ ํ•„์ˆ˜ํ…œ! ์ฒญ์†Œ๊ฐ€ ์ฆ๊ฑฐ์›Œ!
- ์•„์ด๋ฅผ ํ‚ค์šฐ๋‹ค ๋ณด๋‹ˆ ์ฒญ๊ฒฐ์— ๋” ์‹ ๊ฒฝ์„ ์“ฐ๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๋“œ๋ฆฌ๋ฏธ L10s pro๋ฅผ ๋งŒ๋‚˜๊ณ  ์ฒญ์†Œ๊ฐ€ ์ฆ๊ฑฐ์›Œ์กŒ์–ด์š”. ๋ฌผ๊ฑธ๋ ˆ์™€ ์ง„๊ณต์ฒญ์†Œ๊ฐ€ ๋™์‹œ์— ๋˜๋‹ˆ ๋ฐ”๋‹ฅ์ด ๋Š˜ ๊นจ๋—ํ•˜๊ณ , ํŠนํžˆ ๋ชจ์„œ๋ฆฌ๋‚˜ ๊ตฌ์„๊นŒ์ง€ ๊ผผ๊ผผํ•˜๊ฒŒ ์ฒญ์†Œํ•ด์ค˜์„œ ๋งŒ์กฑ์Šค๋Ÿฌ์›Œ์š”. ๋งตํ•‘ ๊ธฐ๋Šฅ์œผ๋กœ ์ฒญ์†Œํ•  ๊ณต๊ฐ„์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋ฌผ๊ฑธ๋ ˆ์™€ ์ง„๊ณต์ฒญ์†Œ ๋ชจ๋“œ๋ฅผ ๋”ฐ๋กœ ์„ค์ •ํ•  ์ˆ˜๋„ ์žˆ์–ด์„œ ๋„ˆ๋ฌด ํŽธ๋ฆฌํ•ด์š”. ์•„์ด ์žˆ๋Š” ์ง‘์— ๊ผญ ์ถ”์ฒœํ•˜๊ณ  ์‹ถ์–ด์š”!
๐Ÿ˜ ๋ณต์ธต ๊ตฌ์กฐ๋„ ๋ฌธ์ œ์—†์–ด์š”! ์ฒญ์†Œ๊ฐ€ ์‰ฌ์›Œ์กŒ์–ด์š”!
- ๋ณต์ธต ๊ตฌ์กฐ์˜ ์ง‘์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋“œ๋ฆฌ๋ฏธ L10s pro๋ฅผ ๊ตฌ๋งคํ–ˆ์–ด์š”. ์ธต๋ณ„ ์ง€๋„ ์ƒ์„ฑ์€ ๋ฌผ๋ก , ๊ฐ€์ƒ๋ฒฝ ์„ค์ •๊นŒ์ง€ ๊ฐ€๋Šฅํ•ด์„œ ์šฐ๋ฆฌ ์ง‘ ๊ตฌ์กฐ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๋”๋‹ˆ ๊ตฌ์„๊ตฌ์„ ์ฒญ์†Œ๋ฅผ ๊ผผ๊ผผํ•˜๊ฒŒ ํ•ด์ค˜์š”. ํŠนํžˆ, ๋ฌผ๊ฑธ๋ ˆ๊ฐ€ ๋ง๋ผ๋ถ™์€ ์ž๊ตญ๊นŒ์ง€ ๊นจ๋—ํ•˜๊ฒŒ ๋‹ฆ์•„๋‚ด์„œ ํ•ญ์ƒ ๋ฐ”๋‹ฅ์ด ๊น”๋”ํ•ด์š”. ๋ณต์ธต ๊ตฌ์กฐ์˜ ์ง‘์—๋„ ์•ˆ์„ฑ๋งž์ถค์ธ ์ฒญ์†Œ๊ธฐ์˜ˆ์š”!
"""
}
# ์„ค์ •๊ฐ’ ๋”•์…”๋„ˆ๋ฆฌ (๊ฐ ํ”„๋กฌํ”„ํŠธ์— ๋Œ€ํ•œ API ํ˜ธ์ถœ ์„ค์ •)
settings = {
label: {
"system_message": prompts[label],
"max_tokens": 4000,
"temperature": 0.8,
"top_p": 0.95
} for label in prompts
}
# Gradio ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ
with gr.Blocks() as demo:
with gr.Row():
gr.Markdown("# ์ƒํ’ˆ์ƒ์„ธํŽ˜์ด์ง€ ๊ธฐํš๋ฌธ๊ตฌ ์ƒ์„ฑ๊ธฐ")
with gr.Row():
# ์™ผ์ชฝ ์ปฌ๋Ÿผ: ์ž…๋ ฅ ์˜์—ญ
with gr.Column(scale=6):
gr.Markdown("## ์ž…๋ ฅ")
gr.Markdown("#### 1๋‹จ๊ณ„: ๋Œ€ํ‘œํŒ€์˜ ์ƒํ’ˆ์„ ์ ์–ด์ฃผ์„ธ์š” (์ž์„ธํžˆ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”)")
gr.Markdown('<p style="color:gray">[์˜ˆ์‹œ: ๊ฐ€์Šต๊ธฐ(X) / ์ดˆ์ŒํŒŒ ๊ฐ€์Šต๊ธฐ(O)]</p>')
product_input = gr.Textbox(placeholder="์ดˆ์ŒํŒŒ ๊ฐ€์Šต๊ธฐ", show_label=False)
gr.Markdown("<br>")
gr.Markdown("#### 2๋‹จ๊ณ„: ๋ถ„์„ ๋‰˜์•™์Šค๋ฅผ ์ •ํ•ด์ฃผ์„ธ์š” [์•„๋ž˜ ์˜ˆ์‹œ ์ฐธ์กฐ]")
gr.Markdown('<p style="color:gray">[์„ค๋ช… : ์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋Šฅ ์ค‘์‹ฌ์œผ๋กœ ๋ถ„์„๋ฉ๋‹ˆ๋‹ค.]</p>')
nuance_options = gr.Dropdown(
choices=["์˜ˆ์ œ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”", "๊ธฐ๋Šฅ์  ์ค‘์‹ฌ ๋ถ„์„", "๋””์ž์ธ ์ค‘์‹ฌ ๋ถ„์„", "๊ฐ์„ฑ์  ์ค‘์‹ฌ ๋ถ„์„"],
value="์˜ˆ์ œ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”",
show_label=False
)
gr.Markdown("<br>")
gr.Markdown("#### 3๋‹จ๊ณ„: ๊ณ ๊ฐ์˜ ํƒ€๊ฒŸ์„ ์ •ํ•ด์ฃผ์„ธ์š” [์•„๋ž˜ ์˜ˆ์‹œ ์ฐธ์กฐ]")
gr.Markdown('<p style="color:gray">[์„ค๋ช… : ์ž์„ธํ•œ ๊ณ ๊ฐํƒ€๊ฒŸ ์„ค์ •๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.]</p>')
target_options = gr.Dropdown(
choices=["์˜ˆ์ œ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”", "๋Œ€ํ•™์ƒ", "30,40๋Œ€ ์ง์žฅ์ธ", "์ฃผ๋ถ€", "์–ด๋ฆฐ์•„์ด์˜ ๊ฑด๊ฐ•์ด ๊ฑฑ์ •๋˜๋Š” 40๋Œ€ ์ฃผ๋ถ€"],
value="์˜ˆ์ œ๋ฅผ ์„ ํƒํ•ด๋ณด์„ธ์š”",
show_label=False
)
gr.Markdown("<br>")
gr.Markdown("#### 4๋‹จ๊ณ„: ๋™์ผํ•œ ์ƒํ’ˆ ๋˜๋Š” ๋น„์Šทํ•œ ์ƒํ’ˆ์˜ ๋ฆฌ๋ทฐ๋ฅผ 1~3๊ฐœ ์ •๋„๋ฅผ ๋„ฃ์–ด์ฃผ์„ธ์š”")
gr.Markdown('<p style="color:gray">[์„ค๋ช… : ์ฟ ํŒก์˜ ๋ฆฌ๋ทฐ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.]</p>')
reviews_input = gr.Textbox(placeholder="๋ฆฌ๋ทฐ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", lines=5, show_label=False)
gr.Markdown("<br>")
gr.Markdown("#### 5๋‹จ๊ณ„: ์ƒํ’ˆ์˜ ๊ธฐ๋Šฅ ๋˜๋Š” ์ŠคํŽ™ ๋˜๋Š” ์žฅ์ ์„ ์ž์„ธํžˆ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”")
gr.Markdown('<p style="color:gray">[์„ค๋ช… : ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ž…๋ ฅํ• ์ˆ˜๋ก ๋ถ„์„์ด ์ž˜๋ฉ๋‹ˆ๋‹ค.]</p>')
features_input = gr.Textbox(
placeholder="์ƒํ’ˆ์˜ ๊ธฐ๋Šฅ, ์ŠคํŽ™, ์žฅ์ ์„ ์ž…๋ ฅํ•˜์„ธ์š”",
show_label=False,
)
gr.Markdown("<br>")
combined_output = gr.Textbox(label="๋ชจ๋“  ์ž…๋ ฅ๊ฐ’", lines=8)
generate_button = gr.Button("์ƒ์„ฑ")
analyze_all_button = gr.Button("์ „์ฒด๋ถ„์„")
reset_button = gr.Button("์ดˆ๊ธฐํ™”")
progress_bar = gr.Progress()
# ์˜ค๋ฅธ์ชฝ ์ปฌ๋Ÿผ: ์ถœ๋ ฅ ์˜์—ญ (๊ฐ ํ”„๋กฌํ”„ํŠธ๋ณ„ ํƒญ + ์ข…ํ•ฉ๊ฒฐ๊ณผ)
with gr.Column(scale=6):
gr.Markdown("## ์ถœ๋ ฅ")
output_vars = {}
reanalyze_buttons = {}
for label in prompts.keys():
with gr.Tab(label):
output = gr.Textbox(label=label, interactive=False, lines=12)
reanalyze_button = gr.Button("๊ฐœ๋ณ„ ์žฌ๋ถ„์„")
output_vars[label] = output
reanalyze_buttons[label] = reanalyze_button
with gr.Tab("9๏ธโƒฃ์ข…ํ•ฉ๊ฒฐ๊ณผ"):
final_output = gr.Textbox(label="9๏ธโƒฃ์ข…ํ•ฉ๊ฒฐ๊ณผ", lines=20, interactive=False)
# ์ž…๋ ฅ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ๊ฒฐํ•ฉ ํ…์ŠคํŠธ ์—…๋ฐ์ดํŠธ
def update_combined_output(product, nuance, target, features, reviews):
return generate_combined_output(product, nuance, target, features, reviews)
product_input.change(
update_combined_output,
inputs=[product_input, nuance_options, target_options, features_input, reviews_input],
outputs=combined_output
)
nuance_options.change(
update_combined_output,
inputs=[product_input, nuance_options, target_options, features_input, reviews_input],
outputs=combined_output
)
target_options.change(
update_combined_output,
inputs=[product_input, nuance_options, target_options, features_input, reviews_input],
outputs=combined_output
)
features_input.change(
update_combined_output,
inputs=[product_input, nuance_options, target_options, features_input, reviews_input],
outputs=combined_output
)
reviews_input.change(
update_combined_output,
inputs=[product_input, nuance_options, target_options, features_input, reviews_input],
outputs=combined_output
)
generate_button.click(
update_combined_output,
inputs=[product_input, nuance_options, target_options, features_input, reviews_input],
outputs=combined_output
)
# ์ „์ฒด ๋ถ„์„ ๋ฒ„ํŠผ (๋ชจ๋“  ํ•ญ๋ชฉ ๋™์‹œ์— ๋ถ„์„)
async def analyze_all_wrapper(combined_output):
try:
results = await analyze_all_async(combined_output, progress=progress_bar)
return [results.get(label, "๋ถ„์„ ์‹คํŒจ") for label in prompts.keys()]
except Exception as e:
print(f"์ „์ฒด ๋ถ„์„ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}")
return ["๋ถ„์„ ์‹คํŒจ"] * len(prompts)
analyze_all_button.click(
fn=analyze_all_wrapper,
inputs=[combined_output],
outputs=[output_vars[label] for label in prompts.keys()]
)
# ๋ฆฌ์…‹ ๋ฒ„ํŠผ: ui_reset_all()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—…๋ฐ์ดํŠธ
reset_button.click(
fn=ui_reset_all,
inputs=[],
outputs=[product_input, nuance_options, target_options, features_input, reviews_input, combined_output] +
[output for output in output_vars.values()] + [final_output]
)
# ์ข…ํ•ฉ ๊ฒฐ๊ณผ ์—…๋ฐ์ดํŠธ (๊ฐ ํ•ญ๋ชฉ ๋ณ€๊ฒฝ ์‹œ ์ข…ํ•ฉ๊ฒฐ๊ณผ ํƒญ ์—…๋ฐ์ดํŠธ)
def update_final_output(*outputs):
final_output_text = ""
for label, output in zip(prompts.keys(), outputs):
final_output_text += f"{label}\n{output}\n\n"
return final_output_text
for output in output_vars.values():
output.change(
fn=update_final_output,
inputs=list(output_vars.values()),
outputs=final_output
)
# ๊ฐ ํƒญ ๋‚ด "๊ฐœ๋ณ„ ์žฌ๋ถ„์„" ๋ฒ„ํŠผ์— ๋Œ€ํ•ด ํด๋ฆญ ์‹œ ํ•ด๋‹น ํ•ญ๋ชฉ๋งŒ ์žฌ๋ถ„์„
for label, button in reanalyze_buttons.items():
button.click(
fn=get_analyze_single_wrapper(label),
inputs=[combined_output],
outputs=output_vars[label]
)
if __name__ == "__main__":
demo.launch()