สร้าง AI ไว้ใช้งานเองในองค์กร

Natural.js และ TensorFlow.js

✅ วิธีที่ 1: ใช้ Natural.js (Naïve Bayes Classifier)

📌 1 ติดตั้งแพ็กเกจที่ต้องใช้

npm install express natural cors

📌 2 สร้างและบันทึกโมเดล (trainNatural.js)

const natural = require('natural');
const fs = require('fs');

const classifier = new natural.BayesClassifier();

// 🔥 เพิ่มข้อมูล Train
classifier.addDocument("จ่ายเงินต้องไปตึกไหน", "ไปจ่ายเงินที่ตึก ร");
classifier.addDocument("ต้องไปจ่ายเงินที่ไหน", "ไปจ่ายเงินที่ตึก ร");
classifier.addDocument("เปิดทำการวันไหน", "เปิดทำการจันทร์-ศุกร์ 8.00-17.00 น.");
classifier.addDocument("เปิดกี่โมง", "เปิดทำการจันทร์-ศุกร์ 8.00-17.00 น.");

classifier.train();

// ✅ บันทึก Model ไว้ใช้งาน
classifier.save('natural_model.json', function(err) {
    if (!err) console.log("✅ โมเดลถูกบันทึกแล้ว: natural_model.json");
});

📌 3 สร้าง API ให้เรียกใช้งาน (serverNatural.js)

const express = require('express');
const cors = require('cors');
const natural = require('natural');
const fs = require('fs');

const app = express();
app.use(cors());
app.use(express.json());

let classifier = new natural.BayesClassifier();

// ✅ โหลด Model ที่บันทึกไว้
fs.readFile('natural_model.json', (err, data) => {
    if (!err) {
        classifier = natural.BayesClassifier.restore(JSON.parse(data));
        console.log("✅ โหลดโมเดลสำเร็จ!");
    }
});

// 🔥 สร้าง API ให้เรียกใช้
app.post('/ask', (req, res) => {
    const question = req.body.question;
    const answer = classifier.classify(question) || "ขออภัย ไม่พบคำตอบ";
    res.json({ question, answer });
});

app.listen(3000, () => console.log("🚀 Natural.js API ทำงานที่ http://localhost:3000"));

📌 4 ทดสอบ API

curl -X POST http://localhost:3000/ask -H "Content-Type: application/json" -d '{"question":"จ่ายเงิน"}'

✅ วิธีที่ 2: ใช้ TensorFlow.js (Deep Neural Network)

📌 1 ติดตั้งแพ็กเกจที่ต้องใช้

npm install express @tensorflow/tfjs-node @nlpjs/lang-thai cors

📌 2 สร้างและบันทึกโมเดล (trainTensor.js)

const tf = require('@tensorflow/tfjs-node');
const { Language } = require('@nlpjs/lang-thai');
const fs = require('fs');

// 🔥 สร้าง Tokenizer ภาษาไทย
const tokenizer = new Language();
const trainingData = [
    { question: "จ่ายเงินต้องไปตึกไหน", answer: "ไปจ่ายเงินที่ตึก ร" },
    { question: "ต้องไปจ่ายเงินที่ไหน", answer: "ไปจ่ายเงินที่ตึก ร" },
    { question: "เปิดทำการวันไหน", answer: "เปิดทำการจันทร์-ศุกร์ 8.00-17.00 น." },
    { question: "เปิดกี่โมง", answer: "เปิดทำการจันทร์-ศุกร์ 8.00-17.00 น." },
];

const words = [];
const labels = [];
trainingData.forEach((data) => {
    words.push(...tokenizer.tokenize(data.question));
    labels.push(data.answer);
});

const model = tf.sequential();
model.add(tf.layers.dense({ units: 8, inputShape: [words.length], activation: 'relu' }));
model.add(tf.layers.dense({ units: 8, activation: 'relu' }));
model.add(tf.layers.dense({ units: labels.length, activation: 'softmax' }));

model.compile({ optimizer: 'adam', loss: 'categoricalCrossentropy', metrics: ['accuracy'] });

const trainModel = async () => {
    await model.fit(tf.tensor2d([0, 1, 1, 0]), tf.tensor2d([1, 0, 0, 1]), { epochs: 100 });
    await model.save('file://./tensorflow_model');
    console.log("✅ โมเดล TensorFlow.js ถูกบันทึกแล้ว!");
};

trainModel();

📌 3 ทดสอบ API

curl -X POST http://localhost:3001/ask -H "Content-Type: application/json" -d '{"question":"เปิดกี่โมง"}'

📌 สรุป

วิธี การบันทึกโมเดล เรียกใช้งาน เหมาะสำหรับ
Natural.js บันทึกเป็น natural_model.json ใช้ natural.BayesClassifier.restore() โหลดโมเดล ระบบ FAQ ที่ต้องการให้เรียนรู้แบบง่ายๆ
TensorFlow.js บันทึกเป็น tensorflow_model/ ใช้ tf.loadLayersModel() โหลดโมเดล ระบบที่ต้องการ AI ที่แม่นยำขึ้นและรองรับข้อมูลที่ซับซ้อน

Loading