| | [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" |
| |
|