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 de lectura • Equip Q2BSTUDIO

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.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat