RAG Chatbot con Python: Personaliza tu IA con tus documentos

Procesa PDFs en docs, extrae texto, genera fragmentos con solapamiento, crea embeddings con all-MiniLM-L6-v2 y un índice FAISS; guarda faiss_index.bin y chunks.pkl para búsquedas por similitud y chatbots RAG.

11 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Resumen en una línea: este script recorre cada PDF en la carpeta docs, extrae su texto, lo divide en fragmentos de tamaño fijo con solapamiento, convierte esos fragmentos en vectores de embeddings con sentence-transformers usando el modelo all-MiniLM-L6-v2, construye un índice FAISS con esos vectores y guarda el índice faiss_index.bin y la lista de fragmentos chunks.pkl en disco para que una aplicación Streamlit o similar pueda cargarlos y realizar recuperación basada en vectores.

Importaciones y configuración breve: os para operaciones del sistema de archivos como listar ficheros y construir rutas, pickle para persistir objetos Python como la lista de fragmentos, numpy para manejar arrays numéricos requeridos por FAISS, PyPDF2.PdfReader para extraer texto de páginas PDF (nota: extract_text puede devolver None en algunas páginas), SentenceTransformer para generar embeddings densos a partir de texto y faiss para crear índices vectoriales y búsquedas de vecinos más cercanos eficientes. Configuración típica: instanciar embedder con el modelo all-MiniLM-L6-v2 y definir nombres de archivo INDEX_FILE faiss_index.bin y CHUNKS_FILE chunks.pkl.

Función load_pdf file_path: abre un PDF con PdfReader, itera sus páginas y concatena el resultado de extract_text de cada página separando con un salto de línea. Hay que tener en cuenta que algunas páginas pueden devolver None y conviene filtrar o sustituir por cadena vacía para evitar errores.

Función chunk_text text, chunk_size 500, overlap 100: realiza una segmentación simple basada en caracteres. Se recorre el texto en tramos de chunk_size y se avanza cada vez chunk_size menos overlap para que los fragmentos consecutivos compartan overlap caracteres. El solapamiento mantiene continuidad contextual y reduce la probabilidad de cortar información relevante en los límites.

build_index pdf_folder docs explica el flujo completo: 1 Recolectar fragmentos: recorrer docs, para cada archivo que termine en .pdf llamar a load_pdf y fragmentar con chunk_text, acumulando all_chunks. El orden importa porque los ids internos de FAISS corresponderán a la posición en all_chunks. 2 Generar embeddings: usar embedder.encode sobre all_chunks. Para colecciones grandes es imprescindible procesar por lotes con batch_size razonable y forzar dtype float32 antes de pasar a FAISS para evitar incompatibilidades y consumo excesivo de memoria. 3 Crear índice FAISS: obtener la dimensión dim de los vectores, crear un IndexFlatL2 dim y llamar index.add vectors. IndexFlatL2 realiza búsqueda exacta por distancia L2, adecuada para colecciones pequeñas o medianas; para colecciones grandes considerar índices aproximados o estructurados. 4 Guardar índice y fragments: faiss.write_index index INDEX_FILE y serializar all_chunks con pickle.dump en CHUNKS_FILE. Estos ficheros permiten que el frontend los cargue sin rehacer el preprocesado.

Consejos y posibles problemas: controlar el tamaño de lote al generar embeddings para evitar OOM, convertir los vectores a numpy float32, comprobar que page.extract_text no sea None y limpiar caracteres invisibles. Al dividir por caracteres la segmentación es simple pero puede cortar oraciones; para mejores resultados considerar segmentación por oraciones o tokens y técnicas de chunking semántico. Si se necesita alta escalabilidad usar índices FAISS más avanzados o soluciones gestionadas en la nube.

Cómo ejecutar el script: colocar los PDFs en la carpeta docs y ejecutar el módulo Python correspondiente. El resultado esperado son los ficheros faiss_index.bin y chunks.pkl en el directorio de trabajo, listos para la búsqueda por similaridad y para alimentar un chatbot RAG que combine recuperación de documentos y generación de texto.

RAG Chatbot con Python y cómo Q2BSTUDIO puede ayudar: en Q2BSTUDIO desarrollamos soluciones integrales para crear chatbots RAG personalizados que aprovechan documentos propios de la empresa para ofrecer respuestas precisas y contextualizadas. Somos especialistas en desarrollo de aplicaciones a medida y software a medida, y combinamos conocimientos de inteligencia artificial con prácticas de ciberseguridad para garantizar soluciones robustas y fiables. Si buscas potenciar tus sistemas con IA para empresas, agentes IA o integración con servicios cloud aws y azure podemos acompañarte desde el diseño hasta la puesta en producción. Conectamos recuperación de documentos, generación de lenguaje y pipelines de datos para casos de uso como atención al cliente automatizada, soporte técnico y mejora de procesos internos.

Servicios complementarios y valor añadido: además del desarrollo de chatbots y agentes IA, ofrecemos servicios de ciberseguridad y pentesting, consultoría de servicios inteligencia de negocio y dashboards con power bi, así como estrategias de automatización de procesos. Si tu objetivo es una solución a medida que integre modelos de lenguaje, vector stores y visualización de datos, en Q2BSTUDIO diseñamos y entregamos proyectos end to end. Consulta nuestros servicios de inteligencia artificial y descubre cómo podemos crear software a medida adaptado a tus necesidades.

Palabras clave integradas: 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. Contacta con Q2BSTUDIO para transformar tus documentos en conocimiento accionable y desplegar un chatbot RAG que impulse la productividad y la experiencia de usuario.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat