การสร้างแชทบอทด้วย Rasa ที่รองรับภาษาไทย
คู่มือนี้จะแนะนำขั้นตอนการสร้างแชทบอทด้วย Rasa ที่รองรับภาษาไทยและออกแบบมาเพื่อจัดการกับการขายกล้องในร้านค้า IT Gadget ขนาดใหญ่ เช่น "Big Camera"
ขั้นตอนที่ 1: ติดตั้ง Rasa
ตรวจสอบให้แน่ใจว่าได้ติดตั้ง Python แล้ว จากนั้นติดตั้ง Rasa ด้วยคำสั่ง pip:
pip install rasa
ขั้นตอนที่ 2: เริ่มต้นโปรเจกต์ Rasa ใหม่
สร้างโปรเจกต์ Rasa ใหม่:
rasa init --no-prompt
คำสั่งนี้จะสร้างโครงสร้างโปรเจกต์เริ่มต้น
ขั้นตอนที่ 3: เพิ่มการรองรับภาษาไทย
แก้ไขไฟล์ config.yml เพื่อรองรับภาษาไทย ใช้ tokenizer และ pipeline ที่จัดการภาษาไทยได้อย่างมีประสิทธิภาพ ตัวอย่าง:
language: th
pipeline:
- name: "CustomTokenizer"
tokenizer_class: "PyThaiNLPTokenizer"
- name: "RegexFeaturizer"
- name: "LexicalSyntacticFeaturizer"
- name: "CountVectorsFeaturizer"
analyzer: "word"
- name: "CountVectorsFeaturizer"
analyzer: "char_wb"
min_ngram: 1
max_ngram: 4
- name: "DIETClassifier"
epochs: 100
- name: "EntitySynonymMapper"
- name: "ResponseSelector"
epochs: 100
- name: "FallbackClassifier"
threshold: 0.3
ขั้นตอนที่ 4: กำหนด Intent และ Response
ในไฟล์ domain.yml ให้กำหนด intents และ responses ที่เกี่ยวข้องกับการขายกล้อง ตัวอย่าง:
intents:
- greet
- ask_discount
- ask_camera_features
- check_stock
- thank_you
responses:
utter_greet:
- text: สวัสดีค่ะ! ยินดีต้อนรับสู่แชทบอทขายกล้อง Big Camera ค่ะ!
utter_ask_discount:
- text: กล้องตัวนี้มีราคาพิเศษในช่วงนี้ค่ะ! สนใจรุ่นไหนเป็นพิเศษไหมคะ?
utter_ask_camera_features:
- text: กรุณาบอกคุณสมบัติกล้องที่คุณต้องการ เช่น ความคมชัดสูง? ซูมเลนส์? เพื่อแนะนำรุ่นที่เหมาะสมค่ะ
utter_check_stock:
- text: กรุณาบอกรุ่นกล้องที่คุณต้องการ เพื่อเช็คสถานะสินค้าให้ค่ะ
utter_thank_you:
- text: ขอบคุณมากค่ะ! หากมีคำถามเพิ่มเติมสามารถสอบถามได้เลยค่ะ
ขั้นตอนที่ 5: สร้างข้อมูลการฝึกอบรม
เพิ่มตัวอย่างการฝึกอบรมในภาษาไทยในไฟล์ data/nlu.yml:
version: "3.0"
nlu:
- intent: greet
examples: |
- สวัสดี
- สวัสดีค่ะ
- intent: ask_discount
examples: |
- มีกล้องลดราคามั้ย?
- กล้องรุ่นนี้มีโปรโมชั่นไหม?
- intent: ask_camera_features
examples: |
- กล้องรุ่นนี้มีคุณสมบัติอะไรบ้าง?
- อยากได้กล้องที่ความคมชัดสูง
- intent: check_stock
examples: |
- รุ่นนี้มีของมั้ย?
- ขอเช็คสถานะสินค้าหน่อยค่ะ
- intent: thank_you
examples: |
- ขอบคุณค่ะ
- ขอบคุณมากค่ะ
ขั้นตอนที่ 6: สร้าง Custom Action
สร้าง Custom Action สำหรับเช็คสถานะสินค้าในไฟล์ actions/actions.py:
from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
class ActionCheckStock(Action):
def name(self) -> Text:
return "action_check_stock"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
# ตัวอย่างข้อมูลสินค้า
stock_data = {
"camera_x": "มีสินค้า",
"camera_y": "สินค้าหมด",
}
model = tracker.get_slot("camera_model")
if model in stock_data:
stock_status = stock_data[model]
response = f"สถานะสินค้า {model}: {stock_status}"
else:
response = "ไม่พบรุ่นที่คุณระบุค่ะ"
dispatcher.utter_message(text=response)
return []
อัปเดตไฟล์ domain.yml เพื่อเพิ่ม Custom Action และช่องสำหรับกล้อง:
actions:
- action_check_stock
slots:
camera_model:
type: text
อัปเดต Response utter_check_stock เพื่อแจ้งผู้ใช้หากไม่ได้ระบุชื่อรุ่นกล้อง:
responses:
utter_check_stock:
- text: กรุณาระบุชื่อรุ่นกล้องที่ต้องการค่ะ
ขั้นตอนที่ 7: อัปเดต Stories
อัปเดตไฟล์ data/stories.yml เพื่อเพิ่มเรื่องราวการเช็คสินค้า:
version: "3.0"
stories:
- story: Check Stock
steps:
- intent: check_stock
- action: utter_check_stock
- slot_was_set:
- camera_model: "camera_x"
- action: action_check_stock
ขั้นตอนที่ 8: ทดสอบแชทบอท
เรียกใช้งานแชทบอทด้วยคำสั่งต่อไปนี้:
rasa train
rasa shell
ทดสอบแชทบอทด้วยการป้อนข้อความตัวอย่างในภาษาไทย
ขั้นตอนที่ 9: การปรับใช้แชทบอท
พิจารณาใช้ Rasa X หรือการรวมเข้ากับเว็บอินเทอร์เฟซเพื่อปรับใช้แชทบอท และให้ผู้ใช้สามารถเข้าถึงได้ผ่านเว็บไซต์หรือโซเชียลมีเดีย
ขั้นตอนที่ 10: การปรับปรุงอย่างต่อเนื่อง
วิเคราะห์ประสิทธิภาพของแชทบอท ปรับปรุงข้อมูลการฝึกอบรม และพัฒนาโมเดลเพื่อรองรับคำถามของผู้ใช้อย่างมีประสิทธิภาพ
การทำงานของ Rasa
ด้านล่างเป็นการแสดงการทำงานของ Rasa ด้วย MermaidJS:
graph TD
User["ผู้ใช้"] -->|"ส่งข้อความ"| NLU[NLU Pipeline]
NLU -->|"ระบุ Intent และ Entities"| Core[Rasa Core]
Core -->|"ดำเนินการตามนโยบาย"| Action[Action Server]
Action -->|"ดำเนินการ Custom Actions หรือ Responses"| Bot[Bot Response]
Bot -->|"ตอบกลับผู้ใช้"| User
subgraph ระบบ Rasa
NLU
Core
Action
end
ด้วยขั้นตอนเหล่านี้ คุณสามารถสร้างแชทบอท Rasa ที่รองรับภาษาไทยสำหรับการจัดการและโปรโมทการขายกล้องในร้าน Big Camera หรือ IT Gadget Shop อื่น ๆ ได้อย่างมีประสิทธิภาพ
Get in Touch with us
Related Posts
- ข้อเสนอระบบ SimpliMES Lite — โซลูชัน MES แบบเบาสำหรับโรงงานไทย
- ทำไมร้านค้าออนไลน์ที่ประสบความสำเร็จถึงเลือกใช้ SimpliShop: สร้าง เติบโต และชนะตลาดของคุณ
- Vertical Integration of AI: อนาคตใหม่ของธุรกิจยุคดิจิทัล
- ระบบ AI Prediction — เปลี่ยนการตัดสินใจของคุณให้ทรงพลังยิ่งกว่าเดิม
- ถ้า AI Bubble แตก จะเกิดอะไรขึ้น? (วิเคราะห์จริง ไม่อิงกระแส)
- ใช้ Deep Learning + วิเคราะห์ข่าว (News Sentiment) ทำนายราคาหุ้น – คู่มือฉบับสมบูรณ์
- เปลี่ยนงาน COI ให้ง่ายขึ้นด้วย AI: ตัวอย่างใช้งานจริงในโรงงาน (Hybrid Rasa + LangChain)
- SimpliAgentic — อนาคตของโรงงานอัตโนมัติอัจฉริยะมาถึงแล้ว
- ทำไม “Android Internals” จึงสำคัญ — และบริการระดับสูงที่ธุรกิจของคุณสามารถสร้างได้จากความรู้นี้
- ทำไมธุรกิจควรพัฒนาระบบอีคอมเมิร์ซของตัวเอง (แทนการเช่าแพลตฟอร์มสำเร็จรูป)
- Upstream, Downstream และ Fork คืออะไร? คู่มือเข้าใจง่ายสำหรับนักพัฒนา Android & Linux
- บิ๊กเทคกำลังก่อ “ฟองสบู่ AI” อย่างไร? วิเคราะห์ NVIDIA, Microsoft, OpenAI, Google, Oracle และบทบาทของ AMD
- Deep Learning ในงานพัฒนาอสังหาริมทรัพย์
- บริการแก้โค้ดและดูแลระบบ Legacy — ทำให้ระบบธุรกิจของคุณเสถียร พร้อมใช้งานตลอดเวลา
- Python Deep Learning สำหรับโรงงานอัตโนมัติ: คู่มือฉบับสมบูรณ์ (อัปเดตปี 2025)
- บริการพัฒนาและฝึกอบรม Python สำหรับโรงงานอุตสาหกรรม (Factory Systems)
- ทำไม Python + Django คือ Tech Stack ที่ดีที่สุดในการสร้างระบบ eCommerce สมัยใหม่ (คู่มือฉบับสมบูรณ์ + แผนราคา)
- กลยุทธ์ซานซือหลิ่วจี (三十六计): คู่มือกลยุทธ์ธุรกิจจีนยุคใหม่ เข้าใจวิธีคิด การเจรจา และการแข่งขันแบบจีน
- เข้าใจ Training, Validation และ Testing ใน Machine Learning
- เข้าใจ Neural Network ให้ลึกจริง — ทำไมต้อง Convolution, ทำไม ReLU ต้องตามหลัง Conv2d และทำไมเลเยอร์ลึกขึ้นถึงเรียนรู้ฟีเจอร์ซับซ้อนขึ้น













