Intermedio 11 minRAG

RAG local con LM Studio: hablar con tus documentos

LM Studio incluye desde la versión 0.3 una función «Chat with Documents» que ejecuta un RAG completo localmente: indexación, embeddings, recuperación y generación, sin que un solo byte salga de tu máquina. Es probablemente la vía más rápida para pasar de un chat similar a ChatGPT a un asistente que responda a partir de tus PDF, contratos o notas. Esta guía muestra cómo activarla, qué puede hacer, dónde alcanza sus límites y cuándo hay que pasar a AnythingLLM o a una pila de Python.

Por Mohamed Meguedmi·Actualización 2026-08-27·Probado en Windows, macOS y Linux

#¿Por qué LM Studio para el RAG?

Hacer RAG local suele consistir en combinar cuatro componentes: un parser de archivos, un modelo de embeddings, una base de datos vectorial y un LLM de generación. La mayoría de los tutoriales usan Python + LlamaIndex + ChromaDB + Ollama. Es potente, pero también implica cuatro dependencias, un entorno que gestionar y un script que mantener.

LM Studio oculta todo eso detrás de un icono de clip. Cargas un modelo de generación (Qwen 3.5 9B, Granite 4.2 8B, Gemma 4 12B…), cargas un modelo de embeddings, arrastras un PDF a la conversación y haces tu pregunta. La interfaz se encarga del chunking, de la indexación en memoria y de la inserción de los pasajes pertinentes en el prompt.

Ninguna línea de código
Todo pasa por la GUI. Es el camino más directo entre «tengo una carpeta de PDF» y «converso con ellos».
100 % offline
Embeddings, recuperación, generación: todo se ejecuta en tu GPU o CPU. Ninguna telemetría sobre el contenido de los documentos.
Compatible con OpenAI
El servidor local en el puerto 1234 sigue siendo accesible. Puedes usar el RAG desde la interfaz gráfica y conectar en paralelo un script al mismo modelo.
i
No es un reemplazo de AnythingLLM
LM Studio hace RAG «por conversación»: arrastras documentos a un chat concreto y el índice permanece asociado a ese chat. No existe el concepto de espacio de trabajo persistente, colección compartida ni reindexación incremental. Para una base de conocimientos estable que consultas todos los días, AnythingLLM o una pila de Python siguen siendo opciones más adecuadas. Ver la sección de comparación más abajo.

#Prerrequisitos

El kit RAG Local

LM Studio consulta tus documentos. Para pasar de una prueba a una herramienta confiable, el kit RAG Local aborda lo que marca la diferencia: la división de los documentos en fragmentos (cap. 7), la elección de un modelo de embeddings sólido en francés (cap. 8) y la evaluación de las respuestas (cap. 14).

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j
LM Studio 0.3 o más reciente
La función Chat with Documents apareció en la versión 0.3 y se ha ampliado desde entonces. Comprueba tu versión en Settings → About. Si tienes una versión anterior de LM Studio, actualízala antes de continuar.
Un LLM de generación cargado
Qwen 3.5 9B Q4_K_M (6,6 GB, contexto de 256k), Granite 4.2 8B Q4_K_M (5,3 GB, 128k) o Gemma 4 12B Q4_K_M (7,6 GB, multimodal) son buenas opciones por defecto, todos con licencia Apache 2.0. Estos modelos recientes tienen amplias ventanas de contexto, pero aun así debes ajustar Context Length en LM Studio (ver más abajo); de lo contrario, se limitará el número de pasajes que LM Studio puede incorporar.
Un modelo de embeddings
Necesario y distinto del LLM. nomic-embed-text-v1.5 (137M, ~80 MB en Q4) es la opción predeterminada recomendada por LM Studio. mxbai-embed-large (335M) si tienes margen. Para contenido exclusivamente en francés, multilingual-e5-large es más adecuado.
VRAM o RAM
Suma el tamaño del LLM + aproximadamente 200 MB para el modelo de embeddings + 1-2 GB para el índice en memoria de una carpeta de tamaño medio. En una GPU de 12 GB de VRAM, un modelo de 7B Q4 + nomic-embed deja aproximadamente 5 GB para el índice y el contexto.
Ventana de contexto ≥ 8192
Ajusta el parámetro Context Length del LLM a 8192 como mínimo, idealmente a 16384, desde el panel derecho del chat. Por debajo de ese valor, LM Studio trunca los pasajes recuperados y la respuesta pierde calidad.

#1. Activar Chat with Documents

No hay nada que activar en sentido estricto: es una funcionalidad nativa del chat. Basta con aportar un documento a una conversación para que LM Studio inicie el pipeline RAG en segundo plano.

  1. 01
    Abre un nuevo chat
    Pestaña Chat en la barra lateral, luego el botón + en la parte superior para crear una conversación. Comprueba que haya un LLM cargado en el menú desplegable de arriba. Si no hay ninguno cargado, selecciona tu modelo de generación y espera a que se llene la VRAM.
  2. 02
    Arrastra tu archivo a la zona de entrada
    Arrastra y suelta un PDF, DOCX, TXT o MD directamente en el campo de mensaje de abajo. Aparece una miniatura encima del campo con el nombre y el tamaño del archivo. Puedes adjuntar varios de forma consecutiva.
  3. 03
    Haz tu pregunta
    Escribe tu pregunta normalmente, como en un chat clásico. LM Studio detecta la presencia del documento, lo divide en fragmentos, lo codifica, busca los pasajes pertinentes y los inyecta en el prompt; todo esto en 1-5 segundos, según el tamaño.
  4. 04
    Lee la respuesta y las fuentes
    El modelo responde basándose en los pasajes encontrados. Según el LLM utilizado, citará o no los extractos. Para forzar la cita, añade «Cita los pasajes exactos del documento» en tu pregunta.
→
Documento corto vs documento largo
Si el documento cabe en la ventana de contexto (típicamente menos de 20 páginas de texto), LM Studio lo introduce enteramente sin pasar por RAG — sin chunking, sin embeddings, solo un largo prompt. Más allá, cambia automáticamente al modo RAG. No necesitas ajustar nada, pero es útil entenderlo para interpretar los resultados.

#2. El modelo de embeddings

El modelo de embeddings es lo que transforma un fragmento de texto en un vector de números. La calidad de la recuperación —y, por tanto, la calidad final del RAG— depende directamente de este modelo. Mucho más que del LLM de generación, al contrario de lo que se suele imaginar al principio.

  1. 01
    Descarga un modelo de embeddings
    En la pestaña Discover, filtra por « Text Embedding » en la columna de la izquierda. nomic-embed-text-v1.5 aparece en un lugar destacado: es una buena opción por defecto. Descarga la variante Q4_K_M (~80 MB) o Q8_0 (~140 MB) si buscas la máxima calidad.
  2. 02
    Comprueba que se haya detectado
    Settings → My Models → pestaña Embeddings. El modelo debe aparecer allí. Si LM Studio no lo ve en esta pestaña aunque esté descargado, es que no ha sido reconocido como un modelo de embeddings — revisa las etiquetas de Hugging Face o descárgalo de nuevo a través de Discover.
  3. 03
    Selecciónalo en el chat
    Cuando un documento está adjunto a un chat, LM Studio muestra al final de la conversación el nombre del modelo de embeddings utilizado. Haz clic en él para cambiarlo. La selección se mantiene por chat —útil para comparar nomic y multilingual-e5 en el mismo documento.
nomic-embed-text-v1.5
137M parámetros, 768 dimensiones, contexto de 8192 tokens. Excelente opción por defecto para el inglés, adecuada para el francés. Recomendado por LM Studio.
mxbai-embed-large-v1
335M, 1024 dimensiones. Mejor clasificación en MTEB inglés, pero 3 veces más lento y 3 veces más pesado. Útil si la calidad de la recuperación es el factor limitante.
multilingual-e5-large
560M, 1024 dimensiones. La mejor opción si tus documentos están en francés o son multilingües. Requiere anteponer «query:» a las consultas y «passage:» a los pasajes, algo que LM Studio gestiona automáticamente.
bge-large-en-v1.5
335M, 1024 dimensiones. Excelente para contenido exclusivamente en inglés; evitar para el francés.
!
La trampa de usar un modelo de embeddings en inglés con textos en francés
Usar nomic-embed o bge con contenido en francés divide la pertinencia de la recuperación por un factor de entre 1,5 y 2. Obtendrás pasajes vagamente relacionados con el tema en lugar de los pasajes exactamente pertinentes. Si tus documentos están en francés, usa multilingual-e5-large desde el principio: la lentitud adicional es insignificante en comparación con la mejora de calidad.

#3. Formatos y tamaños de archivos soportados

LM Studio admite una selección práctica de los formatos habituales. No ofrece OCR para PDF escaneados, ni análisis de tablas complejas, ni importación directa desde una URL: hay que conocer estas limitaciones antes de esperar demasiado de la aplicación.

PDF (texto nativo)
Compatible. Los PDF generados desde Word, Google Docs o LaTeX se procesan bien. No se puede extraer el texto de los PDF escaneados sin una capa OCR: pásalos previamente por ocrmypdf o Tesseract.
DOCX
Compatible. Se ignora el formato y se extrae el texto sin formato. Se pierden las tablas y las imágenes.
TXT y MD
Compatible de forma nativa, es el formato ideal. Markdown conserva su estructura (títulos, listas), lo que ayuda al chunking.
Código fuente (.py, .js, .ts…)
Tratado como texto. Funciona, pero para conversar con un repositorio completo, prefiere Continue.dev o una herramienta diseñada para código.
CSV, XLSX, JSON, HTML, EPUB
No hay soporte oficial actualmente. Convierte a TXT o MD mediante pandoc, csvkit o un script antes de importar.
Tamaño máximo por archivo
No se ha anunciado ningún límite estricto. En la práctica, calcula un máximo de 50-100 MB por PDF en la interfaz gráfica; por encima de ese tamaño, la división en fragmentos se vuelve lenta y el consumo de RAM aumenta rápidamente.
Preparar archivos no soportados
# PDF scanné -> PDF avec couche OCR
ocrmypdf scan.pdf scan_ocr.pdf

# HTML -> Markdown propre
pandoc page.html -o page.md

# XLSX -> CSV puis -> TXT lisible
libreoffice --headless --convert-to csv data.xlsx
column -s, -t < data.csv > data.txt

# EPUB -> TXT
pandoc livre.epub -t plain -o livre.txt
→
Varios archivos a la vez
Puedes adjuntar hasta 5 archivos a un mismo chat (este límite ha variado según las versiones; compruébalo en tu compilación). Si superas ese límite, agrúpalos en un único archivo TXT grande mediante cat. LM Studio dividirá el conjunto en fragmentos tratándolo como un único corpus, lo que funciona bien para notas Markdown o capítulos de un mismo documento.

#4. Probar con un documento real

La mejor prueba es un documento que conoces. Toma un PDF de unas veinte páginas —un manual de usuario, un informe, un contrato— y plantea primero preguntas cuya respuesta conoces para calibrar la confianza en el sistema.

Flujo de trabajo típico de validación
# Préparer un document test
# - Un PDF de 20-50 pages avec une structure claire
# - Notez 5 faits précis présents dans le document
# - Notez 2 faits absents du document

# Dans LM Studio :
# 1. Chat -> nouvelle conversation
# 2. Charger Qwen 3.5 9B Q4_K_M (ou équivalent)
# 3. Context Length -> 16384 (panneau droit)
# 4. Drag-and-drop du PDF
# 5. Vérifier que nomic-embed (ou e5) est sélectionné
# 6. Poser les 5 questions à réponse connue
# 7. Poser les 2 questions à réponse absente

# Verdict :
# - 5/5 corrects + 2/2 "je ne trouve pas" -> RAG fiable sur ce corpus
# - Hallucinations sur les 2 absents -> baisser la température à 0.1
# - Réponses approximatives -> changer d'embeddings ou monter Top K
Temperatura baja
Para RAG, reduce la temperatura a 0.1-0.3 en el panel derecho. El objetivo es ceñirse a los pasajes, no crear.
Prompt de sistema explícito
« Responde únicamente a partir de los extractos proporcionados. Si la información no está presente, dilo claramente. Cita los pasajes exactos entre comillas. » Esta simple adición divide las alucinaciones por 3.
Pregunta estructurada
«¿Cuál es el plazo de preaviso? Cita la cláusula exacta» es más útil que «háblame del preaviso». La cita obliga al modelo a ceñirse al texto.

#Limitaciones frente a AnythingLLM

LM Studio hace RAG «de usar y tirar»: por conversación, sin persistencia entre chats y sin ajustes detallados. Es deliberado: la función está pensada para una consulta puntual, no para una base de conocimientos. En cuanto necesitas más, AnythingLLM (gratuito, open source, con el mismo enfoque de interfaz gráfica) toma el relevo.

Espacios de trabajo persistentes
AnythingLLM almacena tus documentos en espacios de trabajo reutilizables. Indexas una vez 200 PDF y todos tus chats del espacio de trabajo tienen acceso a ellos. LM Studio reindexa en cada nuevo chat.
Citas clicables
AnythingLLM muestra las fuentes con un enlace al pasaje exacto. LM Studio se limita a inyectar el pasaje en el prompt: el modelo puede citarlo o no, como quiera.
Ajustes de RAG accesibles
Top K, tamaño del chunk, umbral de similitud, modelo de embeddings: todo es configurable en AnythingLLM. LM Studio lo gestiona como una caja negra con valores predeterminados razonables.
Bases de datos vectoriales externas
AnythingLLM se conecta a ChromaDB, Qdrant, Pinecone, Weaviate. LM Studio mantiene todo en memoria del proceso, lo que lo limita a corpus modestos.
Multi-utilisateurs
AnythingLLM permite gestionar usuarios y compartir espacios de trabajo. LM Studio está diseñado para un solo usuario.
Conectores de fuentes
AnythingLLM puede incorporar contenido de URL, Confluence, GitHub y transcripciones de YouTube. LM Studio se limita a arrastrar y soltar archivos.
i
La elección adecuada según el uso
LM Studio Chat with Documents: probar un PDF, resumir un informe recibido, plantear algunas preguntas sobre un contrato, hacer un seguimiento informativo puntual. AnythingLLM: base de conocimientos de equipo, soporte al cliente, documentación del producto consultada todos los días. Si dudas, comienza por LM Studio: la transición a AnythingLLM se realiza en 30 minutos el día en que la limitación te moleste.

#Cuándo pasar a un stack en Python

Llega un momento en que la interfaz gráfica alcanza sus límites y escribir código resulta más sencillo que buscar formas de sortearlos. Estas son las señales que deberían llevarte a pasar a Python + LlamaIndex (o Haystack):

Fragmentación que tiene en cuenta la estructura
Tus documentos tienen una estructura bien definida (secciones jurídicas, código, artículos científicos) que la división básica en fragmentos rompe. Un divisor de texto que tenga en cuenta Markdown o un analizador docling marca la diferencia.
Búsqueda híbrida
Quieres combinar la búsqueda vectorial (semántica) y BM25 (léxico) para no pasar por alto términos exactos (números de cláusula, nombres de variables, identificadores). Ninguna interfaz gráfica lo hace de forma nativa hoy en día.
Reranking
Añades un cross-encoder (BAAI/bge-reranker-v2-m3) para reordenar los 20 primeros resultados. +15 % de relevancia, pero requiere escribir código.
Metadatos y filtrado
« Busca únicamente en los contratos firmados en 2024 ». Necesita metadatos por chunk y un filtro durante la consulta.
Pipeline de ingestión automático
Un directorio monitorizado, un cron, un webhook que reindexa cada vez que se añade un nuevo archivo. En ese punto, se deja definitivamente de usar la GUI.
Evaluación
Medir la calidad del retrieval con 50 preguntas de referencia. Sin Python, actúas a ciegas.

Buena noticia: LM Studio puede seguir siendo la interfaz mientras Python ejecuta el pipeline. LlamaIndex puede utilizar el servidor compatible con OpenAI en localhost:1234 con dos líneas de código: mantienes LM Studio para el chat exploratorio y programas el pipeline por detrás.

Conectar LlamaIndex a LM Studio
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.openai_like import OpenAILike

# LM Studio sert le LLM via son endpoint OpenAI-compatible
Settings.llm = OpenAILike(
    model="local-model",
    api_base="http://localhost:1234/v1",
    api_key="lm-studio",
    is_chat_model=True,
    context_window=16384,
)

# Embeddings côté Python (LM Studio peut aussi les exposer)
Settings.embed_model = HuggingFaceEmbedding("intfloat/multilingual-e5-large")

docs = SimpleDirectoryReader("./mes_documents").load_data()
index = VectorStoreIndex.from_documents(docs)
index.storage_context.persist("./storage")

qe = index.as_query_engine(similarity_top_k=5)
print(qe.query("Quelles sont les obligations du prestataire ?"))
→
También embeddings a través de LM Studio
Desde la versión 0.3, LM Studio expone los embeddings en /v1/embeddings (punto de acceso compatible con OpenAI). Por tanto, puedes ejecutar tanto el LLM como los embeddings desde LM Studio y utilizar Python únicamente para el pipeline. Útil para reutilizar la VRAM ya asignada.

#Para ir más allá

Chat with Documents cubre el 80 % de las necesidades de uso personal o de un equipo reducido. Los siguientes pasos lógicos tras este primer RAG:

Entender los mecanismos
La guía « RAG local: introducción » explica en detalle el chunking, los embeddings, la recuperación y las trampas que ninguna interfaz gráfica muestra. Una lectura útil antes de tocar los ajustes.
Elegir un mejor modelo de embeddings para francés
La guía Los mejores modelos de embeddings FR compara Solon, multilingual-e5 y BGE en contenido francófono. La diferencia es medible.
Pasar al modo servidor API
La guía Convertir LM Studio en un servidor API muestra cómo exponer el endpoint compatible con OpenAI para conectar LlamaIndex, Continue.dev o un script propio sin perder tu configuración actual.
¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.