PDF-аннотации в ИИ и RAG: экспорт выделений для LLM
Чтобы экспортировать PDF-аннотации для ИИ- и RAG-рабочих процессов, импортируйте ваш PDF (или XFDF/XML FDF) в PDFAnnotations и выберите AI Context Markdown — структурированный формат для вставки в ChatGPT, Claude или Gemini, — либо RAG JSON — данные для загрузки в векторную базу. Оба формата доступны в Pro, обрабатываются в браузере без отправки файла на сервер и сохраняют доступные метаданные (страница, цвет, автор, дата, теги), которые помогают LLM или поисковому пайплайну ссылаться на исходный материал.
Это руководство описывает оба формата экспорта, объясняет, когда использовать каждый, и показывает, как подключить вывод к беседе ChatGPT, пайплайну поиска LangChain или собственной векторной базе данных.
Зачем загружать PDF-аннотации в LLM?
Прочитать PDF — одно, сделать что-то полезное с выделениями — другое. Исследователи, студенты и специалисты, работающие с большим объёмом документов, часто останавливаются на «выделил важное» и больше не возвращаются. Загрузка аннотаций в LLM меняет это:
- Синтез. Попросить LLM сжать 200 выделений в трёхпараграфную выжимку.
- Перекрёстные ссылки. Спросить «какие из этих выделений противоречат друг другу?» и быстрее найти связи между источниками.
- Черновики. Использовать выделения как сырье для обзора литературы, меморандума или email-резюме.
- Вопросы и ответы. Построить RAG-пайплайн, позволяющий задавать естественноязыковые вопросы по выделениям («что автор сказал о конструктной валидности на странице 12?»).
- Перевод и смена тона. Попросить LLM переписать академические выделения как понятные объяснения для неспециалиста.
Загвоздка в том, что LLM нужна структура. Вставка 200 сырых выделений в чат даёт неструктурированный кусок, который модель не может точно цитировать. Поэтому pdfannotations.com поставляет два специализированных формата экспорта.
Формат 1: AI Context Markdown
AI Context Markdown — структурированный Markdown-формат, специально спроектированный для вставки в чат. Структура даёт LLM явные опоры для ссылок при ответе и помогает точнее указывать страницы и источники.
Структура
# Source: research-paper.pdf
Author: Jane Doe
Pages: 32
Exported: 2026-07-22
## Page 12
### Highlight
> The most reliable predictor of long-term success is consistent practice over time.
### Context
Discussion of the role of deliberate practice in skill acquisition.
### My Note
This connects to the Ericsson framework I read last week.
### Tags
#key-concept #practice #skill-acquisition
## Page 15
### Highlight
> Sample size was limited to 30 participants, which constrains generalizability.
### Context
Limitations section.
### My Note
Flag for follow-up — need to check if a replication exists.
### Tags
#limitation #methodology
Иерархия такова:
# Source— заголовок верхнего уровня, называющий исходный файл, с автором, числом страниц и датой экспорта как метаданными## Page N— по разделу на страницу с аннотациями### Highlight— дословный текст, который вы выделили в PDF### Context— однострочное описание, где выделение встречается в документе (раздел, позиция абзаца)### My Note— ваш собственный комментарий или заметка, прикреплённая к выделению### Tags— цветовая категория и любые пользовательские теги, которые вы присвоили
Эта структура важна, потому что она даёт LLM:
- Опоры. Каждое выделение обёрнуто в заголовок
### Highlight, который модель может цитировать («Согласно выделению на странице 12…»). - Провенанс. Номера страниц и имена исходных файлов означают, что модель может сказать, откуда взято утверждение, а не только что оно было сделано.
- Вашу интерпретацию. Поле
### My Note— ваш собственный комментарий, который модель может использовать, чтобы понять, что вы сочли важным в выделении. - Фильтруемые теги. Теги позволяют спросить «просуммируй все выделения с тегом
#limitation» и получить сфокусированный ответ.
Как использовать AI Context Markdown
- Экспортируйте аннотации из pdfannotations.com в формате AI Context.
- Откройте получившийся файл
.mdв любом текстовом редакторе и скопируйте содержимое. - Вставьте в новый чат в ChatGPT, Claude или Gemini.
- Добавьте в начало промпт, например: «Вот мои выделения из научной статьи. Просуммируй основной аргумент в трёх предложениях, затем перечисли три выделения, которые я отметил тегом
#key-concept».
Поскольку формат — обычный Markdown, современные чат-модели обычно корректно читают его без специальных плагинов, вызовов API или векторной базы данных.
Когда использовать AI Context Markdown
- Вы хотите разовый чат с LLM по выделениям одного документа
- Вам нужно, чтобы модель цитировала конкретные страницы и теги
- Вы делаете разведочный анализ и хотите итерировать промпты
- Вы не хотите настраивать векторную базу данных или пайплайн embedding
Формат 2: RAG-Ready JSON
RAG JSON — структурированная JSON-нагрузка, рассчитанная на приём в векторную базу данных. Каждая аннотация становится отдельной записью со своим текстом и метаданными, поэтому пайплайн embedding может чанковать, векторизовать и извлекать отдельные выделения, а не трактовать весь документ как один блок.
Структура
[
{
"text": "The most reliable predictor of long-term success is consistent practice over time.",
"metadata": {
"source": "research-paper.pdf",
"page": 12,
"type": "highlight",
"author": "Jane Doe",
"date": "2026-07-20T12:00:00Z",
"color": "#FFEB3B",
"tags": ["key-concept", "practice", "skill-acquisition"],
"note": "This connects to the Ericsson framework I read last week."
}
},
{
"text": "Sample size was limited to 30 participants, which constrains generalizability.",
"metadata": {
"source": "research-paper.pdf",
"page": 15,
"type": "highlight",
"author": "Jane Doe",
"date": "2026-07-20T12:10:00Z",
"color": "#F44336",
"tags": ["limitation", "methodology"],
"note": "Flag for follow-up — need to check if a replication exists."
}
}
]
У каждой записи два поля:
text— содержимое выделения, готовое к embeddingmetadata— структурированный объект, содержащий:source— имя исходного PDF/XFDF-файлаpage— номер страницы, где находится выделениеtype—highlight,note,underline,strikeoutилиfreetextauthor— автор аннотации, если он записан в исходном файлеdate— временная метка ISO 8601 создания аннотацииcolor— RGB-значение в hex разметкиtags— массив тегов (цветовая категория + любые пользовательские)note— ваш собственный текст комментария, если есть
Эта структура — стандартный формат, ожидаемый векторными базами данных вроде Pinecone, Weaviate, Chroma, Qdrant и pgvector: поле text для embedding и поле metadata для фильтрации при поиске.
Как загрузить RAG JSON в векторную базу данных
Точный код зависит от вашего стека, но паттерн везде одинаковый:
- Векторизуйте каждое поле
textпредпочитаемой моделью embedding (OpenAItext-embedding-3-small, Cohere, Voyage или локальной моделью через sentence-transformers). - Сохраните embedding в векторной базе данных, прикрепив объект
metadataкак поля для фильтрации. - При запросе векторизуйте вопрос пользователя, получите top-k ближайших выделений и передайте их LLM как контекст.
Вот минимальный пример на Python с клиентом OpenAI и обобщённым векторным хранилищем:
import json
import openai
client = openai.OpenAI()
with open("annotations_rag.json") as f:
records = json.load(f)
vectors = []
for record in records:
embedding = client.embeddings.create(
input=record["text"],
model="text-embedding-3-small"
).data[0].embedding
vectors.append({
"id": f"{record['metadata']['source']}-p{record['metadata']['page']}-{record['metadata']['type']}",
"values": embedding,
"metadata": record["metadata"],
"text": record["text"]
})
# Upsert `vectors` into your vector store of choice
# (Pinecone, Weaviate, Chroma, Qdrant, pgvector, etc.)
После загрузки можно задавать вопросы на естественном языке и извлекать конкретные выделения, которые на них отвечают, — с полным провенансом (источник, страница, автор, цвет, теги) у каждого результата.
Когда использовать RAG JSON
- У вас много документов и вы хотите опрашивать их все сразу
- Вы хотите извлекать выделения по метаданным («покажи все
#limitationиз статей Jane Doe») - Вы строите промышленную Q&A-систему или чат-бот поверх аннотаций
- Вы хотите объединить выделения с другими источниками знаний (веб-страницы, внутренние документы, код) в едином индексе поиска
Вставка в ChatGPT, Claude и Gemini
Для ad-hoc анализа без векторной базы данных формат AI Context Markdown — самый быстрый путь. Ниже — как использовать его с каждой из главных моделей.
ChatGPT
- Начните новую беседу в ChatGPT (для длинного контекста рекомендуется GPT-4o или новее).
- Вставьте содержимое AI Context Markdown первым сообщением.
- Добавьте промпт: «Ниже мои выделения из научной статьи, структурированные по страницам. Просуммируй основной аргумент, затем перечисли три выделения с тегом
#key-conceptс указанием номеров страниц».
ChatGPT нативно работает с Markdown, поэтому заголовки ### Highlight и блоки цитирования > рендерятся корректно и модель может точно цитировать страницы.
Claude
Claude (особенно Claude 3.5 Sonnet и Claude 4) особенно силён в структурированных рассуждениях по длинным документам. Вставьте AI Context Markdown и попросите синтез:
«Вот выделения из статьи, структурированные по страницам. Определи три сильнейших аргумента и три слабейших, цитируя номер страницы для каждого».
Большее контекстное окно Claude (200K токенов) означает, что можно вставить выделения нескольких статей в одну беседу.
Gemini
Gemini хорошо работает с Markdown и интегрирован с Google Workspace, поэтому подходит, если вы хотите отправить вывод LLM в Google Doc или Sheet. Вставьте AI Context Markdown и дайте промпт:
«Вот мои PDF-выделения, структурированные по страницам. Создай таблицу, готовую для Google Sheets, со столбцами: Page, Highlight, My Note, Tags».
Советы для лучшего вывода LLM
- Всегда просите цитировать страницы. Поскольку формат AI Context встраивает номера страниц в заголовки, просьба «цитируй номер страницы для каждого утверждения» даёт модели ясную опору и снижает галлюцинации.
- Используйте теги как фильтры. Добавьте запрос «учитывай только выделения с тегом
#limitation», чтобы сфокусировать модель на подмножестве аннотаций. - Предоставляйте свои заметки. Поле
### My Note— ваша интерпретация. Если хотите, чтобы модель рассуждала о том, почему вы что-то выделили, явно попросите её учитывать ваши заметки. - Дробите большие экспорты. Если у вас 500+ выделений, разбейте экспорт на несколько файлов (по одному на исходный документ) и обрабатывайте их в отдельных беседах. Это сохраняет фокус каждой беседы и предотвращает переполнение контекстного окна.
Реальные сценарии использования
Обзор научной литературы
Аспирант, читающий 50 статей по образовательным измерениям, экспортирует выделения каждой как AI Context Markdown. Он вставляет все 50 в одну беседу Claude и спрашивает: «Среди этих 50 статей каковы три наиболее цитируемые ограниченности исследований конструктной валидности и какие авторы поднимали каждую из них?»
Claude возвращает синтез с цитированием страниц, который студент вставляет прямо в раздел обзора литературы диссертации. Тот же студент экспортирует те же выделения как RAG JSON, загружает их в индекс Pinecone и строит Slack-бота, отвечающего на вопросы «что статья X сказала о Y?» от своих коллег по лаборатории.
Анализ юридических договоров
Юрист, проверяющий 200-страничное соглашение о слиянии, подсвечивает каждое положение об индемнизации красным и каждый триггер расторжения жёлтым. Он экспортирует как AI Context Markdown и спрашивает ChatGPT: «Перечисли каждое положение об индемнизации с лимитом ниже 1 млн $, с номерами страниц». Структурированный формат позволяет ChatGPT точно цитировать страницы, что юрист использует для составления redline.
По текущим делам те же выделения идут в RAG-JSON-пайплайн, загружаются во внутренний экземпляр Qdrant фирмы. Помощники юриста могут затем спросить «что говорит раздел 7.3 о сроках выживания?» и извлечь конкретное выделение плюс его номер страницы.
База знаний технической документации
Команда инженеров, мигрирующих устаревшую систему, экспортирует выделения из 30 архитектурных PDF как RAG JSON. Каждое выделение становится вектором в их индексе Chroma. Когда новый инженер спрашивает «где мы документируем поток аутентификации?», пайплайн поиска возвращает релевантные выделения с номерами страниц, именами исходных файлов и заметками первоначального автора выделения — без необходимости кому-либо помнить, в каком PDF находится ответ.
Та же команда использует AI Context Markdown для еженедельных сводок: вставляет новые выделения недели в Claude, просит односторонний бриф и отправляет его в командный Slack.
Выбор между AI Context и RAG JSON
| Вопрос | AI Context Markdown | RAG JSON |
|---|---|---|
| Одноразовый анализ в чате? | ✅ | — |
| Промышленная Q&A-система? | — | ✅ |
| Без кода, без настройки? | ✅ | — |
| Поиск по нескольким документам? | — | ✅ |
| Фильтрация по метаданным при запросе? | Ограниченно | ✅ |
| Работает с любым LLM? | ✅ | ✅ (со слоем поиска) |
| Эффективен по токенам для чата? | ✅ | — |
| Масштабируется на тысячи выделений? | — | ✅ |
Разумное правило: начинайте с AI Context Markdown для разведки, переходите на RAG JSON, когда нужно масштабироваться. Большинство пользователей начинают с чат-рабочего процесса, открывают, какие вопросы реально задают, и затем строят RAG-пайплайн, когда вопросы становятся повторяющимися.
Почему локальность важна для ИИ-экспортов
Провайдеры LLM могут сохранять и обрабатывать беседы в соответствии с тарифом, настройками аккаунта и условиями сервиса. Если вы вставляете конфиденциальные исследования, юридические договоры или проприетарные документы, проверьте эти правила. Сами аннотации — чувствительная часть документа: они раскрывают, какие отрывки вы сочли важными, с какими не согласились и какие отметили для последующего разбора.
Локальный рабочий процесс экспорта не устраняет этой озабоченности (вы всё равно вставляете выделения в LLM), но позволяет контролировать, что именно уходит дальше:
- Шаг конвертации происходит локально. Ваш PDF или XFDF никогда не загружается на сервер во время извлечения аннотаций.
- Вы контролируете, что вставляется. Вы можете просмотреть AI Context Markdown перед отправкой, вычёркивая чувствительное.
- RAG JSON-пайплайн ваш. Если вы используете собственную векторную базу (Qdrant, Chroma, pgvector), данные не покидают вашу инфраструктуру.
Конвертация в PDFAnnotations выполняется в браузере. После загрузки страницы интернет можно отключить — экспорт продолжит работать.
Часто задаваемые вопросы
В чём разница между AI Context Markdown и обычным Markdown?
AI Context Markdown использует специфическую иерархию заголовков (# Source → ## Page → ### Highlight / ### Context / ### My Note / ### Tags), дающую LLM явные опоры для цитирования. Обычный Markdown-экспорт более плоский и оптимизирован для человеческого чтения в приложении для заметок, а не для приёма LLM.
Можно ли использовать RAG JSON без векторной базы данных?
Да, но вы теряете преимущества поиска. Можно загрузить RAG JSON в Python-скрипт, отфильтровать записи по метаданным (например, page == 12) и передать LLM только совпадающие выделения. Это упрощённый RAG-пайплайн, хорошо работающий для небольших наборов аннотаций.
Какую модель embedding использовать для RAG JSON?
Для англоязычных выделений text-embedding-3-small от OpenAI — хороший вариант по умолчанию: дешёвая, быстрая и достаточно точная для большинства задач поиска. Для мультиязычного контента рассмотрите embed-multilingual-v3 от Cohere или локальную модель sentence-transformers. Для юридического или технического контента со специальной лексикой voyage-law-2 или voyage-code-2 от Voyage AI часто превосходят модели общего назначения.
Сколько выделений можно вставить в одну беседу LLM?
Зависит от контекстного окна модели. Для примера: GPT-4o рассчитан на 128K токенов, а Claude 3.5 Sonnet — на 200K. Реальный объём зависит от длины выделений, заметок и метаданных; крупные наборы удобнее разбивать по беседам или переводить в пайплайн RAG JSON.
Экспорт сохраняет мой текст комментария?
Да. И AI Context Markdown, и RAG JSON включают ваш текст комментария (заметку) — в поле ### My Note для первого и в поле metadata.note для второго.
Связанные руководства
Хотите узнать больше? Ознакомьтесь с этими связанными руководствами:
- PDF-аннотации в Markdown: лучшие практики - Чистые паттерны конвертации, дающие LLM-дружелюбный Markdown из поддерживаемых PDF-источников
- Как экспортировать XFDF-аннотации из Adobe Acrobat - Извлечение XFDF из Acrobat как вход для ИИ-экспорта
- Что такое XFDF? Формат XML PDF-аннотаций объяснён - Глубокое погружение в формат файла XFDF и его XML-структуру
- XFDF в Obsidian: конвертация Adobe PDF-аннотаций в Markdown - Сочетание ИИ-экспорта с Obsidian-хранилищем для полного конвейера знаний
- Экспорт PDF-выделений в Obsidian: полное руководство по рабочему процессу - Полный рабочий процесс Obsidian для поддерживаемых PDF-источников
Попробуйте наш бесплатный инструмент
Извлекайте аннотации из PDF в браузере. Базовый экспорт бесплатен и не требует регистрации.
Извлечь аннотации PDF →