| [project] |
| requires-python = ">=3.10,<3.13" |
|
|
| [build-system] |
| requires = ["poetry-core"] |
| build-backend = "poetry.core.masonry.api" |
|
|
| [tool.ruff] |
| exclude=[ |
| "migrations/*", |
| ] |
| line-length = 120 |
|
|
| [tool.ruff.lint] |
| preview = true |
| select = [ |
| "B", |
| "C4", |
| "E", |
| "F", |
| "FURB", |
| "I", |
| "N", |
| "PT", |
| "PLC0208", |
| "PLC2801", |
| "PLC0414", |
| "PLR0402", |
| "PLR1711", |
| "PLR1714", |
| "RUF013", |
| "RUF019", |
| "RUF100", |
| "RUF101", |
| "S506", |
| "SIM", |
| "UP", |
| "W191", |
| "W605", |
| ] |
| ignore = [ |
| "E402", |
| "E711", |
| "E712", |
| "E721", |
| "E722", |
| "E731", |
| "F821", |
| "F841", |
| "FURB113", |
| "FURB152", |
| "UP007", |
| "UP032", |
| "B005", |
| "B006", |
| "B007", |
| "B026", |
| "B904", |
| "B905", |
| "N806", |
| "N815", |
| "PT011", |
| "SIM102", |
| "SIM103", |
| "SIM105", |
| "SIM107", |
| "SIM108", |
| "SIM113", |
| "SIM117", |
| "SIM210", |
| "SIM300", |
| ] |
|
|
| [tool.ruff.lint.per-file-ignores] |
| "app.py" = [ |
| ] |
| "__init__.py" = [ |
| "F401", |
| "F811", |
| ] |
| "configs/*" = [ |
| "N802", |
| ] |
| "libs/gmpy2_pkcs10aep_cipher.py" = [ |
| "N803", |
| ] |
| "tests/*" = [ |
| "F811", |
| "F401", |
| ] |
|
|
| [tool.ruff.lint.pyflakes] |
| extend-generics=[ |
| "_pytest.monkeypatch", |
| "tests.integration_tests", |
| ] |
|
|
| [tool.ruff.format] |
| exclude = [ |
| ] |
|
|
| [tool.poetry] |
| name = "dify-api" |
| package-mode = false |
|
|
| |
| |
| |
|
|
| [tool.poetry.dependencies] |
| anthropic = "~0.23.1" |
| authlib = "1.3.1" |
| azure-ai-inference = "~1.0.0b3" |
| azure-ai-ml = "~1.20.0" |
| azure-identity = "1.16.1" |
| beautifulsoup4 = "4.12.2" |
| boto3 = "1.35.17" |
| bs4 = "~0.0.1" |
| cachetools = "~5.3.0" |
| celery = "~5.3.6" |
| chardet = "~5.1.0" |
| cohere = "~5.2.4" |
| dashscope = { version = "~1.17.0", extras = ["tokenizer"] } |
| flask = "~3.0.1" |
| flask-compress = "~1.14" |
| flask-cors = "~4.0.0" |
| flask-login = "~0.6.3" |
| flask-migrate = "~4.0.5" |
| flask-restful = "~0.3.10" |
| flask-sqlalchemy = "~3.1.1" |
| gevent = "~23.9.1" |
| gmpy2 = "~2.2.1" |
| google-ai-generativelanguage = "0.6.9" |
| google-api-core = "2.18.0" |
| google-api-python-client = "2.90.0" |
| google-auth = "2.29.0" |
| google-auth-httplib2 = "0.2.0" |
| google-cloud-aiplatform = "1.49.0" |
| google-generativeai = "0.8.1" |
| googleapis-common-protos = "1.63.0" |
| gunicorn = "~22.0.0" |
| httpx = { version = "~0.27.0", extras = ["socks"] } |
| huggingface-hub = "~0.16.4" |
| jieba = "0.42.1" |
| langfuse = "~2.51.3" |
| langsmith = "~0.1.77" |
| mailchimp-transactional = "~1.0.50" |
| markdown = "~3.5.1" |
| nomic = "~3.1.2" |
| novita-client = "~0.5.7" |
| numpy = "~1.26.4" |
| oci = "~2.135.1" |
| openai = "~1.52.0" |
| openpyxl = "~3.1.5" |
| pandas = { version = "~2.2.2", extras = ["performance", "excel"] } |
| psycopg2-binary = "~2.9.6" |
| pycryptodome = "3.19.1" |
| pydantic = "~2.9.2" |
| pydantic-settings = "~2.6.0" |
| pydantic_extra_types = "~2.9.0" |
| pyjwt = "~2.8.0" |
| pypdfium2 = "~4.17.0" |
| python = ">=3.10,<3.13" |
| python-docx = "~1.1.0" |
| python-dotenv = "1.0.0" |
| pyyaml = "~6.0.1" |
| readabilipy = "0.2.0" |
| redis = { version = "~5.0.3", extras = ["hiredis"] } |
| replicate = "~0.22.0" |
| resend = "~0.7.0" |
| sagemaker = "~2.231.0" |
| scikit-learn = "~1.5.1" |
| sentry-sdk = { version = "~1.44.1", extras = ["flask"] } |
| sqlalchemy = "~2.0.29" |
| starlette = "0.41.0" |
| tencentcloud-sdk-python-hunyuan = "~3.0.1158" |
| tiktoken = "~0.8.0" |
| tokenizers = "~0.15.0" |
| transformers = "~4.35.0" |
| unstructured = { version = "~0.16.1", extras = ["docx", "epub", "md", "msg", "ppt", "pptx"] } |
| validators = "0.21.0" |
| volcengine-python-sdk = {extras = ["ark"], version = "~1.0.98"} |
| websocket-client = "~1.7.0" |
| werkzeug = "~3.0.1" |
| xinference-client = "0.15.2" |
| yarl = "~1.9.4" |
| zhipuai = "~2.1.5" |
| |
|
|
| |
| |
| |
| |
| |
| [tool.poetry.group.indirect.dependencies] |
| kaleido = "0.2.1" |
| rank-bm25 = "~0.2.2" |
| safetensors = "~0.4.3" |
|
|
| |
| |
| |
| [tool.poetry.group.tools.dependencies] |
| arxiv = "2.1.0" |
| cloudscraper = "1.2.71" |
| duckduckgo-search = "~6.3.0" |
| jsonpath-ng = "1.6.1" |
| matplotlib = "~3.8.2" |
| mplfonts = "~0.0.8" |
| newspaper3k = "0.2.8" |
| nltk = "3.9.1" |
| numexpr = "~2.9.0" |
| pydub = "~0.25.1" |
| qrcode = "~7.4.2" |
| twilio = "~9.0.4" |
| vanna = { version = "0.7.5", extras = ["postgres", "mysql", "clickhouse", "duckdb", "oracle"] } |
| wikipedia = "1.4.0" |
| yfinance = "~0.2.40" |
|
|
| |
| |
| |
| |
| [tool.poetry.group.storage.dependencies] |
| azure-storage-blob = "12.13.0" |
| bce-python-sdk = "~0.9.23" |
| cos-python-sdk-v5 = "1.9.30" |
| esdk-obs-python = "3.24.6.1" |
| google-cloud-storage = "2.16.0" |
| oss2 = "2.18.5" |
| supabase = "~2.8.1" |
| tos = "~2.7.1" |
|
|
| |
| |
| |
| |
| [tool.poetry.group.vdb.dependencies] |
| alibabacloud_gpdb20160503 = "~3.8.0" |
| alibabacloud_tea_openapi = "~0.3.9" |
| chromadb = "0.5.1" |
| clickhouse-connect = "~0.7.16" |
| couchbase = "~4.3.0" |
| elasticsearch = "8.14.0" |
| opensearch-py = "2.4.0" |
| oracledb = "~2.2.1" |
| pgvecto-rs = { version = "~0.2.1", extras = ['sqlalchemy'] } |
| pgvector = "0.2.5" |
| pymilvus = "~2.4.4" |
| pymochow = "1.3.1" |
| pyobvector = "~0.1.6" |
| qdrant-client = "1.7.3" |
| tcvectordb = "1.3.2" |
| tidb-vector = "0.0.9" |
| upstash-vector = "0.6.0" |
| volcengine-compat = "~1.0.156" |
| weaviate-client = "~3.21.0" |
|
|
| |
| |
| |
| |
| [tool.poetry.group.dev] |
| optional = true |
| [tool.poetry.group.dev.dependencies] |
| coverage = "~7.2.4" |
| pytest = "~8.3.2" |
| pytest-benchmark = "~4.0.0" |
| pytest-env = "~1.1.3" |
| pytest-mock = "~3.14.0" |
|
|
| |
| |
| |
| |
| [tool.poetry.group.lint] |
| optional = true |
| [tool.poetry.group.lint.dependencies] |
| dotenv-linter = "~0.5.0" |
| ruff = "~0.6.9" |
|
|