Văn phòng
Biến trang nghiên cứu thành bài thuyết trình
Trích xuất trang, lưu làm bối cảnh LiveDoc, để PPT Task API dựng deck và hỏi cho đến khi có liên kết hoàn chỉnh.
Sao chép prompt
Thay các trường trong ngoặc vuông rồi dán vào Claude Code, Codex hoặc AI có quyền truy cập terminal. Nó cài skill Felo, hỏi trước khi dùng credit và chạy quy trình.
Chuyển nguồn này thành bộ slide: [URL công khai hoặc đường dẫn PDF]. Độc giả: [ai xem]. Số slide: [6–10]. Ngôn ngữ: [ngôn ngữ]. Chủ đề: [tên chủ đề hoặc “default”]. Dùng Web Fetch trên trang công khai (hoặc tệp đã tải lên), lưu nguồn làm ngữ cảnh LiveDoc, tạo tác vụ PPT và poll đến khi bộ slide sẵn sàng. Tạo: 1. Dàn ý một dòng mỗi slide. 2. Liên kết bộ slide đã tạo. 3. Liên kết LiveDoc dùng làm ngữ cảnh. Quy tắc: - Không bịa sự thật không có trong nguồn. Chỗ thiếu ghi “Không có trong nguồn”. - Tác vụ PPT tiêu tín dụng; hỏi trước khi gửi. - Giữ URL nguồn, dàn ý và liên kết slide cùng nhau. - Không công bố hay chia sẻ bộ slide ngoài workspace. - Ghi dàn ý vào ./deck-outline.md và tóm tắt trong chat.
Bản sao cũng gồm các bước cài đặt và quy tắc an toàn.
Bạn nhận được gì
Kết quả mẫu của một lần chạy. Không phải tạo trực tiếp.
Nguồn -> dàn ý slide
- Vì sao báo cáo này quan trọng
- Quý này thay đổi gì
- Ba phân khúc khách hàng
- Nơi bằng chứng mỏng
- Tiếp theo nên thử gì
Slide: https://felo.ai/slides/... Ngữ cảnh: https://felo.ai/livedoc/...
Các lệnh gọi chính xác
Dành cho lập trình viên: cùng quy trình dưới dạng mã, theo thứ tự chạy.
Hiện lệnh gọi API thật
Trích trang nguồn
Dùng Web Fetch chuyển trang công khai thành Markdown, giữ tiêu đề và nội dung.
deck.ts const BASE = "https://openapi.felo.ai"; const headers = { Authorization: `Bearer ${process.env.FELO_API_KEY}`, "Content-Type": "application/json", }; async function felo<T>(path: string, body?: unknown): Promise<T> { const res = await fetch(`${BASE}${path}`, { method: body ? "POST" : "GET", headers, body: body ? JSON.stringify(body) : undefined, }); if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`); return res.json() as Promise<T>; } type ExtractData = { data: { content: string } }; const page = await felo<ExtractData>("/v2/web/extract", { url: "https://example.com/research", output_format: "markdown", with_readability: true, });Lưu làm bối cảnh LiveDoc
Tạo LiveDoc, thêm nguồn làm tài liệu và lấy short_id.
deck.ts type LiveDocData = { data: { short_id: string } }; type ResourceData = { data: { id: string } }; const doc = await felo<LiveDocData>("/v2/livedocs", { name: "Quarterly research deck", description: "Source material for the next deck", }); const resource = await felo<ResourceData>( `/v2/livedocs/${doc.data.short_id}/resources/doc`, { title: "Source page", content: page.data.content, }, );Gửi tác vụ slide
Gọi PPT Task API với nội dung và LiveDoc short_id để nhận task_id.
deck.ts type PptTaskData = { data: { task_id: string; livedoc_short_id: string }; }; const task = await felo<PptTaskData>("/v2/ppts", { query: "Six slides for a product review: findings, evidence, next steps", livedoc_short_id: doc.data.short_id, }); console.log(task.data.task_id);Kết quả mẫu
{ "data": { "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3", "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr", "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }Hỏi đến khi xong
Kiểm tra trạng thái đến hoàn tất và đọc liên kết slide.
deck.ts type TaskState = { data: { task_status: string; ppt_url?: string; live_doc_url?: string }; }; async function waitForDeck(taskId: string) { for (let attempt = 0; attempt < 40; attempt++) { const state = await felo<TaskState>(`/v2/tasks/${taskId}/historical`); if (state.data.task_status === "COMPLETED") return state.data; if (["FAILED", "EXPIRED", "CANCELED"].includes(state.data.task_status)) { throw new Error(`Deck task ${state.data.task_status}`); } await new Promise((resolve) => setTimeout(resolve, 3000)); } throw new Error("Deck task timed out"); } const result = await waitForDeck(task.data.task_id); console.log(result.ppt_url);Kết quả mẫu
{ "task_status": "COMPLETED", "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx", "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx" }
Bao gồm
- Trích trang sạch thành Markdown
- LiveDoc làm bối cảnh tái sử dụng
- Tác vụ PPT bất đồng bộ và liên kết cuối
- Dàn ý slide để duyệt trước khi chia sẻ
Không làm gì
- Chỉ trang công khai hoặc tệp tải lên; trang đăng nhập có thể lỗi
- Slide theo nguồn và không phủ toàn bộ hệ thống thương hiệu
- Một deck mỗi lần chạy; nhiều deck cần vòng lặp
- Không sửa deck có sẵn và không bảo đảm khớp hình ảnh
- Không xuất bản hay chia sẻ deck
Câu hỏi
Có dùng PDF thay URL không?
Có. Gửi tác vụ PPT dạng multipart form data với tệp; nền tảng lưu làm tài nguyên LiveDoc và tạo deck.
Có chọn theme không?
Có. Liệt kê theme rồi truyền id khi tạo tác vụ.
Một deck mất bao lâu?
Là tác vụ bất đồng bộ. Hỏi lịch sử đến khi xong; deck dài lâu hơn.
Có sửa deck hiện có không?
Không. Nó tạo deck mới từ nguồn; sửa deck có sẵn là quy trình khác.
Một deck tốn bao nhiêu?
Tạo slide tính theo mức dùng; giá hiện tại ở trang giá và prompt hỏi duyệt trước khi chi.
Có dùng lại nguồn không?
Có. LiveDoc giữ nguồn; deck hoặc mindmap sau dùng lại short_id.
Quy trình liên quan
Biến một câu hỏi thành báo cáo nghiên cứu có nguồn
Hỏi web, lưu các trang đằng sau câu trả lời thành Markdown, thêm điều người thực hành nói trên X và giữ bằng chứng trong LiveDoc có thể tìm lại sau.
Mở quy trìnhNội dungXuất bản bản tin AI hằng ngày mà nhóm bạn thực sự đọc
Lấy bản tóm tắt tin có nguồn, thêm thảo luận của người thực hành trên X, lấy một bản ghi video, dựng bản tin Markdown và lưu vào LiveDoc.
Mở quy trìnhHỗ trợTrả lời câu hỏi hỗ trợ từ tài liệu của chính bạn
Tạo LiveDoc, tải trung tâm trợ giúp và runbook nội bộ, lấy các đoạn trả lời ticket và để model chỉ trả lời từ bằng chứng đó.
Mở quy trìnhTùy biến
Cùng công thức, điều chỉnh theo cách bạn thực sự triển khai.
Nguồn PDF
Tải PDF qua multipart; nền tảng lưu trước làm tài nguyên LiveDoc.
Đặt theme
Liệt kê theme có sẵn và truyền id khi tạo tác vụ.
Dùng lại cho deck sau
Tạo tác vụ PPT mới với cùng LiveDoc short_id.
Đi tiếp
Các trang tham chiếu đằng sau công thức và nơi đi tiếp.