สร้าง Chatbot เพื่อบริการ ถามตอบอ้ตโนมัต
สร้าง Chatbot ถาม-ตอบสำหรับโรงเรียนเอกชนพร้อมใส่โลโก้ของคุณ
เขียน Chatbot เพื่อเป็นผู้ช่วยตอบคำถามสำหรับโรงเรียนในพื้นที่ซึ่งจะช่วยอำนวยความสะดวกแก่นักเรียนผู้อำนวยการทั่วไปประสิทธิภาพตลอด 24 ชั่วโมงเร่งด่วนนี้จะต้องใส่โลโก้เพื่อสร้างบันทึกและแสดงการอำนวยความสะดวกของโรงเรียนบางส่วน
ของ Chatbot สำหรับวันนี้
เพื่อการแชทที่มาในโรงเรียนมีข้อดี[1 -
-
บทความเกี่ยวกับบริการ: สามารถตอบคำถามได้ทันที เช่น ค่าเทอมของนักศึกษาหรือปฏิทินการศึกษาตลอด 24 ชั่วโมง[1 -2 - -
รับสมัครนักศึกษา: ผู้ช่วยผู้สนใจเบื้องต้นและกระตือรือร้นติดต่อเพื่อส่งต่อให้เจ้าหน้าที่ฝ่ายรับสมัคร[1 - -
ลดภาระงานของเจ้าหน้าที่: จำนวนคำถามที่ตอบคำถามซ้ำๆ ที่เจ้าหน้าที่ต้องไม่ได้ไปทำงานส่วนอื่นที่สำคัญกว่า -
รวบรวม: สามารถนำมาวิเคราะห์เพื่อสอบถามบริการของโรงเรียนได้[1 -
การสร้าง Chatbot สำหรับโรงเรียน
1. ขอบเขตและขอบเขตของ Chatbot
สิ่งแรกที่ต้องทำคือต้องแน่ใจว่าต้องการให้แชททำอะไรได้บ้างหรือปกติในโรงเรียน:
-
รับสมัคร: "เปิดรับสมัครในช่วงที่เหมาะสม?", "มีค่าแรกเข้าเท่าไหร่?", "เอกสารที่ต้องใช้มีอะไรบ้าง?" -
หลักสูตร: "มีหลักสูตรอะไรบ้าง?", "แต่ละหลักสูตรแตกต่างกันไปอย่างไร" -
ข้อมูลทั่วไป: "ตั้งอยู่ที่ไหน?", "เวลาทำการของฝ่ายธุรการ?", "ปฏิทินกิจกรรมโรงเรียน"
2. เลือกแพลตฟอร์มสำหรับสร้าง Chatbot
ปัจจุบันมีแพลตฟอร์ม AI Chatbot ซึ่งมีหลายแพลตฟอร์มที่ให้ความแพร่หลายแม้ไม่มีความรู้ด้านเนื้อหาโค้ด[3 -4 ] แพลตฟอร์มดังกล่าวมีดังนี้:
-
บอทเพรส: เป็นแพลตฟอร์ม Open-Source ที่สามารถรองรับได้หลากหลายและสามารถรองรับได้[5 -6 - -
Dialogflow โดย Google: เป็นแพลตฟอร์มที่รวบรวมข้อมูลในการเข้าใจภาษาธรรมชาติและตรวจสอบบริการต่างๆ ของ Google ได้[3 - -
Yellow.ai: พื้นที่องค์กรระดับองค์กรเก็บข้อมูลการแชทของตัวเครื่องด้วยเครื่องมือแบบลาก (ลากและวาง)[5 - -
แพลตฟอร์มอื่นๆ: มีให้เลือกมากมายเช่น IBM watsonx Assistant หรือ Amity Solutions ที่มีบริการแชทบอทสำหรับ Line และ Facebook ในไทยโดยเฉพาะ[5 -7 -
3. ออกแบบคำบรรยายและเตรียมข้อมูล
ก่อนจะเลือกแพลตฟอร์มได้ทันทีก่อนต่อไปคือการออกแบบ "Flow" หรือการปฏิบัติตามคำสั่งของระบบออกแบบให้เข้าใจได้ง่ายและเป็นทางเลือกให้ผู้ใช้เสมอในการเตรียมชุดคำถามและคำตอบ (FAQ) บ่อยครั้งเพื่อนำไปสู่ "การฝึก" (Train) ช่วยให้แชทบอทเรียนรู้
4. ใส่โลโก้และปรับแต่งหน้าตา (Customization)
แพลตฟอร์มที่ให้คุณปรับแต่งหน้าตาของหน้าต่างแชทได้ เช่น การเปลี่ยนสีให้ระบบควบคุมของโรงเรียนและที่สำคัญคือการใส่โลโก้ จากนั้นจะมีขั้นตอนดังนี้:
-
ส่วนของร่างกาย (Settings) หรือการมองเห็น (Appearance/Customization) ของแชทบอท -
ค้นหาตัวเลือกสำหรับ "Avatar", "รูปโปรไฟล์" หรือ "โลโก้" -
ภาพยนตร์ไฟล์รูปภาพโลโก้ที่ดังภาพที่คุณแนบมา)
5. ทดสอบและนำไปใช้งาน
ก่อนที่จะนำแชทไปใช้งานจริง ควรทำการทดสอบอย่างละเอียดโดยให้หลายๆ คนลองใช้งานฟังก์ชั่นต่างๆ ของคำอธิบายให้มากกว่านี้พร้อมแล้วจึงนำไปสู่การติดตั้งของโรงเรียนหรือการตรวจสอบช่องทางเช่น Facebook Messenger และ LINE
ในประเทศไทยมีตัวอย่างการใช้แชทบอทในโรงเรียน เช่น "น้องมานะ" ผู้ช่วยในไลน์ของการช่วยเหลือแจ้งการบ้านกิจกรรมต่างๆ[8 ] ส่วนสำคัญของการแชทสามารถนำมาประยุกต์ใช้กับการสื่อสารภายในโรงเรียนได้อย่างมีประสิทธิภาพ
โค้ดเพื่อจัดเก็บและเรียกใช้คำถาม-คำตอบ (Q&A) จากฐานข้อมูล MySQL แทนการเก็บในโค้ดโดยตรง (Hardcode) เป็นการปรับปรุงที่ยอดเยี่ยม ทำให้ระบบสามารถขยายและจัดการได้ง่ายขึ้นมาก
การเปลี่ยนแปลงนี้ต้องทำใน 2 ส่วนหลักๆ คือ:
-
Backend (ฝั่งเซิร์ฟเวอร์): สร้างไฟล์ API เพื่อเชื่อมต่อกับฐานข้อมูล MySQL และจัดการข้อมูล (เพิ่ม, ลบ, แก้ไข, ดึงข้อมูล) ผมจะใช้ภาษา PHP เป็นตัวอย่าง لأنهเป็นที่นิยมและใช้งานง่ายกับเว็บโฮสติ้งส่วนใหญ่
-
Frontend (ฝั่งผู้ใช้): แก้ไขโค้ด JavaScript ในไฟล์
index.htmlเดิม ให้เรียกใช้งาน API ที่เราสร้างขึ้นแทนการอ้างอิงจากตัวแปรresponsesที่อยู่ในโค้ด
ขั้นตอนที่ 1: เตรียมฐานข้อมูล (MySQL)
ก่อนอื่น ให้สร้างตารางในฐานข้อมูล MySQL ของคุณเพื่อเก็บข้อมูลคำถาม-คำตอบ โดยใช้คำสั่ง SQL นี้:
SQL
CREATE TABLE `chatbot_responses` (
`id` INT AUTO_INCREMENT PRIMARY KEY,
`category` VARCHAR(50) NOT NULL,
`question` TEXT NOT NULL,
`answer` TEXT NOT NULL,
`keywords` VARCHAR(255) NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
คำอธิบายตาราง:
-
id: รหัสเฉพาะของแต่ละแถว (Primary Key)
-
category: หมวดหมู่ของคำถาม (เช่น home, admission, curriculum)
-
question: คำถามหลัก
-
answer: คำตอบสำหรับคำถามนั้น
-
keywords: คำสำคัญที่เกี่ยวข้อง (เก็บในรูปแบบข้อความที่คั่นด้วยจุลภาค เช่น "หอพัก,ค่าใช้จ่าย,ที่พัก")
ขั้นตอนที่ 2: สร้าง Backend API (ไฟล์ api.php)
สร้างไฟล์ใหม่ชื่อ api.php แล้ววางโค้ดข้างล่างนี้ลงไป ไฟล์นี้จะทำหน้าที่เป็นตัวกลางระหว่าง Frontend กับฐานข้อมูล
สำคัญ: แก้ไขข้อมูลการเชื่อมต่อฐานข้อมูล ($servername, $username, $password, $dbname) ให้ตรงกับการตั้งค่าของคุณ
<?php
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
// --- แก้ไขข้อมูลการเชื่อมต่อฐานข้อมูลของคุณที่นี่ ---
$servername = "localhost";
$username = "root"; // <-- ชื่อผู้ใช้ฐานข้อมูล
$password = ""; // <-- รหัสผ่าน
$dbname = "school_db"; // <-- ชื่อฐานข้อมูล
// สร้างการเชื่อมต่อ
$conn = new mysqli($servername, $username, $password, $dbname);
// ตั้งค่า character set
$conn->set_charset("utf8mb4");
// ตรวจสอบการเชื่อมต่อ
if ($conn->connect_error) {
die(json_encode(["error" => "Connection failed: " . $conn->connect_error]));
}
$action = $_GET['action'] ?? '';
$method = $_SERVER['REQUEST_METHOD'];
switch ($action) {
case 'get_responses':
if ($method == 'GET') {
$sql = "SELECT * FROM chatbot_responses ORDER BY category, id";
$result = $conn->query($sql);
$responses = [];
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
// จัดกลุ่มตาม category
if (!isset($responses[$row['category']])) {
$responses[$row['category']] = [];
}
$responses[$row['category']][] = [
'id' => (int)$row['id'],
'question' => $row['question'],
'answer' => $row['answer'],
'keywords' => $row['keywords'] ? explode(',', $row['keywords']) : []
];
}
}
echo json_encode($responses);
}
break;
case 'add_response':
if ($method == 'PO