Prev Next

AI / LlamaIndex Interview Questions

Explain the difference between the low-level composition API and the high-level API in LlamaIndex?

The high-level API is the one-liner style most tutorials use: VectorStoreIndex.from_documents(documents) followed by index.as_query_engine(). It picks sensible defaults for the node parser, retriever, and synthesizer automatically, which is great for getting started quickly.

The low-level composition API exposes each of those pieces as objects you construct and wire together yourself: building an IngestionPipeline with explicit transformations, constructing a retriever directly with custom parameters, choosing a specific response synthesizer, and combining them into a query engine by hand rather than through as_query_engine().

from llama_index.core.retrievers import VectorIndexRetriever
from llama_index.core.query_engine import RetrieverQueryEngine
from llama_index.core.response_synthesizers import get_response_synthesizer

retriever = VectorIndexRetriever(index=index, similarity_top_k=8)
synthesizer = get_response_synthesizer(response_mode="tree_summarize")
query_engine = RetrieverQueryEngine(retriever=retriever, response_synthesizer=synthesizer)

You reach for the low-level API when the defaults genuinely don't fit: custom retrieval logic that combines multiple retrievers, a bespoke ordering of postprocessors, or swapping in components the high-level constructors don't expose parameters for. Most production systems end up using a mix, starting from high-level defaults and dropping to the low-level API only where customization is actually needed.

The high-level API is best characterized as:
You would reach for the low-level composition API when:

More Related questions...

What is LlamaIndex? What is the purpose of LlamaIndex in a RAG pipeline? What are Documents and Nodes in LlamaIndex? What is a VectorStoreIndex? What are the types of indices in LlamaIndex? What is a query engine in LlamaIndex? What is a retriever in LlamaIndex? What is a response synthesizer? What is Settings in LlamaIndex? What is a node parser or text splitter in LlamaIndex? How do you use SimpleDirectoryReader? What is LlamaHub? Describe the ingestion pipeline in LlamaIndex? What is a chat engine in LlamaIndex? What are the response modes available in LlamaIndex query engines? What is the difference between VectorStoreIndex and SummaryIndex? How does similarity_top_k affect retrieval? What is the difference between a query engine and a chat engine? How do node postprocessors work in LlamaIndex? Why should you use metadata filtering in retrieval? What is the difference between refine and compact response modes? How does the SubQuestionQueryEngine work? What is a RouterQueryEngine and when would you use it? Why is chunk size important in LlamaIndex? How do you persist and reload an index in LlamaIndex? What is the difference between LlamaIndex and LangChain? How does the SentenceWindowNodeParser improve retrieval quality? When should you use auto-merging retrieval? What is HyDE and how does it help retrieval? How do you integrate a custom vector store like Pinecone or Chroma with LlamaIndex? What is the difference between ReActAgent and FunctionCallingAgent? How does LlamaIndex support structured data querying such as SQL? Why use CohereRerank or LLMRerank as a node postprocessor? What is the role of the CallbackManager in LlamaIndex? How do you evaluate a LlamaIndex RAG pipeline for faithfulness? Explain the execution flow of a query in a VectorStoreIndex-based query engine? Explain the internal working of the IngestionPipeline caching mechanism? Explain the lifecycle of a Node from Document to retrieval? What is the difference between PropertyGraphIndex and KnowledgeGraphIndex? How can you optimize token usage and cost in a large-scale LlamaIndex deployment? Explain the internal working of AgentWorkflow and event-driven workflows in LlamaIndex? How do you troubleshoot poor retrieval relevance in a LlamaIndex application? What happens internally when you call index.as_query_engine()? How does LlamaIndex handle asynchronous querying at scale? Explain the difference between the low-level composition API and the high-level API in LlamaIndex? Why doesn't increasing similarity_top_k always improve answer quality? How do you design a hybrid search system combining vector and keyword retrieval in LlamaIndex? Explain the internal working of tree_summarize response synthesis? How would you architect a multi-tenant LlamaIndex application with metadata filtering per tenant? Which is better and why: sentence-window retrieval vs auto-merging retrieval for long documents?
Show more question and Answers...


Comments & Discussions