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