Felo API PlatformFelo API Platform

پشتیبانی

از مستندات خود به پرسش‌های پشتیبانی پاسخ دهید

یک LiveDoc بسازید، مرکز راهنما و runbook داخلی را بارگذاری کنید، بخش‌هایی که به تیکت پاسخ می‌دهند را بازیابی کنید و بگذارید مدل فقط از همان شواهد پاسخ دهد.

زمان۲۰ دقیقهسطحپایهبه‌روزرسانی2026-10-29
برای چه کسانیتیم‌های پشتیبانیموفقیت مشتریسازندگان helpdesk

کپی پرامپت

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

به این پرسش پشتیبانی فقط با مستندات ما پاسخ دهید: [پرسش مشتری].

پایگاه دانش: [URL مرکز راهنما یا LiveDoc short_id]. مسیر ارجاع: [مسئول یا صف].
زمینه مشتری موجود: [طرح، منطقه، محصول] (هرگز رمز عبور یا داده پرداخت نخواهید).

خروجی:
1. پاسخ مستقیم در دو تا چهار جمله.
2. بخش‌های مستندات که آن را پشتیبانی می‌کند، با عنوان منبع.
3. گام بعدی برای مشتری.
4. یادداشت داخلی: منابع استفاده‌شده و امتیاز ارتباط.

قواعد:
- فقط از بخش‌های بازیابی‌شده پاسخ دهید. اگر نتیجه‌ای نبود یا ارتباط کم بود، ارجاع دهید؛ هرگز حدس نزنید.
- سیاست، بازپرداخت، قیمت یا اقدام حساب نسازید.
- داده خصوصی مشتری، اعتبارنامه یا اطلاعات پرداخت را وارد نکنید.
- پیش از مصرف اعتبار برای ورود داده یا بازیابی بپرسید.
- پاسخ را برای مشتری نفرستید؛ برای بررسی به من برگردانید.

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

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

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

نمونه پاسخ (بخش)

پاسخ: طرح شما اول هر ماه تمدید می‌شود. اگر کارت رد شود سه روز دوباره تلاش می‌شود و سپس صندلی متوقف می‌شود.

منابع: «پرسش‌های متداول صورتحساب» - https://example.com/help/billing

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

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

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

نمایش فراخوانی‌های واقعی API
  1. پایگاه دانش را بسازید

    پایگاه را از LiveDoc API بسازید و short_id را ذخیره کنید.

    support.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 LiveDocData = { data: { short_id: string } };
    
    const kb = await felo<LiveDocData>("/v2/livedocs", {
      name: "Support knowledge base",
      description: "Help center, policy pages, and internal runbooks",
    });
    
    const kbId = kb.data.short_id; // save this in your config

    خروجی نمونه

    {
      "short_id": "PvyKouzJirXjFdst4uKRK3",
      "name": "Support knowledge base",
      "description": "Help center, policy pages, and internal runbooks"
    }
  2. مرکز راهنمای عمومی را بارگذاری کنید

    URL مرکز راهنما را به‌عنوان منبع LiveDoc اضافه کنید.

    support.ts
    type UrlResult = {
      data: {
        url: string;
        status: string;
        fail_reason: string | null;
        resource_id: string | null;
      }[];
    };
    
    const added = await felo<UrlResult>(
      `/v2/livedocs/${kbId}/resources/urls`,
      {
        urls: [
          "https://example.com/help/getting-started",
          { url: "https://example.com/help/billing", title: "Billing FAQ" },
        ],
      },
    );
    
    const failed = added.data.filter((item) => item.status === "failed");

    خروجی نمونه

    [
      { "url": "https://example.com/help/getting-started", "status": "success", "resource_id": "res_003" },
      { "url": "https://example.com/help/billing", "status": "existed", "resource_id": "res_004" }
    ]
  3. مستندات داخلی را اضافه کنید

    runbook داخلی را به‌عنوان سند اضافه کنید.

    support.ts
    type ResourceData = { data: { id: string } };
    
    const runbook = `# Refund policy
    
    Refunds are available within 30 days of purchase. Requests after 30 days
    need a manual review by the billing team.
    `;
    
    const policy = await felo<ResourceData>(
      `/v2/livedocs/${kbId}/resources/doc`,
      { title: "Refund policy", content: runbook },
    );
    
    console.log(policy.data.id); // use this for updates
  4. شواهد پرسش را بازیابی کنید

    جست‌وجوی معنایی مرتبط‌ترین بخش‌ها و امتیازها را برمی‌گرداند.

    support.ts
    type Hit = { id: string; title: string; content: string; score: number };
    
    async function findEvidence(question: string) {
      const res = await felo<{ data: Hit[] }>(
        `/v2/livedocs/${kbId}/resources/retrieve`,
        { query: question },
      );
      return res.data.filter((hit) => hit.score >= 0.7).slice(0, 4);
    }
    
    const question = "Can I get a refund after 45 days?";
    const hits = await findEvidence(question);

    خروجی نمونه

    [
      {
        "id": "res_005",
        "title": "Refund policy",
        "content": "Refunds are available within 30 days of purchase…",
        "score": 0.92
      }
    ]
  5. فقط از شواهد پاسخ دهید

    بگذارید مدل فقط بخش‌های بازیابی‌شده را به کار ببرد و بی‌نتیجه ارجاع دهد.

    support.ts
    type Completion = {
      choices: { message: { content: string | null } }[];
      usage: { prompt_tokens: number; completion_tokens: number; total_tokens: number };
    };
    
    const context = hits
      .map((hit) => `### ${hit.title}\n${hit.content}`)
      .join("\n\n");
    
    const completion = await felo<Completion>("/api/v1/chat/completions", {
      model: "anthropic/claude-haiku-5.5",
      messages: [
        {
          role: "system",
          content:
            "Answer only from the context. If the context does not cover the question, say so and hand the ticket to a human.",
        },
        {
          role: "user",
          content: `Context:\n${context}\n\nQuestion: ${question}`,
        },
      ],
    });
    
    console.log(completion.choices[0].message.content);
    console.log(completion.usage.total_tokens);

    خروجی نمونه

    "No. The Refund policy says refunds are available within 30 days of purchase, so a request at 45 days needs a manual review by the billing team."

چه چیزی دارد

  • LiveDoc از مرکز راهنما و runbook داخلی
  • جست‌وجوی معنایی با بخش‌ها و عنوان‌ها
  • پاسخ با منابع قابل نقل
  • ارجاع روشن وقتی پوشش کم است

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

  • فقط از مستندات شما پاسخ می‌دهد و وب باز را نمی‌گردد
  • عملیات حساب، بازپرداخت یا تغییر طرح انجام نمی‌دهد
  • بدون داده خصوصی مشتری یا اعتبارنامه در پایگاه
  • مستندات قدیمی پاسخ قدیمی می‌دهد؛ به‌روز نگه دارید
  • فقط پیش‌نویس پاسخ، بدون ارسال به مشتری

پرسش‌ها

پاسخ از کجا؟

فقط از LiveDoc شما: صفحات مرکز راهنما و runbook. جست‌وجو بخش‌ها را برمی‌گرداند و عامل از آن‌ها می‌نویسد.

اگر مستندات پوشش ندهد؟

ارجاع. بی‌نتیجه بودن یا ارتباط کم به‌عنوان پوشش‌ندادن تلقی می‌شود نه اجازه حدس.

چگونه پایگاه را به‌روز نگه داریم؟

وقتی سیاست تغییر می‌کند URLها را دوباره اضافه و اسناد را به‌روز کنید؛ گردش‌کار دستورات به‌روزرسانی و حسابرسی دارد.

در صف تیکت استفاده شود؟

بله به‌عنوان گام پیش‌نویس. تأیید انسانی را پیش از ارسال به مشتری نگه دارید.

پرسش‌های مخصوص حساب را مدیریت می‌کند؟

فقط با مستندات نه. داده حساب در سیستم شماست؛ فقط زمینه امن لازم را بدهید، هرگز اعتبارنامه.

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

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

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

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

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

فقط یک خط محصول

به یک محصول محدود کنید تا پایگاه تمیزتر شود.

طبقه‌بندی تیکت اضافه کنید

اول نوع پرسش را طبقه‌بندی کنید سپس مستندات درست را جست‌وجو کنید.

حسابرسی دوره‌ای

هر ماه پیوندهای شکسته و سیاست‌های قدیمی را بررسی کنید.

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