Descriere & Utilizare
Dacă întrebi un RAG clasic ‘Care este diferența dintre veniturile din 2024 și cele din 2025?’, o singură căutare vectorială cu această frază poate rata cifrele exacte din ambele rapoarte anuale.
SubQuestionQueryEngine abordează problema ca un analist uman: sparge întrebarea principală într-un plan de sub-întrebări punctuale:
1. ‘Care a fost profitul net în 2024?’ -> trimis către tool_raport_2024
2. ‘Care a fost profitul net în 2025?’ -> trimis către tool_raport_2025
3. ‘Câți angajați erau în 2024 vs 2025?’
După ce primește răspunsurile individuale la toate sub-întrebările, le adună într-un context comun și redactează analiza comparativă completă.
Cum să o reții ușor
💡 Ca un redactor-șef care pregătește un articol comparativ despre două orașe: trimite câte un reporter în fiecare oraș cu o listă clară de întrebări, iar când ambii se întorc cu cifrele, scrie tabelul comparativ.
Opțiuni și parametri tehnici
- Folosește un
QuestionGeneratorbazat pe LLM pentru a emite o listă structurată deSubQuestion(sub_question, tool_name). - Execută toate sub-întrebările asincron în paralel (dacă
use_async=True). - Trimite perechile
(sub-întrebare, răspuns)către sintetizatorul final.
Exemple practice și cazuri de utilizare
- Analiză concurențială: compararea ofertelor tehnice de la 3 furnizori diferiți încărcați în 3 indecși separați.
- Inspecția sub-întrebărilor generate: în consolă (sau în
raspuns.source_nodes) poți vedea exact ce sub-întrebări a gândit modelul.
Sfaturi de configurare & capcane
Pentru că lansează mai multe interogări interne pentru o singură întrebare a utilizatorului, asigură-te că rulezi cu use_async=True pentru ca sub-întrebările să se execute simultan, nu una după alta.
Comenzi și ghiduri înrudite
router-query-engine: Resursă asociată din acest modul.query-engine: Resursă asociată din acest modul.workflows-event-driven: Resursă asociată din acest modul.