2Slides Logo
Python से प्रेजेंटेशन जनरेशन को ऑटोमेट करें: 2Slides API ट्यूटोरियल
2Slides Team
4 min read

Python से प्रेजेटेशन जेनरेशन को ऑटोमेट करें: 2Slides API ट्यूटोरियल

Python ऑटोमेशन, डेटा पाइपलाइन और AI वर्कफ़्लो के लिए पसंदीदा भाषा है। यह ट्यूटोरियल दिखाता है कि Python से 2Slides REST API का उपयोग करके प्रेजेंटेशन को स्वचालित रूप से कैसे जनरेट करें — सरल एकबारगी स्लाइड से लेकर जटिल स्वचालित पाइपलाइन तक।

आवश्यक शर्तें

pip install requests python-dotenv

एक

.env
फ़ाइल बनाएं:

TWOSLIDES_API_KEY=sk-2slides-your-api-key

त्वरित शुरुआत: अपनी पहली स्लाइड्स जनरेट करें

import os import time import requests from dotenv import load_dotenv load_dotenv() API_KEY = os.getenv('TWOSLIDES_API_KEY') BASE_URL = 'https://2slides.com/api/v1' HEADERS = { 'Authorization': f'Bearer {API_KEY}', 'Content-Type': 'application/json' } def generate_slides(topic, theme_id=None, mode='async'): """टेक्स्ट टॉपिक से प्रेजेंटेशन जनरेट करें।""" payload = { 'userInput': topic, 'mode': mode, 'responseLanguage': 'en', 'resolution': '2K', } if theme_id: payload['themeId'] = theme_id response = requests.post( f'{BASE_URL}/slides/generate', headers=HEADERS, json=payload ) response.raise_for_status() return response.json() def wait_for_job(job_id, timeout=300, interval=3): """जॉब पूरा होने तक पोल करें।""" start = time.time() while time.time() - start < timeout: response = requests.get( f'{BASE_URL}/jobs/{job_id}', headers=HEADERS ) data = response.json() status = data.get('status') print(f' Job {job_id}: {status}') if status == 'success': return data if status == 'failed': raise Exception(f'Job failed: {data}') time.sleep(interval) raise TimeoutError(f'Job {job_id} timed out after {timeout}s') # एक प्रेजेंटेशन जनरेट करें job = generate_slides('Top 10 AI Trends for 2026') print(f'Job ID: {job["jobId"]}') result = wait_for_job(job['jobId']) print(f'Download: {result["downloadUrl"]}')

डॉक्यूमेंट को स्लाइड्स में बदलें

def convert_file_to_slides(file_url, prompt='', theme_id=None): """PDF, DOCX, XLSX या अन्य फ़ाइलों को स्लाइड्स में बदलें।""" payload = { 'fileUrl': file_url, 'userInput': prompt, 'mode': 'async' } if theme_id: payload['themeId'] = theme_id response = requests.post( f'{BASE_URL}/slides/create-pdf-slides', headers=HEADERS, json=payload ) response.raise_for_status() job = response.json() return wait_for_job(job['jobId']) # एक त्रैमासिक रिपोर्ट PDF को कन्वर्ट करें result = convert_file_to_slides( file_url='https://your-storage.com/q1-report.pdf', prompt='Executive summary for the board, 10 slides max' ) print(f'Download: {result["downloadUrl"]}')

डिज़ाइन-मैच्ड स्लाइड्स (इस तरह बनाएं)

def create_like_this(topic, reference_image_url, resolution='2K'): """रेफरेंस डिज़ाइन से मैच करती स्लाइड्स जनरेट करें।""" payload = { 'userInput': topic, 'designStyle': { 'global': { 'referenceImageUrl': reference_image_url } }, 'resolution': resolution, 'mode': 'async' } response = requests.post( f'{BASE_URL}/slides/create-like-this', headers=HEADERS, json=payload ) response.raise_for_status() job = response.json() return wait_for_job(job['jobId']) # अपने ब्रांड टेम्पलेट से मैच करें result = create_like_this( topic='मासिक टीम अपडेट — मार्च 2026', reference_image_url='https://your-brand.com/slide-template.png' )

वॉइस नैरेशन जोड़ें

def add_narration(job_id, mode='single', voice='Charon', content_mode='concise'): """मौजूदा स्लाइड्स में AI वॉइस नैरेशन जोड़ें।""" payload = { 'jobId': job_id, 'mode': mode, 'voice': voice, 'contentMode': content_mode } response = requests.post( f'{BASE_URL}/slides/generate-narration', headers=HEADERS, json=payload ) response.raise_for_status() return response.json() def download_with_audio(job_id): """वॉइस ऑडियो फाइलों के साथ स्लाइड्स डाउनलोड करें।""" response = requests.post( f'{BASE_URL}/slides/download-slides-pages-voices', headers=HEADERS, json={'jobId': job_id} ) response.raise_for_status() return response.json()

थीम्स ब्राउज़ करें

def search_themes(query=''): """उपलब्ध स्लाइड थीम्स खोजें।""" params = {'query': query} if query else {} response = requests.get( f'{BASE_URL}/themes', headers=HEADERS, params=params ) response.raise_for_status() return response.json() themes = search_themes('corporate') for theme in themes.get('themes', []): print(f"{theme['id']}: {theme['name']}")

उत्पादन पाइपलाइन उदाहरण

""" स्वचालित साप्ताहिक रिपोर्ट पाइपलाइन। cron के माध्यम से चलाएं: 0 9 * * MON python weekly_report.py """ import json from datetime import datetime def weekly_report_pipeline(): print(f'साप्ताहिक रिपोर्ट जनरेट हो रही है: {datetime.now().isoformat()}') # 1. स्लाइड्स जनरेट करें job = generate_slides( topic='''साप्ताहिक इंजीनियरिंग अपडेट — 23 मार्च, 2026 का सप्ताह: - v2.4 को प्रोडक्शन में डिप्लॉय किया (99.9% uptime) - 3 नए API endpoints शिप किए गए - परफॉर्मेंस: p99 latency में 40% की कमी - Sprint velocity: 42 story points (लक्ष्य: 40) - अगला सप्ताह: database migration, नया auth system''', theme_id='corporate-standard-id' ) result = wait_for_job(job['jobId']) print(f'स्लाइड्स तैयार: {result["downloadUrl"]}') # 2. नैरेशन जोड़ें add_narration(job['jobId'], mode='single', voice='Kore') print('नैरेशन जोड़ा गया') # 3. पैकेज डाउनलोड करें package = download_with_audio(job['jobId']) print(f'पूर्ण पैकेज: {json.dumps(package, indent=2)}') return result['downloadUrl'] if __name__ == '__main__': url = weekly_report_pipeline() print(f'\nरिपोर्ट URL: {url}')

एरर हैंडलिंग सर्वोत्तम प्रथाएं

from requests.exceptions import HTTPError, Timeout, ConnectionError def safe_generate(topic, retries=3): """पुनः प्रयास लॉजिक के साथ स्लाइड्स जनरेट करें।""" for attempt in range(retries): try: job = generate_slides(topic) return wait_for_job(job['jobId']) except HTTPError as e: if e.response.status_code == 429: wait = 2 ** attempt * 5 # Exponential backoff print(f'Rate limited. {wait}s प्रतीक्षा कर रहे हैं...') time.sleep(wait) elif e.response.status_code == 402: raise Exception('अपर्याप्त क्रेडिट्स') else: raise except (Timeout, ConnectionError) as e: print(f'नेटवर्क एरर (प्रयास {attempt + 1}): {e}') time.sleep(5) raise Exception(f'{retries} पुनः प्रयासों के बाद विफल')

अक्सर पूछे जाने वाले प्रश्न

किस Python संस्करण की आवश्यकता है?

Python 3.7+ f-strings और

requests
compatibility के लिए।

क्या मैं async Python (asyncio/aiohttp) का उपयोग कर सकता हूं?

हां — async HTTP calls के लिए

requests
को
aiohttp
से बदलें। polling pattern उसी तरह से काम करता है।

मैं बड़े batch jobs को कैसे हैंडल करूं?

कई जनरेशन्स को समवर्ती रूप से चलाने के लिए asyncio का उपयोग करें, rate limit (60 req/min) का सम्मान करते हुए।


स्वचालन शुरू करें — अपनी 2Slides API key प्राप्त करें और Python से प्रेजेंटेशन जनरेट करें।

About 2Slides

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

Try For Free