Chatbot RAG con Python (Frontend)

Chatbot RAG con frontend en Streamlit que busca en FAISS y genera respuestas con Groq LLM, mostrando fragmentos para transparencia; solución IA y ciberseguridad para empresas.

11 sept 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Chatbot RAG con Python Frontend describe el archivo frontend.py que define la interfaz en Streamlit para un chatbot basado en RAG Retrieval-Augmented Generation. Este frontend gestiona la interacción con el usuario, realiza búsquedas semánticas en un índice FAISS, y envía el contexto recuperado a un modelo LLM a través de la API de Groq para generar respuestas. En Q2BSTUDIO combinamos este tipo de soluciones con nuestros servicios de aplicaciones a medida y software a medida para empresas que necesitan integración de inteligencia artificial y ciberseguridad de alto nivel.

Responsabilidades clave Cargar el índice FAISS y los fragmentos preprocesados. Recibir preguntas del usuario. Recuperar los fragmentos más relevantes mediante búsqueda semántica. Enviar el contexto recuperado a un LLM Groq para generar la respuesta. Mostrar el historial de chat en una interfaz cuidada y mantener transparencia mostrando los fragmentos recuperados.

1 Importaciones y configuración El archivo importa librerías como streamlit, pickle, faiss, SentenceTransformer, y el cliente Groq. Se usa load_dotenv para cargar de forma segura la variable de entorno GROQ_API_KEY. Cada librería tiene un papel concreto: streamlit para la UI, pickle para cargar fragmentos guardados, faiss para búsquedas por similitud, SentenceTransformer para generar embeddings, y Groq para invocar el modelo LLM.

2 Carga del índice y fragments Se definen rutas como faiss_index.bin y chunks.pkl. El embedder usa el modelo all-MiniLM-L6-v2 para mantener coherencia con el backend. El índice FAISS se lee con faiss.read_index y los fragmentos se cargan con pickle.load para disponer del contenido segmentado de los documentos.

3 Búsqueda semántica La función search_index toma una consulta, la transforma en vector con embedder.encode, y ejecuta index.search para obtener las k fragmentos más relevantes. Se devuelven los fragmentos correspondientes a los índices resultantes para su uso en la generación de la respuesta.

4 Generación de respuestas con LLM La función generate_answer construye un prompt que incorpora el contexto recuperado y la pregunta. El prompt indica que si la pregunta no está relacionada con el contexto, la respuesta debe ser estrictamente Mi base de conocimiento no tiene información sobre esto. Ese prompt se envía mediante client.chat.completions.create al modelo elegido en Groq, por ejemplo llama-3.3-70b-versatile, y se devuelve el texto de la respuesta limpiado de espacios innecesarios.

5 Interfaz de chat y estilo El frontend incluye estilos CSS para crear burbujas de usuario y del asistente, con mensajes de usuario alineados a la derecha y mensajes del bot alineados a la izquierda, dentro de un contenedor de chat desplazable. Esto mejora la experiencia y hace más legible la conversación.

6 UI en Streamlit La aplicación muestra un título y una breve descripción, inicializa el historial de chat en st.session_state.messages y renderiza los mensajes previos con el estilo definido para mantener la continuidad de la conversación entre interacciones de la misma sesión.

7 Entrada de preguntas y flujo La pregunta se recoge mediante st.form y al enviarse se añade el mensaje del usuario al historial, se recuperan los fragmentos con search_index, se invoca generate_answer para obtener la respuesta del LLM y se añade la contestación del bot al historial para su visualización inmediata.

8 Transparencia y depuración Para facilitar la depuración se muestran los fragmentos recuperados tras cada consulta, recortados si es necesario, y también se pueden presentar dentro de un expander para la última búsqueda. Esto ayuda a identificar cuando se están usando documentos incorrectos o irrelevantes.

9 Botón para limpiar chat Se incluye un control que al pulsarse vacía st.session_state.messages y fuerza un rerun para dejar la sesión lista desde cero. El historial de chat es de tipo session based y se pierde al recargar la página.

Flujo general El usuario plantea una pregunta en la UI de Streamlit. El sistema la codifica en un embedding, busca en FAISS los fragmentos más relevantes, combina esos fragmentos con la pregunta y envía el conjunto al LLM de Groq. La respuesta generada se muestra en pantalla y los fragmentos recuperados se exponen para garantizar transparencia.

Notas importantes El frontend no reconstruye el índice FAISS, depende de que el proceso de indexación haya sido ejecutado previamente por el backend, por ejemplo index_docs.py. La variable de entorno GROQ_API_KEY debe estar configurada localmente en .env o en st.secrets durante el despliegue. El frontend es compatible con arquitecturas que combinan servicios cloud AWS y Azure para despliegue y escalado.

En Q2BSTUDIO somos especialistas en desarrollo de software y soluciones de inteligencia artificial aplicadas a negocios. Si necesitas integrar un chatbot RAG en procesos productivos o crear agentes IA personalizados para tu empresa te invitamos a conocer nuestros servicios de inteligencia artificial y nuestras soluciones de aplicaciones a medida y software a medida. También ofrecemos experiencia en ciberseguridad, pentesting, servicios cloud aws y azure, inteligencia de negocio y Power BI para transformar datos en decisiones. Contacta con Q2BSTUDIO para diseñar agentes IA, automatizar procesos y llevar la inteligencia artificial a la operativa diaria de tu empresa con garantías de seguridad y escalabilidad.

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