dammmmmmmmm commited on
Commit
9381c32
·
verified ·
1 Parent(s): b946c9a

Update backend/ai/core/logic_flow.py

Browse files
Files changed (1) hide show
  1. backend/ai/core/logic_flow.py +29 -12
backend/ai/core/logic_flow.py CHANGED
@@ -9,18 +9,13 @@ import random
9
  import os
10
  from pathlib import Path # <--- Dùng thư viện này để xử lý đường dẫn ngon hơn
11
 
12
- # --- [QUAN TRỌNG] SETUP ĐƯỜNG DẪN DỰA TRÊN CẤU TRÚC THƯ MỤC CỦA BẠN ---
13
- # 1. Xác định vị trí file logic_flow.py hiện tại (backend/ai/core)
14
  CURRENT_FILE = Path(__file__).resolve()
15
  CORE_DIR = CURRENT_FILE.parent
16
-
17
- # 2. Nhảy ra ngoài 1 cấp để lấy thư mục cha (backend/ai)
18
  AI_DIR = CORE_DIR.parent
19
-
20
- # 3. Trỏ vào thư mục data (backend/ai/data)
21
  DATA_DIR = AI_DIR / "data"
22
 
23
- # 4. Thêm thư mục 'ai' vào sys.path để import được services.py và database.py nằm ở folder cha
 
24
  sys.path.append(str(AI_DIR))
25
 
26
  # --- BÂY GIỜ MỚI IMPORT CÁC MODULE Ở FOLDER CHA ---
@@ -36,18 +31,40 @@ except ImportError as e:
36
  print(f"❌ Lỗi Import: Không tìm thấy services hoặc database. {e}")
37
  sys.exit(1)
38
 
39
- # --- IMPORT MODULE VỆ TINH ---
40
  try:
41
- # Nếu các file strategy nằm cùng folder core thì import thường
42
- # Nếu nằm folder khác thì phải chỉnh lại path tương tự
43
  from analyze import VN_VoiceBot_Parallel
44
  from data_engine import DataEngine
45
  from strategy_competitor import CompetitorStrategy
46
  from strategy_low_data import LowDataStrategy
47
  from strategy_network import NetworkStrategy
 
 
48
  except ImportError as e:
49
- print(f"⚠️ Thiếu file vệ tinh (Logic vẫn chạy nhưng thiếu chức năng): {e}")
50
- # sys.exit(1) # Tạm bỏ exit để debug
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
  # --- ADAPTER (GIỮ NGUYÊN) ---
53
  class GeminiAdapter:
 
9
  import os
10
  from pathlib import Path # <--- Dùng thư viện này để xử lý đường dẫn ngon hơn
11
 
 
 
12
  CURRENT_FILE = Path(__file__).resolve()
13
  CORE_DIR = CURRENT_FILE.parent
 
 
14
  AI_DIR = CORE_DIR.parent
 
 
15
  DATA_DIR = AI_DIR / "data"
16
 
17
+ # Thêm CORE_DIR vào sys.path để tìm được file analyze.py nằm ngay cạnh
18
+ sys.path.append(str(CORE_DIR))
19
  sys.path.append(str(AI_DIR))
20
 
21
  # --- BÂY GIỜ MỚI IMPORT CÁC MODULE Ở FOLDER CHA ---
 
31
  print(f"❌ Lỗi Import: Không tìm thấy services hoặc database. {e}")
32
  sys.exit(1)
33
 
34
+ # --- IMPORT MODULE VỆ TINH (CÓ DỰ PHÒNG) ---
35
  try:
 
 
36
  from analyze import VN_VoiceBot_Parallel
37
  from data_engine import DataEngine
38
  from strategy_competitor import CompetitorStrategy
39
  from strategy_low_data import LowDataStrategy
40
  from strategy_network import NetworkStrategy
41
+ print(" [SYSTEM] Đã load đầy đủ các module vệ tinh.")
42
+
43
  except ImportError as e:
44
+ print(f"⚠️ CẢNH BÁO: Thiếu file vệ tinh ({e}). Đang kích hoạt chế độ DỰ PHÒNG.")
45
+
46
+ # --- TẠO CLASS GIẢ ĐỂ TRÁNH LỖI NAME ERROR ---
47
+ class VN_VoiceBot_Parallel:
48
+ def analyze_sentiment(self, text):
49
+ return 0.0, "neutral" # Trả về cảm xúc trung tính
50
+ def classify_issue(self, text):
51
+ return None # Không phát hiện vấn đề gì
52
+
53
+ # Nếu thiếu DataEngine thì tạo giả luôn (nếu cần)
54
+ if 'DataEngine' not in locals():
55
+ class DataEngine:
56
+ def __init__(self, *args): pass
57
+ def get_full_context(self, cid): return {}
58
+
59
+ # Nếu thiếu Strategy thì tạo giả
60
+ class DummyStrategy:
61
+ def __init__(self, *args): pass
62
+ def execute_stream_gen(self, *args): return []
63
+ def execute(self, *args): return "Dạ, em xin ghi nhận ý kiến ạ."
64
+
65
+ if 'CompetitorStrategy' not in locals(): CompetitorStrategy = DummyStrategy
66
+ if 'LowDataStrategy' not in locals(): LowDataStrategy = DummyStrategy
67
+ if 'NetworkStrategy' not in locals(): NetworkStrategy = DummyStrategy
68
 
69
  # --- ADAPTER (GIỮ NGUYÊN) ---
70
  class GeminiAdapter: