แชทบอทนี้สามารถวิเคราะห์อารมณ์ของผู้ใช้จากข้อความที่พิมพ์เข้ามา และแนะนำActivityที่เหมาะสม เช่น ภาพยนตร์ เพลง หรือวิดีโอ โดยใช้เทคนิคNatural Language Processing (NLP) และโมเดลปัญญาประดิษฐ์แบบ Zero-shot classification ซึ่งช่วยให้สามารถเข้าใจบริบทของคำถามได้แม้ไม่ได้มีการสอนล่วงหน้า ระบบนี้ฝึกการเข้าใจเจตนา (intent) ของ user
ขั้นตอนที่ 1: ติดตั้งไลบรารีที่จำเป็น
!pip install transformers ipywidgets --quiet
- transformers: ไลบรารีจาก Hugging Face ใช้โหลดโมเดล NLP สำเร็จรูป
- ipywidgets: ใช้สร้างแบบฟอร์มโต้ตอบ (interactive) สำหรับให้ผู้ใช้พิมพ์คำถาม
ขั้นตอนที่ 2: โหลดโมเดล Zero-shot Classification
from transformers import pipeline
classifier = pipeline("zero-shot-classification", model="facebook/bart-large-mnli")
- โมเดล facebook/bart-large-mnli ไว้สำหรับวิเคราะห์ความหมายของข้อความ
- Zero-shot เอาไว้กำหนด “หมวด” ที่ต้องการให้chatเลือก เช่น "เบื่อ", "เครียด"
ขั้นตอนที่ 3: กำหนดหมวดอารมณ์ และactivityที่แนะนำ
labels = ["เครียด", "เบื่อ", "เศร้า", "อยากแรงบันดาลใจ", "ดีใจ"]
recommendations = {
"เครียด": ["🎵 ฟัง Lo-fi music", "🎬 ดูซีรีส์ตลก", "😺 วิดีโอแมวน่ารัก"],
...
}
- จำกัดความของอารมณ์ (labels) ที่ระบบจะใช้ในการวิเคราะห์
- สำหรับแต่ละอารมณ์ ก็จะกำหนดactivityตามอารมณ์ต่าง ๆ
ขั้นตอนที่ 4: วิเคราะห์คำถามจากผู้ใช้
question = "รู้สึกเบื่อมาก ๆ อยากหาอะไรดูคลายเครียด"
result = classifier(question, candidate_labels=labels)
top_mood = result["labels"][0]
- เมื่อพิมพ์คำถาม เช่น “เบื่อ อยากดูอะไรสนุก ๆ” โมเดลจะเลือก label ที่ตรงกับอารมณ์มากที่สุด เช่น: คำว่า "เบื่อ" → ไปดูคำแนะนำที่ตรงกับอารมณ์นี้
ขั้นตอนที่ 5: แสดงคำแนะนำให้ผู้ใช้
for item in recommendations[top_mood]:
print("-", item)
- โปรแกรมจะแสดงรายการแนะนำ (เช่น วิดีโอ, เพลง, หนัง) ที่เหมาะกับอารมณ์นั้น ๆ พร้อมอีโมจิ
ขั้นตอนที่ 6: สร้างหน้าตาใช้งานแบบโต้ตอบ (Interactive)
import ipywidgets as widgets
from IPython.display import display, clear_output
# ช่องให้พิมพ์คำถาม + ปุ่มกด
text_input = widgets.Text(description="คำถาม:")
submit_btn = widgets.Button(description="แนะนำ", button_style='info')
output_area = widgets.Output()
# ทำงานเมื่อกดปุ่ม
def on_click(b):
...
# แสดงบนหน้าจอ
display(text_input, submit_btn, output_area)
- ผู้ใช้สามารถพิมพ์คำถามแล้วกดปุ่ม “แนะนำ”
- ระบบจะวิเคราะห์คำถาม และตอบมาตามที่เทรนไว้
ภาพผลลัพธ์ใน colab จะออกมาประมาณนี้
การทำ AI Chatbot นี้เป็นการเขียนโค้ด Python ใน Google Colab จึงไม่มีเป็นหน้า Platfor การเป็น Chatbot ที่สวยงามนัก ในงานครั้งถัดไปอาจมีการตกแต่งเพิ่มเติมเพื่อให้ Chatbot มีความสวยงามและง่ายต่อการใช้งานได้มากขึ้น