Langflow is a powerful tool for building and deploying AI-powered agents and workflows. http://www.langflow.org
Find a file
Gabriel Luiz Freitas Almeida 80ebe03d94
refactor(core): implement centralized dynamic lazy import system for components (#8932)
* feat: add import utilities for LangFlow components

- Introduced a new module `_importing.py` containing the `import_mod` function.
- This function dynamically imports attributes from specified modules, enhancing modularity and flexibility in component initialization.
- Comprehensive docstring added for clarity on usage and parameters.

* feat: implement dynamic imports for LangFlow components

- Added dynamic import functionality to various LangFlow components, allowing for lazy loading of attributes on access.
- Introduced  mapping in each component's  to manage imports efficiently.
- Enhanced error handling for import failures, providing clearer messages for missing attributes.
- Updated  method to reflect available attributes for better introspection and tab-completion support.
- Comprehensive docstrings added to improve documentation and usability.

* test: add comprehensive tests for dynamic imports and component accessibility

- Introduced integration tests for dynamic import functionality, ensuring components are discoverable and instantiable post-refactor.
- Added unit tests for the `_import_utils` module, validating the `import_mod` function's behavior and error handling.
- Implemented tests to confirm all component modules are importable and maintain backward compatibility with existing import patterns.
- Enhanced performance tests to measure lazy loading efficiency and memory usage during component access.
- Ensured that all components have the required attributes for dynamic loading and that circular imports are prevented.

* chore: update ruff pre-commit hook to version 0.12.2 in configuration file

* refactor: update warning handling for dynamic imports

- Moved the warning suppression for LangChainDeprecationWarning into the dynamic import context to ensure it only applies during the import process.
- This change enhances clarity and maintains the original functionality while improving the robustness of the import mechanism.

* test: enhance dynamic import integration tests for component attributes

- Removed unnecessary import of AgentComponent and added assertions to verify essential attributes of OpenAIModelComponent, including display_name, description, icon, and inputs.
- Ensured that each input field has the required attributes for better validation of component integrity during dynamic imports.

* refactor: update import paths for Message class in conversation utilities

- Changed the import of the Message class from langflow.field_typing to langflow.schema.message across multiple utility files, ensuring consistency and alignment with the updated module structure.
- This refactor enhances code clarity and maintains compatibility with the latest schema definitions.

* refactor: remove Vectara components from LangFlow

- Deleted the Vectara components module from the codebase, streamlining the component structure.
- This change helps to reduce complexity and maintain focus on core functionalities.

* refactor: remove Vectara references from LangFlow component imports

- Eliminated Vectara from both the import statements and dynamic imports mapping, streamlining the component structure.
- This change contributes to reducing complexity and maintaining focus on core functionalities within the LangFlow framework.

* [autofix.ci] apply automated fixes

* fix: remove 'vectara' from __all__ in components module

* refactor: improve error handling tests for dynamic imports

* test: add tests for ModuleNotFoundError handling with None and special module names

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
2025-08-05 20:48:59 +00:00
.cursor fix: refactor auth modal design for mcp composer (#9180) 2025-07-24 21:53:28 +00:00
.devcontainer fix: replace instances of 127.0.0.1 to localhost (#8536) 2025-06-16 15:54:04 +00:00
.github build(deps):(deps): bump actions/setup-python from 4 to 5 (#9285) 2025-08-01 11:14:10 -03:00
.vscode feat: conditionally render voice button based on voice mode state (#8561) 2025-06-17 15:23:12 +00:00
deploy feat: adds file management feature under feature flag, adds file dialog, adds files page (#6134) 2025-03-18 02:32:55 +00:00
docker refactor(docker): remove --extra deploy flag from uv sync commands (#8485) 2025-06-11 14:39:53 +00:00
docker_example fix: adjust LANGFLOW_CONFIG_DIR to prevent permission error (#6095) 2025-02-05 20:54:36 +00:00
docs docs: refresh custom dependencies page (#9291) 2025-08-02 15:25:16 +00:00
scripts feat: generate custom coverage config to omit legacy and external compoents (#9221) 2025-07-30 04:46:19 +00:00
src refactor(core): implement centralized dynamic lazy import system for components (#8932) 2025-08-05 20:48:59 +00:00
test-results feat: Flow's canvas actions design uplift (#4260) 2024-10-31 00:51:33 +00:00
.coderabbit.yaml chore: enable code guidelines in coderabbit configuration (#8958) 2025-07-09 19:26:25 +00:00
.composio.lock feat: Composio Component Upgrade (#6905) 2025-03-29 10:12:51 +00:00
.env.example refactor: remove AsyncFileSink logger, add rotation support, and update docs (#9105) 2025-07-25 17:50:45 +00:00
.eslintrc.json 🔧 (.pre-commit-config.yaml): Add eslint@9.1.1 as a dependency and enable autofix for pretty-format-json hook 2024-05-02 19:27:40 -03:00
.gitattributes feat: voice mode (#4642) 2025-03-20 00:05:55 +00:00
.gitignore feat: Add menu customization with copy functionality (#8803) 2025-07-04 13:38:06 +00:00
.pre-commit-config.yaml feat: Add template tests (#9083) 2025-07-28 18:32:24 +00:00
CODE_OF_CONDUCT.md run codespell 2024-06-04 09:26:13 -03:00
codecov.yml bug: fix frontend code coverage scoring (#9209) 2025-07-30 05:11:27 +00:00
CONTRIBUTING.md docs: fixed broken links in CONTRIBUTING.md (#9231) 2025-07-30 01:37:50 +00:00
DEVELOPMENT.md docs: reduce duplicate content in contributing.md (#9136) 2025-07-23 14:17:29 +00:00
LICENSE Update organization name and URLs in configuration files 2024-04-18 11:58:19 -03:00
Makefile fix: remove duplicated Makefile target format_frontend (#9191) 2025-07-30 12:01:28 +00:00
Makefile.frontend ci: add frontend test execution, reporting, and coverage in workflow (#8815) 2025-07-01 20:38:10 +00:00
pyproject.toml ref: Update Ruff per-file ignores for tests and scripts (#9206) 2025-07-29 14:41:58 +00:00
README.md docs: add deepwiki badge to readme (#9079) 2025-07-16 21:04:43 -03:00
render.yaml docs: fix render deployment and docs (#3309) 2024-08-14 03:45:56 -07:00
SECURITY.md docs: combine api keys and authentication pages (#9172) 2025-07-30 01:07:15 +00:00
uv.lock deps: update langchain and langchain-community to support Perplexity (#9166) 2025-07-24 18:15:06 +00:00

Langflow logo

Release Notes PyPI - License PyPI - Downloads GitHub star chart Open Issues Twitter YouTube Channel Discord Server Ask DeepWiki

Caution

Users must update to Langflow >= 1.3 to protect against CVE-2025-3248.

Langflow is a powerful tool for building and deploying AI-powered agents and workflows. It provides developers with both a visual authoring experience and built-in API and MCP servers that turn every workflow into a tool that can be integrated into applications built on any framework or stack. Langflow comes with batteries included and supports all major LLMs, vector databases and a growing library of AI tools.

Highlight features

  • Visual builder interface to quickly get started and iterate .
  • Source code access lets you customize any component using Python.
  • Interactive playground to immediately test and refine your flows with step-by-step control.
  • Multi-agent orchestration with conversation management and retrieval.
  • Deploy as an API or export as JSON for Python apps.
  • Deploy as an MCP server and turn your flows into tools for MCP clients.
  • Observability with LangSmith, LangFuse and other integrations.
  • Enterprise-ready security and scalability.

Quickstart

Langflow requires Python 3.10 to 3.13 and uv.

  1. To install Langflow, run:
uv pip install langflow -U
  1. To run Langflow, run:
uv run langflow run
  1. Go to the default Langflow URL at http://127.0.0.1:7860.

For more information about installing Langflow, including Docker and Desktop options, see Install Langflow.

📦 Deployment

Langflow is completely open source and you can deploy it to all major deployment clouds. To learn how to use Docker to deploy Langflow, see the Docker deployment guide.

Stay up-to-date

Star Langflow on GitHub to be instantly notified of new releases.

Star Langflow

👋 Contribute

We welcome contributions from developers of all levels. If you'd like to contribute, please check our contributing guidelines and help make Langflow more accessible.


Star History Chart

❤️ Contributors

langflow contributors