Felo API PlatformFelo API Platform

Dukungan

Jawab pertanyaan dukungan dari dokumentasi Anda sendiri

Buat LiveDoc, muat pusat bantuan dan runbook internal, ambil bagian yang menjawab tiket, dan biarkan model menjawab hanya dari bukti itu.

Waktu20 menitTingkatDasarDiperbarui2026-10-29
Untuk siapaTim dukunganKeberhasilan pelangganPembangun helpdesk

Salin prompt

Ganti kolom dalam kurung siku lalu tempel ke Claude Code, Codex, atau AI dengan akses terminal. Ia memasang skill Felo, bertanya sebelum memakai kredit, dan menjalankan alur kerja.

Jawab pertanyaan dukungan ini hanya dengan dokumentasi kami: [pertanyaan pelanggan].

Basis pengetahuan: [URL pusat bantuan atau LiveDoc short_id]. Jalur eskalasi: [penanggung jawab atau antrean].
Konteks pelanggan yang tersedia: [paket, wilayah, produk] (jangan pernah meminta kata sandi atau data pembayaran).

Hasilkan:
1. Jawaban langsung dalam dua sampai empat kalimat.
2. Bagian dokumentasi yang mendukungnya, dengan judul sumber daya.
3. Langkah berikutnya untuk pelanggan.
4. Catatan internal: sumber daya yang dipakai dan skor relevansi.

Aturan:
- Jawab hanya dari bagian yang diambil. Jika tidak ada hasil atau relevansi rendah, eskalasi; jangan pernah menebak.
- Jangan mengarang kebijakan, pengembalian dana, harga, atau tindakan akun.
- Jangan memasukkan data pribadi pelanggan, kredensial, atau informasi pembayaran.
- Tanya dulu sebelum memakai kredit untuk ingestion atau pengambilan.
- Jangan kirim jawaban ke pelanggan; kembalikan ke saya untuk ditinjau.

Salinan juga menyertakan langkah pemasangan dan aturan keamanan.

Yang Anda dapatkan

Contoh keluaran dari satu eksekusi. Bukan pembuatan langsung.

Contoh jawaban (kutipan)

Jawaban: Paket Anda diperpanjang pada tanggal 1 setiap bulan. Kartu yang gagal akan dicoba lagi selama tiga hari sebelum kursi dijeda.

Sumber: “pertanyaan umum penagihan” - https://example.com/help/billing

Jika ini tidak tercakup: eskalasi ke antrean penagihan dengan ID faktur.

Panggilan persisnya

Untuk developer: alur kerja yang sama sebagai kode, sesuai urutan eksekusi.

Tampilkan panggilan API asli
  1. Buat basis pengetahuan

    Buat basis lewat LiveDoc API dan simpan 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

    Contoh keluaran

    {
      "short_id": "PvyKouzJirXjFdst4uKRK3",
      "name": "Support knowledge base",
      "description": "Help center, policy pages, and internal runbooks"
    }
  2. Muat pusat bantuan publik

    Tambahkan URL pusat bantuan sebagai resource 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");

    Contoh keluaran

    [
      { "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. Tambahkan dokumentasi internal

    Tambahkan runbook internal sebagai dokumen.

    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. Ambil bukti untuk pertanyaan

    Pencarian semantik mengembalikan bagian dan skor paling relevan.

    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);

    Contoh keluaran

    [
      {
        "id": "res_005",
        "title": "Refund policy",
        "content": "Refunds are available within 30 days of purchase…",
        "score": 0.92
      }
    ]
  5. Jawab hanya dari bukti

    Buat model hanya memakai bagian yang diambil dan eskalasi saat tidak ada hasil.

    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);

    Contoh keluaran

    "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."

Termasuk

  • LiveDoc dari pusat bantuan dan runbook internal
  • Pencarian semantik dengan bagian dan judul
  • Jawaban dengan sumber yang bisa dikutip
  • Eskalasi jelas saat cakupan kurang

Yang tidak dilakukan

  • Menjawab hanya dari dokumentasi Anda dan tidak menjelajah web terbuka
  • Tidak menjalankan tindakan akun, pengembalian dana, atau perubahan paket
  • Tanpa data pelanggan privat atau kredensial di basis
  • Dokumentasi usang menghasilkan jawaban usang; perbarui
  • Hanya menyusun jawaban, tidak mengirim ke pelanggan

Pertanyaan

Dari mana jawabannya?

Hanya dari LiveDoc Anda: halaman pusat bantuan dan runbook. Pencarian mengembalikan bagian dan agent menulis dari sana.

Jika dokumentasi tidak mencakup?

Eskalasi. Tanpa hasil atau relevansi rendah dianggap belum tercakup, bukan izin menebak.

Bagaimana menjaga basis tetap baru?

Saat kebijakan berubah, tambahkan lagi URL dan perbarui dokumen; alur menyertakan perintah pembaruan dan audit.

Bisa dipakai di antrean tiket?

Bisa, sebagai langkah draf. Pertahankan persetujuan manusia sebelum mengirim ke pelanggan.

Apakah menangani pertanyaan spesifik akun?

Hanya dengan dokumentasi tidak. Data akun ada di sistem Anda; berikan hanya konteks aman yang diperlukan, jangan pernah kredensial.

Berapa biaya satu eksekusi?

Ingesti dan pencarian ditagih sesuai pemakaian; tarif saat ini di halaman harga dan prompt meminta persetujuan sebelum mengeluarkan biaya.

Alur kerja terkait

Sesuaikan

Resep yang sama, disesuaikan dengan cara Anda benar-benar mengirim.

Hanya satu lini produk

Batasi ke satu produk agar basis lebih bersih.

Tambahkan klasifikasi tiket

Klasifikasikan jenis pertanyaan lalu cari dokumentasi yang tepat.

Audit berkala

Periksa tautan rusak dan kebijakan lama setiap bulan.

Halaman referensi di balik resep ini dan langkah berikutnya.