สร้าง AI Chatbot ด้วย Node.js และ OpenAI API
AI Chatbot กำลังกลายเป็นเครื่องมือสำคัญสำหรับธุรกิจ ไม่ว่าจะเป็นการตอบคำถามลูกค้า การช่วยค้นหาข้อมูล หรือการทำงานอัตโนมัติบนเว็บไซต์ ในบทความนี้เราจะพาคุณสร้าง AI Chatbot ด้วย Node.js และ OpenAI API แบบง่าย ๆ พร้อมตัวอย่างโค้ดที่สามารถนำไปต่อยอดใช้งานจริงได้
AI Chatbot คืออะไร?
AI Chatbot คือโปรแกรมที่สามารถสนทนากับผู้ใช้งานโดยใช้ปัญญาประดิษฐ์ (AI) เพื่อทำความเข้าใจคำถามและตอบกลับอย่างเป็นธรรมชาติ
ตัวอย่างการใช้งาน:
- ตอบคำถามลูกค้าอัตโนมัติ
- Chatbot บนเว็บไซต์
- ผู้ช่วยภายในองค์กร
- ระบบค้นหาข้อมูลจากเอกสาร
- AI Customer Support
สิ่งที่ต้องเตรียม
1. ติดตั้ง Node.js
ดาวน์โหลด Node.js เวอร์ชันล่าสุดจากเว็บไซต์ทางการ
node -vnpm -v
2. สร้างโปรเจกต์
mkdir ai-chatbotcd ai-chatbotnpm init -y
3. ติดตั้ง Package
npm install openai dotenv express cors
ขอ API Key จาก OpenAI
สร้างไฟล์ .env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
สร้าง Backend API
สร้างไฟล์ server.js
require("dotenv").config();const express = require("express");const cors = require("cors");const OpenAI = require("openai");const app = express();app.use(cors());app.use(express.json());const openai = new OpenAI({apiKey: process.env.OPENAI_API_KEY,});app.post("/chat", async (req, res) => {try {const { message } = req.body;const response = await openai.responses.create({model: "gpt-5",input: message,});res.json({reply: response.output_text,});} catch (error) {console.error(error);res.status(500).json({error: "Something went wrong",});}});app.listen(3000, () => {console.log("Server running on port 3000");});
ทดสอบ API
รันเซิร์ฟเวอร์
node server.js
ทดสอบด้วย curl
curl -X POST http://localhost:3000/chat \-H "Content-Type: application/json" \-d '{"message":"สวัสดี"}'
ผลลัพธ์
{"reply": "สวัสดีครับ มีอะไรให้ช่วยไหมครับ?"}
สร้างหน้าเว็บ Chat
สร้างไฟล์ index.html
<!DOCTYPE html><html><head><title>AI Chatbot</title></head><body><h1>AI Chatbot</h1><input id="message" /><button onclick="sendMessage()">Send</button><div id="result"></div><script>async function sendMessage() {const message =document.getElementById("message").value;const response = await fetch("http://localhost:3000/chat",{method: "POST",headers: {"Content-Type": "application/json"},body: JSON.stringify({message})});const data = await response.json();document.getElementById("result").innerHTML += ``;}</script></body></html>
เพิ่ม Memory ให้ Chatbot
หากต้องการให้ AI จำบทสนทนาได้ สามารถเก็บข้อความใน Array
const messages = [];messages.push({role: "user",content: message,});
จากนั้นส่งประวัติการสนทนาไปพร้อมกัน
const response = await openai.responses.create({model: "gpt-5",input: messages.map((m) => ({role: m.role,content: m.content,})),});
สำหรับ Production ควรเก็บข้อมูลใน:
- MongoDB
- PostgreSQL
- Redis
เพิ่ม System Prompt
กำหนดบุคลิกของ Chatbot
const response = await openai.responses.create({model: "gpt-5",instructions: `คุณเป็นพนักงานขายของบริษัทตอบภาษาไทยสุภาพเน้นบริการทำเว็บไซต์และการตลาดออนไลน์`,input: message,});
ต่อยอดสู่ AI Chatbot สำหรับธุรกิจ
หลังจากสร้าง Chatbot พื้นฐานแล้ว สามารถพัฒนาเพิ่มเติมได้ เช่น
เชื่อมต่อข้อมูลบริษัท
- FAQ
- เอกสาร PDF
- ข้อมูลสินค้า
- ฐานความรู้ภายในองค์กร
เชื่อมต่อ LINE OA
- ตอบลูกค้าอัตโนมัติ
- ส่งใบเสนอราคา
- ตรวจสอบสถานะคำสั่งซื้อ
เชื่อมต่อเว็บไซต์
- Live Chat
- Lead Generation
- Customer Support
สร้าง AI Agent
- จองคิว
- ค้นหาข้อมูล
- สรุปรายงาน
- สั่งงานระบบภายใน
Best Practices สำหรับ Production
จำกัดจำนวนข้อความ
ไม่ควรส่งประวัติการสนทนาทั้งหมดทุกครั้ง เพราะจะทำให้ Token เพิ่มขึ้นและค่าใช้จ่ายสูงขึ้น
ตัวอย่าง:
const recentMessages = messages.slice(-20);
ป้องกัน Rate Limit
ใช้ Middleware จำกัดจำนวน Request
npm install express-rate-limit
const rateLimit = require("express-rate-limit");app.use(rateLimit({windowMs: 15 * 60 * 1000,max: 100,}));
เก็บ API Key ให้ปลอดภัย
- ห้ามส่ง API Key ไปยัง Frontend
- เก็บไว้ใน Environment Variables
- ใช้ Backend เป็นตัวกลางเรียก OpenAI API
สรุป
การสร้าง AI Chatbot ด้วย Node.js และ OpenAI API เป็นจุดเริ่มต้นที่ดีสำหรับนักพัฒนาที่ต้องการเข้าสู่โลกของ AI Application Development โดยใช้เวลาเพียงไม่กี่นาทีก็สามารถสร้าง Chatbot ที่ตอบคำถามได้จริง
เมื่อเข้าใจพื้นฐานแล้ว คุณสามารถต่อยอดไปสู่การสร้าง AI Agent, ระบบ RAG, Chatbot ที่เชื่อมต่อฐานข้อมูล หรือระบบ Customer Support อัตโนมัติสำหรับธุรกิจได้อย่างเต็มรูปแบบ