AI Agents · Lekcja

Silniki zapytań i synteza odpowiedzi

Silniki zapytań koordynują wyszukiwanie i syntezę za pomocą strategii takich jak refine, compact i tree_summarize.

Lekcja 3 z 415 kroki

Silniki zapytań i synteza odpowiedzi to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Silnik zapytań = wyszukiwanie + synteza

Silnik zapytań LlamaIndex ma dwa etapy:

  1. Retrieval — wyszukanie odpowiednich fragmentów
  2. Synthesis — wygenerowanie odpowiedzi na podstawie tych fragmentów

Oba etapy można konfigurować.

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

Tryby odpowiedzi

Sposób, w jaki silnik składa końcową odpowiedź z wyszukanych fragmentów:

  • refine — przekazywanie fragmentów po kolei i stopniowe udoskonalanie odpowiedzi (największa dokładność, najwolniejsze działanie)
  • compact — umieszczenie w kontekście jak największej liczby fragmentów przy każdym wywołaniu (domyślne)
  • tree_summarize — rekurencyjne podsumowywanie
  • simple_summarize — pojedyncze wywołanie ze wszystkimi fragmentami

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

Własne prompty

Można wstrzyknąć własne szablony promptów:

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)

Cytowania

Użyj CitationQueryEngine, aby uzyskać cytowania generowane przez 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}')

Postprocesory

Przed syntezą można ponownie uszeregować wyszukane węzły lub je odfiltrować:

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)

Silnik czatu

Do wieloturowych rozmów z pamięcią:

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

Potoki i przepływy pracy

W przypadku złożonych agentów wykonujących wiele kroków rozwiązanie LlamaIndex Workflows zapewnia sterowany zdarzeniami przepływ w stylu Pythona — podobny w założeniach do LangGraph.

Tryb odpowiedzi

Który tryb odpowiedzi jest najwolniejszy, ale zapewnia największą dokładność?

Podsumowanie

Należy skonfigurować top_k, response_mode, postprocesory i filtry metadanych, aby odpowiednio dostosować silnik zapytań. Do uzyskiwania wiarygodnych odpowiedzi warto używać CitationQueryEngine.

Bezpłatny start

Ucz się AI Agents dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
60
Lekcje
239

Często zadawane pytania

Czy lekcja „Silniki zapytań i synteza odpowiedzi” jest bezpłatna?

Tak — pełny tekst „Silniki zapytań i synteza odpowiedzi” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.

Co nauczysz się w „Silniki zapytań i synteza odpowiedzi”?

Silniki zapytań koordynują wyszukiwanie i syntezę za pomocą strategii takich jak refine, compact i tree_summarize. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Agents?

Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Silniki zapytań i synteza odpowiedzi”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?

Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Loadery i parsery dokumentów
  2. Hierarchia indeksów: wektorowy, drzewa, słów kluczowych
  3. Silniki zapytań i synteza odpowiedzi
  4. Strategia dekompozycji na podzapytania
← Powrót do AI Agents