RAGChain Docs
  • Introduction
  • Quick Start
  • Installation
  • RAGchain Structure
    • File Loader
      • Dataset Loader
        • Ko-Strategy-QA Loader
      • Hwp Loader
      • Rust Hwp Loader
      • Win32 Hwp Loader
      • OCR
        • Nougat Loader
        • Mathpix Markdown Loader
        • Deepdoctection Loader
    • Text Spliter
      • Recursive Text Splitter
      • Markdown Header Splitter
      • HTML Header splitter
      • Code splitter
      • Token splitter
    • Retrieval
      • BM25 Retrieval
      • Hybrid Retrieval
      • Hyde Retrieval
      • VectorDB Retrieval
    • LLM
    • DB
      • MongoDB
      • Pickle DB
    • Reranker
      • BM25 Reranker
      • UPR Reranker
      • TART Reranker
      • MonoT5 Reranker
      • LLM Reranker
    • Benchmark
      • Auto Evaluator
      • Dataset Evaluators
        • Qasper
        • Ko-Strategy-QA
        • Strategy-QA
        • ms-marco
  • Utils
    • Query Decomposition
    • Evidence Extractor
    • Embedding
    • Slim Vector Store
      • Pinecone Slim
      • Chroma Slim
    • File Cache
    • Linker
      • Redis Linker
      • Dynamo Linker
      • Json Linker
    • REDE Search Detector
    • Semantic Clustering
  • Pipeline
    • BasicIngestPipeline
    • BasicRunPipeline
    • RerankRunPipeline
    • ViscondeRunPipeline
  • For Advanced RAG
    • Time-Aware RAG
    • Importance-Aware RAG
Powered by GitBook
On this page
  • Overview
  • Usage
  • Initialize
  • Decompose
  1. Utils

Query Decomposition

QueryDecomposition Class Documentation

PreviousUtilsNextEvidence Extractor

Last updated 1 year ago

Overview

The QueryDecomposition class is used to decompose a multi-hop question into multiple single-hop questions using a LLM model. The class uses a default decomposition prompt from the . And default prompt is derived from few-shot prompts from the strategyQA dataset.

Usage

Initialize

To use the QueryDecomposition class, you first need to create an instance of the class.

from RAGchain.utils.query_decompose import QueryDecomposition

decomposer = QueryDecomposition()

You can put additional parameter model_name and api_base for using custom model.

Decompose

After the QueryDecomposition instance has been initialized, you can use the decompose method to decompose a query into multiple single-hop questions. The decompose method takes a query (a string) as input and returns a list of decomposed queries.

query = "Is it legal for a licensed child driving Mercedes-Benz to be employed in US?"
decomposed_queries = decomposer.decompose(query)
print(decomposed_queries)
>>> ["What is the minimum driving age in the US?", "What is the minimum age for someone to be employed in the US?"]

If the input query is not multi-hop question, so it doesn't need any decomposition, it returns empty list.

query = "What is the atomic number of hydrogen?" # it is single-hop question
decomposed_queries = decomposer.decompose(query)
print(len(decomposed_queries))
>>> 0
Visconde paper