การสร้างแชทบอทด้วย 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
- จัดการเครื่องทดสอบใยแก้วนำแสง EXFO อย่างง่าย ด้วยระบบ Admin Panel น้ำหนักเบา
- ยกระดับความพร้อมปฏิบัติการทางเรือ ด้วยการจำลอง EMI: ลดความเสี่ยงอย่างคุ้มค่า ด้วย MEEP และ Python
- เสริมความมั่นคงปลอดภัยทางไซเบอร์ด้วย Wazuh: ระบบ SIEM แบบโอเพ่นซอร์สที่ปรับขนาดได้และคุ้มค่า
- ข้อเสนอโซลูชัน OCPP Central System + Mobile App
- ระบบ TAK กับการเปลี่ยนแปลงภารกิจรักษาความมั่นคงชายแดน
- เปรียบเทียบ ChatGPT‑4o vs GPT‑4.1 vs GPT‑4.5 – เลือกรุ่นไหนดีที่สุด?
- ลูกค้าสามารถถอดรหัสข้อมูลจากเซิร์ฟเวอร์ได้หรือไม่หากไม่มี Private Key? (สรุป: ไม่ได้ — และนี่คือเหตุผล)
- การจัดการ JWT Authentication ระหว่างหลายเฟรมเวิร์ก
- สร้างระบบแอดมินสำหรับ EXFO Tester ด้วย FastAPI และ Alpine.js แบบเบาและมีประสิทธิภาพ
- การตรวจสอบอุปกรณ์เครือข่าย Cisco ด้วย Wazuh: คู่มือฉบับสมบูรณ์
- สร้างระบบเชื่อมต่อแอปมือถือกับระบบชาร์จไฟฟ้า OCPP ด้วย FastAPI
- การจำลองการรบกวนทางแม่เหล็กไฟฟ้า (EMC/EMI) บนดาดฟ้าเรือรบด้วย MEEP และ Python
- ระบบ TAK ทำงานอย่างไร: คู่มือฉบับสมบูรณ์สำหรับการรับรู้สถานการณ์แบบเรียลไทม์
- สร้างเว็บไซต์และแอปขายของออนไลน์ พร้อมระบบ AI แชทบอทอัจฉริยะ – ครบจบในที่เดียว
- ระบบแนะนำสินค้าอัจฉริยะมาแล้ว — พร้อมใช้งานในร้านของคุณ
- ปรียบเทียบ Rasa vs LangChain vs Rasa + LangChain
- เข้าใจ Wazuh ด้วยการสำรวจโครงการโอเพ่นซอร์สที่อยู่เบื้องหลัง
- วิธีเชื่อมต่อระบบยืนยันตัวตนจากแอปกับ OCPP Central System
- คู่มือสำหรับผู้เริ่มต้น: แอปชาร์จรถ EV ทำงานอย่างไร ติดต่อกับสถานีชาร์จ และคำนวณค่าใช้จ่ายอย่างไร
- สร้างระบบจัดการ EV Charging OCPP 1.6 ด้วย Flask[async], WebSocket และ MongoDB