Find answers from the community

Updated 3 months ago

When trying to perform queries on

At a glance

The community members are discussing different approaches to performing queries on multiple indices. Some suggest using a SubQuestionQueryEngine and QueryEngineTool for each index, while others recommend creating a Composable Graph Index with all the indices. The discussion highlights that the SubQuestionQueryEngine and RouterQuery engine may not work well with open-source models, and they are considered outdated and unmaintained. The community members suggest using an embedding router, which is more stable, and associating an embedding with each index to implement a search of those embeddings to retrieve the index.

Useful resources
When trying to perform queries on multiple index i've seen there are different approaches. Should I be using a SubQuestionQueryEngine with and QueryEngineTool for every index or make an Composable Graph Index with all the Indices, or maybe both.
L
L
17 comments
id stay away from composable graph

Use sub question query engine and routers imo

Just be careful, both of those only scale to so many indexes (like 10 or so). If you have more, you might have to introduce a step to filter them down using embeddings
They dont fit my usecase, I was looking for a high scale solution.
I thought that by using a composable graph I might look at each index's summary and select based on those, similary on how SummaryIndex works
Any particular reason for staying away from composable graphs?
The problem of using SubQuestionQueryEngine and RouterQuery engine is that they dont work very well with OpenSource models according to this table: https://docs.llamaindex.ai/en/stable/module_guides/models/llms.html#open-source-llms
they are outdated, unmaintained, and about to be removed
yea thats fair --agentic behaviour is hard
There is an embedding router thats a bit more stable
anything that requires parsing outputs is hard for opensource LLMs
I guess my best option is to associate an embedding to each index and implement a search of those emeddings to retrieve the index
yes -- thats what the embeddings router does actually πŸ™‚
Thats the difference between them?
The one you sent uses embeddings and the one I sent uses LLM
Pretty much πŸ™‚
Add a reply
Sign up and join the conversation on Discord