refactor message flow on purposes
Browse files- app/llm.py +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
|
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 |
-
'
|
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 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" '
|
|
|
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."
|