2026-06-05 18:00:31 +08:00
|
|
|
# ── Web framework ─────────────────────────────────────────────────────────────
|
2026-05-14 15:07:34 +08:00
|
|
|
fastapi>=0.110.0
|
|
|
|
|
uvicorn[standard]>=0.27.0
|
|
|
|
|
python-multipart>=0.0.9
|
2026-07-29 13:00:52 +08:00
|
|
|
# MCP server module (backend/app/mcp/) — pin >=2.0.0: that release renamed the
|
|
|
|
|
# older "FastMCP" class to "MCPServer" (mcp.server.MCPServer), which is the
|
|
|
|
|
# class actually used in app/mcp/server.py.
|
|
|
|
|
mcp>=2.0.0
|
2026-05-14 15:07:34 +08:00
|
|
|
|
2026-06-05 18:00:31 +08:00
|
|
|
# ── Config & utilities ────────────────────────────────────────────────────────
|
2026-05-14 15:07:34 +08:00
|
|
|
pydantic>=2.0.0
|
|
|
|
|
pydantic-settings>=2.0.0
|
|
|
|
|
python-dotenv>=1.0.0
|
|
|
|
|
loguru>=0.7.0
|
|
|
|
|
httpx>=0.25.0
|
2026-06-08 11:16:28 +08:00
|
|
|
beautifulsoup4>=4.12.0
|
|
|
|
|
lxml>=5.0.0
|
2026-05-14 15:07:34 +08:00
|
|
|
tiktoken>=0.5.0
|
|
|
|
|
tenacity>=8.2.0
|
2026-08-06 11:08:46 +08:00
|
|
|
# Regulatory signal crawling (backend/app/infrastructure/perception/) — main-content
|
|
|
|
|
# extraction from crawled regulation detail pages and character-level diff for change
|
|
|
|
|
# detection. Import name for diff-match-patch is diff_match_patch (underscored).
|
|
|
|
|
trafilatura>=2.0.0
|
|
|
|
|
diff-match-patch>=20241021
|
2026-05-14 15:07:34 +08:00
|
|
|
|
2026-06-05 18:00:31 +08:00
|
|
|
# ── Auth ──────────────────────────────────────────────────────────────────────
|
|
|
|
|
python-jose[cryptography]>=3.3.0
|
|
|
|
|
# passlib is incompatible with bcrypt>=4.0 (removed __about__, strict 72-byte limit).
|
|
|
|
|
# Pin bcrypt to 3.x until passlib ships a fix.
|
|
|
|
|
passlib[bcrypt]>=1.7.4
|
|
|
|
|
bcrypt>=3.2.0,<4.0.0
|
|
|
|
|
|
|
|
|
|
# ── Async task queue ──────────────────────────────────────────────────────────
|
|
|
|
|
celery>=5.3.0
|
|
|
|
|
redis>=4.5.0
|
|
|
|
|
|
|
|
|
|
# ── Storage & databases ───────────────────────────────────────────────────────
|
2026-05-14 15:07:34 +08:00
|
|
|
pymilvus>=2.4.0
|
|
|
|
|
minio>=7.1.0
|
2026-05-20 23:34:08 +08:00
|
|
|
psycopg2-binary>=2.9.0
|
2026-05-14 15:07:34 +08:00
|
|
|
|
2026-06-05 18:00:31 +08:00
|
|
|
# ── Document parsing ─────────────────────────────────────────────────────────
|
2026-05-14 15:07:34 +08:00
|
|
|
pymupdf>=1.24.0
|
|
|
|
|
python-docx>=1.1.0
|
2026-05-18 16:32:42 +08:00
|
|
|
alibabacloud-docmind-api20220711>=1.0.6
|
|
|
|
|
alibabacloud-tea-openapi>=0.3.11
|
|
|
|
|
alibabacloud-tea-util>=0.3.13
|
2026-05-14 15:07:34 +08:00
|
|
|
|
2026-06-05 18:00:31 +08:00
|
|
|
# ── RAG / LangChain ───────────────────────────────────────────────────────────
|
2026-05-14 15:07:34 +08:00
|
|
|
langchain>=0.1.0
|
|
|
|
|
langchain-milvus>=0.1.0
|
2026-06-05 18:00:31 +08:00
|
|
|
numpy>=1.24.0
|
2026-05-14 15:07:34 +08:00
|
|
|
|
2026-06-05 18:00:31 +08:00
|
|
|
# ── Testing ───────────────────────────────────────────────────────────────────
|
2026-05-14 15:07:34 +08:00
|
|
|
pytest>=7.4.0
|
|
|
|
|
pytest-asyncio>=0.21.0
|
2026-06-05 18:00:31 +08:00
|
|
|
fakeredis>=2.0.0
|