オフィス
リサーチページをスライド資料に変える
ページを抽出し、LiveDoc の文脈として保存し、PPT Task API に deck を作らせ、完成したリンクが出るまでポーリングします。
プロンプトをコピー
角括弧の項目を置き換えて、Claude Code、Codex、ターミナルにアクセスできる AI に貼り付けてください。Felo スキルをインストールし、クレジットを使う前に確認し、ワークフローを実行します。
このソースをスライド資料にしてください: [公開 URL または PDF パス]。 読者: [誰が見るか]。枚数: [6〜10枚]。言語: [言語]。テーマ: [テーマ名または「default」]。 公開ページ(またはアップロードファイル)に Web Fetch を使い、ソースを LiveDoc コンテキストとして保存し、PPT タスクを作成し、デッキができるまでポーリングしてください。 以下を作成してください。 1. 1スライド1行のアウトライン。 2. 生成されたデッキのリンク。 3. コンテキストに使った LiveDoc のリンク。 ルール: - ソースにない事実を捏造しないでください。ギャップは「ソースに記載なし」と明記してください。 - PPT タスクはクレジットを消費するため、送信前に確認してください。 - ソース URL、アウトライン、デッキリンクを一緒に保ってください。 - ワークスペース外にデッキを公開・共有しないでください。 - アウトラインを ./deck-outline.md に書き、チャットで要約してください。
コピー内容にはインストール手順と安全ルールも含まれます。
完成するもの
実行時の出力例です。リアルタイム生成ではありません。
ソース -> デッキ構成
- このレポートが重要な理由
- 今四半期に変わったこと
- 3つの顧客セグメント
- 証拠が薄いところ
- 次に試すこと
デッキ: https://felo.ai/slides/... コンテキスト: https://felo.ai/livedoc/...
実際の呼び出し
開発者向け:同じワークフローを実行順に並べたコピー可能なコード。
実際の API 呼び出しを表示
ソースページを抽出する
Web Fetch で公開ページを Markdown にし、見出しと本文を残します。
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, });LiveDoc の文脈として保存する
LiveDoc を作成し、ソースをドキュメントリソースとして追加し、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, }, );スライドタスクを送信する
PPT Task API にページ内容と LiveDoc short_id を渡し、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);出力例
{ "data": { "livedoc_short_id": "PvyKouzJirXjFdst4uKRK3", "ppt_business_id": "BfLPuQKmChk9SPmyQawxgr", "task_id": "019cad6d-e874-55ef-d577-686344b5a7e9" } }完成までポーリングする
タスク状態を照会し、完成したらスライドリンクを読みます。
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);出力例
{ "task_status": "COMPLETED", "ppt_url": "https://felo.ai/slides/oM8A9iJHg8dT4ZKgHThQTx", "live_doc_url": "https://felo.ai/livedoc/oM8A9iJHg8dT4ZKgHThQTx" }
含まれるもの
- ソースページのきれいな Markdown 抽出
- 再利用可能な文脈としての LiveDoc
- 完成リンクを返す非同期 PPT タスク
- 共有前に確認できるスライド構成
やらないこと
- ソースは公開ページかアップロード済みファイルのみ。ログイン限定ページは失敗することがある
- 生成スライドはソースに沿い、ブランドシステム全体はカバーしない
- 1回で1 deck。複数はループが必要
- 既存 deck の編集や視覚的な完全一致は保証しない
- deck の公開や共有はしない
よくある質問
URL の代わりに PDF を使えますか?
はい。PPT タスクを multipart form data に変えてファイルを送ると、プラットフォームが LiveDoc リソースとして保存し、deck を作成します。
テーマを選べますか?
はい。先にテーマ一覧を取得し、タスク作成時にテーマ id を渡します。
deck はどれくらいかかりますか?
非同期タスクです。タスク履歴を完成までポーリングします。長い deck は短い deck より時間がかかります。
既存の deck を編集しますか?
いいえ。ソースから新しい deck を作ります。既存 deck の編集は別のワークフローです。
deck 1つの費用は?
スライド生成は従量制クレジットです。現在の料金は料金ページにあり、プロンプトは使う前に確認を求めます。
ソースは再利用できますか?
はい。LiveDoc がソースを保存し、後続の deck や mindmap でその short_id を再利用できます。
関連ワークフロー
1つの問いを、出典付きリサーチブリーフに変える
Web に問いを投げ、回答の根拠ページを Markdown で取得し、X の実務者の声を加え、最後に証拠をあとから検索できる LiveDoc に残します。
ワークフローを開くコンテンツチームが本当に読む日次AIニュースダイジェストを作る
出典付きのニュースまとめを取り、X の実務者の議論を加え、動画の文字起こしを1本取得し、Markdown で号を構成して LiveDoc に保存します。
ワークフローを開くサポート自分のドキュメントでサポート質問に答える
LiveDoc を作成し、ヘルプセンターと社内 runbook を読み込み、チケットに答える passage を検索し、その証拠だけからモデルに回答させます。
ワークフローを開く自分の形に変える
同じレシピを、実際の進め方に合わせて調整します。
PDF ソースに変える
multipart で PDF をアップロードすると、先に LiveDoc リソースとして保存されます。
テーマを指定する
利用可能なテーマを一覧し、タスク作成時にテーマ id を渡します。
次の deck に再利用する
同じ LiveDoc short_id で新しい PPT タスクを作成します。
さらに進む
このレシピの背景にあるリファレンスと、次に見るべきページ。