Felo API PlatformFelo API Platform

Tạo và xuất PPT

Nhà cung cấp: Felo · Thanh toán bằng số dư nền tảng

Tạo một bản trình bày không đồng bộ, rồi xuất tệp PPTX. Giữ các bước tạo và xuất tách biệt: một tác vụ đã tạo chưa phải là một tệp hoàn chỉnh.

Tất cả ví dụ dùng FELO_API_KEY từ tổng quan. Các cuộc gọi sử dụng số dư nền tảng, không phải tín dụng Felo Pro. Các ví dụ phản hồi chỉ mang tính minh họa; nội dung thực tế và các trường tùy chọn sẽ thay đổi.

Quy trình và định danh

  1. Tạo tác vụ tạo; lưu task_id, ppt_business_id và expires_at.
  2. Thăm dò trạng thái tạo bằng task_id.
  3. Đọc kết quả tạo bằng task_id.
  4. Bắt đầu xuất PPTX bằng ppt_business_id.
  5. Thăm dò trạng thái xuất và tải tệp hoàn chỉnh.
  6. Tùy chọn xóa bản trình bày sớm hơn.

Trong các chỗ giữ chỗ của tuyến đường, {business_id} nghĩa là `ppt_business_id` đã trả về, không phải task_id, resource_id hoặc livedoc_short_id. Hãy dùng cùng một tài khoản API cho toàn bộ quy trình. Các ID trong ví dụ chỉ là chỗ giữ chỗ.

1. Tạo bản trình bày

POST /api/v1/data/ppts

TrườngKiểuBắt buộcÝ nghĩa
querystringCóHướng dẫn tạo, 1–25.000 ký tự
stream_protocolstringKhôngMặc định message_center_v1; thông thường nên để nguyên
ppt_configobjectKhôngCấu hình tùy chọn; cách triển khai hiện tại đọc ai_theme_id
livedoc_short_idstringKhôngID ngữ cảnh hiện có, tối đa 100 ký tự; phải vượt qua kiểm tra quyền sở hữu và hết hạn của API gốc
resource_idsmảng chuỗiKhôngTối đa 100 ID tài nguyên UUID; chịu cùng kiểm tra truy cập ngữ cảnh

Đối với tích hợp đầu tiên, hãy bỏ qua các trường ngữ cảnh và cấu hình. Một ngữ cảnh được tạo qua /v2 không tự động đủ điều kiện để tái sử dụng ở đây.

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 trả về các định danh ở gốc:

{
  "task_id":"example-task-id",
  "ppt_business_id":"example-ppt-id",
  "livedoc_short_id":"example-livedoc-id",
  "expires_at":"2026-11-13T00:00:00Z"
}

Các định danh bổ sung như resource_id, stream_key và thread_short_id có thể xuất hiện. Phản hồi tạo thành công có nghĩa là tác vụ đã được chấp nhận, không phải là việc tạo đã hoàn tất. Số lượng trang được yêu cầu chỉ là một chỉ dẫn; thanh toán dùng số trang thực tế được tạo.

TASK_ID="example-task-id"
PPT_ID="example-ppt-id"

Đọc sự kiện tạo bằng SSE

Nếu việc tạo trả về stream_key, hãy kết nối ngay bằng API Key thuộc cùng tài khoản. Nếu không có stream key được trả về, hãy dùng các truy vấn trạng thái và kết quả bên dưới.

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'
Tham số truy vấnÝ nghĩa
formatraw (mặc định) giữ nguyên chuỗi content; structured giải mã JSON hợp lệ thành object hoặc array
offsetVị trí tiếp tục upstream tùy chọn để kết nối lại; đừng suy ra từ số sự kiện cục bộ của bạn

Đọc từng sự kiện SSE hoàn chỉnh, giải mã JSON bên ngoài của nó, rồi xử lý content. Một sự kiện ứng dụng answer mang văn bản trong data.text; finished báo hiệu hoàn tất tạo trong luồng. Cũng hãy xử lý các tín hiệu upstream done, [DONE], và error. Nếu kết nối đóng mà không có tín hiệu hoàn tất, hãy truy vấn trạng thái tác vụ.

Dùng các quy tắc phân tích và ví dụ client trong SuperAgent SSE, với URL /api/v1/data/conversations/stream/{stream_key} của mục này. Đọc kết quả tác vụ sau khi luồng kết thúc; xuất PPTX vẫn là một bước riêng. Endpoint này không bật stream: true trên /api/v1/data/chat.

2. Thăm dò trạng thái tạo

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"

Phản hồi có một chuỗi status ở gốc, ví dụ RUNNING hoặc COMPLETED. Thăm dò theo khoảng thời gian có giới hạn (ví dụ, 2–5 giây) và một hạn chót. Tiếp tục sang kết quả sau khi hoàn tất; xử lý lỗi và trạng thái bất thường mà không mặc định là thành công. Hạn chót thăm dò không hủy tác vụ.

{"status":"COMPLETED"}

3. Đọc kết quả tạo

POST /api/v1/data/tasks/{task_id}/historical

Đây là một POST, không cần phần thân JSON.

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
}

Đọc task_status trước khi dùng history_data. Payload lịch sử có thể thay đổi theo tác vụ và có thể là null. ai_page_html và thread_short_id là tùy chọn. Phản hồi này không phải là một URL tải xuống PPTX được đảm bảo; hãy dùng xuất ở bước tiếp theo.

4. Bắt đầu xuất 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}

Việc tạo phải hoàn tất trước khi bạn xuất. Lặp lại POST trong khi cùng một lần xuất đang chạy sẽ tái sử dụng nó. Bắt đầu một lần xuất khác sau khi hoàn tất sẽ tạo một lần xuất mới và có thể phát sinh thêm phí. Dùng GET để thăm dò và làm mới liên kết tải xuống.

5. Thăm dò xuất và tải xuống

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"
Trạng tháiHành động tiếp theo
NOT_STARTEDGửi xuất một lần
PROCESSINGChờ, rồi thăm dò GET lại
COMPLETEDĐọc download_url và tải tệp xuống
FAILEDKiểm tra lỗi và trạng thái tác vụ trước khi gửi một lần xuất mới
{
  "status":"COMPLETED",
  "download_url":"https://example.com/presentation.pptx?signature=example",
  "expires_at":"2026-11-06T00:30:00Z"
}

URL ví dụ chỉ mang tính minh họa. Hãy dùng URL có ký số thực tế từ phản hồi. Nó có hiệu lực trong 30 phút; trạng thái xuất GET có thể trả về một liên kết mới trong khi bản trình bày vẫn còn khả dụng. Hãy lưu tệp trong thời hạn đó. Không gửi khóa Felo API của bạn tới máy chủ tải tệp.

6. Xóa bản trình bày

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"

Thành công trả về HTTP 204 không có nội dung. Đừng phân tích nó như JSON. Xóa trong khi tạo đang chạy sẽ trả về 409.

Vòng đời, quyền sở hữu và thanh toán

  • Bản trình bày hết hạn bảy ngày sau khi tạo. Các truy vấn và xuất không kéo dài khoảng thời gian này. expires_at của bản trình bày và expires_at của URL tải xuống có chữ ký mô tả các vòng đời khác nhau.
  • Chỉ tài khoản API đã tạo mới có thể truy cập các tác vụ và bản trình bày của nó. Một tài nguyên bị thiếu hoặc không thể truy cập có thể trả về 404; một tài nguyên đã hết hạn hoặc đã bị xóa có thể trả về 410, hoặc 404 sau khi dọn dẹp.
  • Việc tạo được tính phí theo từng trang được tạo (ppt.generate). Theo định giá theo trang, khi tạo sẽ giữ chỗ cho giá của mười trang, rồi quyết toán đầu ra thành công thực tế và giải phóng phần giữ chỗ chưa dùng. Tài khoản của bạn cần đủ số dư khả dụng cho khoản giữ chỗ ngay cả khi prompt yêu cầu ít trang hơn.
  • Xuất có một mức giá yêu cầu riêng (ppt.export). Các truy vấn trạng thái, truy vấn kết quả, truy vấn trạng thái xuất và thao tác xóa không tạo ra phí mới.
  • Sau khi timeout, hãy truy vấn tác vụ đã lưu thay vì tạo một bản trình bày khác. Xem Thanh toán và Lỗi.

Cần trợ giúp?