Podpora
Odpovídejte na otázky podpory z vlastní dokumentace
Vytvořte LiveDoc, nahrajte help centrum a interní runbook, získejte pasáže odpovídající ticketu a nechte model odpovídat jen z těch důkazů.
Zkopírovat prompt
Nahraďte pole v hranatých závorkách a vložte do Claude Code, Codex nebo AI s přístupem k terminálu. Nainstaluje skill Felo, zeptá se před utracením kreditů a spustí workflow.
Odpověz na tento dotaz podpory pouze z naší dokumentace: [dotaz zákazníka]. Znalostní báze: [URL help centra nebo LiveDoc short_id]. Eskalační cesta: [odpovědná osoba nebo fronta]. Dostupný kontext zákazníka: [plán, region, produkt] (nikdy nežádej heslo ani platební údaje). Vytvoř: 1. Přímou odpověď ve dvou až čtyřech větách. 2. Podpůrné pasáže dokumentace s názvem zdroje. 3. Další krok pro zákazníka. 4. Interní poznámku: použité zdroje a skóre relevance. Pravidla: - Odpovídej pouze z načtených pasáží. Bez výsledku nebo s nízkou relevancí eskaluj; nikdy nehádej. - Nevymýšlej zásady, vratky, ceny ani akce na účtu. - Nezaváděj soukromá data zákazníka, přihlašovací údaje ani platební informace. - Ptej se před utracením kreditů za ingest nebo retrieval. - Neodesílej odpověď zákazníkovi; vrať ji mně k revizi.
Kopie obsahuje i instalační kroky a bezpečnostní pravidla.
Co dostanete
Ukázkový výstup jednoho běhu. Ne živé generování.
Odpověď: Váš plán se obnovuje prvního dne v měsíci. Neúspěšná karta se opakuje tři dny, pak se místo pozastaví.
Zdroje: „časté dotazy k fakturaci” - https://example.com/help/billing
Pokud to nepokrývá: eskalujte do fakturační fronty s ID faktury.
Přesná volání
Pro vývojáře: stejný workflow jako kód, v pořadí provádění.
Zobrazit skutečná API volání
Vytvořte znalostní bázi
Vytvořte bázi přes LiveDoc API a uložte 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 configUkázkový výstup
{ "short_id": "PvyKouzJirXjFdst4uKRK3", "name": "Support knowledge base", "description": "Help center, policy pages, and internal runbooks" }Nahrajte veřejné help centrum
Přidejte URL help centra jako zdroj 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");Ukázkový výstup
[ { "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" } ]Přidejte interní dokumentaci
Přidejte interní runbook jako dokument.
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 updatesZískejte důkazy k otázce
Sémantické hledání vrací nejrelevantnější pasáže a skóre.
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);Ukázkový výstup
[ { "id": "res_005", "title": "Refund policy", "content": "Refunds are available within 30 days of purchase…", "score": 0.92 } ]Odpovídejte jen z důkazů
Nechte model použít jen získané pasáže a bez výsledků eskalujte.
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);Ukázkový výstup
"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."
Co obsahuje
- LiveDoc s help centrem a interním runbookem
- Sémantické hledání s pasážemi a tituly
- Odpověď s citovatelnými zdroji
- Jasná eskalace při chybějícím pokrytí
Co nedělá
- Odpovídá jen z vaší dokumentace a neprochází otevřený web
- Nevykonává akce účtu, vrácení peněz ani změny plánu
- Bez privátních dat zákazníků a přihlašovacích údajů v bázi
- Zastaralá dokumentace dává zastaralé odpovědi; aktualizujte ji
- Jen návrh odpovědi, ne odeslání zákazníkovi
Otázky
Odkud odpověď?
Jen z vašeho LiveDoc: stránek help centra a runbooku. Hledání vrací pasáže a agent z nich píše.
Když dokumentace nepokrývá?
Eskalace. Žádné výsledky nebo nízká relevance se berou jako nepokryté, ne jako svolení hádat.
Jak udržet bázi aktuální?
Když se změní politika, přidejte znovu URL a aktualizujte dokumenty; workflow obsahuje příkazy aktualizace a auditu.
Lze použít ve frontě ticketů?
Ano, jako krok návrhu. Před odesláním zákazníkovi držte lidské schválení.
Zvládá otázky specifické pro účet?
Jen s dokumentací ne. Data účtu jsou ve vašem systému; předávejte jen potřebný bezpečný kontext, nikdy přihlašovací údaje.
Kolik stojí jeden běh?
Ingesce a hledání se účtují podle užití; aktuální sazby na stránce cen a prompt žádá schválení před útratou.
Související workflowy
Proměňte jednu otázku ve výzkumný brief se zdroji
Zeptejte se webu, uložte stránky za odpovědí jako Markdown, přidejte, co říkají praktici na X, a udržte důkazy v LiveDoc, který lze později prohledat.
Otevřít workflowObsahVydávejte denní AI digest, který tým opravdu čte
Získejte souhrn se zdroji, přidejte diskuse praktiků na X, vezměte transkript videa, sestavte vydání v Markdownu a archivujte v LiveDoc.
Otevřít workflowKancelářProměňte výzkumnou stránku v prezentaci
Extrahujte stránku, uložte jako kontext LiveDoc, nechte PPT Task API postavit deck a ptejte se, dokud není hotový odkaz.
Otevřít workflowPřizpůsobte
Stejný recept, upravený podle toho, jak skutečně dodáváte.
Jen jedna produktová řada
Omezte na jeden produkt, aby báze byla čistší.
Přidejte klasifikaci ticketů
Nejdřív klasifikujte typ otázky, pak hledejte správnou dokumentaci.
Pravidelný audit
Každý měsíc zkontrolujte rozbité odkazy a staré politiky.
Pokračujte
Referenční stránky za tímto receptem a další kroky.