LLM-based query decomposer.
Uses the configured LLM to break complex questions into simpler sub-questions.
This is the default decomposer used by Pipeline.decompose/2.
Usage
# With Arcana.Pipeline (uses ctx.llm automatically)
ctx
|> Pipeline.decompose()
|> Pipeline.search()
|> Pipeline.answer()
# Directly
{:ok, sub_questions} = Arcana.Pipeline.Decomposer.LLM.decompose(
"Compare Elixir and Go for web services",
llm: &my_llm/1
)