AI Agents · Урок

Механизмы запросов и синтез ответов

Механизмы запросов координируют извлечение и синтез с помощью стратегий refine, compact и tree_summarize.

Урок 3 из 415 шагов

«Механизмы запросов и синтез ответов» — бесплатный урок AI Agents на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Механизм запросов = извлечение + синтез

Механизм запросов LlamaIndex состоит из двух этапов:

  1. Извлечение — поиск релевантных фрагментов
  2. Синтез — создание ответа на основе этих фрагментов

Оба этапа можно настроить.

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

Режимы ответа

Как механизм собирает итоговый ответ из извлечённых фрагментов:

  • refine — передавать фрагменты по одному и уточнять ответ (наиболее точно, но медленнее всего)
  • compact — помещать в контекст как можно больше фрагментов за один вызов (по умолчанию)
  • tree_summarize — рекурсивное суммирование
  • simple_summarize — один вызов со всеми фрагментами

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

Пользовательские подсказки

Добавляйте собственные шаблоны подсказок:

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)

Цитаты

Используйте CitationQueryEngine, чтобы получать цитаты, сгенерированные 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}')

Постобработчики

Изменяйте порядок или фильтруйте извлечённые узлы перед синтезом:

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 = index.as_chat_engine(chat_mode='context')
response = chat_engine.chat('What is our refund policy?')
followup = chat_engine.chat('And for opened items?')

Конвейеры и рабочие процессы

Для сложных многошаговых агентов рабочие процессы LlamaIndex предоставляют событийный поток в стиле Python — по духу похожий на LangGraph.

Режим ответа

Какой режим ответа работает медленнее всего, но обеспечивает наибольшую точность?

Повторение

Настройте top_k, response_mode, постобработчики и фильтры метаданных, чтобы управлять работой механизма запросов. Используйте CitationQueryEngine для получения ответов, заслуживающих доверия.

Можно начать бесплатно

Изучай AI Agents с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
60
Уроки
239

Часто задаваемые вопросы

Урок «Механизмы запросов и синтез ответов» бесплатный?

Да — полный текст урока «Механизмы запросов и синтез ответов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.

Чему я научусь в уроке «Механизмы запросов и синтез ответов»?

Механизмы запросов координируют извлечение и синтез с помощью стратегий refine, compact и tree_summarize. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Agents?

Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Механизмы запросов и синтез ответов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Agents?

Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Загрузчики и разборщики документов
  2. Иерархия индексов: векторный, древовидный, ключевой
  3. Механизмы запросов и синтез ответов
  4. Стратегия декомпозиции на подвопросы
← Назад к AI Agents