ขั้นตอนที่ 1: ติดตั้งแพ็กเกจที่จำเป็น
เปิด Terminal แล้วพิมพ์คำสั่ง:
npm init -y
npm install express multer pdf-parse axios cors
    ขั้นตอนที่ 2: เขียนไฟล์ server.js
    สร้างไฟล์ชื่อ server.js แล้วใส่โค้ดด้านล่างนี้:
const express = require("express");
const multer = require("multer");
const axios = require("axios");
const cors = require("cors");
const fs = require("fs");
const pdfjsLib = require("pdfjs-dist");
const app = express();
const port = 3000;
app.use(cors());
const upload = multer({ dest: "uploads/" });
// 🔹 ฟังก์ชันเรียก Ollama
async function summarizeWithOllama(prompt, model = "llama3") {
    const response = await axios.post("http://localhost:11434/api/generate", {
        model,
        prompt,
        stream: false,
    });
    return response.data.response;
}
// 🔹 สรุปทั้งเล่ม
app.post("/summarize", upload.single("pdf"), async (req, res) => {
    if (!req.file) return res.status(400).json({ error: "กรุณาอัปโหลดไฟล์ PDF" });
    try {
        const buffer = fs.readFileSync(req.file.path);
        const data = new Uint8Array(buffer);
        const pdf = await pdfjsLib.getDocument({ data }).promise;
        let fullText = "";
        for (let i = 1; i <= pdf.numPages; i++) {
            const page = await pdf.getPage(i);
            const textContent = await page.getTextContent();
            const pageText = textContent.items.map(item => item.str).join(" ");
            fullText += `\n[หน้า ${i}]\n${pageText}\n`;
        }
        const prompt = `
สรุปเนื้อหา PDF ต่อไปนี้ให้กระชับ เข้าใจง่าย เป็นภาษาไทย:
${fullText}
`;
        const summary = await summarizeWithOllama(prompt);
        fs.unlinkSync(req.file.path);
        return res.json({ summary });
    } catch (error) {
        console.error("❌ Error:", error);
        return res.status(500).json({ error: "เกิดข้อผิดพลาดระหว่างสรุปทั้งเล่ม" });
    }
});
// 🔹 สรุปแยกหน้า
app.post("/summarize-by-page", upload.single("pdf"), async (req, res) => {
    if (!req.file) return res.status(400).json({ error: "กรุณาอัปโหลดไฟล์ PDF" });
    try {
        const buffer = fs.readFileSync(req.file.path);
        const data = new Uint8Array(buffer);
        const pdf = await pdfjsLib.getDocument({ data }).promise;
        let summaries = [];
        for (let i = 1; i <= pdf.numPages; i++) {
            const page = await pdf.getPage(i);
            const textContent = await page.getTextContent();
            const pageText = textContent.items.map(item => item.str).join(" ").trim();
            if (pageText.length === 0) continue;
            const prompt = `
สรุปเนื้อหาของหน้า ${i} ต่อไปนี้ให้กระชับ เข้าใจง่าย เป็นภาษาไทย:
${pageText}
`;
            const summary = await summarizeWithOllama(prompt);
            summaries.push({ page: i, summary });
        }
        fs.unlinkSync(req.file.path);
        return res.json({ totalPages: summaries.length, summaries });
    } catch (error) {
        console.error("❌ Error:", error);
        return res.status(500).json({ error: "เกิดข้อผิดพลาดระหว่างสรุปแต่ละหน้า" });
    }
});
app.listen(port, () => {
    console.log(`✅ PDF Summary API พร้อมที่ http://localhost:${port}`);
});
    
      💡 อย่าลืมเปิด Ollama ด้วยคำสั่ง 
    ollama run llama3 ก่อนใช้ API นี้
    ขั้นตอนที่ 3: ทดสอบ API ด้วย Postman
- เปิด Postman
 - ตั้งค่า Method เป็น 
POST - URL: 
http://localhost:3000/summarize - ไปที่แท็บ 
Body→ เลือกform-data - เพิ่ม field:
        
- Key: 
pdf(เลือก type เป็น File) - Value: [เลือกไฟล์ PDF ของคุณ]
 
 - Key: 
 - กดปุ่ม Send
 
✅ ถ้าทุกอย่างถูกต้อง จะได้ JSON สรุปเนื้อหา PDF กลับมาแบบนี้:
{
  "summary": "นี่คือเนื้อหาสรุปจากไฟล์ PDF ที่คุณอัปโหลด..."
}
    ข้อเสนอแนะเพิ่มเติม
- หาก PDF ยาวเกินไป → ควรแบ่งเป็นหน้าแล้วสรุปทีละช่วง
 - สามารถปรับ Prompt ได้ตามบริบท เช่น: 
สรุปแบบวิชาการ,สไตล์พรีเซนต์ - อยากได้ Web GUI, แปลง PDF เป็นไฟล์ใหม่ พร้อมสรุป? → สามารถต่อยอดได้
 
📥 Postman Collection
คุณสามารถ Import JSON ด้านล่างนี้เข้า Postman ได้โดย:
- เปิด Postman แล้วกด Import
 - เลือกแท็บ Raw Text
 - วางโค้ด JSON ด้านล่าง แล้วคลิก Continue
 
{
  "info": {
    "name": "Ollama PDF Summary",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_postman_id": "c42fd0ba-2621-49d5-bdd5-ollama-api-summary"
  },
  "item": [
    {
      "name": "สรุป PDF ด้วย Ollama",
      "request": {
        "method": "POST",
        "header": [],
        "body": {
          "mode": "formdata",
          "formdata": [
            {
              "key": "pdf",
              "type": "file",
              "src": ""
            }
          ]
        },
        "url": {
          "raw": "http://localhost:3000/summarize",
          "protocol": "http",
          "host": ["localhost"],
          "port": "3000",
          "path": ["summarize"]
        },
        "description": "อัปโหลด PDF แล้วให้ Node.js ส่งไปที่ Ollama (llama3) เพื่อสรุปเนื้อหาภาษาไทย"
      },
      "response": []
    }
  ]
}
    
      📌 หลัง Import แล้ว:  
      
  - เปิด request → แท็บ Body
 - เลือก 
form-data - กำหนด 
pdfเป็นประเภท File แล้วแนบ PDF ของคุณ - กด Send เพื่อรับสรุปจาก AI
 
 ![]()