Sokongan
Jawab soalan sokongan dari dokumentasi anda sendiri
Cipta LiveDoc, muat pusat bantuan dan runbook dalaman, ambil bahagian yang menjawab tiket dan biar model menjawab hanya dari bukti itu.
Salin prompt
Ganti medan dalam kurungan siku lalu tampal ke Claude Code, Codex atau AI dengan akses terminal. Ia memasang skill Felo, bertanya sebelum kredit digunakan dan menjalankan aliran kerja.
Jawab soalan sokongan ini hanya dengan dokumentasi kami: [soalan pelanggan]. Pangkalan pengetahuan: [URL pusat bantuan atau LiveDoc short_id]. Laluan eskalasi: [orang bertanggungjawab atau baris gilir]. Konteks pelanggan tersedia: [pelan, wilayah, produk] (jangan sekali-kali minta kata laluan atau data pembayaran). Hasilkan: 1. Jawapan langsung dalam dua hingga empat ayat. 2. Petikan dokumentasi yang menyokongnya, dengan tajuk sumber. 3. Langkah seterusnya untuk pelanggan. 4. Nota dalaman: sumber digunakan dan skor kaitan. Peraturan: - Jawab hanya daripada petikan yang diambil. Jika tiada hasil atau kaitan rendah, eskalasi; jangan meneka. - Jangan reka dasar, bayaran balik, harga atau tindakan akaun. - Jangan masukkan data peribadi pelanggan, kelayakan atau maklumat pembayaran. - Tanya sebelum menggunakan kredit untuk pengingesan atau pengambilan. - Jangan hantar jawapan kepada pelanggan; kembalikan kepada saya untuk semakan.
Salinan turut menyertakan langkah pemasangan dan peraturan keselamatan.
Apa yang anda dapat
Contoh output daripada satu larian. Bukan penjanaan langsung.
Jawapan: Pelan anda diperbaharui pada 1 haribulan. Kad yang gagal akan dicuba semula selama tiga hari sebelum tempat duduk dijeda.
Sumber: “soalan lazim bil” - https://example.com/help/billing
Jika ini tidak diliputi: eskalasi ke baris gilir bil dengan ID invois.
Panggilan sebenar
Untuk pembangun: aliran kerja sama sebagai kod, mengikut urutan pelaksanaan.
Tunjukkan panggilan API sebenar
Cipta pangkalan pengetahuan
Cipta pangkalan melalui 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 configContoh output
{ "short_id": "PvyKouzJirXjFdst4uKRK3", "name": "Support knowledge base", "description": "Help center, policy pages, and internal runbooks" }Muat pusat bantuan awam
Tambah URL pusat bantuan sebagai sumber 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 output
[ { "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" } ]Tambah dokumentasi dalaman
Tambah runbook dalaman 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 updatesAmbil bukti untuk soalan
Carian semantik memulangkan bahagian 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 output
[ { "id": "res_005", "title": "Refund policy", "content": "Refunds are available within 30 days of purchase…", "score": 0.92 } ]Jawab hanya dari bukti
Buat model guna hanya bahagian diambil dan eskalasi apabila tiada 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 output
"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 dalaman
- Carian semantik dengan bahagian dan tajuk
- Jawapan dengan sumber boleh dipetik
- Eskalasi jelas apabila liputan kurang
Apa yang tidak dilakukan
- Menjawab hanya dari dokumentasi anda dan tidak melayari web terbuka
- Tidak menjalankan tindakan akaun, bayaran balik atau tukar pelan
- Tiada data pelanggan peribadi atau kelayakan dalam pangkalan
- Dokumentasi lapuk menghasilkan jawapan lapuk; kemas kini
- Hanya menyusun jawapan, tidak menghantar kepada pelanggan
Soalan
Dari mana jawapannya?
Hanya dari LiveDoc anda: halaman pusat bantuan dan runbook. Carian memulangkan bahagian dan ejen menulis daripadanya.
Jika dokumentasi tidak meliputi?
Eskalasi. Tiada hasil atau relevan rendah dianggap belum diliputi, bukan izin meneka.
Bagaimana kekalkan pangkalan terkini?
Apabila dasar berubah, tambah URL semula dan kemas kini dokumen; aliran ada arahan kemas kini dan audit.
Boleh guna dalam baris gilir tiket?
Boleh sebagai langkah draf. Kekalkan kelulusan manusia sebelum menghantar kepada pelanggan.
Adakah ia mengendalikan soalan khusus akaun?
Dengan dokumentasi sahaja tidak. Data akaun di sistem anda; berikan hanya konteks selamat diperlukan, jangan sesekali kelayakan.
Berapa kos satu larian?
Ingesti dan carian dibilkan mengikut penggunaan; kadar semasa di halaman harga dan prompt meminta kelulusan sebelum berbelanja.
Aliran kerja berkaitan
Tukar satu soalan kepada brief penyelidikan bersumber
Tanya web, simpan halaman di sebalik jawapan sebagai Markdown, tambah apa yang pengamal katakan di X dan simpan bukti dalam LiveDoc yang boleh dicari semula.
Buka aliran kerjaKandunganTerbitkan ringkasan berita AI harian yang benar-benar dibaca pasukan
Dapatkan ringkasan bersumber, tambah perbualan pengamal di X, ambil transkrip video, susun edisi Markdown dan arkibkan dalam LiveDoc.
Buka aliran kerjaPejabatTukar halaman penyelidikan kepada pembentangan
Ekstrak halaman, simpan sebagai konteks LiveDoc, biar PPT Task API membina deck dan tanya sehingga pautan siap.
Buka aliran kerjaSesuaikan
Resipi sama, disesuaikan dengan cara anda benar-benar menyampaikan.
Satu barisan produk sahaja
Hadkan kepada satu produk untuk pangkalan lebih bersih.
Tambah klasifikasi tiket
Klasifikasikan jenis soalan dahulu kemudian cari dokumentasi tepat.
Audit berkala
Semak pautan rosak dan dasar lama setiap bulan.
Teruskan
Halaman rujukan di sebalik resipi ini dan langkah seterusnya.