diff --git a/README.md b/README.md index 5952050ca7e..48e593bd355 100644 --- a/README.md +++ b/README.md @@ -1,219 +1,13 @@ -
Read all about it here!
-- A visual framework for building multi-agent and RAG applications -
-- Open-source, Python-powered, fully customizable, LLM and vector store agnostic -
+## Documentation -- Docs - - Join our Discord - - Follow us on X - - Live demo -
+[DataStax RAGStack Documentation](https://docs.datastax.com/en/ragstack/docs/index.html) - +## ๐ License - +RAGStack Langflow is released under the BUSL License. See the [LICENSE](LICENSE.md) file for details. -- -
- -# ๐ Content - -- [๐ Content](#-content) -- [๐ฆ Get Started](#-get-started) -- [Running Langflow from a Cloned Repository](#-running-langflow-from-a-cloned-repository) -- [๐จ Create Flows](#-create-flows) -- [Deploy](#deploy) - - [DataStax Langflow](#datastax-langflow) - - [Deploy Langflow on Hugging Face Spaces](#deploy-langflow-on-hugging-face-spaces) - - [Deploy Langflow on Google Cloud Platform](#deploy-langflow-on-google-cloud-platform) - - [Deploy on Railway](#deploy-on-railway) - - [Deploy on Render](#deploy-on-render) - - [Deploy on Kubernetes](#deploy-on-kubernetes) -- [๐ฅ๏ธ Command Line Interface (CLI)](#๏ธ-command-line-interface-cli) - - [Usage](#usage) - - [Environment Variables](#environment-variables) -- [๐ Contribute](#-contribute) -- [๐ Contributors](#-contributors) -- [๐ License](#-license) - -# ๐ฆ Get Started - -You can install Langflow with pip: - -```shell -# Make sure you have >=Python 3.10 installed on your system. -python -m pip install langflow -U -``` - -Then, run Langflow with: - -```shell -python -m langflow run -``` - -# Running Langflow from a Cloned Repository - -If you prefer to run Langflow from a cloned repository rather than installing it via pip, follow these steps: - -1. **Clone the Repository** - -First, clone the Langflow repository from GitHub: - -```shell -git clone https://github.com/langflow-ai/langflow.git -``` - -Navigate into the cloned directory: - -```shell -cd langflow -``` - -2. **Build and Install Dependencies** - -To build and install Langflowโs frontend and backend, use the following commands: - -```shell -make install_frontend && make build_frontend && make install_backend -``` - -3. **Run Langflow** - -Once the installation is complete, you can run Langflow with: - -```shell -poetry run python -m langflow run -``` - -# ๐จ Create Flows - -Creating flows with Langflow is easy. Simply drag components from the sidebar onto the workspace and connect them to start building your application. - -Explore by editing prompt parameters, grouping components into a single high-level component, and building your own Custom Components. - -Once youโre done, you can export your flow as a JSON file. - -Load the flow with: - -```python -from langflow.load import run_flow_from_json - -results = run_flow_from_json("path/to/flow.json", input_value="Hello, World!") -``` - -# Deploy - -## DataStax Langflow - -DataStax Langflow is a hosted version of Langflow integrated with [AstraDB](https://www.datastax.com/products/datastax-astra). Be up and running in minutes with no installation or setup required. [Sign up for free](https://langflow.datastax.com). - -## Deploy Langflow on Hugging Face Spaces - -You can also preview Langflow in [HuggingFace Spaces](https://huggingface.co/spaces/Langflow/Langflow). [Clone the space using this link](https://huggingface.co/spaces/Langflow/Langflow?duplicate=true) to create your own Langflow workspace in minutes. - -## Deploy Langflow on Google Cloud Platform - -Follow our step-by-step guide to deploy Langflow on Google Cloud Platform (GCP) using Google Cloud Shell. The guide is available in the [**Langflow in Google Cloud Platform**](./docs/docs/Deployment/deployment-gcp.md) document. - -Alternatively, click the **"Open in Cloud Shell"** button below to launch Google Cloud Shell, clone the Langflow repository, and start an **interactive tutorial** that will guide you through the process of setting up the necessary resources and deploying Langflow on your GCP project. - -[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/langflow-ai/langflow&working_dir=scripts/gcp&shellonly=true&tutorial=walkthroughtutorial_spot.md) - -## Deploy on Railway - -Use this template to deploy Langflow 1.0 on Railway: - -[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/JMXEWp?referralCode=MnPSdg) - -## Deploy on Render - - - - - -## Deploy on Kubernetes - -Follow our step-by-step guide to deploy [Langflow on Kubernetes](./docs/docs/Deployment/deployment-kubernetes.md). - -# ๐ฅ๏ธ Command Line Interface (CLI) - -Langflow provides a command-line interface (CLI) for easy management and configuration. - -## Usage - -You can run the Langflow using the following command: - -```shell -langflow run [OPTIONS] -``` - -Each option is detailed below: - -- `--help`: Displays all available options. -- `--host`: Defines the host to bind the server to. Can be set using the `LANGFLOW_HOST` environment variable. The default is `127.0.0.1`. -- `--workers`: Sets the number of worker processes. Can be set using the `LANGFLOW_WORKERS` environment variable. The default is `1`. -- `--timeout`: Sets the worker timeout in seconds. The default is `60`. -- `--port`: Sets the port to listen on. Can be set using the `LANGFLOW_PORT` environment variable. The default is `7860`. -- `--env-file`: Specifies the path to the .env file containing environment variables. The default is `.env`. -- `--log-level`: Defines the logging level. Can be set using the `LANGFLOW_LOG_LEVEL` environment variable. The default is `critical`. -- `--components-path`: Specifies the path to the directory containing custom components. Can be set using the `LANGFLOW_COMPONENTS_PATH` environment variable. The default is `langflow/components`. -- `--log-file`: Specifies the path to the log file. Can be set using the `LANGFLOW_LOG_FILE` environment variable. The default is `logs/langflow.log`. -- `--cache`: Selects the type of cache to use. Options are `InMemoryCache` and `SQLiteCache`. Can be set using the `LANGFLOW_LANGCHAIN_CACHE` environment variable. The default is `SQLiteCache`. -- `--dev/--no-dev`: Toggles the development mode. The default is `no-dev`. -- `--path`: Specifies the path to the frontend directory containing build files. This option is for development purposes only. Can be set using the `LANGFLOW_FRONTEND_PATH` environment variable. -- `--open-browser/--no-open-browser`: Toggles the option to open the browser after starting the server. Can be set using the `LANGFLOW_OPEN_BROWSER` environment variable. The default is `open-browser`. -- `--remove-api-keys/--no-remove-api-keys`: Toggles the option to remove API keys from the projects saved in the database. Can be set using the `LANGFLOW_REMOVE_API_KEYS` environment variable. The default is `no-remove-api-keys`. -- `--install-completion [bash|zsh|fish|powershell|pwsh]`: Installs completion for the specified shell. -- `--show-completion [bash|zsh|fish|powershell|pwsh]`: Shows completion for the specified shell, allowing you to copy it or customize the installation. -- `--backend-only`: This parameter, with a default value of `False`, allows running only the backend server without the frontend. It can also be set using the `LANGFLOW_BACKEND_ONLY` environment variable. -- `--store`: This parameter, with a default value of `True`, enables the store features, use `--no-store` to deactivate it. It can be configured using the `LANGFLOW_STORE` environment variable. - -These parameters are important for users who need to customize the behavior of Langflow, especially in development or specialized deployment scenarios. - -### Environment Variables - -You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a `.env` file and loaded using the `--env-file` option. - -A sample `.env` file named `.env.example` is included with the project. Copy this file to a new file named `.env` and replace the example values with your actual settings. If you're setting values in both your OS and the `.env` file, the `.env` settings will take precedence. - -# ๐ Contribute - -We welcome contributions from developers of all levels to our open-source project on GitHub. If you'd like to contribute, please check our [contributing guidelines](./CONTRIBUTING.md) and help make Langflow more accessible. - ---- - -[![Star History Chart](https://api.star-history.com/svg?repos=langflow-ai/langflow&type=Timeline)](https://star-history.com/#langflow-ai/langflow&Date) - -# ๐ Contributors - -[![langflow contributors](https://contrib.rocks/image?repo=langflow-ai/langflow)](https://github.com/langflow-ai/langflow/graphs/contributors) - -# ๐ License - -Langflow is released under the MIT License. See the [LICENSE](LICENSE) file for details. diff --git a/poetry.lock b/poetry.lock index 0fb42acd545..46efc7f1db0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "aenum" @@ -5148,75 +5148,6 @@ files = [ [package.dependencies] six = "*" -[[package]] -name = "langflow-base" -version = "0.0.92" -description = "A Python package with a built-in web application" -optional = false -python-versions = ">=3.10,<3.13" -files = [] -develop = true - -[package.dependencies] -aiofiles = "^24.1.0" -alembic = "^1.13.0" -asyncer = "^0.0.5" -bcrypt = "4.0.1" -cachetools = "^5.3.1" -chardet = "^5.2.0" -cryptography = "^42.0.5" -docstring-parser = "^0.16" -duckdb = "^1.0.0" -emoji = "^2.12.0" -fastapi = "^0.111.0" -filelock = "^3.15.4" -firecrawl-py = "^0.0.16" -gunicorn = "^22.0.0" -httpx = "*" -jq = {version = "^1.7.0", markers = "sys_platform != \"win32\""} -langchain = "~0.2.0" -langchain-core = "^0.2.24" -langchain-experimental = "^0.0.61" -langchainhub = "~0.1.15" -loguru = "^0.7.1" -multiprocess = "^0.70.14" -nanoid = "^2.0.0" -nest-asyncio = "^1.6.0" -opentelemetry-api = "^1.25.0" -opentelemetry-exporter-prometheus = "^0.46b0" -opentelemetry-instrumentation-fastapi = "^0.46b0" -opentelemetry-sdk = "^1.25.0" -orjson = "3.10.0" -pandas = "2.2.2" -passlib = "^1.7.4" -pillow = "^10.2.0" -platformdirs = "^4.2.0" -prometheus-client = "^0.20.0" -pydantic = "^2.7.0" -pydantic-settings = "^2.2.0" -pypdf = "^4.2.0" -pyperclip = "^1.8.2" -python-docx = "^1.1.0" -python-jose = "^3.3.0" -python-multipart = "^0.0.7" -rich = "^13.7.0" -sentry-sdk = {version = "^2.5.1", extras = ["fastapi", "loguru"]} -setuptools = ">=70" -sqlmodel = "^0.0.18" -typer = "^0.12.0" -uncurl = "^0.0.11" -uvicorn = "^0.30.0" -websockets = "*" - -[package.extras] -all = [] -deploy = [] -local = [] - -[package.source] -type = "directory" -url = "src/backend/base" - [[package]] name = "langfuse" version = "2.39.3" @@ -6473,7 +6404,6 @@ description = "Nvidia JIT LTO Library" optional = true python-versions = ">=3" files = [ - {file = "nvidia_nvjitlink_cu12-12.5.82-py3-none-manylinux2014_aarch64.whl", hash = "sha256:98103729cc5226e13ca319a10bbf9433bbbd44ef64fe72f45f067cacc14b8d27"}, {file = "nvidia_nvjitlink_cu12-12.5.82-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f9b37bc5c8cf7509665cb6ada5aaa0ce65618f2332b7d3e78e9790511f111212"}, {file = "nvidia_nvjitlink_cu12-12.5.82-py3-none-win_amd64.whl", hash = "sha256:e782564d705ff0bf61ac3e1bf730166da66dd2fe9012f111ede5fc49b64ae697"}, ] @@ -7988,13 +7918,13 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" [[package]] name = "pydantic-settings" -version = "2.3.4" +version = "2.4.0" description = "Settings management using Pydantic" optional = false python-versions = ">=3.8" files = [ - {file = "pydantic_settings-2.3.4-py3-none-any.whl", hash = "sha256:11ad8bacb68a045f00e4f862c7a718c8a9ec766aa8fd4c32e39a0594b207b53a"}, - {file = "pydantic_settings-2.3.4.tar.gz", hash = "sha256:c5802e3d62b78e82522319bbc9b8f8ffb28ad1c988a99311d04f2a6051fca0a7"}, + {file = "pydantic_settings-2.4.0-py3-none-any.whl", hash = "sha256:bb6849dc067f1687574c12a639e231f3a6feeed0a12d710c1382045c5db1c315"}, + {file = "pydantic_settings-2.4.0.tar.gz", hash = "sha256:ed81c3a0f46392b4d7c0a565c05884e6e54b3456e6f0fe4d8814981172dc9a88"}, ] [package.dependencies] @@ -8002,6 +7932,7 @@ pydantic = ">=2.7.0" python-dotenv = ">=0.21.0" [package.extras] +azure-key-vault = ["azure-identity (>=1.16.0)", "azure-keyvault-secrets (>=4.8.0)"] toml = ["tomli (>=2.0.1)"] yaml = ["pyyaml (>=6.0.1)"] @@ -8845,6 +8776,75 @@ all = ["emoji", "langchain (>=0.0.321)", "ltp", "sentencepiece", "torch", "torch data-clean = ["emoji", "ltp", "sentencepiece", "torch", "torch (<=1.13.1)"] langchain = ["langchain (>=0.0.321)"] +[[package]] +name = "ragstack-ai-langflow-base" +version = "1.0.14.post1" +description = "RAGStack Langflow base" +optional = false +python-versions = ">=3.10,<3.13" +files = [] +develop = false + +[package.dependencies] +aiofiles = "^24.1.0" +alembic = "^1.13.0" +asyncer = "^0.0.5" +bcrypt = "4.0.1" +cachetools = "^5.3.1" +chardet = "^5.2.0" +cryptography = "^42.0.5" +docstring-parser = "^0.16" +duckdb = "^1.0.0" +emoji = "^2.12.0" +fastapi = "^0.111.0" +filelock = "^3.15.4" +firecrawl-py = "^0.0.16" +gunicorn = "^22.0.0" +httpx = "*" +jq = {version = "^1.7.0", markers = "sys_platform != \"win32\""} +langchain = "~0.2.0" +langchain-core = "^0.2.24" +langchain-experimental = "^0.0.61" +langchainhub = "~0.1.15" +loguru = "^0.7.1" +multiprocess = "^0.70.14" +nanoid = "^2.0.0" +nest-asyncio = "^1.6.0" +opentelemetry-api = "^1.25.0" +opentelemetry-exporter-prometheus = "^0.46b0" +opentelemetry-instrumentation-fastapi = "^0.46b0" +opentelemetry-sdk = "^1.25.0" +orjson = "3.10.0" +pandas = "2.2.2" +passlib = "^1.7.4" +pillow = "^10.2.0" +platformdirs = "^4.2.0" +prometheus-client = "^0.20.0" +pydantic = "^2.7.0" +pydantic-settings = "^2.2.0" +pypdf = "^4.2.0" +pyperclip = "^1.8.2" +python-docx = "^1.1.0" +python-jose = "^3.3.0" +python-multipart = "^0.0.7" +rich = "^13.7.0" +sentry-sdk = {version = "^2.5.1", extras = ["fastapi", "loguru"]} +setuptools = ">=70" +sqlmodel = "^0.0.18" +typer = "^0.12.0" +uncurl = "^0.0.11" +uvicorn = "^0.30.0" +websockets = "*" + +[package.extras] +all = [] +deploy = [] +local = [] + +[package.source] +type = "directory" +url = "src/backend/base" + [[package]] name = "rapidfuzz" version = "3.9.5" @@ -11995,4 +11995,4 @@ local = ["ctransformers", "llama-cpp-python", "sentence-transformers"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "3d81751b63f97649e1b46a0d626c055303df6ab3bfce2e6b49941400aad08793" +content-hash = "1fb8a4dada20dc1d11ee44d01829d5755c58ce36dbdca0221b3f0ff5cf61c509" diff --git a/pyproject.toml b/pyproject.toml index 995c1fc80b7..17493c50a63 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,8 @@ [tool.poetry] -name = "langflow" -version = "1.0.14" -description = "A Python package with a built-in web application" -authors = ["Langflow