Felo API PlatformFelo API Platform

सहायता

अपने दस्तावेज़ों से सहायता प्रश्नों का उत्तर दें

LiveDoc बनाएँ, हेल्प सेंटर और आंतरिक runbook लोड करें, टिकट का जवाब देने वाले अंश निकालें और मॉडल को केवल उन सबूतों से उत्तर देने दें।

समय20 मिनटस्तरआधारअपडेट2026-10-29
किसके लिएसहायता टीमेंग्राहक सफलताHelpdesk निर्माता

प्रॉम्प्ट कॉपी करें

वर्ग कोष्ठक के फ़ील्ड बदलें और Claude Code, Codex या टर्मिनल एक्सेस वाले AI में चिपकाएँ। यह Felo स्किल इंस्टॉल करता है, क्रेडिट से पहले पूछता है और वर्कफ़्लो चलाता है।

इस सहायता प्रश्न का उत्तर केवल हमारे दस्तावेज़ों से दें: [ग्राहक प्रश्न]।

ज्ञान आधार: [हेल्प सेंटर URL या LiveDoc short_id]। एस्केलेशन मार्ग: [ज़िम्मेदार व्यक्ति या कतार]।
उपलब्ध ग्राहक संदर्भ: [प्लान, क्षेत्र, उत्पाद] (पासवर्ड या भुगतान डेटा कभी न मांगें)।

तैयार करें:
1. दो से चार वाक्यों में सीधा उत्तर।
2. सहायक दस्तावेज़ अंश, संसाधन शीर्षक के साथ।
3. ग्राहक के लिए अगला कदम।
4. आंतरिक नोट: इस्तेमाल संसाधन और प्रासंगिकता स्कोर।

नियम:
- केवल प्राप्त अंशों से उत्तर दें। परिणाम न हो या प्रासंगिकता कम हो तो एस्केलेट करें; कभी अनुमान न लगाएं।
- नीति, रिफ़ंड, मूल्य या खाता कार्रवाई न गढ़ें।
- ग्राहक का निजी डेटा, क्रेडेंशियल या भुगतान जानकारी शामिल न करें।
- इनजेशन या रिट्रीवल पर क्रेडिट खर्च करने से पहले पूछें।
- उत्तर ग्राहक को न भेजें; समीक्षा के लिए मुझे लौटाएं।

कॉपी में इंस्टॉल चरण और सुरक्षा नियम भी हैं।

आपको क्या मिलता है

एक रन का उदाहरण आउटपुट। लाइव जनरेशन नहीं।

नमूना उत्तर (अंश)

उत्तर: आपका प्लान हर महीने की 1 तारीख को नवीनीकृत होता है। कार्ड विफल होने पर तीन दिन तक पुनः प्रयास होता है, फिर सीट रोक दी जाती है।

स्रोत: “बिलिंग के सामान्य प्रश्न” - 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 दोबारा जोड़ें और दस्तावेज़ अपडेट करें; वर्कफ़्लो में अपडेट और ऑडिट कमांड हैं।

टिकट कतार में इस्तेमाल कर सकते हैं?

हाँ, ड्राफ़्ट चरण के रूप में। ग्राहक को भेजने से पहले मानव स्वीकृति रखें।

खाता-विशिष्ट सवाल संभालता है?

केवल दस्तावेज़ों से नहीं। खाता डेटा आपके सिस्टम में है; केवल ज़रूरी सुरक्षित संदर्भ दें, कभी क्रेडेंशियल नहीं।

एक रन की लागत कितनी है?

इनजेशन और खोज उपयोग के अनुसार बिल होते हैं; मौजूदा दरें मूल्य पेज पर और प्रॉम्प्ट खर्च से पहले मंज़ूरी माँगता है।

संबंधित वर्कफ़्लो

इसे अपना बनाएँ

वही रेसिपी, आपके असली तरीके के हिसाब से।

केवल एक उत्पाद श्रृंखला

एक उत्पाद तक सीमित करें ताकि आधार साफ़ रहे।

टिकट वर्गीकरण जोड़ें

पहले प्रश्न प्रकार वर्गीकृत करें, फिर सही दस्तावेज़ खोजें।

नियमित ऑडिट

हर महीने टूटे लिंक और पुरानी नीतियाँ जाँचें।

इस रेसिपी के पीछे के संदर्भ पेज और अगले कदम।