Home / Function/ _reduce_tokens_below_limit() — langchain Function Reference

_reduce_tokens_below_limit() — langchain Function Reference

Architecture documentation for the _reduce_tokens_below_limit() function in base.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  0ec6d3c8_c314_4625_083f_9ddc0dfb409c["_reduce_tokens_below_limit()"]
  1c559a69_197e_d647_5f47_79dc8fa4a648["ConversationalRetrievalChain"]
  0ec6d3c8_c314_4625_083f_9ddc0dfb409c -->|defined in| 1c559a69_197e_d647_5f47_79dc8fa4a648
  8e932862_cc2c_8a91_ae17_87d023efcca7["_get_docs()"]
  8e932862_cc2c_8a91_ae17_87d023efcca7 -->|calls| 0ec6d3c8_c314_4625_083f_9ddc0dfb409c
  a4ebed9c_c61f_770b_661e_da8b990ad251["_aget_docs()"]
  a4ebed9c_c61f_770b_661e_da8b990ad251 -->|calls| 0ec6d3c8_c314_4625_083f_9ddc0dfb409c
  style 0ec6d3c8_c314_4625_083f_9ddc0dfb409c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain/langchain_classic/chains/conversational_retrieval/base.py lines 389–405

    def _reduce_tokens_below_limit(self, docs: list[Document]) -> list[Document]:
        num_docs = len(docs)

        if self.max_tokens_limit and isinstance(
            self.combine_docs_chain,
            StuffDocumentsChain,
        ):
            tokens = [
                self.combine_docs_chain.llm_chain._get_num_tokens(doc.page_content)  # noqa: SLF001
                for doc in docs
            ]
            token_count = sum(tokens[:num_docs])
            while token_count > self.max_tokens_limit:
                num_docs -= 1
                token_count -= tokens[num_docs]

        return docs[:num_docs]

Subdomains

Frequently Asked Questions

What does _reduce_tokens_below_limit() do?
_reduce_tokens_below_limit() is a function in the langchain codebase, defined in libs/langchain/langchain_classic/chains/conversational_retrieval/base.py.
Where is _reduce_tokens_below_limit() defined?
_reduce_tokens_below_limit() is defined in libs/langchain/langchain_classic/chains/conversational_retrieval/base.py at line 389.
What calls _reduce_tokens_below_limit()?
_reduce_tokens_below_limit() is called by 2 function(s): _aget_docs, _get_docs.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free