mirror of
https://github.com/langgenius/dify.git
synced 2026-04-16 18:39:18 +08:00
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
275 lines
8.6 KiB
TOML
275 lines
8.6 KiB
TOML
[project]
|
|
name = "dify-api"
|
|
version = "1.13.3"
|
|
requires-python = "~=3.12.0"
|
|
|
|
dependencies = [
|
|
# Legacy: mature and widely deployed
|
|
"bleach>=6.3.0",
|
|
"boto3>=1.42.88",
|
|
"celery>=5.6.3",
|
|
"croniter>=6.2.2",
|
|
"flask-cors>=6.0.2",
|
|
"gevent>=26.4.0",
|
|
"gevent-websocket>=0.10.1",
|
|
"gmpy2>=2.3.0",
|
|
"google-api-python-client>=2.194.0",
|
|
"gunicorn>=25.3.0",
|
|
"psycogreen>=1.0.2",
|
|
"psycopg2-binary>=2.9.11",
|
|
"python-socketio>=5.13.0",
|
|
"redis[hiredis]>=7.4.0",
|
|
"sendgrid>=6.12.5",
|
|
"sseclient-py>=1.8.0",
|
|
|
|
# Stable: production-proven, cap below the next major
|
|
"aliyun-log-python-sdk>=0.9.44,<1.0.0",
|
|
"azure-identity>=1.25.3,<2.0.0",
|
|
"flask-compress>=1.24,<2.0.0",
|
|
"flask-login>=0.6.3,<1.0.0",
|
|
"flask-migrate>=4.1.0,<5.0.0",
|
|
"flask-orjson>=2.0.0,<3.0.0",
|
|
"flask-restx>=1.3.2,<2.0.0",
|
|
"google-cloud-aiplatform>=1.147.0,<2.0.0",
|
|
"httpx[socks]>=0.28.1,<1.0.0",
|
|
"langfuse>=4.2.0,<5.0.0",
|
|
"langsmith>=0.7.31,<1.0.0",
|
|
"mlflow-skinny>=3.11.1,<4.0.0",
|
|
"opentelemetry-distro>=0.62b0,<1.0.0",
|
|
"opentelemetry-instrumentation-celery>=0.62b0,<1.0.0",
|
|
"opentelemetry-instrumentation-flask>=0.62b0,<1.0.0",
|
|
"opentelemetry-instrumentation-httpx>=0.62b0,<1.0.0",
|
|
"opentelemetry-instrumentation-redis>=0.62b0,<1.0.0",
|
|
"opentelemetry-instrumentation-sqlalchemy>=0.62b0,<1.0.0",
|
|
"opentelemetry-propagator-b3>=1.41.0,<2.0.0",
|
|
"readabilipy>=0.3.0,<1.0.0",
|
|
"resend>=2.27.0,<3.0.0",
|
|
"weave>=0.52.36,<1.0.0",
|
|
|
|
# Emerging: newer and fast-moving, use compatible pins
|
|
"arize-phoenix-otel~=0.15.0",
|
|
"fastopenapi[flask]~=0.7.0",
|
|
"graphon~=0.1.2",
|
|
"httpx-sse~=0.4.0",
|
|
"json-repair~=0.59.2",
|
|
"opik~=1.11.2",
|
|
]
|
|
# Before adding new dependency, consider place it in
|
|
# alphabet order (a-z) and suitable group.
|
|
|
|
[tool.setuptools]
|
|
packages = []
|
|
|
|
[tool.uv.workspace]
|
|
members = ["providers/vdb/*"]
|
|
exclude = ["providers/vdb/__pycache__"]
|
|
|
|
[tool.uv.sources]
|
|
dify-vdb-alibabacloud-mysql = { workspace = true }
|
|
dify-vdb-analyticdb = { workspace = true }
|
|
dify-vdb-baidu = { workspace = true }
|
|
dify-vdb-chroma = { workspace = true }
|
|
dify-vdb-clickzetta = { workspace = true }
|
|
dify-vdb-couchbase = { workspace = true }
|
|
dify-vdb-elasticsearch = { workspace = true }
|
|
dify-vdb-hologres = { workspace = true }
|
|
dify-vdb-huawei-cloud = { workspace = true }
|
|
dify-vdb-iris = { workspace = true }
|
|
dify-vdb-lindorm = { workspace = true }
|
|
dify-vdb-matrixone = { workspace = true }
|
|
dify-vdb-milvus = { workspace = true }
|
|
dify-vdb-myscale = { workspace = true }
|
|
dify-vdb-oceanbase = { workspace = true }
|
|
dify-vdb-opengauss = { workspace = true }
|
|
dify-vdb-opensearch = { workspace = true }
|
|
dify-vdb-oracle = { workspace = true }
|
|
dify-vdb-pgvecto-rs = { workspace = true }
|
|
dify-vdb-pgvector = { workspace = true }
|
|
dify-vdb-qdrant = { workspace = true }
|
|
dify-vdb-relyt = { workspace = true }
|
|
dify-vdb-tablestore = { workspace = true }
|
|
dify-vdb-tencent = { workspace = true }
|
|
dify-vdb-tidb-on-qdrant = { workspace = true }
|
|
dify-vdb-tidb-vector = { workspace = true }
|
|
dify-vdb-upstash = { workspace = true }
|
|
dify-vdb-vastbase = { workspace = true }
|
|
dify-vdb-vikingdb = { workspace = true }
|
|
dify-vdb-weaviate = { workspace = true }
|
|
|
|
[tool.uv]
|
|
default-groups = ["storage", "tools", "vdb-all"]
|
|
package = false
|
|
override-dependencies = [
|
|
"pyarrow>=18.0.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
|
|
############################################################
|
|
# [ Dev ] dependency group
|
|
# Required for development and running tests
|
|
############################################################
|
|
dev = [
|
|
"coverage>=7.13.4",
|
|
"dotenv-linter>=0.7.0",
|
|
"faker>=20.1.0",
|
|
"lxml-stubs>=0.5.1",
|
|
"basedpyright>=1.39.0",
|
|
"ruff>=0.15.10",
|
|
"pytest>=9.0.3",
|
|
"pytest-benchmark>=5.2.3",
|
|
"pytest-cov>=7.1.0",
|
|
"pytest-env>=1.6.0",
|
|
"pytest-mock>=3.15.1",
|
|
"testcontainers>=4.14.2",
|
|
"types-aiofiles>=25.1.0",
|
|
"types-beautifulsoup4>=4.12.0",
|
|
"types-cachetools>=6.2.0",
|
|
"types-colorama>=0.4.15",
|
|
"types-defusedxml>=0.7.0",
|
|
"types-deprecated>=1.3.1",
|
|
"types-docutils>=0.22.3",
|
|
"types-flask-cors>=6.0.0",
|
|
"types-flask-migrate>=4.1.0",
|
|
"types-gevent>=26.4.0",
|
|
"types-greenlet>=3.4.0",
|
|
"types-html5lib>=1.1.11",
|
|
"types-markdown>=3.10.2",
|
|
"types-oauthlib>=3.3.0",
|
|
"types-objgraph>=3.6.0",
|
|
"types-olefile>=0.47.0",
|
|
"types-openpyxl>=3.1.5",
|
|
"types-pexpect>=4.9.0",
|
|
"types-protobuf>=7.34.1",
|
|
"types-psutil>=7.2.2",
|
|
"types-psycopg2>=2.9.21",
|
|
"types-pygments>=2.20.0",
|
|
"types-pymysql>=1.1.0",
|
|
"types-python-dateutil>=2.9.0",
|
|
"types-pywin32>=311.0.0",
|
|
"types-pyyaml>=6.0.12",
|
|
"types-regex>=2026.4.4",
|
|
"types-shapely>=2.1.0",
|
|
"types-simplejson>=3.20.0.20260408",
|
|
"types-six>=1.17.0.20260408",
|
|
"types-tensorflow>=2.18.0.20260408",
|
|
"types-tqdm>=4.67.3.20260408",
|
|
"types-ujson>=5.10.0",
|
|
"boto3-stubs>=1.42.88",
|
|
"types-jmespath>=1.1.0.20260408",
|
|
"hypothesis>=6.151.12",
|
|
"types_pyOpenSSL>=24.1.0",
|
|
"types_cffi>=2.0.0.20260408",
|
|
"types_setuptools>=82.0.0.20260408",
|
|
"pandas-stubs>=3.0.0",
|
|
"scipy-stubs>=1.15.3.0",
|
|
"types-python-http-client>=3.3.7.20260408",
|
|
"import-linter>=2.3",
|
|
"types-redis>=4.6.0.20241004",
|
|
"celery-types>=0.23.0",
|
|
"mypy>=1.20.1",
|
|
# "locust>=2.40.4", # Temporarily removed due to compatibility issues. Uncomment when resolved.
|
|
"pytest-timeout>=2.4.0",
|
|
"pytest-xdist>=3.8.0",
|
|
"pyrefly>=0.60.0",
|
|
"xinference-client>=2.4.0",
|
|
]
|
|
|
|
############################################################
|
|
# [ Storage ] dependency group
|
|
# Required for storage clients
|
|
############################################################
|
|
storage = [
|
|
"azure-storage-blob>=12.28.0",
|
|
"bce-python-sdk>=0.9.69",
|
|
"cos-python-sdk-v5>=1.9.41",
|
|
"esdk-obs-python>=3.22.2",
|
|
"google-cloud-storage>=3.10.1",
|
|
"opendal>=0.46.0",
|
|
"oss2>=2.19.1",
|
|
"supabase>=2.18.1",
|
|
"tos>=2.9.0",
|
|
]
|
|
|
|
############################################################
|
|
# [ Tools ] dependency group
|
|
############################################################
|
|
tools = ["cloudscraper>=1.2.71", "nltk>=3.9.1"]
|
|
|
|
############################################################
|
|
# [ VDB ] workspace plugins — hollow packages under providers/vdb/*
|
|
# Each declares its own third-party deps and registers dify.vector_backends entry points.
|
|
# Use: uv sync --group vdb-all | uv sync --group vdb-qdrant
|
|
############################################################
|
|
vdb-all = [
|
|
"dify-vdb-alibabacloud-mysql",
|
|
"dify-vdb-analyticdb",
|
|
"dify-vdb-baidu",
|
|
"dify-vdb-chroma",
|
|
"dify-vdb-clickzetta",
|
|
"dify-vdb-couchbase",
|
|
"dify-vdb-elasticsearch",
|
|
"dify-vdb-hologres",
|
|
"dify-vdb-huawei-cloud",
|
|
"dify-vdb-iris",
|
|
"dify-vdb-lindorm",
|
|
"dify-vdb-matrixone",
|
|
"dify-vdb-milvus",
|
|
"dify-vdb-myscale",
|
|
"dify-vdb-oceanbase",
|
|
"dify-vdb-opengauss",
|
|
"dify-vdb-opensearch",
|
|
"dify-vdb-oracle",
|
|
"dify-vdb-pgvecto-rs",
|
|
"dify-vdb-pgvector",
|
|
"dify-vdb-qdrant",
|
|
"dify-vdb-relyt",
|
|
"dify-vdb-tablestore",
|
|
"dify-vdb-tencent",
|
|
"dify-vdb-tidb-on-qdrant",
|
|
"dify-vdb-tidb-vector",
|
|
"dify-vdb-upstash",
|
|
"dify-vdb-vastbase",
|
|
"dify-vdb-vikingdb",
|
|
"dify-vdb-weaviate",
|
|
]
|
|
vdb-alibabacloud-mysql = ["dify-vdb-alibabacloud-mysql"]
|
|
vdb-analyticdb = ["dify-vdb-analyticdb"]
|
|
vdb-baidu = ["dify-vdb-baidu"]
|
|
vdb-chroma = ["dify-vdb-chroma"]
|
|
vdb-clickzetta = ["dify-vdb-clickzetta"]
|
|
vdb-couchbase = ["dify-vdb-couchbase"]
|
|
vdb-elasticsearch = ["dify-vdb-elasticsearch"]
|
|
vdb-hologres = ["dify-vdb-hologres"]
|
|
vdb-huawei-cloud = ["dify-vdb-huawei-cloud"]
|
|
vdb-iris = ["dify-vdb-iris"]
|
|
vdb-lindorm = ["dify-vdb-lindorm"]
|
|
vdb-matrixone = ["dify-vdb-matrixone"]
|
|
vdb-milvus = ["dify-vdb-milvus"]
|
|
vdb-myscale = ["dify-vdb-myscale"]
|
|
vdb-oceanbase = ["dify-vdb-oceanbase"]
|
|
vdb-opengauss = ["dify-vdb-opengauss"]
|
|
vdb-opensearch = ["dify-vdb-opensearch"]
|
|
vdb-oracle = ["dify-vdb-oracle"]
|
|
vdb-pgvecto-rs = ["dify-vdb-pgvecto-rs"]
|
|
vdb-pgvector = ["dify-vdb-pgvector"]
|
|
vdb-qdrant = ["dify-vdb-qdrant"]
|
|
vdb-relyt = ["dify-vdb-relyt"]
|
|
vdb-tablestore = ["dify-vdb-tablestore"]
|
|
vdb-tencent = ["dify-vdb-tencent"]
|
|
vdb-tidb-on-qdrant = ["dify-vdb-tidb-on-qdrant"]
|
|
vdb-tidb-vector = ["dify-vdb-tidb-vector"]
|
|
vdb-upstash = ["dify-vdb-upstash"]
|
|
vdb-vastbase = ["dify-vdb-vastbase"]
|
|
vdb-vikingdb = ["dify-vdb-vikingdb"]
|
|
vdb-weaviate = ["dify-vdb-weaviate"]
|
|
# Optional client used by some tests / integrations (not a vector backend plugin)
|
|
vdb-xinference = ["xinference-client>=2.4.0"]
|
|
|
|
[tool.pyrefly]
|
|
project-includes = ["."]
|
|
project-excludes = [".venv", "migrations/"]
|
|
python-platform = "linux"
|
|
python-version = "3.12.0"
|
|
infer-with-first-use = false
|