0Pricing
AI Agents · レッスン

クエリエンジンとレスポンス合成

クエリエンジンが、refine、compact、tree_summarizeなどの戦略で検索と合成を統合します。

「クエリエンジンとレスポンス合成」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

クエリエンジン = 検索 + 生成

LlamaIndex のクエリエンジンには、次の 2 つの段階があります:

  1. Retrieval — 関連するチャンクを検索します
  2. Synthesis — 取得したチャンクから回答を生成します

どちらも設定を変更できます。

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 — チャンクを 1 つずつ渡し、回答を段階的に改善します(最も正確ですが、最も遅くなります)
  • compact — 1 回の呼び出しで、コンテキストに入るだけ多くのチャンクを詰め込みます(デフォルト)
  • tree_summarize — 再帰的に要約します
  • simple_summarize — すべてのチャンクを 1 回の呼び出しで処理します

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 Workflows が Python らしいイベント駆動のフローを提供します。考え方としては LangGraph に似ています。

レスポンスモード

最も遅い一方で、最も正確なレスポンスモードはどれでしょうか。

復習

top_k、response_mode、後処理、メタデータフィルターを設定して、クエリエンジンの動作を調整します。信頼できる回答には CitationQueryEngine を使います。

よくある質問

「クエリエンジンとレスポンス合成」レッスンは無料ですか?

はい。「クエリエンジンとレスポンス合成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。

「クエリエンジンとレスポンス合成」で何を学びますか?

クエリエンジンが、refine、compact、tree_summarizeなどの戦略で検索と合成を統合します。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

AI Agentsを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「クエリエンジンとレスポンス合成」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAI Agentsレッスンでコードを書いて実行できますか?

はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ドキュメントローダーとパーサー
  2. インデックス階層:ベクトル、ツリー、キーワード
  3. クエリエンジンとレスポンス合成
  4. サブクエリ分解戦略
← AI Agentsに戻る