RO EN
AceEngine în producție: RAG, topic guard și ce se întâmplă când pui un AI pe site-ul tău
Doru Bulubașa
30 March 2026

Dacă ai citit primul articol despre AceEngine și te-ai întrebat ok, dar cum funcționează de fapt în spate? — acesta e articolul pentru tine.

Vom diseca pipeline-ul complet, de la momentul în care utilizatorul tău scrie o întrebare în widget, până la răspunsul care apare pe ecran. Fără buzzwords, fără marketing — doar cum funcționează sistemul.

Pasul 0: Indexarea automată

Înainte ca AceEngine să poată răspunde la ceva, trebuie să știe despre ce vorbește site-ul tău. Această parte o rezolvă indexarea automată, care rulează în fundal imediat după ce widget-ul se încarcă.

Scriptul ace.js extrage conținutul principal al paginii curente — evitând navigația, footer-ul și sidebar-urile — și îl trimite la /api/index. De acolo, AceEngine împarte textul în chunk-uri, calculează embedding-uri prin text-embedding-3-small și le stochează în Cosmos DB, asociate licenței tale.

Un detaliu important: indexarea folosește MD5 content hashing. Dacă pagina nu s-a schimbat față de ultima indexare, nu se recalculează nimic — nu se consumă tokeni de embedding inutil. Sistemul este idempotent by design.

Pasul 1: Semantic Cache

Când un utilizator trimite o întrebare, primul lucru pe care îl face AceEngine nu este să meargă la GPT. Primul pas este să verifice cache-ul semantic.

Se calculează embedding-ul întrebării și se caută în cache dacă există un prompt similar din punct de vedere semantic — nu identic textual. „Cât costă planul Pro?” și „Care e prețul pentru Pro?” ar putea returna același răspuns din cache.

Dacă similaritatea cosinus depășește pragul configurat (implicit 0.85 pentru cache, față de 0.70 pentru RAG), răspunsul vine direct din cache. Latență: sub 10ms. Tokeni consumați: zero.

Dacă nu există un hit în cache, se trece la pasul următor.

Pasul 2: RAG — Retrieval Augmented Generation

Acesta e locul unde AceEngine devine cu adevărat util pentru site-ul tău specific.

RAG înseamnă că în loc să trimiți întrebarea direct la LLM și să speri că „știe” ceva despre produsul tău, construiești mai întâi un context din datele indexate. Procesul arată astfel:

  1. Se calculează embedding-ul întrebării utilizatorului
  2. Se caută în vectorii indexați ai licenței tale (similaritate cosinus, prag 0.70)
  3. Se iau primele 5 chunk-uri relevante
  4. Acestea devin contextul care se trimite la LLM împreună cu întrebarea

Rezultatul: LLM-ul răspunde bazat pe conținutul real al site-ului tău, nu pe cunoștințele generale de antrenament. Dacă pagina ta de prețuri spune că planul Pro costă 29 EUR/lună, asta va răspunde și widget-ul.

Pasul 3: Topic Guard

Acesta e un mecanism care rezolvă o problemă reală și frecventă.

Fără topic guard, un utilizator poate întreba widget-ul de pe site-ul tău de software „Scrie-mi un poem despre toamnă” sau „Care e capitala Franței?” și LLM-ul va răspunde fericit, consumând tokenii tăi pentru nimic relevant.

Cu topic guard, dacă RagService.BuildContextAsync nu găsește niciun chunk relevant în vectorii indexați (rag.HasContext == false), AceEngine nu mai apelează deloc LLM-ul. Returnează un mesaj de tip off-topic direct, fără să consume tokeni de completare.

Practic: dacă nu există context relevant în baza ta de cunoștințe pentru întrebarea respectivă, sistemul recunoaște că întrebarea nu e despre domeniul tău și răspunde în consecință. Simplu, eficient, ieftin.

Pasul 4: Răspunsul și salvarea în cache

Dacă toate verificările trec și LLM-ul generează un răspuns, acesta este salvat automat în semantic cache — pregătit pentru întrebări similare viitoare. Prima întrebare e scumpă (apel LLM), a doua e gratuită (cache hit).

De ce contează arhitectura asta?

Fiecare pas din pipeline are un scop economic clar:

  • Indexarea cu hash — nu plătești re-embedding pentru conținut neschimbat
  • Semantic cache — nu plătești de două ori pentru aceeași întrebare
  • Topic guard — nu plătești deloc pentru întrebări irelevante
  • RAG cu top-5 chunks — trimiți context minimal, nu întreaga bază de date

Rezultatul: un widget AI care costă mult mai puțin pe request față de o integrare naivă directă cu GPT, și care răspunde specific despre site-ul tău — nu generic despre lume.

Ce urmează

Pipeline-ul descris mai sus reprezintă varianta stabilă actuală a AceEngine. Lucrăm la integrarea unui strat agențial care va permite widget-ului să execute acțiuni mai complexe — nu doar să răspundă, ci să orchestreze mai mulți pași de reasoning înainte de a formula un răspuns.

Dacă vrei să testezi AceEngine pe site-ul tău, poți începe cu planul Basic — gratuit, 500 request-uri/lună, fără card.