Длинный контекст и документы
Как скармливать модели большие документы и что ограничивает их объём.
Контекстное окно — максимальное число токенов (вход + выход), которое модель может удержать за один запрос. Всё, что не влезло, ей недоступно.
Сколько влезает
Современные модели имеют большие окна — например, до 1 млн токенов у топовых моделей Claude (сотни страниц текста). Этого хватает, чтобы передать целый документ, договор или базу знаний прямо в промпте. Но окно не бесконечно, и весь переданный контекст — это токены, за которые вы платите при каждом запросе.
Как передать документ
Документ — это просто текст в сообщении. Для PDF и файлов провайдеры дают типы блоков document и Files API (загрузить файл один раз, ссылаться по file_id).
doc_text = open("contract.txt", encoding="utf-8").read()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": [
{"type": "text", "text": "Документ:\n" + doc_text},
{"type": "text", "text": "Какой пункт описывает расторжение?"},
]}],
)
Цитирование
Чтобы ответ ссылался на источник (важно для доверия и проверки), у Anthropic есть режим citations: модель указывает, из какого места документа взят ответ. Это снижает «галлюцинации» — выдуманные факты.
Когда документов много: за пределами окна
Если данных больше, чем влезает в окно (вся документация, тысячи статей), весь массив в промпт не поместится. Тогда применяют RAG (retrieval-augmented generation): заранее индексируют тексты, на каждый вопрос находят несколько релевантных фрагментов и подкладывают в промпт только их. Мост к RAG — эмбеддинги (отдельный урок этого раздела).
Практические советы
- Не суйте в окно всё подряд: лишний контекст — это деньги и риск, что модель «утонет» в нём.
- Размещайте вопрос/инструкцию рядом с релевантной частью или в конце.
- Для повторного использования одного большого документа включайте кэширование промптов (отдельный урок) — резко дешевле.
- Следите за
stop_reason: контекст может оказаться переполнен.
Итог
- Контекстное окно ограничивает объём; весь контекст оплачивается каждый раз.
- Документы передают текстом или через document-блоки / Files API; citations повышают доверие.
- Когда данных больше окна — RAG: подкладывать только релевантные фрагменты.