2Slides Logo
สร้าง AI Presentation Agent: คู่มือสำหรับนักพัฒนาแบบครบถ้วน
2Slides Team
5 min read

สร้าง AI Presentation Agent: คู่มือฉบับสมบูรณ์สำหรับนักพัฒนา

AI agents กำลังเปลี่ยนแปลงวิธีที่ซอฟต์แวร์สร้างเนื้อหา AI presentation agent สามารถสร้าง ปรับแต่ง และส่งมอบสไลด์งานนำเสนอระดับมืออาชีพเป็นส่วนหนึ่งของเวิร์กโฟลว์อัตโนมัติ — ตั้งแต่ CRM pipelines ไปจนถึงเครื่องมือรายงานภายในองค์กร

คู่มือนี้จะแนะนำคุณตลอดกระบวนการสร้าง presentation agent ที่พร้อมใช้งานจริงโดยใช้ 2Slides API

ภาพรวมสถาปัตยกรรม

Presentation agent โดยทั่วไปจะทำงานตามขั้นตอนดังนี้:

User Request → Agent Logic → 2Slides API → Poll Job → Deliver Result Context Gathering (data, templates, brand assets)

ส่วนประกอบหลัก

  1. Input Handler — รับคำขอสร้างงานนำเสนอ (ข้อความ, ข้อมูล, ไฟล์)
  2. Context Builder — เสริมคำขอด้วยเทมเพลต, ข้อมูลแบรนด์, ข้อมูล
  3. Generation Engine — เรียกใช้ 2Slides API เพื่อสร้างสไลด์
  4. Status Monitor — ตรวจสอบสถานะงานจนกว่าจะเสร็จสมบูรณ์
  5. Delivery Layer — ส่งคืนลิงก์ดาวน์โหลด, ส่งผ่านอีเมล, โพสต์ลง Slack

เริ่มต้นใช้งาน

1. รับ API Key ของคุณ

ลงทะเบียนที่ 2slides.com และสร้าง API key ที่ 2slides.com/api

2. ติดตั้ง Dependencies

npm install node-fetch dotenv

3. การสร้าง Agent พื้นฐาน

import fetch from 'node-fetch'; class PresentationAgent { constructor(apiKey) { this.apiKey = apiKey; this.baseUrl = 'https://2slides.com/api/v1'; } async generateSlides({ topic, themeId, language = 'en', resolution = '2K' }) { // ขั้นตอนที่ 1: เริ่มการสร้าง const response = await fetch(`${this.baseUrl}/slides/generate`, { method: 'POST', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ userInput: topic, themeId, responseLanguage: language, resolution, mode: 'async' }) }); const job = await response.json(); if (!response.ok) throw new Error(job.error || 'Generation failed'); // ขั้นตอนที่ 2: ตรวจสอบสถานะจนเสร็จสมบูรณ์ return await this.waitForCompletion(job.jobId); } async waitForCompletion(jobId, maxWait = 300000) { const start = Date.now(); while (Date.now() - start < maxWait) { const response = await fetch(`${this.baseUrl}/jobs/${jobId}`, { headers: { 'Authorization': `Bearer ${this.apiKey}` } }); const status = await response.json(); if (status.status === 'success') return status; if (status.status === 'failed') throw new Error('Generation failed'); await new Promise(r => setTimeout(r, 3000)); } throw new Error('Generation timed out'); } async generateFromFile({ fileUrl, prompt, themeId }) { const response = await fetch(`${this.baseUrl}/slides/create-pdf-slides`, { method: 'POST', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ fileUrl, userInput: prompt, themeId, mode: 'async' }) }); const job = await response.json(); return await this.waitForCompletion(job.jobId); } async generateWithDesign({ topic, referenceImageUrl, resolution = '2K' }) { const response = await fetch(`${this.baseUrl}/slides/create-like-this`, { method: 'POST', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ userInput: topic, designStyle: { global: { referenceImageUrl } }, resolution, mode: 'async' }) }); const job = await response.json(); return await this.waitForCompletion(job.jobId); } async addNarration({ jobId, mode = 'single', voice = 'Charon' }) { const response = await fetch(`${this.baseUrl}/slides/generate-narration`, { method: 'POST', headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ jobId, mode, voice, contentMode: 'concise' }) }); return await response.json(); } } // วิธีใช้งาน const agent = new PresentationAgent('sk-2slides-xxx'); const result = await agent.generateSlides({ topic: 'Q1 2026 Business Review', themeId: 'mckinsey-theme-id', resolution: '2K' }); console.log('ดาวน์โหลด:', result.downloadUrl);

การใช้งาน Python

import requests import time class PresentationAgent: def __init__(self, api_key): self.api_key = api_key self.base_url = 'https://2slides.com/api/v1' self.headers = { 'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json' } def generate_slides(self, topic, theme_id=None, language='en', resolution='2K'): response = requests.post( f'{self.base_url}/slides/generate', headers=self.headers, json={ 'userInput': topic, 'themeId': theme_id, 'responseLanguage': language, 'resolution': resolution, 'mode': 'async' } ) response.raise_for_status() job = response.json() return self._wait_for_completion(job['jobId']) def generate_from_file(self, file_url, prompt, theme_id=None): response = requests.post( f'{self.base_url}/slides/create-pdf-slides', headers=self.headers, json={ 'fileUrl': file_url, 'userInput': prompt, 'themeId': theme_id, 'mode': 'async' } ) response.raise_for_status() job = response.json() return self._wait_for_completion(job['jobId']) def _wait_for_completion(self, job_id, max_wait=300): start = time.time() while time.time() - start < max_wait: response = requests.get( f'{self.base_url}/jobs/{job_id}', headers=self.headers ) status = response.json() if status['status'] == 'success': return status if status['status'] == 'failed': raise Exception('การสร้างล้มเหลว') time.sleep(3) raise TimeoutError('การสร้างหมดเวลา') # วิธีการใช้งาน agent = PresentationAgent('sk-2slides-xxx') result = agent.generate_slides('แนวโน้ม AI ปี 2026', resolution='4K') print(f"ดาวน์โหลด: {result['downloadUrl']}")

รูปแบบขั้นสูง

รูปแบบที่ 1: การสร้างสไลด์แบบใช้เทมเพลต

กำหนดค่าธีมล่วงหน้าสำหรับกรณีการใช้งานต่างๆ:

const TEMPLATES = { 'pitch-deck': { themeId: 'apple-id', resolution: '2K' }, 'quarterly-review': { themeId: 'mckinsey-id', resolution: '2K' }, 'training': { themeId: 'corporate-id', resolution: '1K' }, 'social-media': { themeId: 'saul-bass-id', resolution: '4K', aspectRatio: '1:1' }, }; async function generateByType(type, topic) { const config = TEMPLATES[type]; return agent.generateSlides({ topic, ...config }); }

รูปแบบที่ 2: การเชื่อมต่อไปป์ไลน์ข้อมูล

เชื่อมต่อกับแหล่งข้อมูลของคุณ:

async function weeklyReport(dataSource) { // 1. ดึงข้อมูลล่าสุด const data = await dataSource.getWeeklyMetrics(); // 2. จัดรูปแบบเป็นอินพุตสำหรับงานนำเสนอ const topic = `Weekly Report: Revenue $${data.revenue}, Users ${data.users}, Churn ${data.churn}%`; // 3. สร้างสไลด์ const result = await agent.generateSlides({ topic, themeId: 'mckinsey-id' }); // 4. ส่งมอบ await slackBot.postMessage('#team-updates', `Weekly report ready: ${result.downloadUrl}`); }

รูปแบบที่ 3: ผลลัพธ์หลายรูปแบบ

สร้างสไลด์ + บรรยาย + วิดีโอในไปป์ไลน์เดียว:

async function fullPresentation(topic) { // 1. สร้างสไลด์ const slides = await agent.generateSlides({ topic }); // 2. เพิ่มการบรรยายด้วยเสียง await agent.addNarration({ jobId: slides.jobId, mode: 'multi', voice: 'Charon' }); // 3. ดาวน์โหลดพร้อมเสียง const download = await fetch(`${agent.baseUrl}/slides/download-slides-pages-voices`, { method: 'POST', headers: agent.headers, body: JSON.stringify({ jobId: slides.jobId }) }); return download.json(); }

ข้อควรพิจารณาสำหรับการใช้งานจริง

การจำกัดอัตรา

  • ค่าเริ่มต้น: 60 คำขอต่อนาที
  • จัดการกับการตอบกลับ 429 ด้วยการรอแบบทวีคูณ (exponential backoff)
  • ใช้โหมด async สำหรับการดำเนินการแบบชุด

การจัดการข้อผิดพลาด

  • ใช้ try/catch ครอบคลุมการเรียก API ทั้งหมด
  • ใช้ตรรกะการลองใหม่สำหรับความล้มเหลวชั่วคราว
  • บันทึก job ID เพื่อการดีบัก

การจัดการต้นทุน

  • ติดตามการใช้เครดิตต่อการสร้างสไลด์
  • ตั้งค่าการแจ้งเตือนงบประมาณในแดชบอร์ด 2Slides ของคุณ
  • ใช้ความละเอียดต่ำกว่าสำหรับเนื้อหาภายในองค์กร/ฉบับร่าง

ความปลอดภัย

  • เก็บ API key ในตัวแปรสภาพแวดล้อม ห้ามเก็บในโค้ด
  • ใช้การเรียก API ฝั่งเซิร์ฟเวอร์เท่านั้น — ห้ามเปิดเผย key ให้กับไคลเอนต์
  • ใช้การเซ็นคำขอสำหรับการเรียกกลับ webhook

คำถามที่พบบ่อย

ฉันสามารถสร้างผลิตภัณฑ์ SaaS บน 2Slides API ได้หรือไม่?

ได้ — API ได้รับการออกแบบมาสำหรับการใช้งานจริง ไม่มีข้อจำกัดสำหรับแอปพลิเคชันเชิงพาณิชย์

ขีดจำกัดการสร้างสไลด์พร้อมกันสูงสุดคือเท่าไร?

API จัดการกับคำขอพร้อมกันผ่านการจำกัดอัตรา สำหรับความต้องการปริมาณสูง ติดต่อทีม 2Slides เพื่อขอขีดจำกัดแบบองค์กร

มี webhook สำหรับการแจ้งเตือนเมื่องานเสร็จสิ้นหรือไม่?

ปัจจุบันให้ใช้การตรวจสอบแบบ polling ผ่าน jobs endpoint การรองรับ webhook อยู่ในแผนพัฒนา


สร้าง presentation agent ของคุณ — รับ API key ได้ที่ 2Slides และเริ่มสร้างสไลด์แบบโปรแกรมได้ทันที

About 2Slides

Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.

Try For Free