diff --git a/README.md b/README.md index 923849fc57b..48e593bd355 100644 --- a/README.md +++ b/README.md @@ -1,191 +1,13 @@ -
-

Langflow 1.0 is OUT! ๐ŸŽ‰

-

Read all about it here!

-
-# [![Langflow](./docs/static/img/hero.png)](https://www.langflow.org) +# RAGStack Langflow -

- 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 -
- README in English - README in Portuguese - README in Simplified Chinese - README in Japanese - README in KOREAN -
+RAGStack Langflow is released under the BUSL License. See the [LICENSE](LICENSE.md) file for details. -

- Your GIF -

- -# ๐Ÿ“ Content - -- [๐Ÿ“ Content](#-content) -- [๐Ÿ“ฆ Get Started](#-get-started) -- [๐ŸŽจ 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 -``` -Or - -If you would like to install from your cloned repo, you can build and install Langflow's frontend and backend with: - -```shell -make install_frontend && make build_frontend && make install_backend -``` - -Then, run Langflow with: - -```shell -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 to 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 07c8a5986bb..675ab02a728 100644 --- a/poetry.lock +++ b/poetry.lock @@ -5008,75 +5008,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.23" -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.2" @@ -8656,6 +8587,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.post0" +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.23" +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.4" @@ -9467,13 +9467,13 @@ dev = ["pre-commit", "pytest", "ruff (>=0.3.0)"] [[package]] name = "sentry-sdk" -version = "2.10.0" +version = "2.11.0" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" files = [ - {file = "sentry_sdk-2.10.0-py2.py3-none-any.whl", hash = "sha256:87b3d413c87d8e7f816cc9334bff255a83d8b577db2b22042651c30c19c09190"}, - {file = "sentry_sdk-2.10.0.tar.gz", hash = "sha256:545fcc6e36c335faa6d6cda84669b6e17025f31efbf3b2211ec14efe008b75d1"}, + {file = "sentry_sdk-2.11.0-py2.py3-none-any.whl", hash = "sha256:d964710e2dbe015d9dc4ff0ad16225d68c3b36936b742a6fe0504565b760a3b7"}, + {file = "sentry_sdk-2.11.0.tar.gz", hash = "sha256:4ca16e9f5c7c6bc2fb2d5c956219f4926b148e511fffdbbde711dc94f1e0468f"}, ] [package.dependencies] @@ -11837,4 +11837,4 @@ local = ["ctransformers", "llama-cpp-python", "sentence-transformers"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "dc3c3bf982b64e4f8cf62249471bec4a90e76bde0bd010b4e2e6f6ca0d6a551b" +content-hash = "abfe57a6168c96188c3f67efb996f95e0e2d2715d554d28d6118ff4f2d57c996" diff --git a/pyproject.toml b/pyproject.toml index 6e2768669ee..10e2479d8ea 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 "] +name = "ragstack-ai-langflow" +version = "1.0.14.post0" +description = "RAGStack Langflow" +authors = ["DataStax"] maintainers = [ "Carlos Coelho ", "Cristhian Zanforlin ", @@ -13,13 +13,13 @@ maintainers = [ "Rodrigo Nader ", "Italo dos Anjos ", ] -repository = "https://github.com/langflow-ai/langflow" -license = "MIT" +repository = "https://github.com/datastax/ragstack-ai-langflow" +license = "BUSL-1.1" 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" +documentation = "https://docs.datastax.com/en/ragstack" [tool.poetry.scripts] langflow = "langflow.__main__:main" @@ -27,7 +27,6 @@ langflow = "langflow.__main__:main" [tool.poetry.dependencies] python = ">=3.10,<3.13" -langflow-base = { path = "./src/backend/base", develop = true } beautifulsoup4 = "^4.12.2" google-search-results = "^2.4.1" google-api-python-client = "^2.130.0" @@ -105,6 +104,7 @@ yfinance = "^0.2.40" langchain-google-community = "^1.0.6" wolframalpha = "^5.1.3" astra-assistants = "^2.0.15" +ragstack-ai-langflow-base = {path = "src/backend/base"} [tool.poetry.group.dev.dependencies] diff --git a/src/backend/base/pyproject.toml b/src/backend/base/pyproject.toml index f41689ebf83..ac52dd64939 100644 --- a/src/backend/base/pyproject.toml +++ b/src/backend/base/pyproject.toml @@ -1,8 +1,8 @@ [tool.poetry] -name = "langflow-base" -version = "0.0.92" -description = "A Python package with a built-in web application" -authors = ["Langflow "] +name = "ragstack-ai-langflow-base" +version = "1.0.14.post0" +description = "RAGStack Langflow base" +authors = ["DataStax"] maintainers = [ "Carlos Coelho ", "Cristhian Zanforlin ", @@ -13,13 +13,13 @@ maintainers = [ "Rodrigo Nader ", "Italo dos Anjos ", ] -repository = "https://github.com/langflow-ai/langflow" -license = "MIT" +repository = "https://github.com/datastax/ragstack-ai-langflow" +license = "BUSL-1.1" readme = "README.md" keywords = ["nlp", "langchain", "openai", "gpt", "gui"] packages = [{ include = "langflow" }, { include = "langflow/py.typed" }] include = ["pyproject.toml", "README.md", "langflow/**/*"] -documentation = "https://docs.langflow.org" +documentation = "https://docs.datastax.com/en/ragstack" [tool.poetry.scripts] diff --git a/src/backend/langflow/version/version.py b/src/backend/langflow/version/version.py index dce82702943..2701e618045 100644 --- a/src/backend/langflow/version/version.py +++ b/src/backend/langflow/version/version.py @@ -1,10 +1,8 @@ from importlib import metadata - +is_pre_release = False try: - __version__ = metadata.version("langflow") - # Check if the version is a pre-release version - is_pre_release = any(label in __version__ for label in ["a", "b", "rc", "dev", "post"]) + __version__ = metadata.version('ragstack-ai-langflow') except metadata.PackageNotFoundError: - __version__ = "" - is_pre_release = False + __version__ = '' del metadata +