Felo API PlatformFelo API Platform

اداری

یک صفحه پژوهش را به ارائه تبدیل کنید

صفحه را استخراج کنید، به‌عنوان زمینه LiveDoc ذخیره کنید، بگذارید PPT Task API ارائه را بسازد و بپرسید تا پیوند آماده شود.

زمان۱۵ دقیقهسطحپایهبه‌روزرسانی2026-10-29
برای چه کسانیمشاورانفروش و بازاریابیابزارهای داخلی

کپی پرامپت

فیلدهای داخل قلاب را جایگزین کنید و در Claude Code، Codex یا هوش مصنوعی با دسترسی ترمینال بچسبانید. مهارت Felo را نصب می‌کند، پیش از خرج اعتبار می‌پرسد و گردش‌کار را اجرا می‌کند.

این منبع را به اسلاید تبدیل کنید: [URL عمومی یا مسیر PDF].

مخاطب: [چه کسی می‌بیند]. اسلایدها: [۶ تا ۱۰]. زبان: [زبان]. قالب: [نام قالب یا «default»].

با Web Fetch صفحه عمومی (یا فایل آپلودشده) را بخوانید، منبع را به‌عنوان زمینه LiveDoc ذخیره کنید، وظیفه PPT بسازید و تا آماده شدن اسلایدها پرس‌وجو کنید.

خروجی:
1. ساختار یک‌خطی برای هر اسلاید.
2. پیوند اسلایدهای ساخته‌شده.
3. پیوند LiveDoc استفاده‌شده به‌عنوان زمینه.

قواعد:
- واقعیتی که در منبع نیست نسازید. شکاف‌ها «در منبع ذکر نشده» نوشته شوند.
- وظیفه PPT اعتبار مصرف می‌کند؛ پیش از ارسال بپرسید.
- URL منبع، ساختار و پیوند اسلایدها را کنار هم نگه دارید.
- اسلایدها را بیرون از workspace منتشر یا به اشتراک نگذارید.
- ساختار را در ./deck-outline.md بنویسید و در چت خلاصه کنید.

نسخه شامل مراحل نصب و قواعد ایمنی نیز هست.

چه دریافت می‌کنید

خروجی نمونه یک اجرا. نه تولید زنده.

نمونه ساختار اسلاید (بخش)

منبع -> ساختار اسلاید

  1. چرا این گزارش مهم است
  2. این فصل چه تغییری کرد
  3. سه بخش مشتری
  4. جایی که شواهد ضعیف است
  5. بعد چه چیزی را تست کنیم

اسلاید: https://felo.ai/slides/... زمینه: https://felo.ai/livedoc/...

فراخوانی‌های دقیق

برای توسعه‌دهندگان: همان گردش‌کار به‌صورت کد، به ترتیب اجرا.

نمایش فراخوانی‌های واقعی API
  1. صفحه منبع را استخراج کنید

    با 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,
    });
  2. به‌عنوان زمینه 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,
      },
    );
  3. وظیفه اسلاید را بفرستید

    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"
      }
    }
  4. تا پایان بپرسید

    وضعیت را تا تکمیل بررسی و پیوند اسلاید را بخوانید.

    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 ناهمگام و پیوند آماده
  • ساختار اسلاید برای بررسی پیش از اشتراک

چه کاری نمی‌کند

  • فقط صفحه عمومی یا فایل آپلودشده؛ صفحات ورود ممکن است شکست بخورند
  • اسلایدها از منبع پیروی می‌کنند و کل سیستم برند را پوشش نمی‌دهند
  • یک ارائه برای هر اجرا؛ چند ارائه نیاز به حلقه دارد
  • ارائه موجود را ویرایش نمی‌کند و تطابق بصری را تضمین نمی‌کند
  • ارائه را منتشر یا به اشتراک نمی‌گذارد

پرسش‌ها

PDF به‌جای URL استفاده شود؟

بله. وظیفه PPT را با فایل به‌صورت multipart form data بفرستید؛ پلتفرم آن را به‌عنوان منبع LiveDoc ذخیره و ارائه را می‌سازد.

قالب انتخاب می‌شود؟

بله. قالب‌ها را فهرست کنید و هنگام ساخت وظیفه id قالب را بدهید.

ارائه چقدر طول می‌کشد؟

وظیفه ناهمگام است. تاریخچه را تا پایان بپرسید؛ ارائه‌های بلند بیشتر طول می‌کشند.

ارائه موجود من را ویرایش می‌کند؟

نه. از منبع ارائه جدید می‌سازد؛ ویرایش ارائه موجود گردش‌کار دیگری است.

هزینه یک ارائه چقدر است؟

تولید اسلاید بر اساس استفاده محاسبه می‌شود؛ نرخ‌های فعلی در صفحه قیمت و پرامپت پیش از هزینه تأیید می‌خواهد.

منبع دوباره استفاده می‌شود؟

بله. LiveDoc منبع را نگه می‌دارد؛ ارائه‌ها یا mindmapهای بعدی می‌توانند از short_id آن استفاده کنند.

گردش‌کارهای مرتبط

آن را از خود کنید

همان دستور، متناسب با روش واقعی تحویل شما.

منبع PDF

PDF را در multipart آپلود کنید؛ پلتفرم ابتدا آن را به‌عنوان منبع LiveDoc ذخیره می‌کند.

قالب را تنظیم کنید

قالب‌های موجود را فهرست و هنگام ساخت وظیفه id را بدهید.

در ارائه بعدی دوباره استفاده کنید

وظیفه PPT جدید با همان LiveDoc short_id بسازید.

صفحات مرجع پشت این دستور و گام‌های بعدی.