_acollapse() — langchain Function Reference
Architecture documentation for the _acollapse() function in reduce.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 4961cdaa_eb66_8549_74f5_80aa6ef431de["_acollapse()"] 1d761688_0112_f998_eecc_6712fc22bf37["ReduceDocumentsChain"] 4961cdaa_eb66_8549_74f5_80aa6ef431de -->|defined in| 1d761688_0112_f998_eecc_6712fc22bf37 924b164e_b8f4_c752_6dc9_c259afef92be["acombine_docs()"] 924b164e_b8f4_c752_6dc9_c259afef92be -->|calls| 4961cdaa_eb66_8549_74f5_80aa6ef431de c98dc7a1_c3dc_2557_0a0f_d34b8e2c7323["split_list_of_docs()"] 4961cdaa_eb66_8549_74f5_80aa6ef431de -->|calls| c98dc7a1_c3dc_2557_0a0f_d34b8e2c7323 cc0b587b_d269_c999_d5cc_a08dd506562c["acollapse_docs()"] 4961cdaa_eb66_8549_74f5_80aa6ef431de -->|calls| cc0b587b_d269_c999_d5cc_a08dd506562c style 4961cdaa_eb66_8549_74f5_80aa6ef431de fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain/langchain_classic/chains/combine_documents/reduce.py lines 348–385
async def _acollapse(
self,
docs: list[Document],
token_max: int | None = None,
callbacks: Callbacks = None,
**kwargs: Any,
) -> tuple[list[Document], dict]:
result_docs = docs
length_func = self.combine_documents_chain.prompt_length
num_tokens = length_func(result_docs, **kwargs)
async def _collapse_docs_func(docs: list[Document], **kwargs: Any) -> str:
return await self._collapse_chain.arun(
input_documents=docs,
callbacks=callbacks,
**kwargs,
)
_token_max = token_max or self.token_max
retries: int = 0
while num_tokens is not None and num_tokens > _token_max:
new_result_doc_list = split_list_of_docs(
result_docs,
length_func,
_token_max,
**kwargs,
)
result_docs = [
await acollapse_docs(docs_, _collapse_docs_func, **kwargs)
for docs_ in new_result_doc_list
]
num_tokens = length_func(result_docs, **kwargs)
retries += 1
if self.collapse_max_retries and retries == self.collapse_max_retries:
msg = f"Exceed {self.collapse_max_retries} tries to \
collapse document to {_token_max} tokens."
raise ValueError(msg)
return result_docs, {}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does _acollapse() do?
_acollapse() is a function in the langchain codebase, defined in libs/langchain/langchain_classic/chains/combine_documents/reduce.py.
Where is _acollapse() defined?
_acollapse() is defined in libs/langchain/langchain_classic/chains/combine_documents/reduce.py at line 348.
What does _acollapse() call?
_acollapse() calls 2 function(s): acollapse_docs, split_list_of_docs.
What calls _acollapse()?
_acollapse() is called by 1 function(s): acombine_docs.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free