liveBook · Manning

Context window

As explained in Effective Conversational AI

A context window is the maximum amount of input text or tokens that a language model can process in one inference request.

A context window is the amount of text or tokens a language model can process in one inference pass. In retrieval-augmented generation, document chunks must fit within this limit. Larger passages are not automatically better: relevant, focused text can outperform a longer passage filled with distractions. section 6.4.3

When more text hurts

Passing an entire annual report or meeting transcript may increase computational cost, slow inference, and raise token charges. Excessive detail can also hide important information, especially when it appears in the middle of a prompt. Splitting documents into focused chunks helps retrieval supply the most relevant evidence instead. section 6.4.3

Evaluate context-window choices by balancing:

  • Coverage: larger windows include more information. section 6.4.3
  • Efficiency: more text increases processing resources, latency, and token costs. section 6.4.3
  • Relevance: concise passages can outperform overloaded prompts. section 6.4.3
Listing 6.2 HTML splitter
# Install langchain-text-splitters if not already installed
%pip install -qU langchain-text-splitters

# Import necessary modules
import langchain
import langchain_text_splitters

print("Langchain version:", langchain.__version__)
print("Langchain Text Splitters module loaded successfully!")
from langchain_text_splitters import HTMLHeaderTextSplitter
from langchain.schema import Document  # Ensure Document is properly imported

from bs4 import BeautifulSoup

print("BeautifulSoup is installed successfully!")

# Sample HTML content to be split
html_string = """
<!DOCTYPE html>
<html>
<body>
<div>
<h1>Introduction</h1>
<p>This is the introduction section of the document.</p>
<div>
<h2>Chapter 1: Getting started</h2>
<p>This section covers the basics of getting started.</p>
<h3>Section 1.1 Setup</h3>
<p>This subsection explains the setup process.</p>
<h3>Section 1.2 Configuration</h3>
<p>This subsection details the configuration options.</p>
</div>
<div>
<h2>Chapter 2: Advanced Techniques</h2>
<p>This section dives into more advanced techniques.</p>
</div>
<br/>  <!-- Fix: Ensuring self-closing tag is correctly formatted -->

<p>What you learned in the Introduction.</p>
</div>
</body></html>
"""

# Define header tags to split on (h1, h2, h3 represent different levels of headers)
headers_to_split_on = [
    ("h1", "Header 1"),  # Top-level headers
    ("h2", "Header 2"),  # Subsection headers
    ("h3", "Header 3"),  # Sub-subsection headers
]

# Initialize the HTML header text splitter with the specified header levels
html_splitter = HTMLHeaderTextSplitter(headers_to_split_on=headers_to_split_on)

# Split the HTML document into structured chunks
html_header_splits = html_splitter.split_text(html_string)

# Display structured output
for doc in html_header_splits:
    print(f"Content:\n{doc.page_content}\nMetadata: {doc.metadata}\n{'-'*40}")

An HTML splitter demonstrates how document transformers can divide structured content into model-sized passages before retrieval. section 6.4.3

How Effective Conversational AI covers it

How deep it goes
Explains chunk sizing, computational trade-offs, diminishing returns, and attention gaps without specifying model-specific limits.
Examples
Uses long documents, annual reports, meeting transcripts, and HTML splitting to illustrate chunking decisions.
What it assumes
Assumes loaded documents and a selected language model; teaches why preprocessing must adapt passages to context limits.
What you can do after
Operate document chunking so retrieved passages fit a model’s context window while limiting irrelevant text.
How it connects
Connects document transformers, chunking, retrieval-augmented generation, prompt stuffing, inference, and token-based cost.

Also explained in

Compare how 22 books explain context window →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Effective Conversational AI. The section links point to the parts of the book it draws on.