แชทบอทนี้สามารถวิเคราะห์อารมณ์ของผู้ใช้จากข้อความที่พิมพ์เข้ามา และแนะนำ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 จะออกมาประมาณนี้

Image description

การทำ AI Chatbot นี้เป็นการเขียนโค้ด Python ใน Google Colab จึงไม่มีเป็นหน้า Platfor การเป็น Chatbot ที่สวยงามนัก ในงานครั้งถัดไปอาจมีการตกแต่งเพิ่มเติมเพื่อให้ Chatbot มีความสวยงามและง่ายต่อการใช้งานได้มากขึ้น