VietCat commited on
Commit
65b4cff
·
1 Parent(s): 3447df8

refactor message flow on purposes

Browse files
Files changed (2) hide show
  1. app/llm.py +2 -2
  2. app/message_processor.py +9 -5
app/llm.py CHANGED
@@ -411,14 +411,14 @@ class LLMClient:
411
  Bạn là một AI chuyên phân tích ngữ nghĩa câu hỏi về luật giao thông. Với mỗi câu đầu vào, hãy trích xuất các thông tin sau dưới dạng JSON:
412
 
413
  {{
414
- "muc_dich": "mục đích của câu hỏi, chỉ chọn một trong các giá trị: "hỏi về mức phạt", "hỏi về quy tắc giao thông", "hỏi về báo hiệu đường bộ", "hỏi về quy trình xử lý vi phạm giao thông", 'khác'",
415
  "phuong_tien": "loại phương tiện giao thông (xe máy, ô tô, xe tải, người đi bộ...)",
416
  "hanh_vi_vi_pham": "hành vi vi phạm pháp luật giao thông"
417
  }}
418
 
419
  Nếu một trường không có trong câu hỏi, hãy để giá trị là chuỗi rỗng "". Ví dụ: nếu câu không đề cập phương tiện, thì "phuong_tien": "".
420
 
421
- Lưu ý: Trả về đúng format JSON, và giá trị của "muc_dich" chỉ được chọn một trong các giá trị sau: "hỏi về mức phạt", "hỏi về quy tắc giao thông", "hỏi về báo hiệu đường bộ", "hỏi về quy trình xử lý vi phạm giao thông", "khác".
422
 
423
  Câu hỏi:
424
  \"{text}\"
 
411
  Bạn là một AI chuyên phân tích ngữ nghĩa câu hỏi về luật giao thông. Với mỗi câu đầu vào, hãy trích xuất các thông tin sau dưới dạng JSON:
412
 
413
  {{
414
+ "muc_dich": "mục đích của câu hỏi, chỉ chọn một trong các giá trị: "hỏi về mức phạt", "hỏi về quy tắc giao thông", "hỏi về báo hiệu đường bộ", "hỏi về quy trình xử lý vi phạm giao thông", "thông tin cá nhân của AI", 'khác'",
415
  "phuong_tien": "loại phương tiện giao thông (xe máy, ô tô, xe tải, người đi bộ...)",
416
  "hanh_vi_vi_pham": "hành vi vi phạm pháp luật giao thông"
417
  }}
418
 
419
  Nếu một trường không có trong câu hỏi, hãy để giá trị là chuỗi rỗng "". Ví dụ: nếu câu không đề cập phương tiện, thì "phuong_tien": "".
420
 
421
+ Lưu ý: Trả về đúng format JSON, và giá trị của "muc_dich" chỉ được chọn một trong các giá trị sau: "hỏi về mức phạt", "hỏi về quy tắc giao thông", "hỏi về báo hiệu đường bộ", "hỏi về quy trình xử lý vi phạm giao thông", "thông tin cá nhân của AI", "khác".
422
 
423
  Câu hỏi:
424
  \"{text}\"
app/message_processor.py CHANGED
@@ -202,6 +202,8 @@ class MessageProcessor:
202
  response = await self.handle_bao_hieu(conv, message_text)
203
  elif muc_dich_to_use == "hỏi về quy trình xử lý vi phạm giao thông":
204
  response = await self.handle_quy_trinh(conv, message_text)
 
 
205
  else:
206
  response = await self.handle_khac(conv, message_text)
207
  else:
@@ -457,15 +459,17 @@ class MessageProcessor:
457
  conv['isdone'] = True
458
  return answer.strip() if answer and answer.strip() else "[Đang phát triển] Tính năng trả lời về quy trình xử lý vi phạm giao thông sẽ sớm có mặt."
459
 
460
- async def handle_khac(self, conv, message_text):
461
  # Nếu câu hỏi là về thông tin cá nhân của bot, hướng dẫn LLM trả lời đúng
462
  prompt = (
463
- 'Nếu người dùng hỏi về thông tin nhân của bạn (ví dụ: "bạnai", "tên bạn gì", "bạn do ai tạo ra"...), '
464
- 'hãy trả lời thông minh, hài hước, ngắn gọn xung quanh thông tin sau: "Bạn có thên là WeThoong AI, là trợ lý giao thông thông minh. Bạn được anh Viet Cat tạo ra và facebook cá nhân của anh ý là https://facebook.com/vietcat" '
465
  'Không được trả lời bạn là AI của Google, OpenAI, hay bất kỳ hãng nào khác. '
466
- 'Nếu không phải các câu hỏi này thì hãy trả lời như bình thường.'
467
- f'\n\nCâu hỏi: {message_text}'
468
  )
469
  answer = await self.channel.llm.generate_text(prompt)
470
  conv['isdone'] = True
 
 
 
 
 
471
  return answer.strip() if answer and answer.strip() else "[Đang phát triển] Tính năng này sẽ sớm có mặt."
 
202
  response = await self.handle_bao_hieu(conv, message_text)
203
  elif muc_dich_to_use == "hỏi về quy trình xử lý vi phạm giao thông":
204
  response = await self.handle_quy_trinh(conv, message_text)
205
+ elif muc_dich_to_use == "thông tin cá nhân của AI":
206
+ response = await self.handle_ca_nhan(conv, message_text)
207
  else:
208
  response = await self.handle_khac(conv, message_text)
209
  else:
 
459
  conv['isdone'] = True
460
  return answer.strip() if answer and answer.strip() else "[Đang phát triển] Tính năng trả lời về quy trình xử lý vi phạm giao thông sẽ sớm có mặt."
461
 
462
+ async def handle_ca_nhan(self, conv, message_text):
463
  # Nếu câu hỏi là về thông tin cá nhân của bot, hướng dẫn LLM trả lời đúng
464
  prompt = (
465
+ 'Hãy trả lời thông minh, hài hước, ngắn gọn xung quanh thông tin sau: "Bạn có thên WeThoong AI, trợ giao thông thông minh. Bạn được anh Viet Cat tạo ra và facebook cá nhân của anh ý là https://facebook.com/vietcat" '
 
466
  'Không được trả lời bạn là AI của Google, OpenAI, hay bất kỳ hãng nào khác. '
 
 
467
  )
468
  answer = await self.channel.llm.generate_text(prompt)
469
  conv['isdone'] = True
470
+ return answer.strip() if answer and answer.strip() else "[Đang phát triển] Tính năng này sẽ sớm có mặt."
471
+
472
+ async def handle_khac(self, conv, message_text):
473
+ answer = await self.channel.llm.generate_text(message_text)
474
+ conv['isdone'] = True
475
  return answer.strip() if answer and answer.strip() else "[Đang phát triển] Tính năng này sẽ sớm có mặt."