AI แชทบอทพื้นฐานแบบ (Rule-based) พร้อมตัวอย่างโค้ด Python
แชทบอทเป็นเครื่องมือที่ช่วยตอบคำถามผู้ใช้งานอย่างอัตโนมัติ โดยแชทบอทแบบ Rule-Based เป็นประเภทพื้นฐานที่ทำงานโดยอาศัยกฎ (Rules) ที่กำหนดขึ้นล่วงหน้า เช่น การจับคีย์เวิร์ดจากประโยคที่ผู้ใช้ป้อนเข้ามา แล้วตอบกลับตามที่ตั้งค่าไว้ โดยไม่ต้องอาศัย Machine Learning หรือ AI ขั้นสูง ซึ่งเหมาะสำหรับธุรกิจขนาดเล็กหรือผู้เริ่มต้นสร้างแชทบอท
หลักการทำงานของแชทบอท Rule-Based
การระบุคีย์เวิร์ด
- ตรวจจับคำหรือวลีสำคัญจากข้อความที่ผู้ใช้ป้อนเข้ามาการจับคู่กฎ (Rule Matching)
- นำคีย์เวิร์ดไปจับคู่กับกฎที่สร้างไว้การตอบกลับข้อความ
- แสดงคำตอบที่กำหนดไว้ล่วงหน้าตามกฎที่ตรงกับข้อความ
ตัวอย่างโค้ด Python สำหรับแชทบอทแบบ Rule-Based
โค้ดนี้แสดงตัวอย่างแชทบอทพื้นฐานที่สามารถตอบคำถามง่ายๆ ได้ เช่น ทักทาย, บอกเวลา หรือข้อมูลทั่วไป
import datetime
# ฟังก์ชันหลักของแชทบอท
def chatbot_response(user_input):
user_input = user_input.lower() # แปลงข้อความให้เป็นตัวพิมพ์เล็กทั้งหมด
# กฎพื้นฐาน (Rule-Based)
if "สวัสดี" in user_input or "hello" in user_input:
return "สวัสดีค่ะ! ยินดีต้อนรับ มีอะไรให้ช่วยมั้ยคะ?"
elif "เวลา" in user_input or "time" in user_input:
current_time = datetime.datetime.now().strftime("%H:%M:%S")
return f"ตอนนี้เวลา {current_time} ค่ะ"
elif "ชื่อ" in user_input:
return "ฉันเป็นแชทบอทที่สร้างขึ้นมาช่วยตอบคำถามค่ะ!"
elif "ขอบคุณ" in user_input or "thanks" in user_input:
return "ยินดีให้บริการค่ะ!"
elif "ลาก่อน" in user_input or "bye" in user_input:
return "ลาก่อนนะคะ แล้วพบกันใหม่ค่ะ!"
else:
return "ขอโทษค่ะ ฉันไม่เข้าใจคำถามนี้ คุณลองถามอย่างอื่นได้มั้ยคะ?"
# ฟังก์ชันสำหรับรันแชทบอท
def main():
print("ยินดีต้อนรับสู่แชทบอท! (พิมพ์ 'ลาก่อน' เพื่อออกจากโปรแกรม)\n")
while True:
user_input = input("คุณ: ")
if "ลาก่อน" in user_input.lower():
print("แชทบอท: ลาก่อนนะคะ แล้วพบกันใหม่!")
break
response = chatbot_response(user_input)
print(f"แชทบอท: {response}")
# เรียกใช้โปรแกรม
if __name__ == "__main__":
main()
Code language: Python (python)
คำอธิบายโค้ด
- โปรแกรมใช้คำสั่ง
in
เพื่อตรวจหาคีย์เวิร์ดในข้อความที่ผู้ใช้ป้อนเข้ามา เช่น"สวัสดี" in user_input
การแสดงคำตอบ - หากพบคีย์เวิร์ดที่ตรงกับกฎ โปรแกรมจะตอบกลับด้วยข้อความที่กำหนดไว้ล่วงหน้าการหยุดการทำงาน
- แชทบอทจะหยุดทำงานเมื่อผู้ใช้ป้อนคำว่า
"ลาก่อน"
การรันโปรแกรม
- เปิด Python IDE เช่น VSCode, PyCharm หรือ Jupyter Notebook
- คัดลอกโค้ดด้านบนแล้ววางในไฟล์
.py
- รันโปรแกรมและทดสอบแชทบอทโดยป้อนข้อความ เช่น
-
สวัสดี
-
เวลาเท่าไหร่
-
ขอบคุณ
-
ลาก่อน
-
ผลลัพธ์ตัวอย่าง
ยินดีต้อนรับสู่แชทบอท! (พิมพ์ 'ลาก่อน' เพื่อออกจากโปรแกรม)
คุณ: สวัสดี
แชทบอท: สวัสดีค่ะ! ยินดีต้อนรับ มีอะไรให้ช่วยมั้ยคะ?
คุณ: เวลาเท่าไหร่
แชทบอท: ตอนนี้เวลา 14:35:45 ค่ะ
คุณ: ขอบคุณ
แชทบอท: ยินดีให้บริการค่ะ!
คุณ: ลาก่อน
แชทบอท: ลาก่อนนะคะ แล้วพบกันใหม่!
Code language: JavaScript (javascript)
ข้อจำกัดของ Rule-Based Chatbot
- ไม่สามารถทำความเข้าใจประโยคซับซ้อนได้
- ต้องสร้างกฎขึ้นเองล่วงหน้า ซึ่งอาจไม่ครอบคลุมทุกคำถาม
- ไม่สามารถเรียนรู้หรือปรับปรุงคำตอบเองได้
สรุป
แชทบอทแบบ Rule-Based เป็นวิธีการที่ง่ายและรวดเร็วในการสร้างแชทบอทพื้นฐาน เหมาะสำหรับผู้เริ่มต้นหรือธุรกิจขนาดเล็กที่ต้องการระบบตอบคำถามอัตโนมัติ โดยสามารถปรับแต่งกฎและข้อความตอบกลับได้ตามความต้องการ หากต้องการแชทบอทที่ซับซ้อนและเรียนรู้ได้เอง แนะนำให้พัฒนาแชทบอทแบบ AI ที่ใช้ Machine Learning เช่น NLP (Natural Language Processing) ในการเข้าใจภาษามนุษย์