[project]
name = "iiot-rag-mcp"
version = "0.1.0"
description = "ExperionCrawler Unified MCP Server — RAG + NL2SQL"
requires-python = ">=3.10"
dependencies = [
    "mcp[cli]>=1.0.0",
    "fastapi>=0.115.0",
    "uvicorn>=0.34.0",
    "qdrant-client>=1.9.0",
    "sentence-transformers>=3.0.0",
    "openai>=1.0.0",
    "httpx>=0.27.0",
    "psycopg[binary]>=3.1.0",
    # P&ID 파싱
    "ezdxf>=1.3.0",
    # ARM64 환경 지원: paddlepaddle 3.x는 ARM64 wheel 미지원
    # 2.6.0~2.9.x는 소스 빌드 가능
    "paddlepaddle>=2.6.0,<3.0.0",
    # paddleocr 2.7.0+는 paddlepaddle 3.3.1을 요구하며 ARM64 wheel 미지원
    # 2.6.0은 paddlepaddle 2.x를 지원하여 ARM64 설치 가능
    "paddleocr>=2.6.0,<2.7.0",
    "pymupdf>=1.24.0",
    "scikit-learn>=1.3.0",
    "numpy>=1.24.0",
    "Pillow>=10.0.0",
    # KB 문서 파싱
    "openpyxl>=3.1.0",
    "python-docx>=1.1.0",
    "pdfplumber>=0.11.0",
    # 계기 유추
    "pyyaml>=6.0.0",
]

[project.scripts]
iiot-rag-mcp = "server:main"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
only-include = ["server.py", "index_opc_docs.py", "instrument_inference/", "parsers/", "pipeline/", "worker/", "config.py"]
