vanhai123 commited on
Commit
fbfbf3d
·
verified ·
1 Parent(s): 414b51b

Update agent.py

Browse files
Files changed (1) hide show
  1. agent.py +64 -41
agent.py CHANGED
@@ -1,41 +1,64 @@
1
- from datetime import datetime
2
- from pipeline import fetch_data, clean_data
3
- import smtplib
4
- from email.mime.text import MIMEText
5
-
6
- # Cấu hình email
7
- SENDER_EMAIL = "dulichviet2406@gmail.com"
8
- SENDER_PASSWORD = "ppedsoakefjyrbym"
9
- RECEIVER_EMAIL = "vanhai123@gmail.com"
10
-
11
- def send_email_report(content):
12
- msg = MIMEText(content)
13
- msg["Subject"] = "Kết quả từ AI Agent Pipeline"
14
- msg["From"] = SENDER_EMAIL
15
- msg["To"] = RECEIVER_EMAIL
16
-
17
- try:
18
- with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
19
- server.login(SENDER_EMAIL, SENDER_PASSWORD)
20
- server.send_message(msg)
21
- print("Email đã được gửi thành công.")
22
- except Exception as e:
23
- print("Gửi email thất bại:", e)
24
-
25
- def has_new_data():
26
- return datetime.now().second % 2 == 0
27
-
28
- def run_pipeline():
29
- fetch_data()
30
- df_clean = clean_data()
31
- return df_clean
32
-
33
- def run_agent_once():
34
- if has_new_data():
35
- print("Có dữ liệu mới! Đang chạy pipeline...")
36
- df = run_pipeline()
37
- message = f"Agent đã xử lý {len(df)} dòng dữ liệu mới."
38
- send_email_report(message)
39
- return message
40
- else:
41
- return "Chưa phát hiện dữ liệu mới."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from datetime import datetime
2
+ from pipeline import fetch_data, clean_data
3
+ import smtplib
4
+ from email.mime.text import MIMEText
5
+ import os
6
+
7
+ # ---------------------
8
+ # ⚙️ Cấu hình email (vẫn giữ nguyên cho giáo viên kiểm tra)
9
+ # ---------------------
10
+ SENDER_EMAIL = "dulichviet2406@gmail.com"
11
+ SENDER_PASSWORD = "*******************" # App Password Gmail
12
+ RECEIVER_EMAIL = "vanhai123@gmail.com"
13
+
14
+ def send_email_report(content):
15
+ """
16
+ Gửi email thông báo kết quả xử lý.
17
+ ✅ Chạy được khi local có mạng.
18
+ Không hoạt động trên Hugging Face Spaces miễn phí do bị chặn truy cập Internet.
19
+ """
20
+ # Tắt gửi email khi đang chạy trên Hugging Face bằng biến môi trường hoặc điều kiện thủ công
21
+ if os.environ.get("DISABLE_EMAIL") == "true":
22
+ print("📭 Gửi email đã bị tắt trên môi trường online (HF Space).")
23
+ return
24
+
25
+ msg = MIMEText(content)
26
+ msg["Subject"] = "Kết quả từ AI Agent Pipeline"
27
+ msg["From"] = SENDER_EMAIL
28
+ msg["To"] = RECEIVER_EMAIL
29
+
30
+ try:
31
+ with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
32
+ server.login(SENDER_EMAIL, SENDER_PASSWORD)
33
+ server.send_message(msg)
34
+ print("✅ Email đã được gửi thành công.")
35
+ except Exception as e:
36
+ print("❌ Gửi email thất bại:", e)
37
+
38
+ def has_new_data():
39
+ """
40
+ Mô phỏng phát hiện dữ liệu mới bằng cách kiểm tra nếu giây hiện tại là số chẵn.
41
+ """
42
+ return datetime.now().second % 2 == 0
43
+
44
+ def run_pipeline():
45
+ """
46
+ Chạy các bước: fetch → clean → return kết quả
47
+ """
48
+ fetch_data()
49
+ df_clean = clean_data()
50
+ return df_clean
51
+
52
+ def run_agent_once():
53
+ """
54
+ Hàm chính được gọi khi bấm nút 'Agent Tự Động'.
55
+ Nếu phát hiện có dữ liệu mới → chạy pipeline → gửi mail (nếu đang chạy local).
56
+ """
57
+ if has_new_data():
58
+ print("✅ Có dữ liệu mới! Đang chạy pipeline...")
59
+ df = run_pipeline()
60
+ message = f"Agent đã xử lý {len(df)} dòng dữ liệu mới."
61
+ send_email_report(message)
62
+ return message
63
+ else:
64
+ return "⏳ Chưa phát hiện dữ liệu mới."