Felo API PlatformFelo API Platform

সহায়তা

আপনার নিজের নথি থেকে সহায়তা প্রশ্নের উত্তর দিন

LiveDoc তৈরি করুন, হেল্প সেন্টার ও অভ্যন্তরীণ runbook লোড করুন, টিকিটের উত্তর দেওয়া অংশ আনুন এবং মডেলকে শুধু সেই প্রমাণ থেকে উত্তর দিতে দিন।

সময়২০ মিনিটস্তরভিত্তিহালনাগাদ2026-10-29
কাদের জন্যসহায়তা দলগ্রাহক সাফল্যHelpdesk নির্মাতা

প্রম্পট কপি করুন

বর্গ বন্ধনীর ঘরগুলো বদলে Claude Code, Codex বা টার্মিনাল অ্যাক্সেসসহ AI-তে পেস্ট করুন। এটি Felo স্কিল ইনস্টল করে, ক্রেডিটের আগে জিজ্ঞাসা করে ও ওয়ার্কফ্লো চালায়।

এই সাপোর্ট প্রশ্নের উত্তর শুধু আমাদের ডকুমেন্টেশন দিয়ে দিন: [গ্রাহকের প্রশ্ন]।

জ্ঞান ভিত্তি: [হেল্প সেন্টার URL বা LiveDoc short_id]। এস্কেলেশন পথ: [দায়িত্বপ্রাপ্ত ব্যক্তি বা কিউ]।
উপলব্ধ গ্রাহক প্রসঙ্গ: [প্ল্যান, অঞ্চল, পণ্য] (পাসওয়ার্ড বা পেমেন্ট ডেটা কখনও চাইবেন না)।

তৈরি করুন:
1. দুই থেকে চার বাক্যে সরাসরি উত্তর।
2. সমর্থনকারী ডকুমেন্ট অংশ, রিসোর্স শিরোনামসহ।
3. গ্রাহকের পরবর্তী পদক্ষেপ।
4. অভ্যন্তরীণ নোট: ব্যবহৃত রিসোর্স ও প্রাসঙ্গিকতা স্কোর।

নিয়ম:
- শুধু উদ্ধার করা অংশ থেকে উত্তর দিন। ফলাফল না থাকলে বা প্রাসঙ্গিকতা কম হলে এস্কেলেট করুন; কখনও অনুমান করবেন না।
- নীতি, রিফান্ড, মূল্য বা অ্যাকাউন্ট কাজ বানাবেন না।
- গ্রাহকের ব্যক্তিগত ডেটা, ক্রেডেনশিয়াল বা পেমেন্ট তথ্য নেবেন না।
- ইনজেশন বা রিট্রিভালে ক্রেডিট খরচের আগে জিজ্ঞাসা করুন।
- উত্তর গ্রাহককে পাঠাবেন না; পর্যালোচনার জন্য আমাকে ফেরত দিন।

কপিতে ইনস্টল ধাপ ও নিরাপত্তা নিয়মও আছে।

আপনি কী পান

একটি রানের উদাহরণ আউটপুট। লাইভ জেনারেশন নয়।

নমুনা উত্তর (অংশ)

উত্তর: আপনার প্ল্যান প্রতি মাসের ১ তারিখে নবায়ন হয়। কার্ড ব্যর্থ হলে তিন দিন পুনরায় চেষ্টা হয়, তারপর আসন সাময়িক বন্ধ হয়।

উৎস: “বিলিং সম্পর্কিত সাধারণ প্রশ্ন” - https://example.com/help/billing

এটি কভার না হলে: ইনভয়েস ID দিয়ে বিলিং সারিতে এস্কেলেট করুন।

সঠিক কল

ডেভেলপারদের জন্য: একই ওয়ার্কফ্লো কোড হিসেবে, চালানোর ক্রমে।

আসল 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."

যা আছে

  • হেল্প সেন্টার ও অভ্যন্তরীণ runbook-সহ LiveDoc
  • অংশ ও শিরোনামসহ সিম্যানটিক অনুসন্ধান
  • উদ্ধরণযোগ্য উৎসসহ উত্তর
  • কভারেজ না থাকলে স্পষ্ট এসকেলেশন

যা করে না

  • শুধু আপনার নথি থেকে উত্তর দেয় এবং খোলা ওয়েব ঘুরে না
  • অ্যাকাউন্ট কাজ, রিফান্ড বা প্ল্যান পরিবর্তন করে না
  • জ্ঞানভান্ডারে ব্যক্তিগত গ্রাহক ডেটা বা ক্রেডেনশিয়াল নয়
  • পুরনো নথি পুরনো উত্তর দেয়; হালনাগাদ রাখুন
  • শুধু উত্তরের খসড়া, গ্রাহককে পাঠায় না

প্রশ্ন

উত্তর কোথা থেকে?

শুধু আপনার LiveDoc থেকে: হেল্প সেন্টার পৃষ্ঠা ও runbook। অনুসন্ধান অংশ ফেরত দেয় এবং এজেন্ট সেখান থেকে লেখে।

নথি না ঢাকলে?

এসকেলেশন। কোনো ফল বা কম প্রাসঙ্গিকতা “ঢাকা হয়নি” গণ্য হয়, অনুমানের অনুমতি নয়।

জ্ঞানভান্ডার হালনাগাদ রাখবেন কীভাবে?

নীতি বদলালে URL আবার যোগ করুন এবং নথি হালনাগাদ করুন; ওয়ার্কফ্লোতে হালনাগাদ ও অডিট কমান্ড আছে।

টিকিট সারিতে ব্যবহার করা যায়?

হ্যাঁ, খসড়া ধাপ হিসেবে। গ্রাহককে পাঠানোর আগে মানব অনুমোদন রাখুন।

অ্যাকাউন্ট-নির্দিষ্ট প্রশ্ন সামলায়?

শুধু নথি দিয়ে নয়। অ্যাকাউন্ট ডেটা আপনার সিস্টেমে; শুধু দরকারি নিরাপদ প্রসঙ্গ দিন, কখনো ক্রেডেনশিয়াল নয়।

এক রানের খরচ কত?

ইনজেশন ও অনুসন্ধান ব্যবহার অনুযায়ী বিল হয়; বর্তমান হার মূল্য পৃষ্ঠায় এবং প্রম্পট খরচের আগে অনুমোদন চায়।

সম্পর্কিত ওয়ার্কফ্লো

গবেষণা

একটি প্রশ্নকে উৎসসহ গবেষণা ব্রিফে বদলান

ওয়েবকে জিজ্ঞাসা করুন, উত্তরের পেছনের পৃষ্ঠা Markdown-এ সংরক্ষণ করুন, X-এ অনুশীলনকারীরা কী বলেন যোগ করুন এবং প্রমাণ এমন LiveDoc-এ রাখুন যা পরে আবার খোঁজা যায়।

ওয়ার্কফ্লো খুলুন
কনটেন্ট

দৈনিক AI সংবাদ সারাংশ প্রকাশ করুন যা দল সত্যিই পড়ে

উৎসসহ সারাংশ নিন, X-এ অনুশীলনকারী আলোচনা যোগ করুন, একটি ভিডিও ট্রান্সক্রিপ্ট নিন, সংস্করণ Markdown-এ বানান এবং LiveDoc-এ সংরক্ষণ করুন।

ওয়ার্কফ্লো খুলুন
অফিস

গবেষণা পৃষ্ঠাকে উপস্থাপনায় বদলান

পৃষ্ঠা নিষ্কাশ করুন, LiveDoc প্রসঙ্গ হিসেবে রাখুন, PPT Task API দিয়ে ডেক বানাতে দিন এবং প্রস্তুত লিংক না পাওয়া পর্যন্ত জিজ্ঞাসা করুন।

ওয়ার্কফ্লো খুলুন

নিজের মতো করুন

একই রেসিপি, আপনি যেভাবে সত্যিই সরবরাহ করেন সেভাবে।

শুধু এক পণ্য লাইন

এক পণ্যে সীমাবদ্ধ করুন যাতে ভিত্তি পরিষ্কার থাকে।

টিকিট শ্রেণিবিন্যাস যোগ করুন

আগে প্রশ্নের ধরন শ্রেণিবিন্যাস করে সঠিক নথি খুঁজুন।

নিয়মিত অডিট

প্রতি মাসে ভাঙা লিংক ও পুরনো নীতি যাচাই করুন।

এই রেসিপির পেছনের রেফারেন্স পৃষ্ঠা ও পরবর্তী ধাপ।