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 ( |
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Ключевые переменные (значения по умолчанию подходят для локальной разработки):
Переменная | Описание |
| Сервер и модель LLM ( |
| Модель эмбеддингов ( |
| Векторная база данных Qdrant |
| Trino (каталог по умолчанию |
|
|
|
|
| Выполнять проверенный SQL на Trino |
| Установите |
| Ваш API-ключ LangSmith (трассировка остаётся выключенной, если пусто) |
| Имя проекта LangSmith (по умолчанию |
Запуск
# 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. Трассировка остаётся выключенной, пока не настроен ключ.

Docker
docker compose запускает полный стек:
Сервис | Контейнер | Порт |
Ollama |
| 11434 |
Qdrant |
| 6333 |
Trino |
| 8080 |
Open WebUI |
| 3000 |
Copilot API |
| 8000 |
MCP Server |
| 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.
This server cannot be installed
Maintenance
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
- AlicenseBqualityDmaintenanceProvides AI models with structured access to Trino's distributed SQL query engine, enabling LLMs to directly query and analyze data stored in Trino databases.310MIT
- AlicenseNot gradedqualityDmaintenanceEnables natural language querying of Apache Doris databases via LLM-powered SQL generation, execution, and metadata management through the MCP protocol.9Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables listing and querying Trino tables via MCP, supporting arbitrary SQL queries against a Trino cluster.MIT
- FlicenseAqualityAmaintenanceNatural language to SQL engine with multi-connector support (PostgreSQL, MySQL, Snowflake, BigQuery, DuckDB), document QA, semantic caching, and self-hosted MCP server.92
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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