code: """Functionality for loading chains."""
  import json
  from pathlib import Path
  from typing import Any, Union
  
  import yaml
  
  from langchain.chains.api.base import APIChain
  from langchain.chains.base import Chain
  from langchain.chains.combine_documents.map_reduce import MapReduceDocumentsChain
  from langchain.chains.combine_documents.map_rerank import MapRerankDocumentsChain
  from langchain.chains.combine_documents.refine import RefineDocumentsChain
  from langchain.chains.combine_documents.stuff import StuffDocumentsChain
  from langchain.chains.hyde.base import HypotheticalDocumentEmbedder
  from langchain.chains.llm import LLMChain
  from langchain.chains.llm_bash.base import LLMBashChain
  from langchain.chains.llm_checker.base import LLMCheckerChain
  from langchain.chains.llm_math.base import LLMMathChain
  from langchain.chains.llm_requests import LLMRequestsChain
  from langchain.chains.pal.base import PALChain
  from langchain.chains.qa_with_sources.base import QAWithSourcesChain
  from langchain.chains.qa_with_sources.vector_db import VectorDBQAWithSourcesChain
  from langchain.chains.sql_database.base import SQLDatabaseChain
  from langchain.chains.vector_db_qa.base import VectorDBQA
  from langchain.llms.loading import load_llm, load_llm_from_config
  from langchain.prompts.loading import load_prompt, load_prompt_from_config
  from langchain.utilities.loading import try_load_from_hub
  
  URL_BASE = "https://raw.githubusercontent.com/hwchase17/langchain-hub/master/chains/"
  
  
  def _load_llm_chain(config: dict, **kwargs: Any) -> LLMChain:
      """Load LLM chain from config dict."""
      if "llm" in config:
          llm_config = config.pop("llm")
          llm = load_llm_from_config(llm_config)
      elif "llm_path" in config:
          llm = load_llm(config.pop("llm_path"))
      else:
          raise ValueError("One of `llm` or `llm_path` must be present.")
  
      if "prompt" in config:
          prompt_config = config.pop("prompt")
          prompt = load_prompt_from_config(prompt_config)
      elif "prompt_path" in config:
          prompt = load_prompt(config.pop("prompt_path"))
      else:
          raise ValueError("One of `prompt` or `prompt_path` must be present.")
  
      return LLMChain(llm=llm, prompt=prompt, **config)
  
  
  def _load_hyde_chain(config: dict, **kwargs: Any) -> HypotheticalDocumentEmbedder:
      """Load hypothetical document embedder chain from config dict."""
      if "llm_chain" in config:
          llm_chain_config = config.pop("llm_chain")
          llm_chain = load_chain_from_config(llm_chain_config)
      elif "llm_chain_path" in config:
          llm_chain = load_chain(config.pop("llm_chain_path"))
      else:
          raise ValueError("One of `llm_chain` or `llm_chain_path` must be present.")
      if "embeddings" in kwargs:
          embeddings = kwargs.pop("embeddings")
      else:
          raise ValueError("`embeddings` must be present.")
      return HypotheticalDocumentEmbedder(
          llm_chain=llm_chain, base_embeddings=embeddings, **config
      )
  
  
  def _load_stuff_documents_chain(config: dict, **kwargs: Any) -> StuffDocumentsChain:
      if "llm_chain" in config:
          llm_chain_config = config.pop("llm_chain")
          llm_chain = load_chain_from_config(llm_chain_config)
      elif "llm_chain_path" in config:
          llm_chain = load_chain(config.pop("llm_chain_path"))
      else:
          raise ValueError("One of `llm_chain` or `llm_chain_config` must be present.")
  
      if not isinstance(llm_chain, LLMChain):
          raise ValueError(f"Expected LLMChain, got {llm_chain}")
  
      if "document_prompt" in config:
          prompt_config = config.pop("document_prompt")
          document_prompt = load_prompt_from_config(prompt_config)
      elif "document_prompt_path" in config:
          document_prompt = load_prompt(config.pop("document_prompt_path"))
      else:
          raise ValueError(
              "One of `document_prompt` or `document_prompt_path` must be present."
          )
  
      return StuffDocumentsChain(
          llm_chain=llm_chain, document_prompt=document_prompt, **config
      )
  
  
  def _load_map_reduce_documents_chain(
      config: dict, **kwargs: Any
  ) -> MapReduceDocumentsChain:
      if "llm_chain" in config:
          llm_chain_config = config.pop("llm_chain")
          llm_chain = load_chain_from_config(llm_chain_config)
      elif "llm_chain_path" in config:
          llm_chain = load_chain(config.pop("llm_chain_path"))
      else:
          raise ValueError("One of `llm_chain` or `llm_chain_config` must be present.")
  
      if not isinstance(llm_chain, LLMChain):
          raise ValueError(f"Expected LLMChain, got {llm_chain}")
  
      if "combine_document_chain" in config:
          combine_document_chain_config = config.pop("combine_document_chain")
          combine_document_chain = load_chain_from_config(combine_document_chain_config)
      elif "combine_document_chain_path" in config:
          combine_document_chain = load_chain(config.pop("combine_document_chain_path"))
      else:
          raise ValueError(
              "One of `combine_document_chain` or "
              "`combine_document_chain_path` must be present."
          )
      if "collapse_document_chain" in config:
          collapse_document_chain_config = config.pop("collapse_document_chain")
          if collapse_document_chain_config is None:
              collapse_document_chain = None
          else:
              collapse_document_chain = load_chain_from_config(
                  collapse_document_chain_config
              )
      elif "collapse_document_chain_path" in config:
          collapse_document_chain = load_chain(config.pop("collapse_document_chain_path"))
      return MapReduceDocumentsChain(
          llm_chain=llm_chain,
          combine_document_chain=combine_document_chain,
          collapse_document_chain=collapse_document_chain,
          **config,
      )
  
  
  def _load_llm_bash_chain(config: dict, **kwargs: Any) -> LLMBashChain:
      if "llm" in config:
          llm_config = config.pop("llm")
          llm = load_llm_from_config(llm_config)
      elif "llm_path" in config:
          llm = load_llm(config.pop("llm_path"))
      else:
          raise ValueError("One of `llm` or `llm_path` must be present.")
      if "prompt" in config:
          prompt_config = config.pop("prompt")
          prompt = load_prompt_from_config(prompt_config)
      elif "prompt_path" in config:
          prompt = load_prompt(config.pop("prompt_path"))
      return LLMBashChain(llm=llm, prompt=prompt, **config)
  
  
  def _load_llm_checker_chain(config: dict, **kwargs: Any) -> LLMCheckerChain:
      if "llm" in config:
          llm_config = config.pop("llm")
          llm = load_llm_from_config(llm_config)
      elif "llm_path" in config:
          llm = load_llm(config.pop("llm_path"))
      else:
          raise ValueError("One of `llm` or `llm_path` must be present.")
      if "create_draft_answer_prompt" in config:
          create_draft_answer_prompt_config = config.pop("create_draft_answer_prompt")
          create_draft_answer_prompt = load_prompt_from_config(
              create_draft_answer_prompt_config
          )
      elif "create_draft_answer_prompt_path" in config:
          create_draft_answer_prompt = load_prompt(
              config.pop("create_draft_answer_prompt_path")
          )
      if "list_assertions_prompt" in config:
          list_assertions_prompt_config = config.pop("list_assertions_prompt")
          list_assertions_prompt = load_prompt_from_config(list_assertions_prompt_config)
      elif "list_assertions_prompt_path" in config:
          list_assertions_prompt = load_prompt(config.pop("list_assertions_prompt_path"))
      if "check_assertions_prompt" in config:
          check_assertions_prompt_config = config.pop("check_assertions_prompt")
          check_assertions_prompt = load_prompt_from_config(
              check_assertions_prompt_config
          )
      elif "check_assertions_prompt_path" in config:
          check_assertions_prompt = load_prompt(
              config.pop("check_assertions_prompt_path")
          )
      if "revised_answer_prompt" in config:
          revised_answer_prompt_config = config.pop("revised_answer_prompt")
          revised_answer_prompt = load_prompt_from_config(revised_answer_prompt_config)
      elif "revised_answer_prompt_path" in config:
          revised_answer_prompt = load_prompt(config.pop("revised_answer_prompt_path"))
      return LLMCheckerChain(
          llm=llm,
          create_draft_answer_prompt=create_draft_answer_prompt,
          list_assertions_prompt=list_assertions_prompt,
          check_assertions_prompt=check_assertions_prompt,
          revised_answer_prompt=revised_answer_prompt,
          **config,
      )
  
  
  def _load_llm_math_chain(config: dict, **kwargs: Any) -> LLMMathChain:
      if "llm" in config:
          llm_config = config.pop("llm")
          llm = load_llm_from_config(llm_config)
      elif "llm_path" in config:
          llm = load_llm(config.pop("llm_path"))
      else:
          raise ValueError("One of `llm` or `llm_path` must be present.")
      if "prompt" in config:
          prompt_config = config.pop("prompt")
          prompt = load_prompt_from_config(prompt_config)
      elif "prompt_path" in config:
          prompt = load_prompt(config.pop("prompt_path"))
      return LLMMathChain(llm=llm, prompt=prompt, **config)
  
  
  def _load_map_rerank_documents_chain(
      config: dict, **kwargs: Any
  ) -> MapRerankDocumentsChain:
      if "llm_chain" in config:
          llm_chain_config = config.pop("llm_chain")
          llm_chain = load_chain_from_config(llm_chain_config)
      elif "llm_chain_path" in config:
          llm_chain = load_chain(config.pop("llm_chain_path"))
      else:
          raise ValueError("One of `llm_chain` or `llm_chain_config` must be present.")
      return MapRerankDocumentsChain(llm_chain=llm_chain, **config)
  
  
  def _load_pal_chain(config: dict, **kwargs: Any) -> PALChain:
      if "llm" in config:
          llm_config = config.pop("llm")
          llm = load_llm_from_config(llm_config)
      elif "llm_path" in config:
          llm = load_llm(config.pop("llm_path"))
      else:
          raise ValueError("One of `llm` or `llm_path` must be present.")
      if "prompt" in config:
          prompt_config = config.pop("prompt")
          prompt = load_prompt_from_config(prompt_config)
      elif "prompt_path" in config:
          prompt = load_prompt(config.pop("prompt_path"))
      else:
          raise ValueError("One of `prompt` or `prompt_path` must be present.")
      return PALChain(llm=llm, prompt=prompt, **config)
  
  
  def _load_refine_documents_chain(config: dict, **kwargs: Any) -> RefineDocumentsChain:
      if "initial_llm_chain" in config:
          initial_llm_chain_config = config.pop("initial_llm_chain")
          initial_llm_chain = load_chain_from_config(initial_llm_chain_config)
      elif "initial_llm_chain_path" in config:
          initial_llm_chain = load_chain(config.pop("initial_llm_chain_path"))
      else:
          raise ValueError(
              "One of `initial_llm_chain` or `initial_llm_chain_config` must be present."
          )
      if "refine_llm_chain" in config:
          refine_llm_chain_config = config.pop("refine_llm_chain")
          refine_llm_chain = load_chain_from_config(refine_llm_chain_config)
      elif "refine_llm_chain_path" in config:
          refine_llm_chain = load_chain(config.pop("refine_llm_chain_path"))
      else:
          raise ValueError(
              "One of `refine_llm_chain` or `refine_llm_chain_config` must be present."
          )
      if "document_prompt" in config:
          prompt_config = config.pop("document_prompt")
          document_prompt = load_prompt_from_config(prompt_config)
      elif "document_prompt_path" in config:
          document_prompt = load_prompt(config.pop("document_prompt_path"))
      return RefineDocumentsChain(
          initial_llm_chain=initial_llm_chain,
          refine_llm_chain=refine_llm_chain,
          document_prompt=document_prompt,
          **config,
      )
  
  
  def _load_qa_with_sources_chain(config: dict, **kwargs: Any) -> QAWithSourcesChain:
      if "combine_documents_chain" in config:
          combine_documents_chain_config = config.pop("combine_documents_chain")
          combine_documents_chain = load_chain_from_config(combine_documents_chain_config)
      elif "combine_documents_chain_path" in config:
          combine_documents_chain = load_chain(config.pop("combine_documents_chain_path"))
      else:
          raise ValueError(
              "One of `combine_documents_chain` or "
              "`combine_documents_chain_path` must be present."
          )
      return QAWithSourcesChain(combine_documents_chain=combine_documents_chain, **config)
  
  
  def _load_sql_database_chain(config: dict, **kwargs: Any) -> SQLDatabaseChain:
      if "database" in kwargs:
          database = kwargs.pop("database")
      else:
          raise ValueError("`database` must be present.")
      if "llm" in config:
          llm_config = config.pop("llm")
          llm = load_llm_from_config(llm_config)
      elif "llm_path" in config:
          llm = load_llm(config.pop("llm_path"))
      else:
          raise ValueError("One of `llm` or `llm_path` must be present.")
      if "prompt" in config:
          prompt_config = config.pop("prompt")
          prompt = load_prompt_from_config(prompt_config)
      return SQLDatabaseChain(database=database, llm=llm, prompt=prompt, **config)
  
  
  def _load_vector_db_qa_with_sources_chain(
      config: dict, **kwargs: Any
  ) -> VectorDBQAWithSourcesChain:
      if "vectorstore" in kwargs:
          vectorstore = kwargs.pop("vectorstore")
      else:
          raise ValueError("`vectorstore` must be present.")
      if "combine_documents_chain" in config:
          combine_documents_chain_config = config.pop("combine_documents_chain")
          combine_documents_chain = load_chain_from_config(combine_documents_chain_config)
      elif "combine_documents_chain_path" in config:
          combine_documents_chain = load_chain(config.pop("combine_documents_chain_path"))
      else:
          raise ValueError(
              "One of `combine_documents_chain` or "
              "`combine_documents_chain_path` must be present."
          )
      return VectorDBQAWithSourcesChain(
          combine_documents_chain=combine_documents_chain,
          vectorstore=vectorstore,
          **config,
      )
  
  
  def _load_vector_db_qa(config: dict, **kwargs: Any) -> VectorDBQA:
      if "vectorstore" in kwargs:
          vectorstore = kwargs.pop("vectorstore")
      else:
          raise ValueError("`vectorstore` must be present.")
      if "combine_documents_chain" in config:
          combine_documents_chain_config = config.pop("combine_documents_chain")
          combine_documents_chain = load_chain_from_config(combine_documents_chain_config)
      elif "combine_documents_chain_path" in config:
          combine_documents_chain = load_chain(config.pop("combine_documents_chain_path"))
      else:
          raise ValueError(
              "One of `combine_documents_chain` or "
              "`combine_documents_chain_path` must be present."
          )
      return VectorDBQA(
          combine_documents_chain=combine_documents_chain,
          vectorstore=vectorstore,
          **config,
      )
  
  
  def _load_api_chain(config: dict, **kwargs: Any) -> APIChain:
      if "api_request_chain" in config:
          api_request_chain_config = config.pop("api_request_chain")
          api_request_chain = load_chain_from_config(api_request_chain_config)
      elif "api_request_chain_path" in config:
          api_request_chain = load_chain(config.pop("api_request_chain_path"))
      else:
          raise ValueError(
              "One of `api_request_chain` or `api_request_chain_path` must be present."
          )
      if "api_answer_chain" in config:
          api_answer_chain_config = config.pop("api_answer_chain")
          api_answer_chain = load_chain_from_config(api_answer_chain_config)
      elif "api_answer_chain_path" in config:
          api_answer_chain = load_chain(config.pop("api_answer_chain_path"))
      else:
          raise ValueError(
              "One of `api_answer_chain` or `api_answer_chain_path` must be present."
          )
      if "requests_wrapper" in kwargs:
          requests_wrapper = kwargs.pop("requests_wrapper")
      else:
          raise ValueError("`requests_wrapper` must be present.")
      return APIChain(
          api_request_chain=api_request_chain,
          api_answer_chain=api_answer_chain,
          requests_wrapper=requests_wrapper,
          **config,
      )
  
  
  def _load_llm_requests_chain(config: dict, **kwargs: Any) -> LLMRequestsChain:
      if "llm_chain" in config:
          llm_chain_config = config.pop("llm_chain")
          llm_chain = load_chain_from_config(llm_chain_config)
      elif "llm_chain_path" in config:
          llm_chain = load_chain(config.pop("llm_chain_path"))
      else:
          raise ValueError("One of `llm_chain` or `llm_chain_path` must be present.")
      if "requests_wrapper" in kwargs:
          requests_wrapper = kwargs.pop("requests_wrapper")
          return LLMRequestsChain(
              llm_chain=llm_chain, requests_wrapper=requests_wrapper, **config
          )
      else:
          return LLMRequestsChain(llm_chain=llm_chain, **config)
  
  
  type_to_loader_dict = {
      "api_chain": _load_api_chain,
      "hyde_chain": _load_hyde_chain,
      "llm_chain": _load_llm_chain,
      "llm_bash_chain": _load_llm_bash_chain,
      "llm_checker_chain": _load_llm_checker_chain,
      "llm_math_chain": _load_llm_math_chain,
      "llm_requests_chain": _load_llm_requests_chain,
      "pal_chain": _load_pal_chain,
      "qa_with_sources_chain": _load_qa_with_sources_chain,
      "stuff_documents_chain": _load_stuff_documents_chain,
      "map_reduce_documents_chain": _load_map_reduce_documents_chain,
      "map_rerank_documents_chain": _load_map_rerank_documents_chain,
      "refine_documents_chain": _load_refine_documents_chain,
      "sql_database_chain": _load_sql_database_chain,
      "vector_db_qa_with_sources_chain": _load_vector_db_qa_with_sources_chain,
      "vector_db_qa": _load_vector_db_qa,
  }
  
  
  def load_chain_from_config(config: dict, **kwargs: Any) -> Chain:
      """Load chain from Config Dict."""
      if "_type" not in config:
          raise ValueError("Must specify a chain Type in config")
      config_type = config.pop("_type")
  
      if config_type not in type_to_loader_dict:
          raise ValueError(f"Loading {config_type} chain not supported")
  
      chain_loader = type_to_loader_dict[config_type]
      return chain_loader(config, **kwargs)
  
  
  def load_chain(path: Union[str, Path], **kwargs: Any) -> Chain:
      """Unified method for loading a chain from LangChainHub or local fs."""
      if hub_result := try_load_from_hub(
          path, _load_chain_from_file, "chains", {"json", "yaml"}, **kwargs
      ):
          return hub_result
      else:
          return _load_chain_from_file(path, **kwargs)
  
  
  def _load_chain_from_file(file: Union[str, Path], **kwargs: Any) -> Chain:
      """Load chain from file."""
      # Convert file to Path object.
      if isinstance(file, str):
          file_path = Path(file)
      else:
          file_path = file
      # Load from either json or yaml.
      if file_path.suffix == ".json":
          with open(file_path) as f:
              config = json.load(f)
      elif file_path.suffix == ".yaml":
          with open(file_path, "r") as f:
              config = yaml.safe_load(f)
      else:
          raise ValueError("File type must be json or yaml")
  
      # Override default 'verbose' and 'memory' for the chain
      if "verbose" in kwargs:
          config["verbose"] = kwargs.pop("verbose")
      if "memory" in kwargs:
          config["memory"] = kwargs.pop("memory")
  
      # Load the chain from the config now.
      return load_chain_from_config(config, **kwargs)
  
apis: langchain.chains.llm.LLMChain langchain.chains.qa_with_sources.base.QAWithSourcesChain langchain.chains.api.base.APIChain langchain.chains.qa_with_sources.vector_db.VectorDBQAWithSourcesChain langchain.chains.hyde.base.HypotheticalDocumentEmbedder langchain.chains.pal.base.PALChain langchain.utilities.loading.try_load_from_hub langchain.chains.combine_documents.map_reduce.MapReduceDocumentsChain langchain.chains.llm_requests.LLMRequestsChain langchain.chains.combine_documents.stuff.StuffDocumentsChain langchain.chains.combine_documents.refine.RefineDocumentsChain langchain.chains.vector_db_qa.base.VectorDBQA langchain.prompts.loading.load_prompt_from_config langchain.chains.llm_bash.base.LLMBashChain langchain.chains.llm_math.base.LLMMathChain langchain.chains.combine_documents.map_rerank.MapRerankDocumentsChain langchain.chains.sql_database.base.SQLDatabaseChain langchain.llms.loading.load_llm_from_config langchain.chains.llm_checker.base.LLMCheckerChain
extract_api: [((2165, 2207), 'langchain.chains.llm.LLMChain', 'LLMChain', ([], {'llm': 'llm', 'prompt': 'prompt'}), '(llm=llm, prompt=prompt, **config)\n', (2173, 2207), False, 'from langchain.chains.llm import LLMChain\n'), ((2853, 2945), 'langchain.chains.hyde.base.HypotheticalDocumentEmbedder', 'HypotheticalDocumentEmbedder', ([], {'llm_chain': 'llm_chain', 'base_embeddings': 'embeddings'}), '(llm_chain=llm_chain, base_embeddings=\n    embeddings, **config)\n', (2881, 2945), False, 'from langchain.chains.hyde.base import HypotheticalDocumentEmbedder\n'), ((3900, 3987), 'langchain.chains.combine_documents.stuff.StuffDocumentsChain', 'StuffDocumentsChain', ([], {'llm_chain': 'llm_chain', 'document_prompt': 'document_prompt'}), '(llm_chain=llm_chain, document_prompt=document_prompt,\n    **config)\n', (3919, 3987), False, 'from langchain.chains.combine_documents.stuff import StuffDocumentsChain\n'), ((5552, 5711), 'langchain.chains.combine_documents.map_reduce.MapReduceDocumentsChain', 'MapReduceDocumentsChain', ([], {'llm_chain': 'llm_chain', 'combine_document_chain': 'combine_document_chain', 'collapse_document_chain': 'collapse_document_chain'}), '(llm_chain=llm_chain, combine_document_chain=\n    combine_document_chain, collapse_document_chain=collapse_document_chain,\n    **config)\n', (5575, 5711), False, 'from langchain.chains.combine_documents.map_reduce import MapReduceDocumentsChain\n'), ((6314, 6360), 'langchain.chains.llm_bash.base.LLMBashChain', 'LLMBashChain', ([], {'llm': 'llm', 'prompt': 'prompt'}), '(llm=llm, prompt=prompt, **config)\n', (6326, 6360), False, 'from langchain.chains.llm_bash.base import LLMBashChain\n'), ((8225, 8469), 'langchain.chains.llm_checker.base.LLMCheckerChain', 'LLMCheckerChain', ([], {'llm': 'llm', 'create_draft_answer_prompt': 'create_draft_answer_prompt', 'list_assertions_prompt': 'list_assertions_prompt', 'check_assertions_prompt': 'check_assertions_prompt', 'revised_answer_prompt': 'revised_answer_prompt'}), '(llm=llm, create_draft_answer_prompt=\n    create_draft_answer_prompt, list_assertions_prompt=\n    list_assertions_prompt, check_assertions_prompt=check_assertions_prompt,\n    revised_answer_prompt=revised_answer_prompt, **config)\n', (8240, 8469), False, 'from langchain.chains.llm_checker.base import LLMCheckerChain\n'), ((9083, 9129), 'langchain.chains.llm_math.base.LLMMathChain', 'LLMMathChain', ([], {'llm': 'llm', 'prompt': 'prompt'}), '(llm=llm, prompt=prompt, **config)\n', (9095, 9129), False, 'from langchain.chains.llm_math.base import LLMMathChain\n'), ((9579, 9633), 'langchain.chains.combine_documents.map_rerank.MapRerankDocumentsChain', 'MapRerankDocumentsChain', ([], {'llm_chain': 'llm_chain'}), '(llm_chain=llm_chain, **config)\n', (9602, 9633), False, 'from langchain.chains.combine_documents.map_rerank import MapRerankDocumentsChain\n'), ((10285, 10327), 'langchain.chains.pal.base.PALChain', 'PALChain', ([], {'llm': 'llm', 'prompt': 'prompt'}), '(llm=llm, prompt=prompt, **config)\n', (10293, 10327), False, 'from langchain.chains.pal.base import PALChain\n'), ((11566, 11706), 'langchain.chains.combine_documents.refine.RefineDocumentsChain', 'RefineDocumentsChain', ([], {'initial_llm_chain': 'initial_llm_chain', 'refine_llm_chain': 'refine_llm_chain', 'document_prompt': 'document_prompt'}), '(initial_llm_chain=initial_llm_chain, refine_llm_chain=\n    refine_llm_chain, document_prompt=document_prompt, **config)\n', (11586, 11706), False, 'from langchain.chains.combine_documents.refine import RefineDocumentsChain\n'), ((12349, 12426), 'langchain.chains.qa_with_sources.base.QAWithSourcesChain', 'QAWithSourcesChain', ([], {'combine_documents_chain': 'combine_documents_chain'}), '(combine_documents_chain=combine_documents_chain, **config)\n', (12367, 12426), False, 'from langchain.chains.qa_with_sources.base import QAWithSourcesChain\n'), ((13054, 13123), 'langchain.chains.sql_database.base.SQLDatabaseChain', 'SQLDatabaseChain', ([], {'database': 'database', 'llm': 'llm', 'prompt': 'prompt'}), '(database=database, llm=llm, prompt=prompt, **config)\n', (13070, 13123), False, 'from langchain.chains.sql_database.base import SQLDatabaseChain\n'), ((13905, 14019), 'langchain.chains.qa_with_sources.vector_db.VectorDBQAWithSourcesChain', 'VectorDBQAWithSourcesChain', ([], {'combine_documents_chain': 'combine_documents_chain', 'vectorstore': 'vectorstore'}), '(combine_documents_chain=combine_documents_chain,\n    vectorstore=vectorstore, **config)\n', (13931, 14019), False, 'from langchain.chains.qa_with_sources.vector_db import VectorDBQAWithSourcesChain\n'), ((14787, 14886), 'langchain.chains.vector_db_qa.base.VectorDBQA', 'VectorDBQA', ([], {'combine_documents_chain': 'combine_documents_chain', 'vectorstore': 'vectorstore'}), '(combine_documents_chain=combine_documents_chain, vectorstore=\n    vectorstore, **config)\n', (14797, 14886), False, 'from langchain.chains.vector_db_qa.base import VectorDBQA\n'), ((16019, 16149), 'langchain.chains.api.base.APIChain', 'APIChain', ([], {'api_request_chain': 'api_request_chain', 'api_answer_chain': 'api_answer_chain', 'requests_wrapper': 'requests_wrapper'}), '(api_request_chain=api_request_chain, api_answer_chain=\n    api_answer_chain, requests_wrapper=requests_wrapper, **config)\n', (16027, 16149), False, 'from langchain.chains.api.base import APIChain\n'), ((1653, 1685), 'langchain.llms.loading.load_llm_from_config', 'load_llm_from_config', (['llm_config'], {}), '(llm_config)\n', (1673, 1685), False, 'from langchain.llms.loading import load_llm, load_llm_from_config\n'), ((1936, 1974), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['prompt_config'], {}), '(prompt_config)\n', (1959, 1974), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((3604, 3642), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['prompt_config'], {}), '(prompt_config)\n', (3627, 3642), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((5892, 5924), 'langchain.llms.loading.load_llm_from_config', 'load_llm_from_config', (['llm_config'], {}), '(llm_config)\n', (5912, 5924), False, 'from langchain.llms.loading import load_llm, load_llm_from_config\n'), ((6174, 6212), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['prompt_config'], {}), '(prompt_config)\n', (6197, 6212), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((6517, 6549), 'langchain.llms.loading.load_llm_from_config', 'load_llm_from_config', (['llm_config'], {}), '(llm_config)\n', (6537, 6549), False, 'from langchain.llms.loading import load_llm, load_llm_from_config\n'), ((6879, 6937), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['create_draft_answer_prompt_config'], {}), '(create_draft_answer_prompt_config)\n', (6902, 6937), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((7285, 7339), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['list_assertions_prompt_config'], {}), '(list_assertions_prompt_config)\n', (7308, 7339), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((7635, 7690), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['check_assertions_prompt_config'], {}), '(check_assertions_prompt_config)\n', (7658, 7690), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((8025, 8078), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['revised_answer_prompt_config'], {}), '(revised_answer_prompt_config)\n', (8048, 8078), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((8661, 8693), 'langchain.llms.loading.load_llm_from_config', 'load_llm_from_config', (['llm_config'], {}), '(llm_config)\n', (8681, 8693), False, 'from langchain.llms.loading import load_llm, load_llm_from_config\n'), ((8943, 8981), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['prompt_config'], {}), '(prompt_config)\n', (8966, 8981), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((9775, 9807), 'langchain.llms.loading.load_llm_from_config', 'load_llm_from_config', (['llm_config'], {}), '(llm_config)\n', (9795, 9807), False, 'from langchain.llms.loading import load_llm, load_llm_from_config\n'), ((10057, 10095), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['prompt_config'], {}), '(prompt_config)\n', (10080, 10095), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((11399, 11437), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['prompt_config'], {}), '(prompt_config)\n', (11422, 11437), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((12722, 12754), 'langchain.llms.loading.load_llm_from_config', 'load_llm_from_config', (['llm_config'], {}), '(llm_config)\n', (12742, 12754), False, 'from langchain.llms.loading import load_llm, load_llm_from_config\n'), ((13004, 13042), 'langchain.prompts.loading.load_prompt_from_config', 'load_prompt_from_config', (['prompt_config'], {}), '(prompt_config)\n', (13027, 13042), False, 'from langchain.prompts.loading import load_prompt, load_prompt_from_config\n'), ((16709, 16796), 'langchain.chains.llm_requests.LLMRequestsChain', 'LLMRequestsChain', ([], {'llm_chain': 'llm_chain', 'requests_wrapper': 'requests_wrapper'}), '(llm_chain=llm_chain, requests_wrapper=requests_wrapper, **\n    config)\n', (16725, 16796), False, 'from langchain.chains.llm_requests import LLMRequestsChain\n'), ((16839, 16886), 'langchain.chains.llm_requests.LLMRequestsChain', 'LLMRequestsChain', ([], {'llm_chain': 'llm_chain'}), '(llm_chain=llm_chain, **config)\n', (16855, 16886), False, 'from langchain.chains.llm_requests import LLMRequestsChain\n'), ((18341, 18429), 'langchain.utilities.loading.try_load_from_hub', 'try_load_from_hub', (['path', '_load_chain_from_file', '"""chains"""', "{'json', 'yaml'}"], {}), "(path, _load_chain_from_file, 'chains', {'json', 'yaml'},\n    **kwargs)\n", (18358, 18429), False, 'from langchain.utilities.loading import try_load_from_hub\n'), ((18724, 18734), 'pathlib.Path', 'Path', (['file'], {}), '(file)\n', (18728, 18734), False, 'from pathlib import Path\n'), ((18899, 18911), 'json.load', 'json.load', (['f'], {}), '(f)\n', (18908, 18911), False, 'import json\n'), ((19011, 19028), 'yaml.safe_load', 'yaml.safe_load', (['f'], {}), '(f)\n', (19025, 19028), False, 'import yaml\n')]