DataEyond/Demo-Agentic-Service-Data-Eyond
0
1[build-system]2requires = ["hatchling"]3build-backend = "hatchling.build"4 5[project]6name = "demo-agent-service"7version = "0.1.0"8description = "DEMO Agentic Service Data Eyond — Multi-Agent AI Backend"9requires-python = ">=3.12,<3.13"10 11dependencies = [12 # --- Web Framework ---13 "fastapi[standard]==0.115.6",14 "uvicorn[standard]==0.32.1",15 "python-multipart==0.0.12",16 "starlette==0.41.3",17 "sse-starlette==2.1.3",18 # --- LangChain Core Ecosystem (NO LiteLLM) ---19 "langchain==0.3.13",20 "langchain-core==0.3.28",21 "langchain-community==0.3.13",22 "langchain-openai==0.2.14",23 "langchain-postgres>=0.0.13",24 "langgraph==0.2.60",25 "langgraph-checkpoint-postgres==2.0.9",26 # --- LLM / Azure OpenAI ---27 "openai==1.58.1",28 "tiktoken==0.8.0",29 # --- Database ---30 "sqlalchemy[asyncio]==2.0.36",31 "asyncpg==0.30.0",32 "psycopg[binary,pool]==3.2.3",33 "pgvector==0.3.6",34 "alembic==1.14.0",35 # --- Azure ---36 "azure-storage-blob==12.23.1",37 "azure-identity==1.19.0",38 "azure-ai-documentintelligence==1.0.0",39 # --- Pydantic / Validation ---40 "pydantic==2.10.3",41 "pydantic-settings==2.7.0",42 # --- Observability ---43 "langfuse==2.57.4",44 "structlog==24.4.0",45 "prometheus-client==0.21.1",46 # --- Security ---47 "passlib[bcrypt]==1.7.4",48 "cryptography==44.0.0",49 # --- Rate Limiting ---50 "slowapi==0.1.9",51 "redis==5.2.1",52 # --- Retry ---53 "tenacity==9.0.0",54 # --- Document Processing (for reading existing docs from blob) ---55 "pypdf==5.1.0",56 "python-docx==1.1.2",57 "openpyxl==3.1.5",58 "pandas==2.2.3",59 # --- Chart/Visualization ---60 "matplotlib==3.9.3",61 "plotly==5.24.1",62 "kaleido==0.2.1",63 # --- MCP ---64 "mcp==1.2.0",65 # --- Advanced RAG ---66 "rank-bm25==0.2.2",67 "sentence-transformers==3.3.1",68 # --- PII Detection (no LiteLLM) ---69 "presidio-analyzer==2.2.355",70 "presidio-anonymizer==2.2.355",71 "spacy==3.8.3",72 # --- Utilities ---73 "httpx==0.28.1",74 "anyio==4.7.0",75 "python-dotenv==1.0.1",76 "orjson==3.10.12",77 "cachetools==5.5.0",78 "apscheduler==3.10.4",79 "jsonpatch>=1.33",80 "pymongo>=4.14.0",81 "psycopg2>=2.9.11",82 # --- User-DB connectors (db_pipeline) ---83 "pymysql>=1.1.1",84 "pymssql>=2.3.0",85 # --- OCR (pdf processing) ---86 "pdf2image>=1.17.0",87 "pytesseract>=0.3.13",88 "pypdf2>=3.0.1",89]90 91[project.optional-dependencies]92dev = [93 "pytest==8.3.4",94 "pytest-asyncio==0.24.0",95 "pytest-cov==6.0.0",96 "httpx==0.28.1",97 "ruff==0.8.4",98 "mypy==1.13.0",99 "pre-commit==4.0.1",100]101 102[tool.uv]103dev-dependencies = [104 "pytest==8.3.4",105 "pytest-asyncio==0.24.0",106 "pytest-cov==6.0.0",107 "ruff==0.8.4",108 "mypy==1.13.0",109 "pre-commit==4.0.1",110]111 112[tool.hatch.build.targets.wheel]113packages = ["src/agent_service"]114 115[tool.ruff]116target-version = "py312"117line-length = 100118 119[tool.ruff.lint]120select = ["E", "F", "I", "N", "UP", "S", "B", "A", "C4", "T20"]121ignore = [122 "S101", # assert statements OK in tests123 "S105", # hardcoded passwords — false positives in config124 "S106",125 "B008", # FastAPI Depends() calls OK in function args126]127 128[tool.ruff.lint.per-file-ignores]129"tests/**" = ["S101", "S105", "S106"]130 131[tool.mypy]132python_version = "3.12"133strict = true134ignore_missing_imports = true135plugins = ["pydantic.mypy"]136 137[tool.pytest.ini_options]138asyncio_mode = "auto"139testpaths = ["tests"]140filterwarnings = [141 "ignore::DeprecationWarning",142]143 