เปลี่ยนการแสดงผล thA-AA+

สังกัดคณะกรรมการส่งเสริมการศึกษาเอกชน

สร้าง 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 ส่วนหลักๆ คือ:

  1. Backend (ฝั่งเซิร์ฟเวอร์): สร้างไฟล์ API เพื่อเชื่อมต่อกับฐานข้อมูล MySQL และจัดการข้อมูล (เพิ่ม, ลบ, แก้ไข, ดึงข้อมูล) ผมจะใช้ภาษา PHP เป็นตัวอย่าง لأنهเป็นที่นิยมและใช้งานง่ายกับเว็บโฮสติ้งส่วนใหญ่

  2. 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
<?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

เรื่องที่เกี่ยวข้อง

No comments yet
ความคิดเห็น
^