VietCat commited on
Commit
7089324
·
1 Parent(s): 611d0f5

format message

Browse files
Files changed (3) hide show
  1. app/constants.py +28 -0
  2. app/message_processor.py +8 -4
  3. app/reranker.py +4 -1
app/constants.py CHANGED
@@ -128,4 +128,32 @@ VIETNAMESE_STOP_PHRASES = [
128
  # ... thêm các từ khác bạn muốn loại bỏ
129
  ]
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
  SHEET_RANGE = 'chat!A2:L'
 
128
  # ... thêm các từ khác bạn muốn loại bỏ
129
  ]
130
 
131
+ # Batch status messages for reranker Facebook notifications
132
+ BATCH_STATUS_MESSAGES = [
133
+ "Mình đang sắp xếp lại để nội dung rõ ràng hơn",
134
+ "Thông tin mình đang hệ thống lại cho mạch lạc hơn",
135
+ "Mình đang tổ chức lại các ý chính cho dễ theo dõi",
136
+ "Hiện tại mình đang chỉnh sửa lại cấu trúc thông tin",
137
+ "Mình đang rà soát và sắp xếp lại nội dung đã có",
138
+ "Các phần thông tin đang được mình sắp lại theo thứ tự hợp lý",
139
+ "Mình đang gom các ý liên quan để thống nhất nội dung",
140
+ "Thông tin đang được mình sắp xếp lại để tránh trùng lặp",
141
+ "Mình đang điều chỉnh bố cục để nội dung liền mạch hơn",
142
+ "Mình đang tinh gọn lại thông tin cho súc tích và dễ hiểu"
143
+ ]
144
+
145
+ # Summary status messages for Facebook notifications when summarizing/answering
146
+ SUMMARY_STATUS_MESSAGES = [
147
+ "Mình đang tổng hợp lại để đưa ra câu trả lời rõ ràng nhất",
148
+ "Hiện tại mình đang rà lại các thông tin để chốt phương án",
149
+ "Mình đang đối chiếu dữ liệu để đưa ra kết luận cuối cùng",
150
+ "Mình đang gom lại toàn bộ nội dung để trả lời dứt khoát",
151
+ "Mình đang hoàn thiện phần tổng hợp để có câu trả lời chính xác",
152
+ "Thông tin đang được mình tổng hợp lại để phản hồi đầy đủ",
153
+ "Mình đang chuẩn bị câu trả lời cuối cùng dựa trên các dữ liệu đã có",
154
+ "Mình đang xử lý thông tin đầu vào để đưa ra phương án phù hợp nhất",
155
+ "Mình đang hoàn tất bước tổng hợp để có phản hồi cụ thể",
156
+ "Mình đang chốt lại các điểm chính để trả lời một cách trọn vẹn"
157
+ ]
158
+
159
  SHEET_RANGE = 'chat!A2:L'
app/message_processor.py CHANGED
@@ -2,6 +2,8 @@ from typing import Dict, Any, List
2
  import asyncio
3
  import traceback
4
  from loguru import logger
 
 
5
 
6
  class MessageProcessor:
7
  def __init__(self, channel):
@@ -153,7 +155,7 @@ class MessageProcessor:
153
  hanh_vi_vi_pham = hanh_vi_vi_pham.replace(kw, "")
154
  hanh_vi_vi_pham = hanh_vi_vi_pham.strip()
155
  logger.info(f"[DEBUG] Phương tiện: {keywords} - Hành vi: {hanh_vi_vi_pham} - Mục đích: {muc_dich}")
156
- await self.channel.facebook.send_message(message=f"... đang tìm kiếm hành vi {hanh_vi_vi_pham} .....")
157
  # 4. Update lại conversation với thông tin đầy đủ
158
  update_kwargs = {
159
  'conversation_id': conv['conversation_id'],
@@ -177,7 +179,9 @@ class MessageProcessor:
177
  response = await self.process_business_logic(conv, page_token)
178
  logger.info(f"[DEBUG] Message history sau khi process: {conv}")
179
  # 6. Gửi response và cập nhật final state
180
- await self.channel.facebook.send_message(message=response)
 
 
181
  if hasattr(self.channel, 'sheets'):
182
  await loop.run_in_executor(None, lambda: self.channel.sheets.log_conversation(**conv))
183
  return
@@ -318,11 +322,11 @@ class MessageProcessor:
318
  "\n\nHãy trả lời ngắn gọn, dễ hiểu, trích dẫn rõ ràng thông tin từ các đoạn luật nếu cần."
319
  f"\n\nCâu hỏi của người dùng: {question}\n"
320
  )
321
- await self.channel.facebook.send_message(message=f"... Được rồi, để tôi tóm tắt lại nhé .....")
322
  try:
323
  answer = await self.channel.llm.generate_text(prompt)
324
  if answer and answer.strip():
325
- logger.error(f"LLM trả về câu trả lời: \n\tanswer: {answer}")
326
  return answer.strip()
327
  else:
328
  logger.error(f"LLM không trả về câu trả lời phù hợp: \n\tanswer: {answer}")
 
2
  import asyncio
3
  import traceback
4
  from loguru import logger
5
+ import random
6
+ from .constants import SUMMARY_STATUS_MESSAGES
7
 
8
  class MessageProcessor:
9
  def __init__(self, channel):
 
155
  hanh_vi_vi_pham = hanh_vi_vi_pham.replace(kw, "")
156
  hanh_vi_vi_pham = hanh_vi_vi_pham.strip()
157
  logger.info(f"[DEBUG] Phương tiện: {keywords} - Hành vi: {hanh_vi_vi_pham} - Mục đích: {muc_dich}")
158
+ await self.channel.facebook.send_message(message=f"... đang tìm kiếm quy định liên quan đến {hanh_vi_vi_pham} .....")
159
  # 4. Update lại conversation với thông tin đầy đủ
160
  update_kwargs = {
161
  'conversation_id': conv['conversation_id'],
 
179
  response = await self.process_business_logic(conv, page_token)
180
  logger.info(f"[DEBUG] Message history sau khi process: {conv}")
181
  # 6. Gửi response và cập nhật final state
182
+ # Replace all occurrences of '**' with '*' before sending
183
+ response_to_send = response.replace('**', '*') if isinstance(response, str) else response
184
+ await self.channel.facebook.send_message(message=response_to_send)
185
  if hasattr(self.channel, 'sheets'):
186
  await loop.run_in_executor(None, lambda: self.channel.sheets.log_conversation(**conv))
187
  return
 
322
  "\n\nHãy trả lời ngắn gọn, dễ hiểu, trích dẫn rõ ràng thông tin từ các đoạn luật nếu cần."
323
  f"\n\nCâu hỏi của người dùng: {question}\n"
324
  )
325
+ await self.channel.facebook.send_message(message=f"... {random.choice(SUMMARY_STATUS_MESSAGES)} ...")
326
  try:
327
  answer = await self.channel.llm.generate_text(prompt)
328
  if answer and answer.strip():
329
+ logger.info(f"LLM trả về câu trả lời: \n\tanswer: {answer}")
330
  return answer.strip()
331
  else:
332
  logger.error(f"LLM không trả về câu trả lời phù hợp: \n\tanswer: {answer}")
app/reranker.py CHANGED
@@ -3,6 +3,8 @@ from .config import get_settings
3
  from .gemini_client import GeminiClient
4
  from loguru import logger
5
  import asyncio
 
 
6
 
7
  class Reranker:
8
  def __init__(self, facebook_client=None):
@@ -88,7 +90,8 @@ class Reranker:
88
  # Send Facebook message after each batch
89
  if self.facebook_client:
90
  try:
91
- await self.facebook_client.send_message(message=f"... tôi đang sắp xếp lại chút ...")
 
92
  except Exception as e:
93
  logger.error(f"[RERANK][FACEBOOK] Error sending batch message: {e}")
94
 
 
3
  from .gemini_client import GeminiClient
4
  from loguru import logger
5
  import asyncio
6
+ import random
7
+ from .constants import BATCH_STATUS_MESSAGES
8
 
9
  class Reranker:
10
  def __init__(self, facebook_client=None):
 
90
  # Send Facebook message after each batch
91
  if self.facebook_client:
92
  try:
93
+ message = random.choice(BATCH_STATUS_MESSAGES)
94
+ await self.facebook_client.send_message(message=f"... {message} ...")
95
  except Exception as e:
96
  logger.error(f"[RERANK][FACEBOOK] Error sending batch message: {e}")
97