Skip to content

Repository files navigation

🚀 Techie — Agente RAG Corporativo

Cover de Techie

Challenge AluraAgente — ONE IA FOR TECH

Este es un agente de Inteligencia Artificial corporativo basado en el patrón RAG (Retrieval-Augmented Generation) diseñado para la empresa TechNova. Su propósito es responder preguntas de los colaboradores de forma precisa, basándose exclusivamente en los documentos internos de la empresa.

Important

🌐 ¡PROBAR DEMO EN VIVO!
El sistema se encuentra desplegado y listo para su evaluación. Puedes interactuar con el agente en tiempo real ingresando al siguiente enlace:
👉 https://techie-allura.viewdns.net/


Insignias

Estado Python Version FastAPI Docker Oracle Cloud Cohere API ChromaDB Licencia


📋 Índice

  1. Descripción del Proyecto
  2. Estado del Proyecto
  3. Demostración de Funciones y Aplicaciones
  4. Ejemplos de Preguntas y Respuestas
  5. Evidencia de Funcionamiento
  6. Acceso al Proyecto
  7. Tecnologías Utilizadas
  8. Personas Contribuyentes
  9. Personas Desarrolladoras del Proyecto
  10. Licencia

📖 Descripción del Proyecto

Techie es una solución de IA empresarial diseñada para resolver el problema del acceso fragmentado a la información interna en TechNova. Muchas veces, los colaboradores pierden tiempo valioso buscando políticas corporativas, guías de soporte, precios o detalles de integración que están dispersos en múltiples formatos.

Para solucionar esto, Techie implementa una arquitectura RAG robusta que:

  • Extrae e Ingiere contenido desde documentos multiformato en una carpeta local o remota.
  • Indexa Vectorialmente la información usando embeddings multilingües avanzados.
  • Recupera de Forma Híbrida (búsqueda vectorial en Chroma + Reranking con Cohere API) los fragmentos más relevantes.
  • Genera Respuestas en Lenguaje Natural citando rigurosamente las fuentes exactas y controlando la alucinación a través de un umbral de confianza mínimo.
  • Expone un Servidor Web API con FastAPI para servir una interfaz de chat moderna, rápida e interactiva junto a un panel de métricas para la administración y monitoreo.

El sistema está optimizado para ejecutarse en entornos serverless livianos de Oracle Cloud Infrastructure (OCI), minimizando los costos de infraestructura al no requerir GPUs dedicadas gracias al uso de modelos de lenguaje por API (Cohere).


🚧 Estado del Proyecto

El proyecto se encuentra en la versión v0.4.0 y está en Estado: Listo para Producción.

  • Extracción multiformato (PDF, DOCX, XLSX, PPTX, HTML, CSV, JSON, MD) completada.
  • Pipeline de ingesta inteligente con manifest de cambios (manifest.json) implementado.
  • Indexación vectorial con Chroma DB e integración con API Cohere terminada.
  • Reranking con Cohere y filtrado por metadatos (categoría) operativo.
  • Interfaz de chat responsiva y panel de métricas implementados.
  • Contenerización con Docker y soporte para despliegue en OCI Container Instances probado.
  • Logging estructurado de Q&A y feedback de usuarios.

🌟 Demostración de Funciones y Aplicaciones

El agente Techie cuenta con las siguientes capacidades listas para su uso:

  • Procesamiento de Documentos Multiformato: Ingiere y analiza de manera transparente archivos .pdf, .docx, .xlsx, .pptx, .html, .csv, .json y .md depositados en la carpeta data/documents/.
  • Interfaz de Chat Interactiva:
    • Banner de Advertencia de IA: Aclara permanentemente que las respuestas son generadas de forma automatizada.
    • Chips de Citas / Fuentes: Muestra de qué archivos o URLs se obtuvo la información para que el usuario pueda validarla.
    • Indicador de Confianza: Semáforo visual (verde, amarillo, rojo) según el puntaje de similitud del fragmento de origen.
    • Sugerencias Dinámicas: Ofrece preguntas sugeridas de seguimiento generadas dinámicamente por el LLM o preguntas de arranque.
    • Guía Flotante: Despliega pistas y plantillas de preguntas predeterminadas clasificadas por área corporativa (Comercial, Producto, Soporte, Datos, Legal).
  • Prevención de Alucinaciones: Si la similitud máxima del mejor fragmento recuperado es inferior al umbral de seguridad CONFIDENCE_MIN (por defecto 0.4), el agente responde: "No encontré esa información en los documentos disponibles" en lugar de alucinar o inventar respuestas.
  • Mantenimiento y Observabilidad:
    • Registra las preguntas y respuestas en data/logs/qa.jsonl (incluye latencias, modelos, flags de no respuesta y confianza).
    • Permite recolectar feedback de los usuarios (👍/👎) en data/feedback/feedback.jsonl.
    • Expone métricas agregadas en tiempo real en /api/metrics y visualmente en /panel.

💬 Ejemplos de Preguntas y Respuestas

El agente Techie está entrenado para responder preguntas sobre la plataforma TechNova (gestión de proyectos, planes, soporte, APIs, etc.). A continuación se presentan ejemplos reales de preguntas que el agente puede responder y el tipo de respuestas generadas:

Ejemplo 1: Consulta sobre Planes y Precios (Comercial / Producto)

  • Pregunta del Usuario:

    ¿Cuáles son los planes de pago disponibles en TechNova y qué descuento tienen?

  • Respuesta generada por el Agente:

    TechNova ofrece cuatro planes de pago además del plan gratuito:

    • Starter: $5 USD/usuario/mes, para equipos pequeños de hasta 15 usuarios.
    • Pro: $9 USD/usuario/mes, con usuarios ilimitados y acceso a la vista Gantt.
    • Business: $18 USD/usuario/mes, con reportes avanzados y roles personalizados.
    • Enterprise: Precio personalizado para grandes organizaciones, con SLA del 99.95% y CSM asignado.

    Con el ciclo de pago anual, los planes tienen cerca de un 17% de descuento (se pagan 10 meses por año).

    Fuentes citadas: comercial/planes_y_precios.xlsx, producto/base_conocimiento.md

Ejemplo 2: Consulta sobre Soporte Técnico (Soporte)

  • Pregunta del Usuario:

    ¿Cómo contacto al equipo de soporte y cuánto tardan en responder?

  • Respuesta generada por el Agente:

    Puedes contactar a soporte escribiendo un correo a soporte@technova.com o utilizando el chat dentro de la aplicación.

    El tiempo de respuesta depende del plan contratado:

    • Starter: 72 horas.
    • Pro: 48 horas.
    • Business: 8 horas.
    • Enterprise: 1 hora (con SLA).

    Fuentes citadas: soporte/faq_soporte.html

Ejemplo 3: Prevención de Alucinación (Fuera de Scope / Sin Confianza)

  • Pregunta del Usuario:

    ¿Cómo configuro la facturación automática para mi cuenta de Salesforce?

  • Respuesta generada por el Agente (Anti-alucinación activa):

    No encontré esa información en los documentos disponibles.

    Fuentes citadas: Ninguna (se activó el umbral de seguridad por falta de coincidencia en base vectorial).


🎥 Evidencia de Funcionamiento

Para verificar el correcto funcionamiento del agente Techie, se disponen los siguientes recursos como evidencia en la carpeta docs/images/:

https://techie-allura.viewdns.net/

📺 - Demostración en Video

En el siguiente enlace o reproductor puedes observar al agente interactuando en tiempo real:

Demostración en Video

Note

Si el video no se reproduce automáticamente en el visor de GitHub, puedes descargarlo o reproducirlo directamente desde la ruta local docs/images/demo_funcionamiento.mp4.

📸 Capturas de Pantalla de la Aplicación

A continuación se muestran dos capturas de pantalla clave:

  1. Interfaz del Chat en Ejecución: Detalle de la conversación donde se visualizan las fuentes citadas, las preguntas sugeridas de seguimiento y el nivel de confianza de la respuesta. Captura de Pantalla - Chat

  2. Panel de Métricas y Observabilidad: Vista de la pantalla de métricas de uso y rendimiento para la administración corporativa de la IA. Captura de Pantalla - Panel

  3. Publicación en Oracle Cloud Infrastructure: Vista del monitoreo de la instancia donde se deployó la aplicación (en OCI).

image

🔑 Acceso al Proyecto

Prerrequisitos

  • Python >= 3.10
  • Cuenta en Cohere para obtener una API Key gratuita o de producción.
  • Docker (opcional, para despliegue contenerizado).

Instalación Local

  1. Clona el repositorio:

    git clone https://github.com/gregory-mc/Agente-RAG-AluraChallenge.git
    cd Agente-RAG-AluraChallenge
  2. Crea y activa un entorno virtual de Python:

    python -m venv .venv
    source .venv/bin/activate  # En Windows usa: .venv\Scripts\activate
  3. Instala las dependencias:

    pip install -r requirements.txt

Configuración

Copia el archivo de plantilla .env.example como .env:

cp .env.example .env

Edita .env y coloca tu API Key de Cohere:

COHERE_API_KEY=tu_api_key_real_aqui

Ejecución e Ingesta

  1. Colocar documentos: Agrega tus archivos corporativos en la carpeta data/documents/ (se proveen algunos archivos de ejemplo de la empresa ficticia TechNova).

  2. Ejecutar Ingesta: Procesa e indexa los documentos en la base de datos vectorial Chroma DB:

    python -m rag ingest

    Nota: La ingesta es inteligente. Si vuelves a correrla, solo reindexará los archivos modificados o nuevos analizando su hash.

  3. Iniciar Servidor Web: Arranca la aplicación FastAPI:

    python -m rag serve

    Abre tu navegador en http://localhost:8000 para chatear con Techie. Visita http://localhost:8000/panel para ver el panel de métricas.

Despliegue con Docker

Para correr el proyecto completo de manera aislada en un contenedor Docker local:

docker compose up --build

Despliegue en la Nube (OCI)

El despliegue está automatizado mediante un pipeline de CI/CD con GitHub Actions (.github/workflows/deploy-ocir.yml):

  1. CI/CD: Cada push a la rama main construye la imagen Docker y la sube a OCI Container Registry (OCIR).
  2. Infraestructura: La imagen se despliega de forma serverless en OCI Container Instances.
  3. Seguridad: La variable COHERE_API_KEY se lee de forma segura desde OCI Vault sin exponer la clave en el repositorio ni en la imagen.

🛠️ Tecnologías Utilizadas

  • Lenguaje: Python >= 3.10
  • Framework Web API: FastAPI y Uvicorn
  • Base de Datos Vectorial: Chroma DB
  • Procesamiento de LLM & Embeddings: Cohere API (Modelos: embed-multilingual-v3.0, rerank-multilingual-v3.0 y command-r-08-2024)
  • Librerías de Extracción:
    • PDF: pypdf
    • Word: python-docx
    • Excel: openpyxl
    • PowerPoint: python-pptx
    • HTML: beautifulsoup4 + lxml
    • Texto plano, JSON, CSV, MD: Nativos de Python
  • Monitoreo: JSON Lines Logs (observabilidad nativa para cloud aggregators)
  • Contenerización y CI/CD: Docker, Docker Compose y GitHub Actions
  • Infraestructura Cloud: Oracle Cloud Infrastructure (OCI Container Registry, OCI Container Instances, OCI Vault, OCI VCN)

Diagrama de Arquitectura y Comunicación

Esquema Visual Simplificado

A continuación se presenta una vista simplificada y amigable sobre cómo se procesan las preguntas del usuario y cómo interactúan las tecnologías principales:

Esquema de Comunicación Simplificado

Esquema Técnico de Flujo (Mermaid)

El siguiente diagrama detalla técnicamente las interacciones de componentes y la comunicación en los entornos local y cloud:

graph TD
    %% Ingestion Flow
    subgraph Ingestion ["1. Canalización de Ingesta (Local/CI)"]
        Docs[Documentos Corporativos <br> PDF, Word, Excel, CSV, etc.] --> Ext[Extractores de Contenido <br> pypdf, python-docx, openpyxl, bs4]
        Ext --> Chk[Chunking & Limpieza <br> chunk_size: 1000, overlap: 150]
        Chk --> EmbApi[API de Cohere <br> embed-multilingual-v3.0]
        EmbApi --> Chroma[(ChromaDB <br> Base de Datos Vectorial)]
    end

    %% Query & Generation Flow
    subgraph RAG ["2. Pipeline de Consulta RAG (API / Web)"]
        User([Usuario / Cliente]) <-->|Pregunta / Respuesta| WebUI[Interfaz de Chat Web <br> FastAPI / static files]
        WebUI <-->|API ask| Agent[RagAgent Orquestador]
        Agent -->|1. Búsqueda Vectorial| Chroma
        Chroma -->|Candidatos vectoriales| Agent
        Agent -->|2. Rerank| RerankApi[API de Cohere <br> rerank-multilingual-v3.0]
        RerankApi -->|Top K Reordenados| Agent
        Agent -->|3. Validar Confianza| Conf{¿Similitud >= Umbral?}
        Conf -->|No| NoAns[Respuesta Estándar <br> Evita Alucinaciones]
        Conf -->|Sí| GenApi[API de Cohere <br> Command-R]
        GenApi -->|4. Respuesta con Citas| Agent
        NoAns --> WebUI
    end

    %% Observability
    subgraph Obs ["3. Observabilidad & Mantenimiento"]
        WebUI -->|Métricas & Log| LogFile[(qa.jsonl & feedback.jsonl)]
        WebUI -->|Feedback 👍/👎| LogFile
        LogFile --> Metrics[Endpoint /api/metrics]
    end

    %% Deployment
    subgraph Cloud ["4. Despliegue en la Nube (OCI)"]
        GitHub[GitHub Repo] -->|Push a main| GHA[GitHub Actions CI/CD]
        GHA -->|Construye Dockerfile| OCIR[OCI Container Registry]
        OCIR -->|Despliega| OCI_CI[OCI Container Instance]
        OCI_CI -->|Ejecuta| WebUI
        Vault[OCI Vault] -->|Secreto: COHERE_API_KEY| OCI_CI
    end

    classDef default fill:#1A1E24,stroke:#3C4454,stroke-width:1px,color:#E1E5EC;
    classDef cloud fill:#0C2340,stroke:#265A88,stroke-width:2px,color:#FFF;
    classDef api fill:#2D1B4E,stroke:#6C3E9C,stroke-width:2px,color:#FFF;
    class Ingestion,RAG,Obs default;
    class Cloud cloud;
    class EmbApi,RerankApi,GenApi api;
Loading

👥 Personas Contribuyentes

Agradecemos el soporte y los lineamientos proporcionados por los siguientes programas para hacer posible este desarrollo:

  • Alura Latam
  • Oracle Next Education (ONE)

📄 Licencia

Este proyecto está bajo la Licencia MIT. Para más detalles, consulta el archivo LICENSE (o términos estándar de la licencia MIT).

About

Agente de IA corporativo basado en RAG para el Challenge AluraAgente (ONE IA FOR TECH).

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages