Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Ask My Data

БесплатноНе проверен

Automatically routes natural language questions to RAG or Text2SQL paths to answer queries about virtual construction site data, supporting semantic search and

GitHubEmbed

Описание

Automatically routes natural language questions to RAG or Text2SQL paths to answer queries about virtual construction site data, supporting semantic search and structured aggregation.

README

하나의 자연어 질문을 의미 검색(RAG)데이터 집계(Text2SQL) 경로로 자동 라우팅해 답하는 MCP 서버. LangGraph 기반 Multi-Agent 파이프라인을 완전 합성 검색 평가 데이터로 검증하는 포트폴리오 프로젝트입니다.

실행 증거

아래 이미지는 2026-07-15에 클린 가상환경에서 MCP stdio 연결 후 tools/listsearch_documents를 실제 호출한 결과입니다.

Ask-My-Data MCP smoke test

검증 결과
pip install -e ".[dev]" 통과 (Python 3.14.5)
python -m pytest -q 6 passed
MCP initialize · tools/list 통과 — 3 tools
search_documents 호출 통과 — API 키 없이 BM25 검색

askquery_stats는 라우팅·SQL 생성·답변 합성에 Claude를 사용하므로 ANTHROPIC_API_KEY가 필요합니다. 위 smoke test는 키나 외부 API 없이 검증 가능한 검색 경로입니다.

동일한 검증은 python scripts/smoke_test.py로 재현할 수 있습니다.

무엇을 보여주나

  • MCP 서버 — 범용 LLM 클라이언트(Claude Desktop 등)에서 도구로 호출
  • Multi-Agent 라우팅 — 질문 유형(semantic/structured/both)을 판단해 경로 분기
  • RAG — BM25 키워드 + (옵션)다국어 임베딩 Hybrid Search
  • Text2SQL — 자연어 → 검증된 SELECT → 검색 실험 결과 집계
  • Synthesize — 문서 근거와 정형 결과를 결합한 답변 생성

아키텍처

          ┌──────────┐
질문 ────▶ │  Router  │  semantic / structured / both 분류
          └────┬─────┘
       ┌───────┼────────┐
       ▼                ▼
  ┌─────────┐     ┌───────────┐
  │  RAG    │     │ Text2SQL  │
  │ (문서)   │     │ (SQLite)  │
  └────┬────┘     └─────┬─────┘
       └────────┬───────┘         (both: RAG → Text2SQL 순으로 이어붙임)
                ▼
         ┌────────────┐
         │ Synthesize │  근거 종합 → 자연어 답변
         └────────────┘

검색 실험용 합성 데이터

data/는 특정 회사·고객·서비스와 무관하게 이 프로젝트를 위해 새로 만든 데이터입니다.

구성 내용 실험 질문 예시
문서 코퍼스 검색 지표·방법론 + 실시간 협업 편집 OT/CRDT 기술 문서 “MRR과 nDCG의 차이는?”, “OT와 CRDT는 언제 선택해?”
datasets 언어·질의 수·문서 수가 다른 가상 데이터셋 3개 “다국어 데이터셋은 무엇인가?”
experiments BM25·Dense·Hybrid-RRF 가상 실험 9개 “MRR이 가장 높은 실험은?”
experiment_results 데이터셋과 실험을 결합한 조회용 View “한국어 데이터셋의 품질·지연 시간 비교”

모든 이름, 설명, 지표와 지연 시간은 검색/RAG 실험을 위해 임의로 구성한 합성 값입니다. 실시간 협업 편집 문서는 사용자가 제공한 일반 기술 리서치 문서로, 합성 실험 수치와 분리되어 있습니다.

빠른 시작

# 1) 설치
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"          # 기본 + 테스트
pip install -e ".[embeddings]"   # 옵션: 다국어 임베딩 Hybrid Search

# 2) 환경변수
cp .env.example .env              # ANTHROPIC_API_KEY 채우기
export $(cat .env | xargs)        # 또는 direnv/python-dotenv

# 3) 합성 검색 실험 DB 생성
python data/build_sample_db.py

# 4) MCP 없이 바로 테스트 (CLI)
python -m src.cli "MRR이 뭐야?"
python -m src.cli "Mosaic 데이터셋에서 MRR이 가장 높은 실험은?"
python -m src.cli "nDCG@10이 가장 높은 실험은 무엇이고, nDCG는 어떻게 계산해?"

# 단위 테스트
python -m pytest -q

MCP 클라이언트에 연결 (Claude Desktop 예시)

claude_desktop_config.json:

{
  "mcpServers": {
    "ask-my-data": {
      "command": "python",
      "args": ["/absolute/path/to/ask-my-data-mcp/server.py"],
      "env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
    }
  }
}

노출 도구: ask (자동 라우팅) · search_documents (RAG) · query_stats (Text2SQL)

예시 질문과 라우팅

질문 라우팅 경로
"MRR이 뭐야?" semantic RAG
"Mosaic 데이터셋에서 MRR이 가장 높은 실험은?" structured Text2SQL
"nDCG@10이 가장 높은 실험은 무엇이고, nDCG는 어떻게 계산해?" both RAG + Text2SQL

기술 스택

Python · MCP · LangGraph · Anthropic Claude · rank-bm25 · sentence-transformers(옵션) · SQLite

관련 글

라이선스

MIT

from github.com/feelgom/ask-my-data-mcp

Установка Ask My Data

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/feelgom/ask-my-data-mcp

FAQ

Ask My Data MCP бесплатный?

Да, Ask My Data MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Ask My Data?

Нет, Ask My Data работает без API-ключей и переменных окружения.

Ask My Data — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Ask My Data в Claude Desktop, Claude Code или Cursor?

Открой Ask My Data на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Ask My Data with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai