Rifqi Hafizuddin
[NOTICKET] minor fix in chat.py, add package for query, change schema used to hybrid (cosine+bm25)
15cd3a7 | [build-system] | |
| requires = ["hatchling"] | |
| build-backend = "hatchling.build" | |
| [project] | |
| name = "agent-service-data-eyond" | |
| version = "0.1.0" | |
| description = "Agentic Service Data Eyond — Multi-Agent AI Backend" | |
| requires-python = ">=3.12,<3.13" | |
| dependencies = [ | |
| # --- Web Framework --- | |
| "fastapi[standard]==0.115.6", | |
| "uvicorn[standard]==0.32.1", | |
| "python-multipart==0.0.12", | |
| "starlette==0.41.3", | |
| "sse-starlette==2.1.3", | |
| # --- LangChain Core Ecosystem (NO LiteLLM) --- | |
| "langchain==0.3.13", | |
| "langchain-core==0.3.28", | |
| "langchain-community==0.3.13", | |
| "langchain-openai==0.2.14", | |
| "langchain-postgres>=0.0.13", | |
| "langgraph==0.2.60", | |
| "langgraph-checkpoint-postgres==2.0.9", | |
| # --- LLM / Azure OpenAI --- | |
| "openai==1.58.1", | |
| "tiktoken==0.8.0", | |
| # --- Database --- | |
| "sqlalchemy[asyncio]==2.0.36", | |
| "asyncpg==0.30.0", | |
| "psycopg[binary,pool]==3.2.3", | |
| "pgvector==0.3.6", | |
| "alembic==1.14.0", | |
| # --- Azure --- | |
| "azure-storage-blob==12.23.1", | |
| "azure-identity==1.19.0", | |
| "azure-ai-documentintelligence==1.0.0", | |
| # --- Pydantic / Validation --- | |
| "pydantic==2.10.3", | |
| "pydantic-settings==2.7.0", | |
| # --- Observability --- | |
| "langfuse==2.57.4", | |
| "structlog==24.4.0", | |
| "prometheus-client==0.21.1", | |
| # --- Security --- | |
| "passlib[bcrypt]==1.7.4", | |
| "cryptography==44.0.0", | |
| # --- Rate Limiting --- | |
| "slowapi==0.1.9", | |
| "redis==5.2.1", | |
| # --- Retry --- | |
| "tenacity==9.0.0", | |
| # --- Document Processing (for reading existing docs from blob) --- | |
| "pypdf==5.1.0", | |
| "python-docx==1.1.2", | |
| "openpyxl==3.1.5", | |
| "pandas==2.2.3", | |
| # --- Chart/Visualization --- | |
| "matplotlib==3.9.3", | |
| "plotly==5.24.1", | |
| "kaleido==0.2.1", | |
| # --- MCP --- | |
| "mcp==1.2.0", | |
| # --- Advanced RAG --- | |
| "rank-bm25==0.2.2", | |
| "sentence-transformers==3.3.1", | |
| # --- PII Detection (no LiteLLM) --- | |
| "presidio-analyzer==2.2.355", | |
| "presidio-anonymizer==2.2.355", | |
| "spacy==3.8.3", | |
| # --- Utilities --- | |
| "httpx==0.28.1", | |
| "anyio==4.7.0", | |
| "python-dotenv==1.0.1", | |
| "orjson==3.10.12", | |
| "cachetools==5.5.0", | |
| "apscheduler==3.10.4", | |
| "jsonpatch>=1.33", | |
| "pymongo>=4.14.0", | |
| "psycopg2>=2.9.11", | |
| # --- SQL parsing / guardrails --- | |
| "sqlglot>=25.0.0", | |
| # --- User-DB connectors (db_pipeline) --- | |
| "pymysql>=1.1.1", | |
| "pymssql>=2.3.0", | |
| "sqlalchemy-bigquery>=1.11.0", | |
| "snowflake-sqlalchemy>=1.7.0", | |
| # --- OCR (pdf processing) --- | |
| "pdf2image>=1.17.0", | |
| "pytesseract>=0.3.13", | |
| "pypdf2>=3.0.1", | |
| ] | |
| [project.optional-dependencies] | |
| dev = [ | |
| "pytest==8.3.4", | |
| "pytest-asyncio==0.24.0", | |
| "pytest-cov==6.0.0", | |
| "httpx==0.28.1", | |
| "ruff==0.8.4", | |
| "mypy==1.13.0", | |
| "pre-commit==4.0.1", | |
| ] | |
| [tool.hatch.build.targets.wheel] | |
| packages = ["src/agent_service"] | |
| [tool.ruff] | |
| target-version = "py312" | |
| line-length = 100 | |
| [tool.ruff.lint] | |
| select = ["E", "F", "I", "N", "UP", "S", "B", "A", "C4", "T20"] | |
| ignore = [ | |
| "S101", # assert statements OK in tests | |
| "S105", # hardcoded passwords — false positives in config | |
| "S106", | |
| "B008", # FastAPI Depends() calls OK in function args | |
| ] | |
| [tool.ruff.lint.per-file-ignores] | |
| "tests/**" = ["S101", "S105", "S106"] | |
| [tool.mypy] | |
| python_version = "3.12" | |
| strict = true | |
| ignore_missing_imports = true | |
| plugins = ["pydantic.mypy"] | |
| [tool.pytest.ini_options] | |
| asyncio_mode = "auto" | |
| testpaths = ["tests"] | |
| filterwarnings = [ | |
| "ignore::DeprecationWarning", | |
| ] | |