---
name: page_list_to_groups
kind: function
lang: py
domain: core
version: "1.0.0"
purity: pure
signature: "def page_list_to_groups(page_contents: list[str], token_lengths: list[int], max_tokens: int = 20000, overlap_pages: int = 1) -> list[str]"
description: "Agrupa paginas en chunks de texto respetando limite de tokens con overlap configurable entre grupos."
tags: [chunking, tokens, pagination, grouping]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: [math]
params:
  - name: page_contents
    desc: "Lista de strings con contenido de cada página"
  - name: token_lengths
    desc: "Lista paralela con número de tokens por página"
  - name: max_tokens
    desc: "Límite máximo de tokens por grupo"
  - name: overlap_pages
    desc: "Número de páginas a solapar entre grupos consecutivos"
output: "Lista de strings donde cada string es un grupo de páginas combinadas"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/core/core.py"
source_repo: "https://github.com/VectifyAI/PageIndex"
source_license: "MIT"
source_file: "pageindex/page_index.py"
---

## Ejemplo

```python
contents = ["page1 text", "page2 text", "page3 text", "page4 text"]
tokens = [5000, 6000, 7000, 4000]
groups = page_list_to_groups(contents, tokens, max_tokens=12000, overlap_pages=1)
# 2 groups con overlap de 1 pagina entre ellos
```

## Notas

Funcion pura. Si el total de tokens cabe en max_tokens, retorna un solo grupo. El overlap permite contexto compartido entre chunks adyacentes. Util para procesar documentos largos con LLMs.
