Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/docs/Components/bundles-google.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ slug: /bundles-google
---

import Icon from "@site/src/components/icon";
import PartialLfxBundlesInstall from '@site/docs/_partial-bundle-lfx-bundles-install.mdx';
import { GraduatedBundleInstall } from '@site/docs/_partial-bundle-graduated-install.mdx';

<PartialLfxBundlesInstall />
<GraduatedBundleInstall packageName="google" />

<Icon name="Blocks" aria-hidden="true" /> [**Bundles**](/components-bundle-components) contain custom components that support specific third-party integrations with Langflow.

Expand Down Expand Up @@ -203,4 +203,4 @@ While there is no direct replacement, consider using the [**API Request** compon
## See also

- [**Composio** bundle](/bundles-composio)
- [**Vertex AI** bundle](/bundles-vertexai)
- [**Vertex AI** bundle](/bundles-vertexai)
4 changes: 2 additions & 2 deletions docs/docs/Lfx/extensions-bundle-list.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This page lists every official Langflow bundle and the pip **extension** package
Bundle names are stable identifiers used in saved flows (`ext:<bundle>:<Class>@official`).
The pip install command is what you run when a bundle is missing from your environment.

This list reflects the bundles included with Langflow 1.11.0.
This list reflects the bundles included with Langflow 1.12.0.
Providers can graduate from `lfx-bundles` to a standalone `lfx-<provider>` package without changing the bundle name in your flows.

## Standalone packages
Expand All @@ -26,6 +26,7 @@ These providers ship as their own pip packages, each on its own release cadence.
| [`empiriolabs`](./bundles-empiriolabs) (EmpirioLabs) | `uv pip install lfx-empiriolabs` |
| [`exa`](/bundles-exa) (Exa) | `uv pip install lfx-exa` |
| [`firecrawl`](/bundles-firecrawl) (Firecrawl) | `uv pip install lfx-firecrawl` |
| [`google`](/bundles-google) (Google components) | `uv pip install lfx-google` |
| [`ibm`](/bundles-ibm) (IBM) | `uv pip install lfx-ibm` |
| [`nextplaid`](./bundles-nextplaid) (NextPlaid) | `uv pip install lfx-nextplaid` |
| [`openai`](/bundles-openai) (OpenAI) | `uv pip install lfx-openai` |
Expand Down Expand Up @@ -66,7 +67,6 @@ Bare `uv pip install lfx-bundles` registers the provider code only; add a per-pr
| [`faiss`](/bundles-faiss) (FAISS) | `uv pip install "lfx-bundles[faiss]"` |
| `git` | `uv pip install "lfx-bundles[git]"` |
| [`glean`](/bundles-glean) (Glean) | `uv pip install "lfx-bundles[glean]"` |
| [`google`](/bundles-google) (Google components) | `uv pip install "lfx-bundles[google]"` |
| [`groq`](/bundles-groq) (Groq) | `uv pip install "lfx-bundles[groq]"` |
| `homeassistant` | `uv pip install "lfx-bundles[homeassistant]"` |
| [`huggingface`](/bundles-huggingface) (Hugging Face) | `uv pip install "lfx-bundles[huggingface]"` |
Expand Down
5 changes: 4 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ dependencies = [
"lfx-openai-compatible>=0.1.0,<1.0.0",
"lfx-exa>=0.1.0,<1.0.0",
"lfx-valkey>=0.1.0,<1.0.0",
"lfx-google>=0.1.0,<1.0.0",
# langflow-extensions:bundle-deps-end
]

Expand Down Expand Up @@ -123,6 +124,7 @@ lfx-empiriolabs = { workspace = true }
lfx-openai-compatible = { workspace = true }
lfx-exa = { workspace = true }
lfx-valkey = { workspace = true }
lfx-google = { workspace = true }
# langflow-extensions:bundle-sources-end
torch = { index = "pytorch-cpu" }
torchvision = { index = "pytorch-cpu" }
Expand Down Expand Up @@ -155,6 +157,7 @@ members = [
"src/bundles/openai-compatible",
"src/bundles/exa",
"src/bundles/valkey",
"src/bundles/google",
# langflow-extensions:bundle-members-end
]

Expand All @@ -167,7 +170,7 @@ Documentation = "https://docs.langflow.org"

[project.optional-dependencies]
bundles = [
"lfx-bundles[all-no-torch]>=1.1.3,<2.0",
"lfx-bundles[all-no-torch]>=1.1.4,<2.0",
]

docling = [
Expand Down
19 changes: 15 additions & 4 deletions scripts/ci/bundle_profile_locks/enterprise-hardened.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -112,15 +112,25 @@
"requirement": "lfx-firecrawl==0.1.1",
"resolved_version": "0.1.1"
},
{
"distribution": "lfx-google",
"extras": [],
"providers": [
"lfx-google"
],
"requested": ">=0.1.0,<1.0.0",
"requirement": "lfx-google==0.1.0",
"resolved_version": "0.1.0"
},
{
"distribution": "lfx-ibm",
"extras": [],
"providers": [
"lfx-ibm"
],
"requested": ">=0.1.0,<1.0.0",
"requirement": "lfx-ibm==0.1.3",
"resolved_version": "0.1.3"
"requested": ">=0.1.4,<1.0.0",
"requirement": "lfx-ibm==0.1.4",
"resolved_version": "0.1.4"
},
{
"distribution": "lfx-nextplaid",
Expand Down Expand Up @@ -200,7 +210,7 @@
"https://pypi.org/simple"
],
"profile": "enterprise-hardened",
"profile_digest": "sha256:2bf2a71f550faa0c",
"profile_digest": "sha256:95f4c5899131fc3c",
"providers": [
"lfx-amazon",
"lfx-anthropic",
Expand All @@ -212,6 +222,7 @@
"lfx-empiriolabs",
"lfx-exa",
"lfx-firecrawl",
"lfx-google",
"lfx-ibm",
"lfx-nextplaid",
"lfx-openai",
Expand Down
10 changes: 9 additions & 1 deletion scripts/ci/bundle_profiles.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
{
"distribution": "lfx-ibm",
"extras": [],
"version": ">=0.1.0,<1.0.0",
"version": ">=0.1.4,<1.0.0",
"providers": [
"lfx-ibm"
]
Expand Down Expand Up @@ -164,6 +164,14 @@
"lfx-exa"
]
},
{
"distribution": "lfx-google",
"extras": [],
"version": ">=0.1.0,<1.0.0",
"providers": [
"lfx-google"
]
},
{
"distribution": "lfx-valkey",
"extras": [],
Expand Down
27 changes: 24 additions & 3 deletions scripts/ci/release_inventory_contract.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
"lfx-empiriolabs",
"lfx-exa",
"lfx-firecrawl",
"lfx-google",
"lfx-ibm",
"lfx-nextplaid",
"lfx-openai",
Expand All @@ -91,6 +92,7 @@
"lfx-empiriolabs",
"lfx-exa",
"lfx-firecrawl",
"lfx-google",
"lfx-ibm",
"lfx-nextplaid",
"lfx-openai",
Expand All @@ -109,8 +111,19 @@
"lfx-openai": [
"lfx_openai/extension.json",
"lfx_openai/components/openai/openai_chat_model.py"
],
"lfx-google": [
"lfx_google/extension.json",
"lfx_google/components/google/google_generative_ai.py"
]
}
},
"module_checks": [
{
"module": "lfx.components.google",
"attribute": "GoogleGenerativeAIComponent",
"expect": "success"
}
]
},
"python-full": {
"extends": "python-default",
Expand All @@ -132,6 +145,7 @@
"lfx-empiriolabs",
"lfx-exa",
"lfx-firecrawl",
"lfx-google",
"lfx-ibm",
"lfx-nextplaid",
"lfx-openai",
Expand Down Expand Up @@ -169,7 +183,6 @@
"faiss",
"git",
"glean",
"google",
"groq",
"homeassistant",
"huggingface",
Expand Down Expand Up @@ -225,14 +238,22 @@
"lfx_openai/extension.json",
"lfx_openai/components/openai/openai_chat_model.py"
],
"lfx-google": [
"lfx_google/extension.json",
"lfx_google/components/google/google_generative_ai.py"
],
"lfx-bundles": [
"lfx_bundles/google/google_generative_ai.py",
"lfx_bundles/mongodb/mongodb_atlas.py",
"lfx_bundles/codeagents/starter_projects/Structured Data Analysis Agent.json",
"lfx_bundles/youtube/starter_projects/Youtube Analysis.json"
]
},
"module_checks": [
{
"module": "lfx.components.google",
"attribute": "GoogleGenerativeAIComponent",
"expect": "success"
},
{
"module": "lfx.components.youtube",
"attribute": "YouTubeTranscriptsComponent",
Expand Down
3 changes: 2 additions & 1 deletion scripts/ci/test_release_inventory.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def test_contract_tracks_every_curated_extension() -> None:
def test_contract_required_files_exist_in_sources() -> None:
source_roots = {
"langflow-base": REPO_ROOT / "src" / "backend" / "base",
"lfx-google": REPO_ROOT / "src" / "bundles" / "google" / "src",
"lfx-openai": REPO_ROOT / "src" / "bundles" / "openai" / "src",
"lfx-bundles": REPO_ROOT / "src" / "bundles" / "lfx-bundles" / "src",
}
Expand All @@ -69,7 +70,7 @@ def test_contract_required_files_exist_in_sources() -> None:

def test_full_python_profile_uses_the_reviewed_root_extra() -> None:
root_project = tomllib.loads((REPO_ROOT / "pyproject.toml").read_text(encoding="utf-8"))["project"]
assert root_project["optional-dependencies"]["bundles"] == ["lfx-bundles[all-no-torch]>=1.1,<2.0"]
assert root_project["optional-dependencies"]["bundles"] == ["lfx-bundles[all-no-torch]>=1.1.4,<2.0"]

gate_path = REPO_ROOT / ".github" / "workflows" / "release-inventory-gate.yml"
gate = gate_path.read_text(encoding="utf-8")
Expand Down
11 changes: 2 additions & 9 deletions scripts/migrate/consolidate_bundles.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,15 +132,8 @@
"olivya": [], # httpx REST only (lfx core)
"agentql": [], # httpx REST only (lfx core)
# --- tranche 7: google family + agent SDKs (markers preserved from base) ---
# google-auth-oauthlib: imported directly by the google_oauth_token component
# (from google_auth_oauthlib.flow import InstalledAppFlow). langchain-google-community
# only pulls it behind its [gmail,drive,calendar] extras, so declare it explicitly.
"google": [
"langchain-google-genai~=4.1.2",
"langchain-google-community~=3.0.2",
"google-api-python-client~=2.161",
"google-auth-oauthlib>=1.2.0,<2.0.0",
],
# "google" graduated to the standalone lfx-google bundle so Gemini is
# available in every default Langflow install.
"vertexai": ["langchain-google-vertexai>=3.2.0"],
"altk": [
"agent-lifecycle-toolkit>=0.10.1,<1.0; sys_platform != 'darwin' or platform_machine != 'x86_64'",
Expand Down
Loading
Loading