AI chatbot szállítása 14 nap alatt · production ready RAG, eval, observability
Production AI chatbot 14 napban realista. A POC nem 14 nap, az 1 nap. A hátralévő 13 a 'nem hülyül el' és a 'működik élesben' munka.
Production AI chatbot 14 napban realista. A POC nem 14 nap, az 1 nap. A hátralévő 13 a 'nem hülyül el' és a 'működik élesben' munka.
A magyar ügyfelek többsége a 'gyorsan kell egy AI chatbot' kéréssel jön. Erre két válasz van: a POC 1 nap, a production 14 nap. A POC az, ami a meeting en demonstrálható. A production az, ami élesben nem hozza zavarba a céget. Ez a poszt egy konkrét 14 napos ütemterv, amit többször lefuttattunk · 4 szállított chatbot mögött ugyanez a sablon van.
14 nap nem 14 munkanap, hanem 14 kalendár nap, body to keyboard, fókuszáltan. Ha közben más projekt is fut, a tervezet 4-5 hét. A 14 nap előfeltétel, hogy az ügyfél a forrás dokumentumokat (FAQ, knowledge base, termék specifikáció) az 1. napon átadja, és a 4. napon, 8. napon, 12. napon válaszol a kérdéseinkre 24 órán belül.
Az első két nap nem kód. Az első nap meeting az ügyféllel: a chatbot mit kell tudjon, mit ne, milyen hangszínen, milyen ügyfél típusra. A kimenet: egy 1 oldalas 'AI assistant brief' dokumentum. A második napon az ügyfél átadja a tudásbázist (FAQ, dokumentáció, termék lista), és mi készítünk egy 50-100 elemes 'eval set' et: konkrét kérdés · elvárt válasz párokat. Ez lesz a teszt set, ami a 14 nap alatt tartja a minőséget.
// eval set egyszerű JSON formátumban
const evalSet = [
{
id: "e001",
question: "Mennyi a Pro tier havidíja?",
expected_answer_contains: ["19 990", "havonta"],
expected_answer_not: ["unlimited", "ingyenes"],
category: "pricing",
},
{
id: "e002",
question: "Lemondhatom bármikor?",
expected_answer_contains: ["bármikor", "havi"],
category: "cancellation",
},
{
id: "e003",
question: "Hogyan integrálom Shopify val?",
expected_answer_contains: ["Shopify App Store", "telepít"],
category: "integration",
},
// ... 50-100 ilyen kérdés
];A 3 5. napon építjük a RAG (retrieval augmented generation) infrát. A választás függ a tudásbázis méretétől: 100 dokumentum alatt egy egyszerű Postgres + pgvector elég, fölötte Qdrant vagy Pinecone (saját rendszerünk Postgres alapokra épült, mert a magyar ügyfeleknek általában 50-500 dokumentum knowledge base ük van).
// Hybrid search Postgres + pgvector + ts_vector
async function hybridSearch(query: string, k = 8) {
const queryEmbedding = await embed(query);
const result = await db.query(
`WITH vector_results AS (
SELECT id, content, source,
1 - (embedding <=> $1::vector) AS vector_score
FROM chunks
ORDER BY embedding <=> $1::vector
LIMIT 30
), bm25_results AS (
SELECT id, content, source,
ts_rank(content_tsv, plainto_tsquery('hungarian', $2)) AS bm25_score
FROM chunks
WHERE content_tsv @@ plainto_tsquery('hungarian', $2)
ORDER BY bm25_score DESC
LIMIT 30
)
SELECT DISTINCT ON (id) id, content, source,
COALESCE(v.vector_score, 0) * 0.6 + COALESCE(b.bm25_score, 0) * 0.4 AS combined_score
FROM vector_results v FULL OUTER JOIN bm25_results b USING (id, content, source)
ORDER BY id, combined_score DESC
LIMIT $3`,
[queryEmbedding, query, k]
);
return result.rows;
}A 6 7. napon a system prompt és a válasz formázás van soron. A magyar nyelvű chatbot esetén a system prompt 80 százalékban magyarul legyen, mert ettől nyomonkövethetőbben válaszol magyarul a model. Az eval set re lefuttatjuk, mérjük az 'expected_answer_contains' és 'expected_answer_not' arányt, és iterálunk. Az érettségi kritérium: 90 százalék fölött az 'expected_answer_contains', 5 százalék alatt az 'expected_answer_not' hibák.
A magyar chatbot tipikus baki: 'Ön' vs 'te' inkonzisztencia, hivatalos és informális keveredés. A system promptban explicit legyen, és minden válasz előtt egy 1 mondatos formátum check. A regex 'te / téged / téged et' vs 'Ön / Önnek' egy egyszerű post processing lépés.
A 8 9. nap observability építés. Minden user kérdés, RAG retrieval eredménye, LLM input / output token, latency, cost · mind log ban. A Datadog, Honeycomb, vagy egyszerűen egy Postgres tábla és egy Grafana dashboard. A korai kérdés általában: 'a chatbot rosszul válaszolt, mit nézzek meg?'. Ha nincs observability, csak vakon kapálózol.
// Per request log
type ChatLogEntry = {
request_id: string;
user_id: string;
conversation_id: string;
ts: string;
question: string;
retrieval_chunk_ids: string[];
retrieval_scores: number[];
llm_model: string;
llm_input_tokens: number;
llm_output_tokens: number;
llm_cost_usd: number;
latency_ms: number;
user_feedback?: "thumbs_up" | "thumbs_down" | null;
};A 10 11. nap a 'production hardening'. Rate limit user enként és globálisan. Prompt injection védekezés (legalább basic szintű). Streaming response (SSE vagy WebSocket) a UI nak. Error handling minden külső API hívásra (OpenAI, Anthropic, Postgres). A 'mit csinál a bot ha az LLM nem válaszol' forgatókönyv: fallback üzenet ('Sajnos most nem tudok válaszolni, próbálkozz pár perc múlva, vagy írj az ugyfelszolgalat@example.hu címre').
A 12. napon az UI integráció. Ha widget formát választunk, akkor a meglévő website be embeddable iframe vagy script tag. Ha standalone web app, akkor a saját React / Next.js front end. A magyar ügyfelek 80 százaléka widget et akar a meglévő weboldalra, és ezen a napon installáljuk és teszteljük live oldalon.
A 13. napon az eval set et újra futtatjuk · most már a teljes prod stack en. A cél: ugyanaz a 90 / 5 százalék, mint a 7. napon, de most production environment ben, real RAG retrieval lel, real latency vel. Ha eltérés van, hangoljuk. Ha nincs, akkor a chatbot ready.
A 14. napon megy ki élesbe. Reggel deploy, délután monitoring. Az első 24 óra ugye 'nyitott szem': minden feedback re reagálunk. A go live után 7 napig napi 1 eval re run, 30 napig heti 1, utána havi 1. A folyamatos eval az, ami a chatbot minőségét hosszú távon tartja.
Ha a 14 nap végén az ügyfél azt mondja 'jó, de szeretnék X t is', az nem failed delivery, az v2. Az AI chatbot iteratív termék, nem one shot. A v1 14 nap, a v2 általában 2-3 hét, attól függően, mit akar az ügyfél. A go live tehát az igazi munka kezdete, nem a vége.
Záró: 14 nap reális, ha a folyamat fókuszált. A tipikus magyar ügyfél projekt 4-6 hétig húzódik el · nem azért, mert a munka 4-6 hét, hanem mert a kommunikáció hézagos, az ügyféloldal nem készül időben az adatokkal, és a hatókör nőni szokott. Ha a 14 nap megérné, az ügyfél is 14 napig fókuszáljon. Egyébként a v1 nem 14 nap, hanem 6 hét.

Alapító, DField Solutions
Pénzügyi cégeknél és kreátor-eszközöknél is építettem már olyan rendszereket, amik nap mint nap élesben futnak. Budapesttől San Franciscóig · startupoknak és nagyobb vállalatoknak egyaránt.
Beszéljünk a projektedről. 30 perc, nincs kötelezettség.