Felo API PlatformFelo API Platform

การสร้างและส่งออก PPT

Provider: Felo · ชำระด้วยยอดคงเหลือบนแพลตฟอร์ม

สร้างงานนำเสนอแบบอะซิงโครนัส แล้วจึงส่งออกเป็นไฟล์ PPTX แยกขั้นตอนการสร้างและการส่งออกออกจากกัน: task ที่สร้างแล้วไม่ใช่ไฟล์ที่เสร็จสมบูรณ์

ตัวอย่างทั้งหมดใช้ FELO_API_KEY จาก ภาพรวม การเรียกใช้ใช้ ยอดคงเหลือบนแพลตฟอร์ม ไม่ใช่ Felo Pro credits ตัวอย่างการตอบกลับมีไว้เพื่อประกอบการอธิบาย; เนื้อหาจริงและฟิลด์เสริมอาจแตกต่างกัน

เวิร์กโฟลว์และตัวระบุ

  1. สร้าง task การสร้าง; บันทึก task_id, ppt_business_id และ expires_at
  2. โพลสถานะการสร้างโดยใช้ task_id
  3. อ่านผลลัพธ์การสร้างโดยใช้ task_id
  4. เริ่มการส่งออก PPTX โดยใช้ ppt_business_id
  5. โพลสถานะการส่งออกและดาวน์โหลดไฟล์ที่เสร็จสมบูรณ์
  6. จะลบงานนำเสนอทิ้งก่อนเวลาก็ได้

ใน placeholder ของ route, {business_id} หมายถึง `ppt_business_id` ที่ส่งคืน ไม่ใช่ task_id, resource_id หรือ livedoc_short_id ใช้บัญชี API เดียวกันตลอดทั้งเวิร์กโฟลว์ IDs ในตัวอย่างเป็นเพียง placeholder

1. สร้างงานนำเสนอ

POST /api/v1/data/ppts

ฟิลด์ประเภทจำเป็นความหมาย
querystringใช่คำสั่งสำหรับการสร้าง, 1–25,000 อักขระ
stream_protocolstringไม่ค่าเริ่มต้น message_center_v1; โดยปกติให้คงไว้ไม่ต้องเปลี่ยน
ppt_configobjectไม่การกำหนดค่าตัวเลือก; การใช้งานปัจจุบันอ่าน ai_theme_id
livedoc_short_idstringไม่ID ของบริบทที่มีอยู่, ยาวได้ถึง 100 อักขระ; ต้องผ่านการตรวจสอบความเป็นเจ้าของและการหมดอายุตาม native API
resource_idsstring 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ความหมาย
formatraw (ค่าเริ่มต้น) คงสตริง 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

ต้องการความช่วยเหลือไหม