multi_retrieval_qa.py — langchain Source File
Architecture documentation for multi_retrieval_qa.py, a python file in the langchain codebase. 13 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 32bcbccc_de22_c42f_6744_c974b798be10["multi_retrieval_qa.py"] 2bf6d401_816d_d011_3b05_a6114f55ff58["collections.abc"] 32bcbccc_de22_c42f_6744_c974b798be10 --> 2bf6d401_816d_d011_3b05_a6114f55ff58 feec1ec4_6917_867b_d228_b134d0ff8099["typing"] 32bcbccc_de22_c42f_6744_c974b798be10 --> feec1ec4_6917_867b_d228_b134d0ff8099 e929cf21_6ab8_6ff3_3765_0d35a099a053["langchain_core.language_models"] 32bcbccc_de22_c42f_6744_c974b798be10 --> e929cf21_6ab8_6ff3_3765_0d35a099a053 435e49bf_bb2e_2016_ead7_0afb9d57ad71["langchain_core.prompts"] 32bcbccc_de22_c42f_6744_c974b798be10 --> 435e49bf_bb2e_2016_ead7_0afb9d57ad71 2b1aa4a8_5352_1757_010a_46ac9ef4b0b0["langchain_core.retrievers"] 32bcbccc_de22_c42f_6744_c974b798be10 --> 2b1aa4a8_5352_1757_010a_46ac9ef4b0b0 f85fae70_1011_eaec_151c_4083140ae9e5["typing_extensions"] 32bcbccc_de22_c42f_6744_c974b798be10 --> f85fae70_1011_eaec_151c_4083140ae9e5 b3ba1570_8ee5_0263_3e06_a05d8e20d456["langchain_classic.chains"] 32bcbccc_de22_c42f_6744_c974b798be10 --> b3ba1570_8ee5_0263_3e06_a05d8e20d456 9a0fc770_8c3f_14bc_3c7d_37852927778e["langchain_classic.chains.base"] 32bcbccc_de22_c42f_6744_c974b798be10 --> 9a0fc770_8c3f_14bc_3c7d_37852927778e f3ae3b3c_9ec6_d546_215d_dddc9cc8994f["langchain_classic.chains.conversation.prompt"] 32bcbccc_de22_c42f_6744_c974b798be10 --> f3ae3b3c_9ec6_d546_215d_dddc9cc8994f 11dd537f_b5f1_19b7_2402_50855cce6a61["langchain_classic.chains.retrieval_qa.base"] 32bcbccc_de22_c42f_6744_c974b798be10 --> 11dd537f_b5f1_19b7_2402_50855cce6a61 cd2f5b98_3c65_d887_f1fb_fd465cd36b29["langchain_classic.chains.router.base"] 32bcbccc_de22_c42f_6744_c974b798be10 --> cd2f5b98_3c65_d887_f1fb_fd465cd36b29 5e635a96_a307_6d97_157a_ae0226293ad1["langchain_classic.chains.router.llm_router"] 32bcbccc_de22_c42f_6744_c974b798be10 --> 5e635a96_a307_6d97_157a_ae0226293ad1 aa767e5f_f7f7_a1f4_b3cf_295abf5e48a4["langchain_classic.chains.router.multi_retrieval_prompt"] 32bcbccc_de22_c42f_6744_c974b798be10 --> aa767e5f_f7f7_a1f4_b3cf_295abf5e48a4 style 32bcbccc_de22_c42f_6744_c974b798be10 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Use a single chain to route an input to one of multiple retrieval qa chains."""
from __future__ import annotations
from collections.abc import Mapping
from typing import Any
from langchain_core.language_models import BaseLanguageModel
from langchain_core.prompts import PromptTemplate
from langchain_core.retrievers import BaseRetriever
from typing_extensions import override
from langchain_classic.chains import ConversationChain
from langchain_classic.chains.base import Chain
from langchain_classic.chains.conversation.prompt import DEFAULT_TEMPLATE
from langchain_classic.chains.retrieval_qa.base import BaseRetrievalQA, RetrievalQA
from langchain_classic.chains.router.base import MultiRouteChain
from langchain_classic.chains.router.llm_router import (
LLMRouterChain,
RouterOutputParser,
)
from langchain_classic.chains.router.multi_retrieval_prompt import (
MULTI_RETRIEVAL_ROUTER_TEMPLATE,
)
class MultiRetrievalQAChain(MultiRouteChain):
"""Multi Retrieval QA Chain.
A multi-route chain that uses an LLM router chain to choose amongst retrieval
qa chains.
"""
router_chain: LLMRouterChain
"""Chain for deciding a destination chain and the input to it."""
destination_chains: Mapping[str, BaseRetrievalQA]
"""Map of name to candidate chains that inputs can be routed to."""
default_chain: Chain
"""Default chain to use when router doesn't map input to one of the destinations."""
@property
@override
def output_keys(self) -> list[str]:
return ["result"]
@classmethod
def from_retrievers(
cls,
llm: BaseLanguageModel,
retriever_infos: list[dict[str, Any]],
default_retriever: BaseRetriever | None = None,
default_prompt: PromptTemplate | None = None,
default_chain: Chain | None = None,
*,
default_chain_llm: BaseLanguageModel | None = None,
**kwargs: Any,
) -> MultiRetrievalQAChain:
"""Create a multi retrieval qa chain from an LLM and a default chain.
Args:
// ... (75 more lines)
Domain
Subdomains
Classes
Dependencies
- collections.abc
- langchain_classic.chains
- langchain_classic.chains.base
- langchain_classic.chains.conversation.prompt
- langchain_classic.chains.retrieval_qa.base
- langchain_classic.chains.router.base
- langchain_classic.chains.router.llm_router
- langchain_classic.chains.router.multi_retrieval_prompt
- langchain_core.language_models
- langchain_core.prompts
- langchain_core.retrievers
- typing
- typing_extensions
Source
Frequently Asked Questions
What does multi_retrieval_qa.py do?
multi_retrieval_qa.py is a source file in the langchain codebase, written in python. It belongs to the AgentOrchestration domain, ClassicChains subdomain.
What does multi_retrieval_qa.py depend on?
multi_retrieval_qa.py imports 13 module(s): collections.abc, langchain_classic.chains, langchain_classic.chains.base, langchain_classic.chains.conversation.prompt, langchain_classic.chains.retrieval_qa.base, langchain_classic.chains.router.base, langchain_classic.chains.router.llm_router, langchain_classic.chains.router.multi_retrieval_prompt, and 5 more.
Where is multi_retrieval_qa.py in the architecture?
multi_retrieval_qa.py is located at libs/langchain/langchain_classic/chains/router/multi_retrieval_qa.py (domain: AgentOrchestration, subdomain: ClassicChains, directory: libs/langchain/langchain_classic/chains/router).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free