Skip to main content
Glama
hani-ben-dhaou

Enterprise Big Data Copilot

Enterprise Big Data Copilot

ИИ-копайлот, который превращает вопросы на естественном языке в проверенный Trino SQL с учётом схемы данных, используя RAG, MCP-инструменты и локальный инференс LLM.

Обзор

Enterprise Big Data Copilot позволяет пользователям запрашивать Big Data-платформы на простом английском языке. Конвейер на LangGraph извлекает релевантную документацию (RAG) и актуальные метаданные схемы (MCP), генерирует SQL с помощью локальной LLM (Ollama), проверяет его на соответствие правилам безопасности и схеме и — когда платформа доступна — выполняет его на Trino и возвращает реальные строки.

Related MCP server: Doris MCP Server

Возможности

  • Генерация Text-to-SQL на естественном языке для Trino

  • Локальный инференс LLM с Ollama (без облачного API)

  • RAG-поиск по документации Trino / Hive / Iceberg (Qdrant)

  • Генерация с учётом схемы на основе актуальных метаданных каталога

  • Проверка SQL (только чтение SELECT, проверка парсинга, привязка к схеме) с автоматическим циклом повторной генерации

  • Выполнение запросов и получение результатов из Trino (best-effort)

  • MCP-сервер (Model Context Protocol), предоставляющий инструменты для работы с метаданными, запросами и профилированием

  • API, совместимый с OpenAI, для Open WebUI

  • Сквозная трассировка конвейера с LangSmith

Архитектура

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

Технологический стек

Технология

Назначение

Python + FastAPI

Бэкенд и REST/OpenAI-совместимый API

LangGraph

Оркестрация конвейера (RAG → схема → SQL → проверка → выполнение)

Ollama

Локальная LLM (llama3.2) и эмбеддинги (mxbai-embed-large)

LangChain + Qdrant

RAG-поиск по документации

FastMCP

MCP-сервер (инструменты)

LangSmith

Трассировка и мониторинг конвейера

Trino

SQL-движок (демо-каталог TPCH)

Open WebUI

Чат-интерфейс (опционально)

Docker

Контейнеризированная инфраструктура

Структура проекта

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

Начало работы

Предварительные требования

  • Python 3.11 или 3.12 (3.13 не поддерживается)

  • Docker + Docker Compose

  • GPU опционально (Ollama может работать на CPU)

Установка

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

Конфигурация

cp .env.example .env

Ключевые переменные (значения по умолчанию подходят для локальной разработки):

Переменная

Описание

OLLAMA_BASE_URL / OLLAMA_MODEL

Сервер и модель LLM (llama3.2)

OLLAMA_EMBED_MODEL

Модель эмбеддингов (mxbai-embed-large)

QDRANT_HOST / QDRANT_PORT

Векторная база данных Qdrant

TRINO_HOST / TRINO_PORT / TRINO_CATALOG / TRINO_SCHEMA

Trino (каталог по умолчанию tpch, схема tiny)

MCP_TRANSPORT

inprocess (по умолчанию, рекомендуется на Windows) или sse

MCP_METADATA_SOURCE

inmemory (демо-каталог) или trino (живые метаданные)

ENABLE_SQL_EXECUTION

Выполнять проверенный SQL на Trino

LANGCHAIN_TRACING_V2

Установите true, чтобы включить трассировку LangSmith

LANGCHAIN_API_KEY

Ваш API-ключ LangSmith (трассировка остаётся выключенной, если пусто)

LANGCHAIN_PROJECT

Имя проекта LangSmith (по умолчанию copilot)

Запуск

# 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

Использование

Задайте вопрос на естественном языке:

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"}'

Ответ включает сгенерированный SQL, объяснение, оценку уверенности, предупреждения и — когда выполнение включено — строки результата:

{
  "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}
}

Другие конечные точки: GET /api/v1/schema (список каталога), GET /api/v1/health и POST /v1/chat/completions (совместимо с OpenAI, используется Open WebUI).

Тестирование

pytest

Набор тестов герметичен и работает без живого стека (146 тестов).

Трассировка и мониторинг

Каждый запрос конвейера (RAG-поиск, получение схемы, генерация SQL, циклы проверки, выполнение) можно отслеживать с помощью LangSmith. Создайте бесплатный аккаунт, получите API-ключ и задайте: LANGCHAIN_TRACING_V2=true, LANGCHAIN_API_KEY=<ваш ключ> и, при желании, LANGCHAIN_PROJECT=copilot. Трассировка остаётся выключенной, пока не настроен ключ.

Трассировка LangSmith запуска конвейера copilot

Docker

docker compose запускает полный стек:

Сервис

Контейнер

Порт

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

Именованные тома сохраняют модели Ollama, данные Qdrant и данные Open WebUI. Том ollama объявлен как external — создайте его один раз, если он отсутствует:

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

Примечание для Windows: MCP через реальный SSE может работать нестабильно в цикле событий Windows. Для локальной разработки на Windows оставьте MCP_TRANSPORT=inprocess; используйте SSE на 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