TDN-M's picture
Update app.py
690a418 verified
import streamlit as st
from groq import Groq
import time
# Thiết lập trang
st.set_page_config(
page_title="Lập Lịch Video Laya Green 2025",
page_icon="💄",
layout="wide"
)
# CSS tùy chỉnh
st.markdown("""
<style>
.stTextInput input, .stTextArea textarea {
border-radius: 10px !important;
padding: 10px !important;
}
.stButton button {
width: 100%;
border-radius: 10px;
padding: 10px;
background-color: #6a8d73;
color: white;
font-weight: bold;
}
.stButton button:hover {
background-color: #5a7c63;
}
.stMarkdown h1, .stMarkdown h2, .stMarkdown h3 {
color: #6a8d73;
}
</style>
""", unsafe_allow_html=True)
# Khởi tạo Groq client
client = Groq(api_key=st.secrets["GROQ_API_KEY"])
# Tiêu đề ứng dụng với branding Laya Green
st.title("📅 Lập Lịch Video Content 2025")
st.markdown(f"""
<div style="background-color:#f0f7f4;padding:15px;border-radius:10px;margin-bottom:20px">
<h4 style="color:#6a8d73">Công cụ thiết kế lịch đăng video dành riêng cho thương hiệu mỹ phẩm thiên nhiên Laya Green</h4>
</div>
""", unsafe_allow_html=True)
# Phần nhập thông tin
with st.expander("🔍 THÔNG TIN THƯƠNG HIỆU", expanded=True):
target_audience = st.text_area(
"Mô tả khách hàng mục tiêu của Laya Green",
placeholder="Ví dụ: Nữ 20-35 tuổi, quan tâm skincare thiên nhiên, thích làm đẹp an toàn...",
height=100,
help="Càng chi tiết càng giúp tạo nội dung phù hợp"
)
products_input = st.text_area(
"Danh sách sản phẩm của Laya Green",
placeholder="Ví dụ: Serum trị mụn Organic, Kem dưỡng trắng da Chiết xuất Sakura, Tẩy trang dầu Argan...",
height=100,
help="Nhập các sản phẩm, mỗi sản phẩm trên một dòng hoặc cách nhau bằng dấu phẩy"
)
# Phần chiến lược hiện tại
with st.expander("📈 HOẠT ĐỘNG MARKETING HIỆN TẠI"):
current_marketing = st.text_area(
"Các hoạt động truyền thông đang triển khai",
placeholder="Ví dụ: Đang chạy quảng cáo Tiktok về serum, có group cộng đồng về làm đẹp tự nhiên...",
height=120
)
# Chọn khoảng thời gian
time_period = st.selectbox(
"Chọn khoảng thời gian cho lịch video",
options=["1 tuần", "1 tháng"],
help="Chọn khoảng thời gian bạn muốn lập kế hoạch video"
)
# Nút tạo kế hoạch
if st.button('✨ TẠO LỊCH VIDEO 2025', type="primary"):
if not target_audience:
st.warning("Vui lòng nhập thông tin khách hàng mục tiêu")
st.stop()
if not products_input:
st.warning("Vui lòng nhập danh sách sản phẩm")
st.stop()
# Xử lý danh sách sản phẩm
products = [p.strip() for p in products_input.replace('\n', ',').split(',') if p.strip()]
with st.spinner("Đang tạo lịch video tối ưu cho Laya Green..."):
progress_bar = st.progress(0)
# Xác định số lượng video và mô tả thời gian dựa trên lựa chọn
if time_period == "1 tuần":
num_videos = 2 # Giả sử 2 video cho 1 tuần
period_description = "1 tuần"
else: # 1 tháng
num_videos = 4 # Giả sử 4 video cho 1 tháng
period_description = "1 tháng"
# Tạo prompt chuyên biệt cho mỹ phẩm
prompt_text = f"""
Hãy tạo lịch đăng video marketing {period_description} cho thương hiệu mỹ phẩm thiên nhiên Laya Green với các sản phẩm: {', '.join(products)}.
Khách hàng mục tiêu: {target_audience}
Yêu cầu chi tiết:
1. Định dạng bằng tiếng Việt
2. {num_videos} video cho {period_description}
3. Mỗi video cần có:
- Tiêu đề hấp dẫn
- Concept rõ ràng
- Sản phẩm liên quan
- Gợi ý format (tutorial, review, before-after,...)
4. Kết hợp các hoạt động hiện tại: {current_marketing}
5. Tỷ lệ nội dung:
- 50% giáo dục (hướng dẫn skincare, kiến thức thành phần)
- 30% showcase sản phẩm
- 20% user-generated content
6. Có các chủ đề theo mùa hoặc sự kiện gần nhất (Tết, Valentine, 8/3,...)
7. Ưu tiên xu hướng làm đẹp 2025
"""
# Gọi API Groq
try:
for i in range(10):
progress_bar.progress((i + 1) * 10)
time.sleep(0.1)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "system",
"content": """
Bạn là chuyên gia content cho thương hiệu mỹ phẩm cao cấp.
Bạn rất am hiểu về skincare routine, thành phần mỹ phẩm organic,
và các xu hướng làm đẹp năm 2025. Hãy tạo content sáng tạo,
tự nhiên và thể hiện được tinh thần xanh của Laya Green.
"""
},
{
"role": "user",
"content": prompt_text
}
],
model="meta-llama/Llama-4-Maverick-17B-128E-Instruct",
temperature=0.7,
max_tokens=4000
)
marketing_plan = chat_completion.choices[0].message.content
# Hiển thị kết quả
st.success(f"✅ Lịch video cho {period_description} đã sẵn sàng!")
st.balloons()
with st.expander(f"📅 LỊCH VIDEO LAYA GREEN 2025 ({period_description})", expanded=True):
st.markdown(marketing_plan)
# Tải về file
st.download_button(
label="💾 Tải về bản đầy đủ",
data=marketing_plan,
file_name=f"Lich_video_Laya_Green_2025_{period_description.replace(' ', '_')}.txt",
mime="text/plain"
)
except Exception as e:
st.error(f"Có lỗi xảy ra: {str(e)}")
# Footer
st.markdown("---")
st.markdown("<div style='text-align: center; color: #6a8d73'>© 2024 Laya Green - Mỹ phẩm thiên nhiên cao cấp</div>", unsafe_allow_html=True)