length_based.py — langchain Source File
Architecture documentation for length_based.py, a python file in the langchain codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 948beb61_0a59_b5a6_60e4_d57473e17404["length_based.py"] 67ec3255_645e_8b6e_1eff_1eb3c648ed95["re"] 948beb61_0a59_b5a6_60e4_d57473e17404 --> 67ec3255_645e_8b6e_1eff_1eb3c648ed95 cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"] 948beb61_0a59_b5a6_60e4_d57473e17404 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7["pydantic"] 948beb61_0a59_b5a6_60e4_d57473e17404 --> 6e58aaea_f08e_c099_3cc7_f9567bfb1ae7 91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"] 948beb61_0a59_b5a6_60e4_d57473e17404 --> 91721f45_4909_e489_8c1f_084f8bd87145 86712768_7d49_e4ba_237c_f0dc6b157dd7["langchain_core.example_selectors.base"] 948beb61_0a59_b5a6_60e4_d57473e17404 --> 86712768_7d49_e4ba_237c_f0dc6b157dd7 c17bcf07_a2ef_b992_448f_5088d46a1e79["langchain_core.prompts.prompt"] 948beb61_0a59_b5a6_60e4_d57473e17404 --> c17bcf07_a2ef_b992_448f_5088d46a1e79 style 948beb61_0a59_b5a6_60e4_d57473e17404 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Select examples based on length."""
import re
from collections.abc import Callable
from pydantic import BaseModel, Field, model_validator
from typing_extensions import Self
from langchain_core.example_selectors.base import BaseExampleSelector
from langchain_core.prompts.prompt import PromptTemplate
def _get_length_based(text: str) -> int:
return len(re.split(r"\n| ", text))
class LengthBasedExampleSelector(BaseExampleSelector, BaseModel):
r"""Select examples based on length.
Example:
```python
from langchain_core.example_selectors import LengthBasedExampleSelector
from langchain_core.prompts import PromptTemplate
# Define examples
examples = [
{"input": "happy", "output": "sad"},
{"input": "tall", "output": "short"},
{"input": "fast", "output": "slow"},
]
# Create prompt template
example_prompt = PromptTemplate(
input_variables=["input", "output"],
template="Input: {input}\nOutput: {output}",
)
# Create selector with max length constraint
selector = LengthBasedExampleSelector(
examples=examples,
example_prompt=example_prompt,
max_length=50, # Maximum prompt length
)
# Select examples for a new input
selected = selector.select_examples({"input": "large", "output": "tiny"})
# Returns examples that fit within max_length constraint
```
"""
examples: list[dict]
"""A list of the examples that the prompt template expects."""
example_prompt: PromptTemplate
"""Prompt template used to format the examples."""
get_text_length: Callable[[str], int] = _get_length_based
"""Function to measure prompt length. Defaults to word count."""
max_length: int = 2048
// ... (69 more lines)
Domain
Subdomains
Functions
Classes
Dependencies
- collections.abc
- langchain_core.example_selectors.base
- langchain_core.prompts.prompt
- pydantic
- re
- typing_extensions
Source
Frequently Asked Questions
What does length_based.py do?
length_based.py is a source file in the langchain codebase, written in python. It belongs to the PromptManagement domain, ExampleSelection subdomain.
What functions are defined in length_based.py?
length_based.py defines 1 function(s): _get_length_based.
What does length_based.py depend on?
length_based.py imports 6 module(s): collections.abc, langchain_core.example_selectors.base, langchain_core.prompts.prompt, pydantic, re, typing_extensions.
Where is length_based.py in the architecture?
length_based.py is located at libs/core/langchain_core/example_selectors/length_based.py (domain: PromptManagement, subdomain: ExampleSelection, directory: libs/core/langchain_core/example_selectors).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free