Documentation edits made through Mintlify web editor
This commit is contained in:
parent
125309552e
commit
e6fff94449
3 changed files with 16 additions and 166 deletions
|
|
@ -132,7 +132,7 @@ Each student will get a personalized presentation, and you’ll see the download
|
|||
## 5. How It Works
|
||||
|
||||
- The script reads each row from your CSV.
|
||||
- It builds a detailed prompt for Presenton’s API (see [API Reference](./mdx.docs)).
|
||||
- It builds a detailed prompt for Presenton’s API (see [API Reference](./generate-presentation-over-api)).
|
||||
- It sends a POST request to generate a presentation for each student.
|
||||
- The API returns a download path for each generated PPTX.
|
||||
- The presentation file is downloaded and saved in `presentations` folder.
|
||||
|
|
@ -142,8 +142,8 @@ Each student will get a personalized presentation, and you’ll see the download
|
|||
## 6. Next Steps
|
||||
|
||||
- You can customize the prompt or number of slides as needed.
|
||||
- For more on API options, see [Generate a PPT via API in 5 Minutes](./generate-ppt-via-api).
|
||||
- For advanced configuration (e.g., using Ollama or GPU), see [Environment Variables](./configurations/environment-variables), [Using GPU](./configurations/using-gpu), and [Using Ollama Models](./configurations/using-ollama-models).
|
||||
- For more on API options, see [Generate a PPT via API in 5 Minutes](./generate-presentation-over-api).
|
||||
- For advanced configuration (e.g., using Ollama or GPU), see [Environment Variables](../configurations/environment-variables), [Using GPU](../configurations/using-gpu), and [Using Ollama Models](../configurations/using-ollama-models).
|
||||
|
||||
<Info>
|
||||
Need help? See the [full documentation](./index) or open an issue on GitHub.
|
||||
|
|
|
|||
|
|
@ -1,150 +0,0 @@
|
|||
---
|
||||
title: "Create Presentations from CSV using AI"
|
||||
description: "Step-by-step guide to generating presentations from a CSV file"
|
||||
---
|
||||
|
||||
In this tutorial, we will generate personalized student report presentations using self hosted Presenton's API and a Python script.
|
||||
|
||||
This tutorial extends [Generate a PPT via API in 5 Minutes](./generate-presentation-over-api) and shows you how to automate the creation of personalized student report presentations from a CSV file using Python.
|
||||
|
||||
So, do check it before continuing with this and make sure you have Presenton running locally or any server and you are able to generate presentations with it.
|
||||
|
||||
---
|
||||
|
||||
## 1. Prepare Your CSV File
|
||||
|
||||
Save your student data as `students.csv`:
|
||||
|
||||
```csv
|
||||
Name,Final Grade,ECA Participation,Sports Involvement,Quiz Scores,Class Behavior,Comment
|
||||
Anaya Sharma,88,High,Moderate,92,Excellent,"Balanced performer with high curiosity"
|
||||
Rohan Mehta,73,Low,None,75,Good,"Needs motivation beyond academics"
|
||||
Meera Kapoor,94,Moderate,High,96,Excellent,"Academic excellence and team spirit"
|
||||
Aarav Patel,62,None,None,58,Average,"Struggling across areas, needs focused help"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Install Python Requirements
|
||||
|
||||
You’ll need the `requests` and `pandas` libraries:
|
||||
|
||||
```bash
|
||||
pip install requests pandas
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Write the Python Script
|
||||
|
||||
Let’s build the script step by step.
|
||||
|
||||
### a. Import Libraries
|
||||
|
||||
```python
|
||||
import os
|
||||
import pandas as pd
|
||||
import requests
|
||||
```
|
||||
|
||||
### b. Creat presentations directory
|
||||
|
||||
```python
|
||||
os.makedirs('presentations', exist_ok=True)
|
||||
```
|
||||
|
||||
### c. Load the CSV
|
||||
|
||||
```python
|
||||
df = pd.read_csv("students.csv")
|
||||
```
|
||||
|
||||
### d. Define a Function to Build the Prompt
|
||||
|
||||
```python
|
||||
def build_prompt(row):
|
||||
return (
|
||||
f"Student Name: {row['Name']}\n"
|
||||
f"Final Grade: {row['Final Grade']}\n"
|
||||
f"ECA Participation: {row['ECA Participation']}\n"
|
||||
f"Sports Involvement: {row['Sports Involvement']}\n"
|
||||
f"Quiz Scores: {row['Quiz Scores']}\n"
|
||||
f"Class Behavior: {row['Class Behavior']}\n"
|
||||
f"Teacher's Comment: {row['Comment']}\n\n"
|
||||
"Generate a parent-friendly presentation summarizing this student's academic and extracurricular performance, "
|
||||
"highlighting strengths, areas for improvement, and any special notes from the teacher."
|
||||
)
|
||||
```
|
||||
|
||||
### e. Loop Over Each Student and Generate a Presentation
|
||||
|
||||
```python
|
||||
for idx, row in df.iterrows():
|
||||
print(f"Generating presentation for {row['Name']}")
|
||||
prompt = build_prompt(row)
|
||||
data = {
|
||||
"prompt": prompt,
|
||||
"n_slides": "8",
|
||||
"language": "English",
|
||||
"theme": "light",
|
||||
"export_as": "pdf"
|
||||
}
|
||||
response = requests.post(
|
||||
"http://localhost:5000/api/v1/ppt/generate/presentation",
|
||||
data=data
|
||||
)
|
||||
if response.ok:
|
||||
result = response.json()
|
||||
print("Downloading presentation...")
|
||||
# Prepend the host to the path
|
||||
download_url = f"http://localhost:5000{result['path']}"
|
||||
filename = f"presentations/{result['path'].split('/')[-1]}"
|
||||
# Download and save the file
|
||||
file_response = requests.get(download_url)
|
||||
if file_response.ok:
|
||||
with open(filename, 'wb') as f:
|
||||
f.write(file_response.content)
|
||||
print(f"Presentation for {row['Name']} saved as {filename}")
|
||||
else:
|
||||
print(f"Failed to download presentation for {row['Name']}: {file_response.status_code}")
|
||||
else:
|
||||
print(f"Failed to generate presentation for {row['Name']}: {response.text}")
|
||||
```
|
||||
|
||||
Generated presentations will be saved in `presentations` directory.
|
||||
|
||||
You may change the URL `http://localhost:5000` to the URL of your Presenton instance.
|
||||
|
||||
---
|
||||
|
||||
## 4. Run the Script
|
||||
|
||||
Save your script as `generate_reports.py` and run:
|
||||
|
||||
```bash
|
||||
python generate_reports.py
|
||||
```
|
||||
|
||||
Each student will get a personalized presentation, and you’ll see the download path for each file in your terminal.
|
||||
|
||||
---
|
||||
|
||||
## 5. How It Works
|
||||
|
||||
- The script reads each row from your CSV.
|
||||
- It builds a detailed prompt for Presenton’s API (see [API Reference](./mdx.docs)).
|
||||
- It sends a POST request to generate a presentation for each student.
|
||||
- The API returns a download path for each generated PPTX.
|
||||
- The presentation file is downloaded and saved in `presentations` folder.
|
||||
|
||||
---
|
||||
|
||||
## 6. Next Steps
|
||||
|
||||
- You can customize the prompt or number of slides as needed.
|
||||
- For more on API options, see [Generate a PPT via API in 5 Minutes](./generate-ppt-via-api).
|
||||
- For advanced configuration (e.g., using Ollama or GPU), see [Environment Variables](./configurations/environment-variables), [Using GPU](./configurations/using-gpu), and [Using Ollama Models](./configurations/using-ollama-models).
|
||||
|
||||
<Info>
|
||||
Need help? See the [full documentation](./index) or open an issue on GitHub.
|
||||
</Info>
|
||||
|
|
@ -5,7 +5,7 @@ description: "Steps to generate professional AI presentations via self hosted Pr
|
|||
|
||||
In this guide, I'll walk you through a simple, straightforward way to host and use Presenton’s API for generating presentations. If you're a developer or someone building tools or automation around presentations, this approach will save you some valuable time.
|
||||
|
||||
Before we start, I'm assuming you've already set up Presenton. If not, just quickly check out the [Quickstart](./quickstart) or [Development guide](./development).
|
||||
Before we start, I'm assuming you've already set up Presenton. If not, just quickly check out the [Quickstart](../quickstart) or [Development guide](../development).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -23,7 +23,7 @@ You're now ready to run Presenton's docker image to start generating presentatio
|
|||
|
||||
We will go with `GOOGLE` in this guide as it's relatively simpler to configure and free to start with. You will have to grab its API Key from [Google AI Studio](https://aistudio.google.com/apikey).
|
||||
|
||||
You can find details to run with other providers in [Environment Variables](./environment-variables).
|
||||
You can find details to run with other providers in [Environment Variables](../configurations/environment-variables).
|
||||
|
||||
Now, open your command line and execute the relevant command based on your OS:
|
||||
|
||||
|
|
@ -67,7 +67,7 @@ Generating presentations via Presenton's API is straightforward. It has one prim
|
|||
POST /api/v1/ppt/generate/presentation
|
||||
```
|
||||
|
||||
For a deeper dive later, check the full [API documentation](./mdx.docs).
|
||||
For a deeper dive later, check the full [API documentation](../index).
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -133,12 +133,12 @@ Here's a quick reference for the key parameters you can set:
|
|||
|
||||
| Parameter | Type | Required | Description |
|
||||
| ----------- | ------ | -------- | ---------------------------------------------------------- |
|
||||
| `prompt` | string | 👍 Yes | Topic/title of your presentation |
|
||||
| `n_slides` | int | ❌ No | Number of slides (default: 8; min: 5, max: 15) |
|
||||
| `language` | string | ❌ No | Language you'd like the presentation in (default: English) |
|
||||
| `theme` | string | ❌ No | Optional styling (e.g.: "light", "dark", "royal_blue") |
|
||||
| `documents` | file[] | ❌ No | Additional supporting documents (PDF/PPTX/DOCX/TXT) |
|
||||
| `export_as` | string | ❌ No | "pptx" or "pdf" (default: pptx) |
|
||||
| `prompt` | string | Yes | Topic/title of your presentation |
|
||||
| `n_slides` | int | No | Number of slides (default: 8; min: 5, max: 15) |
|
||||
| `language` | string | No | Language you'd like the presentation in (default: English) |
|
||||
| `theme` | string | No | Optional styling (e.g.: "light", "dark", "royal_blue") |
|
||||
| `documents` | file[] | No | Additional supporting documents (PDF/PPTX/DOCX/TXT) |
|
||||
| `export_as` | string | No | "pptx" or "pdf" (default: pptx) |
|
||||
|
||||
Yes, it can generate presentations directly from most popular file formats. Make sure you understand the context window of model you're using with respect to file size.
|
||||
|
||||
|
|
@ -184,12 +184,12 @@ Presenton provides easy-to-use themes for quick styling:
|
|||
|
||||
Once you're comfortable and ready for more:
|
||||
|
||||
- Integrate your preferred LLMS: [Environment Variables](./configurations/environment-variables).
|
||||
- Leverage GPU performance: [GPU Guide](./configurations/using-gpu).
|
||||
- Run local AI models with Ollama: [Local Models](./configurations/using-ollama-models).
|
||||
- Integrate your preferred LLMS: [Environment Variables](../configurations/environment-variables).
|
||||
- Leverage GPU performance: [GPU Guide](../configurations/using-gpu).
|
||||
- Run local AI models with Ollama: [Local Models](../configurations/using-ollama-models).
|
||||
|
||||
---
|
||||
|
||||
**That's it\!** You've successfully generated a professional-looking presentation through an easy-to-use API endpoint.
|
||||
|
||||
If you have more questions or want to explore further, the [complete documentation](./index) is always here to help you.
|
||||
If you have more questions or want to explore further, the [complete documentation](../index) is always here to help you.
|
||||
Loading…
Add table
Reference in a new issue