0Pricing
AI Agents · Lezione

Motori di query e sintesi delle risposte

I motori di query orchestrano retrieval e sintesi con strategie come refine, compact e tree_summarize.

Motori di query e sintesi delle risposte è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Query Engine = recupero + sintesi

Un query engine di LlamaIndex ha due fasi:

  1. Recupero — trova i blocchi pertinenti
  2. Sintesi — genera una risposta a partire da tali blocchi

Entrambe le fasi sono configurabili.

The Default Query Engine

query_engine = index.as_query_engine()
response = query_engine.query('What is our refund policy?')
print(response.response)         # the answer
print(response.source_nodes)     # the chunks used

Modalità di risposta

Indicano come il motore assembla la risposta finale a partire dai blocchi recuperati:

  • refine — elabora i blocchi uno alla volta, perfezionando la risposta (più accurata, ma anche più lenta)
  • compact — inserisce nel contesto il maggior numero possibile di blocchi per chiamata (predefinita)
  • tree_summarize — sintesi ricorsiva
  • simple_summarize — una singola chiamata con tutti i blocchi

Setting Response Mode

query_engine = index.as_query_engine(response_mode='tree_summarize')

Configuring Retrieval

query_engine = index.as_query_engine(
    similarity_top_k=5,
    response_mode='compact'
)

Prompt personalizzati

Inserite i vostri template di prompt:

from llama_index.core.prompts import PromptTemplate

qa_template = PromptTemplate(
    'Context:\n{context_str}\n\nQuestion: {query_str}\nAnswer:'
)
query_engine.update_prompts({'response_synthesizer:text_qa_template': qa_template})

Streaming Responses

query_engine = index.as_query_engine(streaming=True)
response = query_engine.query('Hello')
for token in response.response_gen:
    print(token, end='', flush=True)

Citazioni

Usate CitationQueryEngine per ottenere citazioni generate dall'LLM:

from llama_index.core.query_engine import CitationQueryEngine

engine = CitationQueryEngine.from_args(index, similarity_top_k=4)
response = engine.query('What is our refund policy?')
print(response.response)
for i, node in enumerate(response.source_nodes):
    print(f'[{i+1}] {node.metadata}')

Post-processori

Riordinate o filtrate i nodi recuperati prima della sintesi:

from llama_index.postprocessor.cohere_rerank import CohereRerank

rerank = CohereRerank(api_key=COHERE_KEY, top_n=3)
query_engine = index.as_query_engine(
    similarity_top_k=20,           # retrieve 20
    node_postprocessors=[rerank]   # rerank to top 3
)

Metadata Filters

from llama_index.core.vector_stores import MetadataFilters, ExactMatchFilter

filters = MetadataFilters(filters=[
    ExactMatchFilter(key='department', value='engineering')
])
query_engine = index.as_query_engine(filters=filters)

Async Queries

response = await query_engine.aquery('What is our refund policy?')
print(response.response)

Chat Engine

Per conversazioni a più turni dotate di memoria:

chat_engine = index.as_chat_engine(chat_mode='context')
response = chat_engine.chat('What is our refund policy?')
followup = chat_engine.chat('And for opened items?')

Pipeline e workflow

Per agenti complessi composti da più passaggi, i Workflows di LlamaIndex offrono un flusso basato su eventi, in stile Python, simile nello spirito a LangGraph.

Modalità di risposta

Quale modalità di risposta è la più lenta, ma anche la più accurata?

Riepilogo

Configurate top_k, response_mode, i post-processori e i filtri dei metadati per adattare il vostro query engine. Usate CitationQueryEngine per ottenere risposte affidabili.

Domande Frequenti

La lezione «Motori di query e sintesi delle risposte» è gratuita?

Sì — il testo completo di «Motori di query e sintesi delle risposte» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.

Cosa imparerò in «Motori di query e sintesi delle risposte»?

I motori di query orchestrano retrieval e sintesi con strategie come refine, compact e tree_summarize. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare AI Agents?

Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Motori di query e sintesi delle risposte»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione AI Agents?

Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Loader e parser di documenti
  2. La gerarchia degli indici: vettoriale, ad albero, per parole chiave
  3. Motori di query e sintesi delle risposte
  4. Strategia di scomposizione in sotto-domande
← Torna a AI Agents