DField SolutionsLoading · Töltődik
Ugrás a tartalomhoz

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.

1-2. nap · scope, adat, eval set

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

3-5. nap · RAG infra és indexálá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).

  • 3. nap · chunk strategy. A magyar nyelvű dokumentumok 600-800 token os chunkokra darabolva, 100 token os átfedéssel adják a legjobb eredményt (saját mérés 4 magyar projekten).
  • 4. nap · embedding. A magyar nyelven jól teljesít a `text-embedding-3-small` (OpenAI) és a `bge m3` (open source). Mindkettőt teszteljük az eval set en, és a jobb teljesítményűt választjuk.
  • 5. nap · indexálás és retrieval pipeline. Hybrid search (BM25 + vector) általában 10-15 százalékkal jobb a tisztán vektorhoz képest a magyar tudásbázisokon, mert a magyar morfológia miatt a pontos kifejezés egyezés is számít.
// 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;
}

6-7. nap · prompt és válasz minőség

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.

8-9. nap · observability és cost control

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

10-11. nap · production hardening

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').

12. nap · UI integráció

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.

13. nap · eval re run + tuning

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.

14. nap · go live

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.

Mi NEM fér bele 14 napba

  • Multi nyelv (magyar + angol + német) · ez +5-7 nap, mert minden eval set és minden nyelvi prompt külön optimalizálandó.
  • Tool calling (pl rendelés indítás, fizetés) · +14 nap, mert a tool layer biztonsági mintázatát rárakjuk · capability scoping, audit, circuit breaker.
  • Voice (text to speech, speech to text) · +7 nap.
  • Multi tenant (sok ügyfél, mindegyik saját knowledge base sel) · +10 nap, RLS, kvóta, isolation.
  • Custom finetune · ezt 14 napban általában nem kell, RAG van. A finetune tipikusan ott jön be, ahol a domain extrém speciális.

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.

MegosztásXLinkedIn#
Mező Dezső
Szerző

Mező Dezső

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.

Folytatás
HASONLÓ TÉMÁJÚ PROJEKTEK
Beszéljünk

Inkább építenénk együtt?

Beszéljünk a projektedről. 30 perc, nincs kötelezettség.