[tool.poetry] name = "langflow" version = "0.6.5a4" description = "A Python package with a built-in web application" authors = ["Logspace "] maintainers = [ "Carlos Coelho ", "Cristhian Zanforlin ", "Gabriel Almeida ", "Gustavo Schaedler ", "Igor Carvalho ", "Lucas Eduoli ", "Otávio Anovazzi ", "Rodrigo Nader ", ] repository = "https://github.com/logspace-ai/langflow" license = "MIT" readme = "README.md" keywords = ["nlp", "langchain", "openai", "gpt", "gui"] packages = [{ include = "langflow", from = "src/backend" }] include = ["src/backend/langflow/*", "src/backend/langflow/**/*"] documentation = "https://docs.langflow.org" [tool.poetry.scripts] langflow = "langflow.__main__:main" [tool.poetry.dependencies] python = ">=3.9,<3.11" fastapi = "^0.108.0" uvicorn = "^0.25.0" beautifulsoup4 = "^4.12.2" google-search-results = "^2.4.1" google-api-python-client = "^2.79.0" typer = "^0.9.0" gunicorn = "^21.2.0" langchain = "~0.0.345" openai = "^1.6.1" pandas = "2.0.3" chromadb = "^0.4.0" huggingface-hub = { version = "^0.19.0", extras = ["inference"] } rich = "^13.7.0" llama-cpp-python = { version = "~0.2.0", optional = true } networkx = "^3.1" unstructured = "^0.11.0" pypdf = "^3.17.0" lxml = "^4.9.2" pysrt = "^1.1.2" fake-useragent = "^1.4.0" docstring-parser = "^0.15" psycopg2-binary = "^2.9.6" pyarrow = "^14.0.0" tiktoken = "~0.5.0" wikipedia = "^1.4.0" qdrant-client = "^1.7.0" websockets = "^10.3" weaviate-client = "^4.0.0" jina = "*" sentence-transformers = { version = "^2.2.2", optional = true } ctransformers = { version = "^0.2.10", optional = true } cohere = "^4.39.0" python-multipart = "^0.0.6" sqlmodel = "^0.0.14" faiss-cpu = "^1.7.4" anthropic = "^0.8.0" orjson = "3.9.3" multiprocess = "^0.70.14" cachetools = "^5.3.1" types-cachetools = "^5.3.0.5" platformdirs = "^4.1.0" pinecone-client = "^2.2.2" pymongo = "^4.6.0" supabase = "^2.3.0" certifi = "^2023.11.17" google-cloud-aiplatform = "^1.36.0" psycopg = "^3.1.9" psycopg-binary = "^3.1.9" fastavro = "^1.8.0" langchain-experimental = "*" celery = { extras = ["redis"], version = "^5.3.6", optional = true } redis = { version = "^4.6.0", optional = true } flower = { version = "^2.0.0", optional = true } alembic = "^1.13.0" passlib = "^1.7.4" bcrypt = "4.0.1" python-jose = "^3.3.0" metaphor-python = "^0.1.11" pydantic = "^2.5.0" pydantic-settings = "^2.1.0" zep-python = "*" pywin32 = { version = "^306", markers = "sys_platform == 'win32'" } loguru = "^0.7.1" langfuse = "^1.1.11" pillow = "^10.0.0" metal-sdk = "^2.4.0" markupsafe = "^2.1.3" extract-msg = "^0.45.0" # jq is not available for windows jq = { version = "^1.6.0", markers = "sys_platform != 'win32'" } boto3 = "^1.28.63" numexpr = "^2.8.6" qianfan = "0.2.0" pgvector = "^0.2.3" pyautogen = "^0.2.0" langchain-google-genai = "^0.0.2" elasticsearch = "^8.11.1" pytube = "^15.0.0" llama-index = "^0.9.24" [tool.poetry.group.dev.dependencies] pytest-asyncio = "^0.23.1" types-redis = "^4.6.0.5" ipykernel = "^6.27.0" mypy = "^1.7.1" ruff = "^0.1.5" httpx = "*" pytest = "^7.4.2" types-requests = "^2.31.0" requests = "^2.31.0" pytest-cov = "^4.1.0" pandas-stubs = "^2.0.0.230412" types-pillow = "^9.5.0.2" types-pyyaml = "^6.0.12.8" types-python-jose = "^3.3.4.8" types-passlib = "^1.7.7.13" locust = "^2.19.1" pytest-mock = "^3.12.0" pytest-xdist = "^3.5.0" types-pywin32 = "^306.0.0.4" types-google-cloud-ndb = "^2.2.0.0" pytest-sugar = "^0.9.7" pytest-instafail = "^0.5.0" [tool.poetry.extras] deploy = ["langchain-serve", "celery", "redis", "flower"] local = ["llama-cpp-python", "sentence-transformers", "ctransformers"] all = ["deploy", "local"] [tool.pytest.ini_options] minversion = "6.0" addopts = "-ra" testpaths = ["tests", "integration"] console_output_style = "progress" filterwarnings = ["ignore::DeprecationWarning"] log_cli = true markers = ["async_test"] [tool.ruff] exclude = ["src/backend/langflow/alembic/*"] line-length = 120 [tool.mypy] plugins = "pydantic.mypy" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"