Construye una aplicación gratuita y privada de "Chat con PDF" en 70 líneas de Python

Construye una aplicación de chat en Python con envío de archivos PDF privados y gratuitos. ¡Comienza a desarrollar tu propio chat seguro ahora mismo!

9 dic 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Construye una aplicación de chat con PDF privada y gratuita en Python.

Te presento una versión práctica y en español del artículo original sobre cómo crear una aplicación privada de Chat con PDF que funcione localmente y sin costes de API, adaptada por Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad y servicios cloud. Aquí explico por qué esta arquitectura es segura, qué herramientas usar y cómo montar un motor RAG privado en tu propio equipo en pocos pasos.

Resumen rápido: privacidad, potencia y cero coste. Ejecutar modelos y bases de vectores en local te da control total sobre tus datos sensibles, desde documentos legales hasta estados financieros. Usaremos Ollama como cerebro local, LanceDB como memoria vectorial y un conjunto específico de librerías Python que se llevan bien entre sí para evitar la temida dependencia infernal. Todo corre en tu ordenador y nada se envía a terceros.

Por qué esta pila. Ollama permite ejecutar LLMs offline como Llama 3 o Mistral, sin clave ni conexión a servidor. LanceDB es una base de vectores sencilla y rápida que se integra directamente en Python y guarda los vectores en disco. Juntas forman una solución serverless, privada y eficiente, ideal para soluciones de software a medida y proyectos de inteligencia artificial para empresas.

Preparación previa. Instala Ollama en macOS, Windows o Linux y lanza el servicio en segundo plano con el comando ollama serve desde una terminal. Luego descarga los modelos necesarios con ollama pull llama3 y ollama pull nomic-embed-text. Para gestionar versiones de Python se recomienda pyenv y trabajar con Python 3.14.X tal como se probó en esta guía. Instala las librerías críticas con pip usando los paquetes y versiones que garantizan compatibilidad y evitar horas de depuración: lancedb igual a 0.25.3, ollama igual a 0.6.1 y pypdf igual a 6.2.0.

Instalación y dependencias. Si prefieres que te ayudemos a desplegar esto, en Q2BSTUDIO ofrecemos servicios de desarrollo de aplicaciones a medida y software a medida y podemos integrar esta arquitectura con tus sistemas existentes, aplicar gobernanza y asegurar la custodia de datos. También podemos alojar componentes en la nube si lo deseas, con soporte para servicios cloud aws y azure, aunque la guía se centra en ejecución local.

El script explicado en pocas líneas. A continuación tienes el script Python condensado que implementa la canalización RAG: lectura del PDF, fragmentación del texto, obtención de embeddings con Ollama, almacenamiento en LanceDB y bucle de consultas para responder usando Llama 3 como generador. Coloca un archivo PDF llamado file.pdf en el mismo directorio antes de ejecutar.

import ollamaimport lancedbfrom pypdf import PdfReaderimport os# --- CONFIGURACION ---DOC_PATH = "file.pdf"DB_PATH = "./lancedb_data"MODEL_EMBED = "nomic-embed-text"MODEL_GEN = "llama3"print("--- Construyendo base de conocimiento con LanceDB ---")# 1. INGESTA: leer PDFtry: reader = PdfReader(DOC_PATH) text = "" for page in reader.pages: text += page.extract_text() or ""except FileNotFoundError: print(f"Error: no se encontro {DOC_PATH}. Añade un PDF con ese nombre.") exit()# 2. FRAGMENTACIONchunk_size = 1000text_chunks = [text[i:i+chunk_size] for i in range(0, len(text), chunk_size)]print(f"Procesados {len(text_chunks)} fragmentos de texto.")# 3. EMBEDDING Y ALMACENAMIENTOdata = []print("Generando embeddings, esto puede tardar unos instantes...")for i, chunk in enumerate(text_chunks): response = ollama.embeddings(model=MODEL_EMBED, prompt=chunk) vector = response["embedding"] data.append({"id": i, "text": chunk, "vector": vector})db = lancedb.connect(DB_PATH)try: table = db.create_table("resume", data=data, mode="overwrite") print("Conocimiento almacenado en LanceDB en disco local.")except Exception as e: print(f"Error en la base de datos: {e}") exit()# 4. BUCLE DE CONSULTAwhile True: query = input("Pregunta sobre el archivo (o escribe quit para salir): ") if query.lower() == "quit": break query_vec = ollama.embeddings(model=MODEL_EMBED, prompt=query)["embedding"] results = table.search(query_vec).limit(1).to_list() if results: best_chunk = results[0]["text"] print(f"Contexto encontrado: ...{best_chunk[:200]}...") prompt = fUse the context below to answer the question. Context: {best_chunk} Question: {query} response = ollama.generate(model=MODEL_GEN, prompt=prompt) print(f"Respuesta: {response["response"]}") else: print("No se encontro informacion relevante.")

Notas sobre el script. La canalización implementa cinco pasos: ingesta y fragmentación para evitar pasar documentos enteros al modelo; generación de embeddings por fragmento; almacenamiento en LanceDB junto con el texto original; consulta por similitud usando el embedding de la pregunta; y generación de la respuesta con contexto usando Llama 3. Ajusta el tamanio de chunk y el modelo de embeddings según tus necesidades.

Ejemplos prácticos. Este enfoque es ideal para resumir informes, preparar entrevistas o generar respuestas con respaldo documental. Por ejemplo, puedes pedir un resumen ejecutivo de un informe financiero, generar preguntas críticas para una junta o extraer cifras clave sin leer todo el documento. Integrado en flujos de trabajo empresariales, esto acelera decisiones y mejora la productividad de equipos que trabajan con documentos extensos.

Servicios y seguridad. En Q2BSTUDIO complementamos esta solución con servicios de ciberseguridad, pruebas de pentesting y hardening para que tu asistente de documentos private cumpla con las mejores practicas de privacidad y cumplimiento normativo. Consulta nuestras capacidades en ciberseguridad y pentesting para proteger tus datos sensibles y garantizar confidencialidad.

Optimización y escalado. Si quieres convertir esto en un producto para la empresa, podemos ayudarte a convertir el prototipo en una aplicación robusta y desplegable, con monitorizacion, pipelines ETL para documentos, integración con Power BI y servicios de inteligencia de negocio. Ofrecemos integraciones con servicios de inteligencia artificial y soluciones de inteligencia de negocio y power bi para explotar los datos extraidos.

Conclusión. Con Ollama y LanceDB puedes construir hoy mismo una app privada de Chat con PDF que respete la privacidad y funcione sin costes de API. En Q2BSTUDIO acompañamos desde la fase de concepto hasta la entrega, desarrollando software a medida, integrando IA para empresas y asegurando la plataforma. Si quieres que te ayudemos a implementar esto en tu empresa, contacta con nosotros y diseñamos la solución que mejor encaje con tus procesos y requisitos de seguridad.

Palabras clave: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.