Nhảy đến nội dung chính

Bài Thực Hành: "Trợ Lý Lập Kế Hoạch Marketing"

Mục tiêu

Xây dựng một agent AI có khả năng hiểu mục tiêu Marketing (ví dụ: ra mắt sản phẩm mới, tăng lượt đăng ký, nâng cao nhận diện thương hiệu, v.v...) và tự động đề xuất 3 hành động cụ thể mà team nên thực hiện, kèm lý do chiến lược cho từng hành động.

Tình huống

Team Marketing đưa vào một mục tiêu chiến dịch. AI agent sẽ trả về:

  • 3 hành động gợi ý (ví dụ: viết bài blog, chạy quảng cáo TikTok, hợp tác với KOL, tổ chức webinar, v.v.)

  • Lý do vì sao nên làm hành động đó

  • Kênh thực hiện phù hợp

Bước 1: Định nghĩa cấu trúc dữ liệu

from pydantic import BaseModel, Field
from typing import List

class MarketingAction(BaseModel):
    action: str = Field(..., description="Hành động cụ thể cần làm trong chiến dịch.")
    reason: str = Field(..., description="Lý do chiến lược để thực hiện hành động này.")
    channel: str = Field(..., description="Kênh thực hiện phù hợp (Facebook, TikTok, Blog, Email, v.v.)")

class MarketingPlan(BaseModel):
    objective: str = Field(..., description="Mục tiêu chiến dịch marketing.")
    actions: List[MarketingAction]

Bước 2: Prompt hệ thống

SYSTEM_PROMPT = """
Bạn là một chuyên gia Marketing.
Dựa trên một mục tiêu chiến dịch cụ thể, hãy gợi ý 3 hành động nên thực hiện trong chiến dịch marketing đó.
Với mỗi hành động, hãy chỉ rõ:
1. Hành động gì?
2. Lý do chiến lược.
3. Kênh thực hiện phù hợp.

Trả về dưới dạng JSON có cấu trúc như sau:
{
  "objective": "...",
  "actions": [
    {"action": "...", "reason": "...", "channel": "..."},
    {"action": "...", "reason": "...", "channel": "..."},
    {"action": "...", "reason": "...", "channel": "..."}
  ]
}
"""

Bước 3: Hàm gọi GPT

import openai
import json

openai.api_key = "YOUR_OPENAI_API_KEY"

def generate_marketing_plan(objective: str):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": f"Mục tiêu: {objective}"}
        ],
        temperature=0.7
    )
    content = response["choices"][0]["message"]["content"]
    
    try:
        data = json.loads(content)
        return MarketingPlan(**data)
    except Exception as e:
        print("Lỗi khi phân tích phản hồi:", e)
        print("Phản hồi thô:", content)

Bước 4: Thử nghiệm

objective = "Tăng nhận diện thương hiệu cho sản phẩm chăm sóc da mới dành cho Gen Z"
plan = generate_marketing_plan(objective)

if plan:
    print(f"\n🎯 Mục tiêu chiến dịch: {plan.objective}")
    for idx, action in enumerate(plan.actions, start=1):
        print(f"\n👉 Hành động #{idx}")
        print(f"- Hành động : {action.action}")
        print(f"- Lý do     : {action.reason}")
        print(f"- Kênh      : {action.channel}")

Kết quả mong đợi (ví dụ)

{
  "objective": "Tăng nhận diện thương hiệu cho sản phẩm chăm sóc da mới dành cho Gen Z",
  "actions": [
    {
      "action": "Hợp tác với các beauty TikTokers nổi tiếng",
      "reason": "Gen Z dành nhiều thời gian trên TikTok và bị ảnh hưởng bởi review chân thực từ KOL",
      "channel": "TikTok"
    },
    {
      "action": "Tổ chức mini game giveaway trên Instagram",
      "reason": "Tạo hiệu ứng lan truyền và thu hút người dùng theo dõi fanpage",
      "channel": "Instagram"
    },
    {
      "action": "Viết bài blog chia sẻ bí quyết chăm sóc da tuổi teen",
      "reason": "Nâng cao niềm tin và cung cấp giá trị hữu ích để thu hút khách hàng tiềm năng qua Google Search",
      "channel": "Blog/SEO"
    }
  ]
}

Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft