TDN-M commited on
Commit
f74cac3
·
verified ·
1 Parent(s): 690a418

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +279 -95
app.py CHANGED
@@ -1,34 +1,54 @@
1
  import streamlit as st
2
  from groq import Groq
3
  import time
 
4
 
5
  # Thiết lập trang
6
  st.set_page_config(
7
- page_title="Lập Lịch Video Laya Green 2025",
8
- page_icon="💄",
9
- layout="wide"
 
10
  )
11
 
12
- # CSS tùy chỉnh
13
  st.markdown("""
14
  <style>
15
- .stTextInput input, .stTextArea textarea {
16
  border-radius: 10px !important;
17
- padding: 10px !important;
 
18
  }
19
  .stButton button {
20
  width: 100%;
21
  border-radius: 10px;
22
- padding: 10px;
23
- background-color: #6a8d73;
24
  color: white;
25
  font-weight: bold;
 
 
26
  }
27
  .stButton button:hover {
28
- background-color: #5a7c63;
 
 
29
  }
30
  .stMarkdown h1, .stMarkdown h2, .stMarkdown h3 {
31
- color: #6a8d73;
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
  </style>
34
  """, unsafe_allow_html=True)
@@ -36,105 +56,251 @@ st.markdown("""
36
  # Khởi tạo Groq client
37
  client = Groq(api_key=st.secrets["GROQ_API_KEY"])
38
 
39
- # Tiêu đề ứng dụng với branding Laya Green
40
- st.title("📅 Lập Lịch Video Content 2025")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  st.markdown(f"""
42
- <div style="background-color:#f0f7f4;padding:15px;border-radius:10px;margin-bottom:20px">
43
- <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>
44
  </div>
45
  """, unsafe_allow_html=True)
46
 
47
- # Phần nhập thông tin
48
- with st.expander("🔍 THÔNG TIN THƯƠNG HIỆU", expanded=True):
49
- target_audience = st.text_area(
50
- " tả khách hàng mục tiêu của Laya Green",
51
- placeholder=" dụ: Nữ 20-35 tuổi, quan tâm skincare thiên nhiên, thích làm đẹp an toàn...",
52
- height=100,
53
- help="Càng chi tiết càng giúp tạo nội dung phù hợp"
54
- )
55
- products_input = st.text_area(
56
- "Danh sách sản phẩm của Laya Green",
57
- 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...",
58
- height=100,
59
- 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"
60
- )
61
 
62
- # Phần chiến lược hiện tại
63
- with st.expander("📈 HOẠT ĐỘNG MARKETING HIỆN TẠI"):
64
- current_marketing = st.text_area(
65
- "Các hoạt động truyền thông đang triển khai",
66
- 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...",
67
- height=120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
69
 
70
- # Chọn khoảng thời gian
71
- time_period = st.selectbox(
72
- "Chọn khoảng thời gian cho lịch video",
73
- options=["1 tuần", "1 tháng"],
74
- help="Chọn khoảng thời gian bạn muốn lập kế hoạch video"
75
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
 
77
- # Nút tạo kế hoạch
78
- if st.button('✨ TẠO LỊCH VIDEO 2025', type="primary"):
79
- if not target_audience:
80
- st.warning("Vui lòng nhập thông tin khách hàng mục tiêu")
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  st.stop()
82
- if not products_input:
83
- st.warning("Vui lòng nhập danh sách sản phẩm")
84
  st.stop()
85
 
86
- # Xử danh sách sản phẩm
87
- products = [p.strip() for p in products_input.replace('\n', ',').split(',') if p.strip()]
88
-
89
- with st.spinner("Đang tạo lịch video tối ưu cho Laya Green..."):
90
  progress_bar = st.progress(0)
91
 
92
- # Xác định số lượng video tả thời gian dựa trên lựa chọn
93
- if time_period == "1 tuần":
94
- num_videos = 2 # Giả sử 2 video cho 1 tuần
95
- period_description = "1 tuần"
96
- else: # 1 tháng
97
- num_videos = 4 # Giả sử 4 video cho 1 tháng
98
- period_description = "1 tháng"
99
-
100
- # Tạo prompt chuyên biệt cho mỹ phẩm
101
  prompt_text = f"""
102
- 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)}.
103
 
104
- Khách hàng mục tiêu: {target_audience}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
  Yêu cầu chi tiết:
107
- 1. Định dạng bằng tiếng Việt
108
- 2. {num_videos} video cho {period_description}
109
- 3. Mỗi video cần có:
110
- - Tiêu đề hấp dẫn
111
- - Concept ràng
112
- - Sản phẩm liên quan
113
- - Gợi ý format (tutorial, review, before-after,...)
114
- 4. Kết hợp các hoạt động hiện tại: {current_marketing}
115
- 5. Tỷ lệ nội dung:
116
- - 50% giáo dục (hướng dẫn skincare, kiến thức thành phần)
117
- - 30% showcase sản phẩm
118
- - 20% user-generated content
119
- 6. Có các chủ đề theo mùa hoặc sự kiện gần nhất (Tết, Valentine, 8/3,...)
120
- 7. Ưu tiên xu hướng làm đẹp 2025
121
  """
122
 
123
- # Gọi API Groq
 
 
 
 
 
124
  try:
125
- for i in range(10):
126
- progress_bar.progress((i + 1) * 10)
127
- time.sleep(0.1)
128
-
129
  chat_completion = client.chat.completions.create(
130
  messages=[
131
  {
132
  "role": "system",
133
  "content": """
134
- Bạn là chuyên gia content cho thương hiệu mỹ phẩm cao cấp.
135
- Bạn rất am hiểu về skincare routine, thành phần mỹ phẩm organic,
136
- các xu hướng làm đẹp năm 2025. Hãy tạo content sáng tạo,
137
- tự nhiên thể hiện được tinh thần xanh của Laya Green.
 
138
  """
139
  },
140
  {
@@ -147,26 +313,44 @@ if st.button('✨ TẠO LỊCH VIDEO 2025', type="primary"):
147
  max_tokens=4000
148
  )
149
 
150
- marketing_plan = chat_completion.choices[0].message.content
151
 
152
  # Hiển thị kết quả
153
- st.success(f"✅ Lịch video cho {period_description} đã sẵn sàng!")
154
  st.balloons()
155
 
156
- with st.expander(f"📅 LỊCH VIDEO LAYA GREEN 2025 ({period_description})", expanded=True):
157
- st.markdown(marketing_plan)
158
 
159
  # Tải về file
160
  st.download_button(
161
- label="💾 Tải về bản đầy đủ",
162
- data=marketing_plan,
163
- file_name=f"Lich_video_Laya_Green_2025_{period_description.replace(' ', '_')}.txt",
164
- mime="text/plain"
165
  )
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  except Exception as e:
168
- st.error(f"Có lỗi xảy ra: {str(e)}")
169
 
170
- # Footer
171
  st.markdown("---")
172
- 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)
 
 
 
 
 
 
1
  import streamlit as st
2
  from groq import Groq
3
  import time
4
+ from datetime import datetime
5
 
6
  # Thiết lập trang
7
  st.set_page_config(
8
+ page_title="Chiến Lược Kinh Doanh Chuyên Nghiệp",
9
+ page_icon="📈",
10
+ layout="wide",
11
+ initial_sidebar_state="expanded"
12
  )
13
 
14
+ # CSS tùy chỉnh nâng cao
15
  st.markdown("""
16
  <style>
17
+ .stTextInput input, .stTextArea textarea, .stSelectbox select {
18
  border-radius: 10px !important;
19
+ padding: 12px !important;
20
+ border: 1px solid #e0e0e0 !important;
21
  }
22
  .stButton button {
23
  width: 100%;
24
  border-radius: 10px;
25
+ padding: 12px;
26
+ background-color: #4a6fa5;
27
  color: white;
28
  font-weight: bold;
29
+ transition: all 0.3s;
30
+ border: none;
31
  }
32
  .stButton button:hover {
33
+ background-color: #3a5a80;
34
+ transform: translateY(-2px);
35
+ box-shadow: 0 4px 8px rgba(0,0,0,0.1);
36
  }
37
  .stMarkdown h1, .stMarkdown h2, .stMarkdown h3 {
38
+ color: #4a6fa5;
39
+ }
40
+ .stExpander {
41
+ border-radius: 10px !important;
42
+ border: 1px solid #e0e0e0 !important;
43
+ }
44
+ .stProgress > div > div > div {
45
+ background-color: #4a6fa5 !important;
46
+ }
47
+ .sidebar .sidebar-content {
48
+ background-color: #f8f9fa;
49
+ }
50
+ [data-testid="stSidebar"] {
51
+ background-color: #f8f9fa !important;
52
  }
53
  </style>
54
  """, unsafe_allow_html=True)
 
56
  # Khởi tạo Groq client
57
  client = Groq(api_key=st.secrets["GROQ_API_KEY"])
58
 
59
+ # Sidebar với thông tin công ty
60
+ with st.sidebar:
61
+ st.image("https://via.placeholder.com/150x50?text=Business+Strategy", width=150)
62
+ st.markdown("""
63
+ ### Công Cụ Chiến Lược Kinh Doanh
64
+ Phiên bản: 2.0
65
+ Ngày cập nhật: """ + datetime.now().strftime("%d/%m/%Y") + """
66
+
67
+ ---
68
+ """)
69
+ st.markdown("""
70
+ **Hướng dẫn sử dụng:**
71
+ 1. Điền đầy đủ thông tin doanh nghiệp
72
+ 2. Chọn loại chiến lược cần tư vấn
73
+ 3. Nhấn nút "Tạo Chiến Lược"
74
+ 4. Xem và tải về kết quả
75
+ """)
76
+ st.markdown("---")
77
+ st.markdown("""
78
+ **Hỗ trợ:**
79
+ 📞 1900 1234
80
81
+ """)
82
+
83
+ # Tiêu đề ứng dụng
84
+ st.title("📊 Công Cụ Xây Dựng Chiến Lược Kinh Doanh")
85
  st.markdown(f"""
86
+ <div style="background-color:#f0f5ff;padding:20px;border-radius:10px;margin-bottom:20px">
87
+ <h4 style="color:#4a6fa5">Giải pháp toàn diện cho chiến lược kinh doanh - Tối ưu hóa hiệu quả với AI</h4>
88
  </div>
89
  """, unsafe_allow_html=True)
90
 
91
+ # Tabs cho các loại chiến lược
92
+ tab1, tab2, tab3, tab4 = st.tabs([
93
+ "📌 Thông Tin Doanh Nghiệp",
94
+ "🎯 Phân Tích Thị Trường",
95
+ "🚀 Chiến Lược Phát Triển",
96
+ "📅 Kế Hoạch Hành Động"
97
+ ])
 
 
 
 
 
 
 
98
 
99
+ with tab1:
100
+ # Phần nhập thông tin doanh nghiệp
101
+ with st.expander("🏢 THÔNG TIN DOANH NGHIỆP", expanded=True):
102
+ col1, col2 = st.columns(2)
103
+ with col1:
104
+ company_name = st.text_input("Tên doanh nghiệp")
105
+ company_age = st.selectbox("Thời gian hoạt động",
106
+ ["Dưới 1 năm", "1-3 năm", "3-5 năm", "Trên 5 năm"])
107
+ industry = st.selectbox("Ngành nghề kinh doanh", [
108
+ "Bán lẻ", "Dịch vụ", "Sản xuất", "Công nghệ",
109
+ "Thực phẩm & Đồ uống", "Giáo dục", "Y tế", "Khác"
110
+ ])
111
+
112
+ with col2:
113
+ revenue = st.selectbox("Doanh thu hàng năm", [
114
+ "Dưới 1 tỷ", "1-5 tỷ", "5-10 tỷ", "10-50 tỷ", "Trên 50 tỷ"
115
+ ])
116
+ employee_count = st.selectbox("Số lượng nhân viên", [
117
+ "1-10", "11-50", "51-100", "101-500", "Trên 500"
118
+ ])
119
+ business_model = st.selectbox("Mô hình kinh doanh", [
120
+ "B2B", "B2C", "B2B2C", "Marketplace", "Subscription", "Khác"
121
+ ])
122
+
123
+ # Phần nhập thông tin khách hàng
124
+ with st.expander("👥 KHÁCH HÀNG MỤC TIÊU"):
125
+ target_audience = st.text_area(
126
+ "Mô tả chi tiết khách hàng mục tiêu",
127
+ placeholder="Ví dụ: Nam/Nữ, độ tuổi, thu nhập, thói quen mua sắm, nhu cầu, pain points...",
128
+ height=120
129
+ )
130
+
131
+ col1, col2 = st.columns(2)
132
+ with col1:
133
+ customer_location = st.text_input("Khu vực địa lý khách hàng")
134
+ with col2:
135
+ customer_channel = st.multiselect(
136
+ "Kênh tiếp cận khách hàng chính",
137
+ ["Facebook", "Zalo", "Tiktok", "Website", "Cửa hàng", "Đại lý", "Khác"]
138
+ )
139
+
140
+ with tab2:
141
+ # Phần phân tích thị trường
142
+ with st.expander("🔍 PHÂN TÍCH SWOT", expanded=True):
143
+ col1, col2, col3, col4 = st.columns(4)
144
+ with col1:
145
+ strengths = st.text_area("Điểm mạnh (Strengths)", height=150)
146
+ with col2:
147
+ weaknesses = st.text_area("Điểm yếu (Weaknesses)", height=150)
148
+ with col3:
149
+ opportunities = st.text_area("Cơ hội (Opportunities)", height=150)
150
+ with col4:
151
+ threats = st.text_area("Thách thức (Threats)", height=150)
152
+
153
+ with st.expander("📊 ĐỐI THỦ CẠNH TRANH"):
154
+ competitors = st.text_area(
155
+ "Mô tả các đối thủ cạnh tranh chính",
156
+ placeholder="Liệt kê 3-5 đối thủ chính, điểm mạnh/yếu của họ...",
157
+ height=100
158
+ )
159
+
160
+ competitive_advantage = st.text_area(
161
+ "Lợi thế cạnh tranh của bạn",
162
+ placeholder="Điểm khác biệt giúp bạn vượt trội so với đối thủ...",
163
+ height=100
164
+ )
165
+
166
+ with tab3:
167
+ # Phần chiến lược phát triển
168
+ strategy_type = st.selectbox(
169
+ "Loại chiến lược cần tư vấn",
170
+ ["Chiến lược Marketing", "Chiến lược Bán hàng", "Chiến lược Sản phẩm",
171
+ "Chiến lược Giá cả", "Chiến lược Phân phối", "Chiến lược Tăng trưởng"]
172
  )
173
+
174
+ with st.expander("🎯 MỤC TIÊU CHIẾN LƯỢC"):
175
+ time_frame = st.selectbox("Khung thời gian", [
176
+ "3 tháng", "6 tháng", "1 năm", "3 năm", "5 năm"
177
+ ])
178
+
179
+ goals = st.text_area(
180
+ "Mục tiêu cụ thể (SMART)",
181
+ placeholder="Ví dụ: Tăng doanh thu 30% trong 6 tháng tới, mở rộng thị phần lên 15%...",
182
+ height=100
183
+ )
184
+
185
+ with st.expander("📈 CHỈ SỐ ĐO LƯỜNG (KPI)"):
186
+ kpis = st.text_area(
187
+ "Các chỉ số đánh giá hiệu quả",
188
+ placeholder="Ví dụ: Tỷ lệ chuyển đổi, Doanh thu, Số lượng khách hàng mới...",
189
+ height=100
190
+ )
191
 
192
+ with tab4:
193
+ # Phần kế hoạch hành động
194
+ with st.expander("📅 KẾ HOẠCH TRIỂN KHAI"):
195
+ action_plan = st.text_area(
196
+ "Các bước triển khai chính",
197
+ placeholder="Liệt kê các hoạt động chính cần thực hiện...",
198
+ height=120
199
+ )
200
+
201
+ budget = st.number_input(
202
+ "Ngân sách dự kiến (triệu đồng)",
203
+ min_value=0,
204
+ value=100
205
+ )
206
+
207
+ with st.expander("🛠 NGUỒN LỰC CẦN THIẾT"):
208
+ resources = st.text_area(
209
+ "Nguồn lực cần chuẩn bị",
210
+ placeholder="Nhân lực, tài chính, công nghệ, đối tác...",
211
+ height=100
212
+ )
213
 
214
+ # Nút tạo chiến lược ở vị trí cố định
215
+ st.markdown("""
216
+ <style>
217
+ .fixed-button {
218
+ position: fixed;
219
+ bottom: 20px;
220
+ right: 20px;
221
+ z-index: 100;
222
+ }
223
+ </style>
224
+ """, unsafe_allow_html=True)
225
+
226
+ st.markdown('<div class="fixed-button"></div>', unsafe_allow_html=True)
227
+
228
+ if st.button('🚀 TẠO CHIẾN LƯỢC KINH DOANH', type="primary", key="generate_button"):
229
+ if not company_name:
230
+ st.warning("Vui lòng nhập tên doanh nghiệp")
231
  st.stop()
232
+ if not target_audience:
233
+ st.warning("Vui lòng tả khách hàng mục tiêu")
234
  st.stop()
235
 
236
+ with st.spinner("AI đang phân tích xây dựng chiến lược tối ưu cho doanh nghiệp của bạn..."):
 
 
 
237
  progress_bar = st.progress(0)
238
 
239
+ # Tạo prompt chuyên sâu cho chiến lược kinh doanh
 
 
 
 
 
 
 
 
240
  prompt_text = f"""
241
+ Hãy xây dựng một chiến lược kinh doanh toàn diện cho công ty {company_name} hoạt động trong ngành {industry} với các yêu cầu sau:
242
 
243
+ 1. Thông tin doanh nghiệp:
244
+ - Thời gian hoạt động: {company_age}
245
+ - Mô hình kinh doanh: {business_model}
246
+ - Doanh thu: {revenue}
247
+ - Số nhân viên: {employee_count}
248
+
249
+ 2. Khách hàng mục tiêu:
250
+ - {target_audience}
251
+ - Khu vực địa lý: {customer_location}
252
+ - Kênh tiếp cận: {', '.join(customer_channel) if customer_channel else 'Chưa xác định'}
253
+
254
+ 3. Phân tích SWOT:
255
+ - Điểm mạnh: {strengths}
256
+ - Điểm yếu: {weaknesses}
257
+ - Cơ hội: {opportunities}
258
+ - Thách thức: {threats}
259
+
260
+ 4. Đối thủ cạnh tranh: {competitors}
261
+ Lợi thế cạnh tranh: {competitive_advantage}
262
+
263
+ 5. Chiến lược {strategy_type} cho khung thời gian {time_frame}:
264
+ - Mục tiêu: {goals}
265
+ - KPI đo lường: {kpis}
266
+
267
+ 6. Kế hoạch hành động:
268
+ - Các bước triển khai: {action_plan}
269
+ - Ngân sách: {budget} triệu đồng
270
+ - Nguồn lực cần thiết: {resources}
271
 
272
  Yêu cầu chi tiết:
273
+ - Định dạng bằng tiếng Việt, rõ ràng, chuyên nghiệp
274
+ - Bao gồm các phần:
275
+ * Tóm tắt chiến lược
276
+ * Phân tích thị trường
277
+ * Chiến lược cụ thể
278
+ * Kế hoạch triển khai
279
+ * Ngân sách ROI dự kiến
280
+ * Rủi ro giải pháp
281
+ - Đưa ra các giải pháp sáng tạo, khả thi
282
+ - Kết hợp xu hướng mới nhất trong ngành
283
+ - Ưu tiên các giải pháp số hóa và tối ưu chi phí
284
+ - Đề xuất timeline cụ thể
 
 
285
  """
286
 
287
+ # Hiệu ứng loading
288
+ for i in range(10):
289
+ progress_bar.progress((i + 1) * 10)
290
+ time.sleep(0.2)
291
+
292
+ # Gọi API Groq để tạo chiến lược
293
  try:
 
 
 
 
294
  chat_completion = client.chat.completions.create(
295
  messages=[
296
  {
297
  "role": "system",
298
  "content": """
299
+ Bạn là chuyên gia vấn chiến lược kinh doanh với 20 năm kinh nghiệm.
300
+ Bạn am hiểu sâu về tất cả các ngành nghề có khả năng đưa ra các
301
+ chiến lược sáng tạo, khả thi hiệu quả. Hãy phân tích kỹ lưỡng và
302
+ đưa ra các giải pháp tối ưu nhất cho doanh nghiệp, kết hợp giữa
303
+ phương pháp truyền thống và công nghệ số.
304
  """
305
  },
306
  {
 
313
  max_tokens=4000
314
  )
315
 
316
+ business_strategy = chat_completion.choices[0].message.content
317
 
318
  # Hiển thị kết quả
319
+ st.success("✅ Chiến lược kinh doanh đã sẵn sàng!")
320
  st.balloons()
321
 
322
+ with st.expander(f"📋 CHIẾN LƯỢC KINH DOANH - {company_name.upper()}", expanded=True):
323
+ st.markdown(business_strategy)
324
 
325
  # Tải về file
326
  st.download_button(
327
+ label="📥 Tải về báo cáo đầy đủ",
328
+ data=business_strategy,
329
+ file_name=f"Chien_luoc_kinh_doanh_{company_name}_{datetime.now().strftime('%Y%m%d')}.docx",
330
+ mime="application/vnd.openxmlformats-officedocument.wordprocessingml.document"
331
  )
332
 
333
+ # Thêm phần đánh giá
334
+ st.markdown("---")
335
+ st.subheader("Đánh giá chiến lược")
336
+ col1, col2, col3 = st.columns(3)
337
+ with col1:
338
+ st.select_slider("Mức độ khả thi", options=["Thấp", "Trung bình", "Cao"], value="Cao")
339
+ with col2:
340
+ st.select_slider("Tiềm năng hiệu quả", options=["Thấp", "Trung bình", "Cao"], value="Cao")
341
+ with col3:
342
+ st.select_slider("Mức độ sáng tạo", options=["Thấp", "Trung bình", "Cao"], value="Cao")
343
+
344
+ st.text_area("Nhận xét của bạn về chiến lược này", placeholder="Ghi lại các ý kiến đánh giá...")
345
+
346
  except Exception as e:
347
+ st.error(f"⚠️ Có lỗi xảy ra khi tạo chiến lược: {str(e)}")
348
 
349
+ # Footer chuyên nghiệp
350
  st.markdown("---")
351
+ st.markdown("""
352
+ <div style="text-align: center; color: #4a6fa5; padding: 20px">
353
+ <p style="font-size: 14px">© 2024 Business Strategy AI Tool - Phiên bản Pro</p>
354
+ <p style="font-size: 12px">Công cụ này sử dụng AI mạnh mẽ để phân tích và đề xuất chiến lược kinh doanh tối ưu</p>
355
+ </div>
356
+ """, unsafe_allow_html=True)