Skip to content
Back to the list

edu.rentaicoder.com

EDU ChatBot

Multi-channel admissions advisor that knows when to step aside

Customers message on Zalo, Facebook and the web, often the same person on all three. The bot advises on courses, books trial classes and records payments — but the hard part is not answering, it is knowing when to stop answering.

Visit productEDU ChatBot (opens in a new tab)
  • .NET 10
  • EF Core
  • A.D.D V3
  • LLM tool-calling

§ 01Algorithm

HandoverOperator.cs — luật leo thang sang người thật
# Từ khoá lưu ở dạng ĐÃ CHUẨN HOÁ (bỏ dấu, viết thường);
# tin nhắn cũng được chuẩn hoá trước khi so
#   → "nhân viên" ≡ "nhan vien" ≡ "NHÂN VIÊN"

should_trigger(session, msg):
  session.status ∈ {PendingHandover, HandedOver}  → false
  msg ∋ ["nhan vien","tu van vien","nguoi that",
         "ho tro truc tiep","gap nhan vien"]      → true
  msg ∋ ["buc","tuc","chan","khong hieu",
         "vo ich","te","do","that vong"]          → true
  session.consecutive_misunderstandings ≥ 3       → true
  otherwise                                        → false

on_trigger:
  status ← PendingHandover
  notify(staff, summary = last 10 messages,
         danh tính mọi kênh: ZaloId, FacebookId, WebId)
  # lỗi gửi thông báo bị nuốt + log warning — không chặn luồng chat

§ 02Highlights

  • Three explicit escalation conditions: direct request, negative sentiment, three consecutive misunderstandings
  • Matching on diacritic-stripped lowercase text — fits how Vietnamese is really typed
  • Unifies one person's identity across Zalo, Facebook and web
  • LLM calls functions to look up courses instead of answering from memory
  • Handover carries a ten-message summary and every channel ID
  • A failed notification is swallowed and logged — it never blocks the chat

§ 03Screens

EDU ChatBot01
EDU ChatBot02