การสร้างและส่งออก PPT
Provider: Felo · ชำระด้วยยอดคงเหลือบนแพลตฟอร์ม
สร้างงานนำเสนอแบบอะซิงโครนัส แล้วจึงส่งออกเป็นไฟล์ PPTX แยกขั้นตอนการสร้างและการส่งออกออกจากกัน: task ที่สร้างแล้วไม่ใช่ไฟล์ที่เสร็จสมบูรณ์
ตัวอย่างทั้งหมดใช้ FELO_API_KEY จาก ภาพรวม การเรียกใช้ใช้ ยอดคงเหลือบนแพลตฟอร์ม ไม่ใช่ Felo Pro credits ตัวอย่างการตอบกลับมีไว้เพื่อประกอบการอธิบาย; เนื้อหาจริงและฟิลด์เสริมอาจแตกต่างกัน
เวิร์กโฟลว์และตัวระบุ
- สร้าง task การสร้าง; บันทึก
task_id,ppt_business_idและexpires_at - โพลสถานะการสร้างโดยใช้
task_id - อ่านผลลัพธ์การสร้างโดยใช้
task_id - เริ่มการส่งออก PPTX โดยใช้
ppt_business_id - โพลสถานะการส่งออกและดาวน์โหลดไฟล์ที่เสร็จสมบูรณ์
- จะลบงานนำเสนอทิ้งก่อนเวลาก็ได้
ใน placeholder ของ route, {business_id} หมายถึง `ppt_business_id` ที่ส่งคืน ไม่ใช่ task_id, resource_id หรือ livedoc_short_id ใช้บัญชี API เดียวกันตลอดทั้งเวิร์กโฟลว์ IDs ในตัวอย่างเป็นเพียง placeholder
1. สร้างงานนำเสนอ
POST /api/v1/data/ppts
| ฟิลด์ | ประเภท | จำเป็น | ความหมาย |
|---|---|---|---|
query | string | ใช่ | คำสั่งสำหรับการสร้าง, 1–25,000 อักขระ |
stream_protocol | string | ไม่ | ค่าเริ่มต้น message_center_v1; โดยปกติให้คงไว้ไม่ต้องเปลี่ยน |
ppt_config | object | ไม่ | การกำหนดค่าตัวเลือก; การใช้งานปัจจุบันอ่าน ai_theme_id |
livedoc_short_id | string | ไม่ | ID ของบริบทที่มีอยู่, ยาวได้ถึง 100 อักขระ; ต้องผ่านการตรวจสอบความเป็นเจ้าของและการหมดอายุตาม native API |
resource_ids | string array | ไม่ | UUID resource IDs สูงสุด 100 รายการ; อยู่ภายใต้การตรวจสอบการเข้าถึงบริบทแบบเดียวกัน |
สำหรับการผสานรวมครั้งแรก ให้ละเว้นฟิลด์บริบทและการกำหนดค่า บริบทที่สร้างผ่าน /v2 ไม่ได้มีสิทธิ์นำกลับมาใช้ซ้ำที่นี่โดยอัตโนมัติ
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/ppts" \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"Create a 5-slide introduction to retrieval augmented generation for software developers."}'HTTP 200 ส่งคืนตัวระบุที่ราก:
{
"task_id":"example-task-id",
"ppt_business_id":"example-ppt-id",
"livedoc_short_id":"example-livedoc-id",
"expires_at":"2026-11-13T00:00:00Z"
}ตัวระบุเพิ่มเติม เช่น resource_id, stream_key และ thread_short_id อาจมีอยู่ การตอบกลับ create ที่สำเร็จหมายถึง task ได้รับการยอมรับแล้ว ไม่ได้หมายความว่าการสร้างเสร็จสิ้น จำนวนสไลด์ที่ร้องขอเป็นเพียงคำสั่ง; การเรียกเก็บเงินใช้จำนวนหน้าที่สร้างจริง
TASK_ID="example-task-id"
PPT_ID="example-ppt-id"อ่านเหตุการณ์การสร้างด้วย SSE
หากการสร้างส่งคืน stream_key ให้เชื่อมต่อทันทีด้วย API Key ที่เป็นของบัญชีเดียวกัน หากไม่ได้ส่งคืน stream key ให้ใช้คำขอสถานะและผลลัพธ์ด้านล่าง
curl -N 'https://openapi.felo.ai/api/v1/data/conversations/stream/YOUR_STREAM_KEY?format=structured' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Accept: text/event-stream'| พารามิเตอร์ query | ความหมาย |
|---|---|
format | raw (ค่าเริ่มต้น) คงสตริง content ไว้; structured ถอดรหัส JSON ที่ถูกต้องเป็น object หรือ array |
offset | ตำแหน่ง resume ของ upstream ที่ใช้เมื่อเชื่อมต่อใหม่; อย่าสรุปจากจำนวน event ในเครื่องของคุณ |
อ่าน SSE event ให้ครบแต่ละรายการ ถอดรหัส JSON ด้านนอก แล้วจึงประมวลผล content event ของแอปพลิเคชัน answer จะมีข้อความใน data.text; finished บ่งชี้การเสร็จสิ้นของการสร้างในสตรีม จัดการสัญญาณ upstream done, [DONE] และ error ด้วย หากการเชื่อมต่อปิดลงโดยไม่มีสัญญาณเสร็จสิ้น ให้โพลสถานะ task
ใช้กฎการแยกวิเคราะห์และตัวอย่าง client ใน SuperAgent SSE กับ URL /api/v1/data/conversations/stream/{stream_key} ของส่วนนี้ อ่านผลลัพธ์ task หลังสตรีมจบ; การส่งออก PPTX ยังคงเป็นขั้นตอนแยกต่างหาก เอนด์พอยต์นี้ไม่ได้เปิด stream: true บน /api/v1/data/chat
2. โพลสถานะการสร้าง
GET /api/v1/data/tasks/{task_id}/status
curl -sS --request GET "https://openapi.felo.ai/api/v1/data/tasks/$TASK_ID/status" \
-H "Authorization: Bearer $FELO_API_KEY"response มีสตริง status ที่ราก เช่น RUNNING หรือ COMPLETED โพลด้วยช่วงเวลาที่จำกัด (เช่น 2–5 วินาที) และกำหนดเส้นตาย ดำเนินต่อไปยังผลลัพธ์หลังเสร็จสิ้น จัดการความล้มเหลวและสถานะที่ไม่คาดคิดโดยไม่สรุปว่าประสบความสำเร็จ เส้นตายของการโพลไม่ได้ยกเลิก task
{"status":"COMPLETED"}3. อ่านผลลัพธ์การสร้าง
POST /api/v1/data/tasks/{task_id}/historical
นี่คือ POST โดยไม่จำเป็นต้องมี JSON body
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/tasks/$TASK_ID/historical" \
-H "Authorization: Bearer $FELO_API_KEY"{
"task_id":"example-task-id",
"task_status":"COMPLETED",
"history_data":{},
"error_message":null
}อ่าน task_status ก่อนใช้ history_data payload ประวัติอาจแตกต่างกันตาม task และอาจเป็น null ได้ ai_page_html และ thread_short_id เป็นตัวเลือก response นี้ไม่ใช่ URL ดาวน์โหลด PPTX ที่รับประกัน; ให้ใช้การส่งออกต่อ
4. เริ่มการส่งออก PPTX
POST /api/v1/data/ppts/{business_id}/export
curl -sS --request POST "https://openapi.felo.ai/api/v1/data/ppts/$PPT_ID/export" \
-H "Authorization: Bearer $FELO_API_KEY"{"status":"PROCESSING","download_url":null,"expires_at":null}การสร้างต้องเสร็จสิ้นก่อนจึงจะส่งออกได้ การ POST ซ้ำขณะที่การส่งออกเดียวกันกำลังรันอยู่จะนำการส่งออกเดิมกลับมาใช้ใหม่ การเริ่มส่งออกอีกครั้งหลังเสร็จสิ้นจะสร้างการส่งออกใหม่และอาจมีการคิดค่าบริการเพิ่ม ใช้ GET สำหรับโพลและรีเฟรชลิงก์ดาวน์โหลด
5. โพลการส่งออกและดาวน์โหลด
GET /api/v1/data/ppts/{business_id}/export
curl -sS --request GET "https://openapi.felo.ai/api/v1/data/ppts/$PPT_ID/export" \
-H "Authorization: Bearer $FELO_API_KEY"| สถานะ | การดำเนินการถัดไป |
|---|---|
NOT_STARTED | ส่งการส่งออกหนึ่งครั้ง |
PROCESSING | รอ แล้วโพล GET อีกครั้ง |
COMPLETED | อ่าน download_url และดาวน์โหลดไฟล์ |
FAILED | ตรวจสอบข้อผิดพลาดและสถานะ task ก่อนส่งการส่งออกใหม่ |
{
"status":"COMPLETED",
"download_url":"https://example.com/presentation.pptx?signature=example",
"expires_at":"2026-11-06T00:30:00Z"
}URL ตัวอย่างมีไว้เพื่อประกอบการอธิบาย ใช้ signed URL จริงจาก response มันใช้ได้ 30 นาที; สถานะการส่งออก GET อาจส่งคืนลิงก์ใหม่ในขณะที่งานนำเสนอยังคงพร้อมใช้งาน บันทึกไฟล์ภายในอายุการใช้งานของมัน อย่าส่ง Felo API key ของคุณไปยังโฮสต์ดาวน์โหลดไฟล์
6. ลบงานนำเสนอ
DELETE /api/v1/data/ppts/{business_id}
curl -sS --request DELETE "https://openapi.felo.ai/api/v1/data/ppts/$PPT_ID" \
-H "Authorization: Bearer $FELO_API_KEY"ความสำเร็จส่งคืน HTTP 204 โดยไม่มีเนื้อหา อย่าแยกวิเคราะห์เป็น JSON การลบขณะที่การสร้างกำลังทำงานจะส่งกลับ 409
อายุการใช้งาน ความเป็นเจ้าของ และการเรียกเก็บเงิน
- งานนำเสนอหมดอายุ เจ็ดวันหลังการสร้าง คำถามและการส่งออกไม่ได้ขยายช่วงเวลานี้
expires_atของงานนำเสนอและexpires_atของ signed download URL เป็นอายุการใช้งานคนละแบบกัน - มีเพียงบัญชี API ที่สร้างเท่านั้นที่เข้าถึง tasks และงานนำเสนอของมันได้ ทรัพยากรที่หายไปหรือเข้าถึงไม่ได้อาจส่งกลับ 404; ทรัพยากรที่หมดอายุหรือลบแล้วอาจส่งกลับ 410 หรือ 404 หลังการล้างข้อมูล
- การสร้างคิดค่าบริการต่อหน้าที่สร้าง (
ppt.generate) ภายใต้การคิดค่าบริการตามหน้า การสร้างจะกันวงเงินเท่ากับราคาของสิบหน้า จากนั้นชำระตามผลลัพธ์ที่สร้างจริงและปล่อยวงเงินที่กันไว้แต่ไม่ได้ใช้ บัญชีของคุณต้องมีวงเงินที่พร้อมใช้เพียงพอสำหรับการกันวงเงิน แม้ prompt จะขอหน้าจำนวนน้อยกว่าก็ตาม - การส่งออกมีราคาคำขอแยกต่างหาก (
ppt.export) คำขอสถานะ คำขอผลลัพธ์ คำขอสถานะการส่งออก และการลบ ไม่สร้างการคิดค่าบริการใหม่ - หลัง timeout ให้โพล task ที่บันทึกไว้แทนการสร้างงานนำเสนออีกอัน ดู Billing and Errors