Motorul Conversațional: index.as_chat_engine() în LlamaIndex & Data RAG

Transformă orice index într-un chatbot inteligent cu memorie conversațională, capabil să rezolve pronumele și referințele la întrebările anterioare.

Sintaxă & invocare Python
chat_engine = index.as_chat_engine(
    chat_mode='condense_plus_context',
    system_prompt='Ești un consultant tehnic amabil. Răspunde doar pe baza documentelor.'
)
raspuns = chat_engine.chat('Ce abonamente aveți?')
raspuns2 = chat_engine.chat('Și cât costă cel de-al doilea?')

Descriere & Utilizare

Diferența dintre QueryEngine și ChatEngine este memoria conversației. Dacă în QueryEngine întrebi ‘Ce este produsul X?’ și apoi ‘Cât costă?’, a doua întrebare va eșua deoarece nu știe la ce se referă ‘cât costă’.

În modul recomandat chat_mode='condense_plus_context', ChatEngine face un pas extrem de inteligent: ia istoricul discuției și ultima ta replică (‘Și cât costă cel de-al doilea?’) și le rescrie într-o întrebare de sine stătătoare (‘Care este prețul abonamentului Business menționat anterior?’) înainte de a căuta în baza de date vectorială!

Gestionează automat bufferul de memorie (ChatMemoryBuffer) astfel încât să nu depășească fereastra de context a modelului.

Cum să o reții ușor

💡 Ca diferența dintre un motor de căutare unde fiecare căutare e luată de la zero și un dialog real cu un vânzător din magazin care ține minte despre ce laptop discutai acum 10 secunde.

Opțiuni și parametri tehnici

  • Condensează istoricul de chat + ultimul mesaj într-un query autonom de căutare.
  • Extrage documentele relevante din VectorStoreIndex folosind query-ul condensat.
  • Generează răspunsul final având în prompt atât documentele extrase, cât și istoricul conversației.

Exemple practice și cazuri de utilizare

  • Conversație în regim streaming: streaming_res = chat_engine.stream_chat('Explică-mi mai detaliat primul punct'); streaming_res.print_response_stream()
  • Resetare conversație: chat_engine.reset() (șterge memoria sesiunii curente)

Sfaturi de configurare & capcane

Folosește întotdeauna chat_mode='condense_plus_context' pentru aplicații RAG conversaționale. Este cel mai rapid și mai precis mod din LlamaIndex.

Comenzi și ghiduri înrudite