Anotaciones PDF para IA y RAG: exporta resaltados a un LLM
Para exportar anotaciones PDF a flujos de trabajo de IA y RAG, importa tu PDF (o XFDF/FDF XML) en pdfannotations.com y elige AI Context Markdown — un formato estructurado para pegar en ChatGPT, Claude o Gemini — o RAG JSON — una estructura JSON lista para vectorizarse en una base de datos vectorial. Ambos formatos requieren Pro, se generan en tu navegador sin subir el archivo original y conservan los metadatos disponibles (página, color, autor, fecha, etiquetas) que un LLM o un flujo de recuperación puede usar para anclar sus respuestas en tu material de origen.
Esta guía recorre ambos formatos de exportación, explica cuándo usar cada uno y muestra cómo conectar la salida a una conversación de ChatGPT, un flujo de recuperación LangChain o una base de datos vectorial propia.
¿Por qué pasar anotaciones PDF a un LLM?
Leer un PDF es una cosa; hacer algo útil con los resaltados es otra. Muchos profesionales que investigan y analizan documentos se quedan en “resalté las partes importantes” y nunca las vuelven a revisar. Pasar las anotaciones a un LLM cambia eso:
- Síntesis. Pedir a un LLM que resuma 200 resaltados en un informe breve de tres párrafos.
- Referencia cruzada. Preguntar “¿cuáles de estos resaltados se contradicen?” y revisar la respuesta con las referencias de página.
- Redacción. Usar los resaltados como materia prima para una revisión de literatura, un memorando o un resumen por correo.
- Preguntas y respuestas. Construir un flujo RAG que permita hacer preguntas en lenguaje natural sobre tus resaltados (“¿qué dijo el autor sobre validez de constructo en la página 12?”).
- Traducción y cambio de tono. Pedir al LLM que reescriba resaltados académicos como explicaciones claras para un público no especialista.
El problema es que los LLM necesitan estructura. Pegar 200 resaltados sin procesar en un chat produce una masa sin estructura que el modelo apenas puede citar con precisión. Por eso pdfannotations.com incluye dos formatos de exportación diseñados a propósito.
Formato 1: AI Context Markdown
AI Context Markdown es un formato Markdown estructurado diseñado específicamente para pegarse en una conversación de chat. La estructura da al LLM anclajes explícitos a los que referirse al responder, lo que mejora drásticamente la precisión de las citas y reduce las alucinaciones.
Estructura
# 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
La jerarquía es:
# Source— encabezado de nivel superior que nombra el archivo de origen, con autor, número de páginas y fecha de exportación como metadatos## Page N— una sección por página que contiene anotaciones### Highlight— el texto literal que resaltaste en el PDF### Context— una descripción de una línea de dónde aparece el resaltado en el documento (sección, posición del párrafo)### My Note— tu propio comentario o nota adhesiva adjunta al resaltado### Tags— la categoría de color y cualquier tag personalizado que asignaste
Esta estructura importa porque da al LLM:
- Anclajes. Cada resaltado está envuelto en un encabezado
### Highlightque el modelo puede citar (“Según el resaltado en la página 12…”). - Procedencia. Los números de página y los nombres de archivo de origen significan que el modelo puede decirte de dónde viene una afirmación, no solo que se hizo.
- Tu interpretación. El campo
### My Notees tu propio comentario, que el modelo puede usar para entender qué te pareció importante de un resaltado. - Tags filtrables. Los tags permiten preguntar “resume cada resaltado etiquetado
#limitation” y obtener una respuesta enfocada.
Cómo usar AI Context Markdown
- Exporta tus anotaciones desde pdfannotations.com con el formato AI Context.
- Abre el archivo
.mdresultante en cualquier editor de texto y copia el contenido. - Pégalo en un chat nuevo en ChatGPT, Claude o Gemini.
- Antepón un prompt como: “Aquí están mis resaltados de un artículo de investigación. Resume el argumento principal en tres frases y luego lista los tres resaltados que etiqueté como
#key-concept.”
Como el formato es Markdown puro, todos los modelos lo manejan de forma idéntica. Sin plugins especiales, sin llamadas a la API, sin base de datos vectorial necesaria.
Cuándo usar AI Context Markdown
- Quieres una conversación de una sola vez con un LLM sobre los resaltados de un único documento
- Necesitas que el modelo cite páginas y tags específicos
- Estás haciendo análisis exploratorio y quieres iterar en los prompts
- No quieres montar una base de datos vectorial ni un flujo de vectorización
Formato 2: JSON listo para RAG
RAG JSON es una estructura JSON diseñada para la ingesta en una base de datos vectorial. Cada anotación se convierte en un registro discreto con su propio texto y metadatos, de modo que un flujo de vectorización pueda trocear, generar embeddings y recuperar resaltados individuales en lugar de tratar todo el documento como un único bloque.
Estructura
[
{
"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."
}
}
]
Cada registro tiene dos campos:
text— el contenido del resaltado, listo para vectorizarsemetadata— un objeto estructurado que contiene:source— nombre de archivo del PDF/XFDF de origenpage— número de página donde está el resaltadotype—highlight,note,underline,strikeoutofreetextauthor— autor que creó la anotación en Acrobatdate— marca de tiempo ISO 8601 de creación de la anotacióncolor— valor hex RGB del marcadotags— lista de etiquetas (categoría de color y cualquier etiqueta personalizada)note— tu propio texto de comentario, si lo hay
Esta estructura es el formato estándar que esperan bases de datos vectoriales como Pinecone, Weaviate, Chroma, Qdrant y pgvector: un campo text para el embedding y un campo metadata para filtrar durante la recuperación.
Cómo ingerir RAG JSON en una base de datos vectorial
El código exacto depende de tu conjunto de tecnologías, pero el patrón es el mismo en todas partes:
- Incrusta cada campo
textusando tu modelo de embedding preferido (OpenAItext-embedding-3-small, Cohere, Voyage, o un modelo local vía sentence-transformers). - Guarda el embedding en tu base de datos vectorial, con el objeto
metadataadjunto como campos filtrables. - En el momento de la consulta, vectoriza la pregunta del usuario, recupera los top-k resaltados más cercanos y pásalos a un LLM como contexto.
Aquí hay un ejemplo mínimo usando Python con el cliente OpenAI y un almacén vectorial genérico:
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.)
Una vez ingerido, puedes hacer preguntas en lenguaje natural y recuperar los resaltados específicos que las responden — con procedencia completa (origen, página, autor, color, tags) adjunta a cada resultado.
Cuándo usar RAG JSON
- Tienes muchos documentos y quieres consultarlos todos a la vez
- Quieres recuperar resaltados por metadatos (“muéstrame cada
#limitationde los artículos de Jane Doe”) - Estás construyendo un sistema de preguntas y respuestas de producción o un asistente sobre tus anotaciones
- Quieres combinar resaltados con otras fuentes de conocimiento (páginas web, documentos internos, código) en un único índice de recuperación
Pegar en ChatGPT, Claude y Gemini
Para análisis ad hoc sin montar una base de datos vectorial, el formato AI Context Markdown es la forma más rápida. Así se usa con cada modelo principal.
ChatGPT
- Inicia una conversación nueva en ChatGPT (se recomienda GPT-4o o más reciente para contexto más largo).
- Pega el contenido de AI Context Markdown como primer mensaje.
- Añade tu prompt: “A continuación están mis resaltados de un artículo de investigación, estructurados por página. Resume el argumento principal y luego lista los tres resaltados que etiqueté
#key-conceptcon sus números de página.”
ChatGPT maneja Markdown de forma nativa, así que los encabezados ### Highlight y las citas en bloque > se renderizan correctamente y el modelo puede citar páginas con precisión.
Claude
Claude (especialmente Claude 3.5 Sonnet y Claude 4) es particularmente fuerte en razonamiento estructurado sobre documentos largos. Pega AI Context Markdown y pide síntesis:
“Aquí están resaltados de un artículo, estructurados por página. Identifica los tres argumentos más fuertes y los tres más débiles, citando el número de página de cada uno.”
La ventana de contexto más grande de Claude (200K tokens) significa que puedes pegar resaltados de varios artículos en una sola conversación.
Gemini
Gemini maneja bien Markdown y se integra con Google Workspace, por lo que es una buena elección si quieres llevar la salida del LLM a un Documento de Google o a Hojas de cálculo de Google. Pega AI Context Markdown y usa esta instrucción:
“Aquí están mis resaltados PDF, estructurados por página. Crea una tabla lista para Google Sheets con las columnas: Page, Highlight, My Note, Tags.”
Consejos para una mejor salida del LLM
- Pide siempre citas de página. Como el formato AI Context incrusta números de página en los encabezados, pedir “cita el número de página para cada afirmación” da al modelo un anclaje claro y reduce las alucinaciones.
- Usa las etiquetas como filtros. Escribe una instrucción como “considera solo los resaltados etiquetados
#limitation” para enfocar al modelo en un subconjunto de tus anotaciones. - Proporciona tus propias notas. El campo
### My Notees tu interpretación. Si quieres que el modelo razone sobre por qué resaltaste algo, pídele explícitamente que considere tus notas. - Trocea las exportaciones grandes. Si tienes más de 500 resaltados, divide la exportación en varios archivos (uno por documento de origen) y procésalos en conversaciones separadas. Esto mantiene cada conversación enfocada y evita el desbordamiento de la ventana de contexto.
Casos de uso reales
Revisión de literatura académica
Un estudiante de doctorado que lee 50 artículos sobre medición educativa exporta los resaltados de cada uno como AI Context Markdown. Pega los 50 en una sola conversación de Claude y pregunta: “Entre estos 50 artículos, ¿cuáles son las tres limitaciones más citadas de los estudios de validez de constructo y qué autores plantearon cada una?”
Claude devuelve una síntesis con citas de página, que el estudiante pega directamente en la sección de revisión de literatura de su tesis. El mismo estudiante exporta los mismos resaltados como RAG JSON, los ingiere en un índice Pinecone y crea un asistente de Slack que responde preguntas “¿qué dijo el artículo X sobre Y?” de sus compañeros de laboratorio.
Análisis de contratos legales
Un abogado que revisa un acuerdo de fusión de 200 páginas resalta cada cláusula de indemnización en rojo y cada desencadenante de terminación en amarillo. Exporta como AI Context Markdown y pregunta a ChatGPT: “Lista cada cláusula de indemnización con un tope inferior a 1 millón de dólares, con números de página.” El formato estructurado permite a ChatGPT citar páginas con precisión, que el abogado usa para redactar una versión con cambios marcados.
Para asuntos en curso, los mismos resaltados van a un flujo RAG JSON, ingeridos en la instancia Qdrant interna del bufete. Los paralegales pueden entonces preguntar “¿qué dice la Sección 7.3 sobre los periodos de supervivencia?” y recuperar el resaltado específico más su número de página.
Base de conocimiento de documentación técnica
Un equipo de ingeniería que migra un sistema heredado exporta resaltados de 30 PDFs de arquitectura como RAG JSON. Cada resaltado se convierte en un vector en su índice Chroma. Cuando un nuevo ingeniero pregunta “¿dónde documentamos el flujo de autenticación?”, el flujo de recuperación devuelve los resaltados relevantes con números de página, nombres de archivo de origen y las notas del responsable original del resaltado — sin que nadie tenga que recordar en qué PDF está la respuesta.
El mismo equipo usa AI Context Markdown para generar resúmenes semanales: pega los nuevos resaltados de la semana en Claude, pide un informe breve de una página y lo envía al Slack del equipo.
Elegir entre AI Context y RAG JSON
| Pregunta | AI Context Markdown | RAG JSON |
|---|---|---|
| ¿Análisis de chat de una sola vez? | ✅ | — |
| ¿Sistema de preguntas y respuestas de producción? | — | ✅ |
| ¿Sin código, sin configuración? | ✅ | — |
| ¿Recuperación entre documentos? | — | ✅ |
| ¿Filtrado por metadatos en la consulta? | Limitado | ✅ |
| ¿Funciona con los principales LLM? | ✅ | ✅ (con capa de recuperación) |
| ¿Eficiente en tokens para chat? | ✅ | — |
| ¿Escala a miles de resaltados? | — | ✅ |
Una regla razonable: empieza con AI Context Markdown para explorar, pasa a RAG JSON cuando necesites escalar. La mayoría de los usuarios empiezan con un flujo basado en chat, descubren qué tipos de preguntas hacen realmente y luego construyen un flujo RAG cuando las preguntas se vuelven repetitivas.
Por qué el procesamiento local importa para exportaciones de IA
El tratamiento de las conversaciones depende del proveedor de LLM, del tipo de cuenta y de la configuración del usuario. Si pegas investigación confidencial, contratos legales o documentos propietarios en un servicio de IA, revisa su política de datos: ese contenido puede almacenarse o usarse según las condiciones aplicables. Las anotaciones son una parte especialmente sensible de un documento porque revelan qué pasajes consideraste importantes, con cuáles no estuviste de acuerdo y cuáles marcaste para seguimiento.
Un flujo de exportación con procesamiento local no elimina esta preocupación (sigues pegando los resaltados en el LLM), pero asegura que:
- El paso de conversión ocurre localmente. Tu PDF o XFDF no se sube a ningún servidor durante la extracción de anotaciones.
- Tú controlas lo que se pega. Puedes revisar el AI Context Markdown antes de enviarlo, censurando lo sensible.
- El flujo RAG JSON es tuyo. Si ingieres en una base de datos vectorial autoalojada (Qdrant, Chroma, pgvector), nada sale de tu infraestructura.
Para la conversión en sí, pdfannotations.com se ejecuta completamente en tu navegador. Desconecta tu internet después de que la página cargue — la exportación sigue funcionando.
Preguntas frecuentes
¿Cuál es la diferencia entre AI Context Markdown y Markdown normal?
AI Context Markdown usa una jerarquía de encabezados específica (# Source → ## Page → ### Highlight / ### Context / ### My Note / ### Tags) que da a los LLM anclajes explícitos para citar. La exportación Markdown normal es más plana y está optimizada para la lectura humana en una app de notas, no para la ingesta del LLM.
¿Puedo usar RAG JSON sin una base de datos vectorial?
Sí, pero pierdes los beneficios de la recuperación. Puedes cargar RAG JSON en un script Python, filtrar registros por metadatos (p. ej. page == 12) y pasar solo los resaltados coincidentes a un LLM. Es un flujo RAG casero y funciona bien para conjuntos pequeños de anotaciones.
¿Qué modelo de embedding debo usar para RAG JSON?
Para resaltados en inglés, text-embedding-3-small de OpenAI es un buen valor por defecto — es barato, rápido y suficientemente preciso para la mayoría de tareas de recuperación. Para contenido multilingüe, considera embed-multilingual-v3 de Cohere o un modelo sentence-transformers local. Para contenido legal o técnico con vocabulario de dominio, voyage-law-2 o voyage-code-2 de Voyage AI suelen superar a los modelos generalistas.
¿Cuántos resaltados puedo pegar en una sola conversación de LLM?
Depende de la ventana de contexto del modelo y de la configuración del servicio. Como referencia, GPT-4o tiene una ventana de 128K tokens y Claude 3.5 Sonnet de 200K tokens. Para conjuntos más grandes, divide la información en varias conversaciones o usa un flujo RAG JSON.
¿La exportación conserva mi texto de comentario?
Sí. Tanto AI Context Markdown como RAG JSON incluyen tu texto de comentario (nota adhesiva) cuando está disponible: en el campo ### My Note del primero y en el campo metadata.note del segundo.
Guías relacionadas
¿Quieres saber más? Consulta estas guías relacionadas:
- PDF a Markdown: mejores prácticas - Patrones de conversión limpios que producen Markdown apto para LLM desde cualquier fuente PDF
- Cómo exportar anotaciones XFDF desde Adobe Acrobat - Sacar XFDF de Acrobat como entrada para la exportación de IA
- ¿Qué es XFDF? El formato XML para anotaciones PDF explicado - Análisis profundo del formato de archivo XFDF y su estructura XML
- XFDF a Obsidian: convertir anotaciones PDF de Adobe a Markdown - Combinar la exportación de IA con un almacén de Obsidian para un flujo de conocimiento completo
- Exportar resaltados PDF a Obsidian: guía completa de flujo de trabajo - El flujo de trabajo completo de Obsidian para cualquier fuente PDF
Prueba nuestra herramienta gratuita
Extrae las anotaciones de tu PDF al instante con nuestra herramienta online gratuita. Sin registro.
Extraer anotaciones PDF →