Skip to main content
Glama
hani-ben-dhaou

Enterprise Big Data Copilot

Enterprise Big Data Copilot

Un copiloto de IA que convierte preguntas en lenguaje natural en SQL de Trino validado y consciente del esquema, utilizando RAG, herramientas MCP e inferencia local de LLM.

Resumen

Enterprise Big Data Copilot permite a los usuarios consultar plataformas de Big Data en lenguaje natural. Un pipeline de LangGraph recupera documentación relevante (RAG) y metadatos de esquema en vivo (MCP), genera SQL con un LLM local (Ollama), lo valida contra reglas de seguridad y esquema, y — cuando la plataforma es accesible — lo ejecuta en Trino y devuelve filas reales.

Related MCP server: Doris MCP Server

Características

  • Generación de Texto-a-SQL en lenguaje natural para Trino

  • Inferencia de LLM local con Ollama (sin API en la nube)

  • Recuperación RAG sobre documentación de Trino / Hive / Iceberg (Qdrant)

  • Generación consciente del esquema basada en metadatos de catálogo en vivo

  • Validación de SQL (aplicación de SELECT de solo lectura, verificación de análisis, anclaje de esquema) con un bucle de regeneración automática

  • Ejecución de consultas y recuperación de resultados de Trino en modo de mejor esfuerzo

  • Servidor Model Context Protocol (MCP) que expone herramientas de metadatos, consultas y perfiles

  • API compatible con OpenAI para Open WebUI

  • Trazado de pipeline de extremo a extremo con LangSmith

Arquitectura

flowchart LR
    User --> API
    API --> Agent
    Agent --> RAG
    RAG --> Qdrant
    Agent --> LLM
    Agent --> MCP
    MCP --> Trino
    Agent --> Validation
    Agent --> Response
    Response --> User

Stack Tecnológico

Tecnología

Propósito

Python + FastAPI

Backend y API REST/compatible con OpenAI

LangGraph

Orquestación del pipeline (RAG → esquema → SQL → validar → ejecutar)

Ollama

LLM local (llama3.2) y embeddings (mxbai-embed-large)

LangChain + Qdrant

Recuperación de documentos RAG

FastMCP

Servidor Model Context Protocol (herramientas)

LangSmith

Trazado y monitoreo del pipeline

Trino

Motor de consultas SQL (catálogo de demostración TPCH)

Open WebUI

Interfaz de chat (opcional)

Docker

Infraestructura contenerizada

Estructura del Proyecto

app/
├── agent/            # SQL agent + prompts (Ollama)
├── api/              # REST + OpenAI-compatible endpoints
├── core/             # Config, models, exceptions, logging
├── formatter/        # Response formatting
├── mcp/              # MCP server, client, catalog services
├── orchestrator/     # LangGraph pipeline
├── rag/              # Ingestion and retrieval (Qdrant)
├── services/         # Trino client
└── validator/        # SQL validation
tests/                # pytest suite
docker/               # App image + Trino config
docs/                 # RAG knowledge base
scripts/              # Document ingestion CLI

Comenzando

Requisitos previos

  • Python 3.11 o 3.12 (3.13 no es compatible)

  • Docker + Docker Compose

  • GPU opcional (Ollama puede ejecutarse en CPU)

Instalación

git clone https://github.com/hani-ben-dhaou/Enterprise-Big-Data-Copilot.git
cd entreprise-bigdata-copilot

python -m venv .venv
# Windows: .venv\Scripts\activate | macOS/Linux: source .venv/bin/activate

pip install -r requirements.txt
pip install -r requirements-dev.txt   # pytest

Configuración

cp .env.example .env

Variables clave (los valores predeterminados funcionan para desarrollo local):

Variable

Descripción

OLLAMA_BASE_URL / OLLAMA_MODEL

Servidor y modelo LLM (llama3.2)

OLLAMA_EMBED_MODEL

Modelo de embeddings (mxbai-embed-large)

QDRANT_HOST / QDRANT_PORT

Base de datos vectorial Qdrant

TRINO_HOST / TRINO_PORT / TRINO_CATALOG / TRINO_SCHEMA

Trino (catálogo predeterminado tpch, esquema tiny)

MCP_TRANSPORT

inprocess (predeterminado, recomendado en Windows) o sse

MCP_METADATA_SOURCE

inmemory (catálogo de demostración) o trino (metadatos en vivo)

ENABLE_SQL_EXECUTION

Ejecutar SQL validado en Trino

LANGCHAIN_TRACING_V2

Establecer true para habilitar el rastreo de LangSmith

LANGCHAIN_API_KEY

Tu clave API de LangSmith (el rastreo permanece desactivado si está vacía)

LANGCHAIN_PROJECT

Nombre del proyecto LangSmith (predeterminado copilot)

Ejecutar

# 1. Start infrastructure (Ollama, Qdrant, Trino)
docker compose up -d

# 2. Pull models and ingest documentation (Qdrant must be up)
docker exec -it copilot-ollama ollama pull llama3.2
docker exec -it copilot-ollama ollama pull mxbai-embed-large
python scripts/ingest_docs.py

# 3. Start the API
uvicorn app.main:app --reload --port 8000

# 4. Optional: standalone MCP server (SSE on :8001)
python -m app.mcp.server

Uso

Haz una pregunta en lenguaje natural:

curl -X POST http://localhost:8000/api/v1/query \
  -H "Content-Type: application/json" \
  -d '{"question":"Show me the top 10 customers by total revenue last month"}'

La respuesta incluye el SQL generado, una explicación, una puntuación de confianza, advertencias y — cuando la ejecución está habilitada — las filas de resultado:

{
  "question": "Show me the top 10 customers by total revenue last month",
  "sql": "SELECT ...",
  "explanation": "...",
  "confidence": 0.92,
  "warnings": [],
  "dialect": "trino",
  "results": [["42", "Acme", 98765.00]],
  "execution": {"status": "ok", "columns": ["id", "name", "revenue"], "row_count": 1, "truncated": false}
}

Otros endpoints: GET /api/v1/schema (listar catálogo), GET /api/v1/health y POST /v1/chat/completions (compatible con OpenAI, usado por Open WebUI).

Pruebas

pytest

La suite es hermética y se ejecuta sin una pila en vivo (146 pruebas).

Trazado y Monitoreo

Cada consulta del pipeline (recuperación RAG, búsqueda de esquema, generación de SQL, bucles de validación, ejecución) se puede rastrear con LangSmith. Crea una cuenta gratuita, obtén una clave API y establece: LANGCHAIN_TRACING_V2=true, LANGCHAIN_API_KEY=<tu clave> y opcionalmente LANGCHAIN_PROJECT=copilot. El rastreo permanece desactivado mientras no se configure ninguna clave.

Rastreo de LangSmith de una ejecución del pipeline del copiloto

Docker

docker compose ejecuta la pila completa:

Servicio

Contenedor

Puerto

Ollama

copilot-ollama

11434

Qdrant

copilot-qdrant

6333

Trino

copilot-trino

8080

Open WebUI

copilot-webui

3000

Copilot API

copilot-api

8000

MCP Server

copilot-mcp

8001

Los volúmenes con nombre persisten los modelos de Ollama, los datos de Qdrant y los datos de Open WebUI. El volumen ollama se declara external — créalo una vez si no está presente:

docker volume create ollama
docker compose up -d
docker compose ps
docker compose logs -f copilot-api
docker compose down

Nota para Windows: MCP sobre SSE real puede ser inestable en el bucle de eventos de Windows. Mantén MCP_TRANSPORT=inprocess para el desarrollo local en Windows; usa SSE en Linux/Docker.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides AI models with structured access to Trino's distributed SQL query engine, enabling LLMs to directly query and analyze data stored in Trino databases.
    3
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language querying of Apache Doris databases via LLM-powered SQL generation, execution, and metadata management through the MCP protocol.
    9
    Apache 2.0
  • F
    license
    A
    quality
    A
    maintenance
    Natural language to SQL engine with multi-connector support (PostgreSQL, MySQL, Snowflake, BigQuery, DuckDB), document QA, semantic caching, and self-hosted MCP server.
    9
    2

View all related MCP servers

Related MCP Connectors

  • The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • GibsonAI MCP server: manage your databases with natural language

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hani-ben-dhaou/Enterprise-Big-Data-Copilot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server