2Slides Logo
Smíðaðu AI kynningarumboð: Tæmandi leiðbeiningar fyrir forritara
2Slides Team
6 min read

Byggja AI kynningaumboð: Ítarleg leiðarvísir fyrir forritara

AI umboð eru að umbreyta því hvernig hugbúnaður býr til efni. AI kynningaumboð getur búið til, sérsniðið og afhent faglega skyggnusýningar sem hluta af sjálfvirkum verkflæðum — allt frá CRM leiðslum til innri skýrsluverkfæra.

Þessi leiðarvísir leiðir þig í gegnum smíði framleiðslutilbúins kynningaumboðs með því að nota 2Slides API.

Yfirlit yfir arkitektúr

Kynningarumboð fylgir venjulega þessu ferli:

Notendabeiðni → Umboðsrökfræði → 2Slides API → Skoða starf → Afhenda niðurstöðu Samhengissöfnun (gögn, sniðmát, vörumerkjaefni)

Kjarnaþættir

  1. Inntaksmeðhöndlun — tekur á móti kynningarbeiðnum (texti, gögn, skrár)
  2. Samhengisuppbyggjandi — auðgar beiðnir með sniðmátum, vörumerkjaupplýsingum, gögnum
  3. Myndunarvél — kallar á 2Slides API til að búa til glærur
  4. Stöðuvöktur — fylgist með starfsstöðu þar til henni er lokið
  5. Afhendingarlag — skilar niðurhalstengum, sendir með tölvupósti, birtir á Slack

Að byrja

1. Fáðu API lykilinn þinn

Skráðu þig á 2slides.com og búðu til API lykil á 2slides.com/api.

2. Setja upp Dependencies

npm install node-fetch dotenv

3. Grunnuppsetting 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' }) { // Skref 1: Byrja myndun 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 || 'Myndun mistókst'); // Skref 2: Athuga stöðu þar til lokið return await this.waitForCompletion(job.jobId); } ```javascript 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('Myndun mistókst'); await new Promise(r => setTimeout(r, 3000)); } throw new Error('Myndun rann út á tíma'); } 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(); } } // Notkun const agent = new PresentationAgent('sk-2slides-xxx'); const result = await agent.generateSlides({ topic: 'Viðskiptayfirlit 1. ársfjórðungs 2026', themeId: 'mckinsey-theme-id', resolution: '2K' }); console.log('Niðurhal:', result.downloadUrl);

Python útfærsla

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']) ```python 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('Myndun mistókst') time.sleep(3) raise TimeoutError('Myndun tímamörkuð') # Notkun agent = PresentationAgent('sk-2slides-xxx') result = agent.generate_slides('AI Þróun 2026', resolution='4K') print(f"Sækja: {result['downloadUrl']}")

Ítarleg Mynstur

Mynstur 1: Sniðmátsbundin Búun

Forskilgreindu þemu fyrir mismunandi notkunartilvik:

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 }); }

Mynstur 2: Samþætting Gagnaveitna

Tengstu gagnagjöfunum þínum:

async function weeklyReport(dataSource) { // 1. Sækja nýjustu gögn const data = await dataSource.getWeeklyMetrics(); // 2. Sníða sem inntak kynningar const topic = `Vikuleg Skýrsla: Tekjur $${data.revenue}, Notendur ${data.users}, Brottfall ${data.churn}%`; // 3. Búa til glærur const result = await agent.generateSlides({ topic, themeId: 'mckinsey-id' }); // 4. Afhenda await slackBot.postMessage('#team-updates', `Vikuleg skýrsla tilbúin: ${result.downloadUrl}`); }

Mynstur 3: Fjölsniða Úttak

Búðu til glærur + frásögn + myndband í einni veitulínu:

async function fullPresentation(topic) { // 1. Búa til glærur const slides = await agent.generateSlides({ topic }); ```markdown // 2. Bæta við raddlýsingu await agent.addNarration({ jobId: slides.jobId, mode: 'multi', voice: 'Charon' }); // 3. Hlaða niður með hljóði 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(); }
## Framleiðslusjónarmið ### Takmörkun á beiðnum - Sjálfgefið: 60 beiðnir/mínútu - Meðhöndlaðu 429 svör með veldisvísisbundnum bakfara - Notaðu ósamstilltan ham fyrir lotuvinnslur ### Villumeðhöndlun - Vefjaðu öll API köll í try/catch - Útfærðu endurtilraunarreglu fyrir tímabundnar bilanir - Skráðu verkauðkenni fyrir villuleit ### Kostnaðarstýring - Fylgstu með inneignanotkun fyrir hverja myndgerð - Stilltu fjárhagsáætlunartilkynningar á 2Slides stjórnborðinu þínu - Notaðu lægri upplausnir fyrir innra/drög efni ### Öryggi - Geymdu API lykla í umhverfisbreytum, aldrei í kóða - Notaðu aðeins API köll á þjónshliðinni — aldrei afhjúpa lykla fyrir biðlara - Útfærðu beiðnirundirritun fyrir webhook afturkall ## Algengar spurningar ### Get ég byggt SaaS vöru ofan á 2Slides API? Já — API-ið er hannað fyrir framleiðslunotkun. Það eru engar takmarkanir á viðskiptalegum forritum. ### Hver er hámarksfjöldi samhliða búa til? API-ið sér um samhliða beiðnir með takmörkun á tíðni. Fyrir mikla notkun, hafðu samband við 2Slides teymið fyrir fyrirtækjamörk. ### Er til webhook fyrir lok verks? Eins og er, notaðu könnun í gegnum jobs endapunktinn. Webhook stuðningur er á vegvísinum. --- *Byggðu þinn kynninga-agent — [fáðu API lykilinn þinn hjá 2Slides](https://2slides.com/api) og byrjaðu að búa til skyggnur forritunarlega.*

About 2Slides

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

Try For Free