fix: Resolve Auth field issue in Composio component and bump Composio (#5357)

* fix: replace single quotes with double quotes

* feat: update Composio component fields
This commit is contained in:
Abhishek Patil 2024-12-20 17:12:29 +05:30 committed by GitHub
commit fb9825ee65
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 28 additions and 19 deletions

View file

@ -76,7 +76,8 @@ dependencies = [
"yfinance==0.2.50",
"wolframalpha==5.1.3",
"astra-assistants[tools]~=2.2.6",
"composio-langchain==0.5.42",
"composio-langchain==0.6.3",
"composio-core==0.6.3",
"spider-client==0.1.24",
"nltk==3.9.1",
"lark==1.2.2",

View file

@ -8,7 +8,6 @@ from composio.client.exceptions import NoItemsFound
from composio_langchain import Action, App, ComposioToolSet
from langchain_core.tools import Tool
from loguru import logger
from typing_extensions import override
# Local imports
from langflow.base.langchain_utilities.model import LCToolComponent
@ -30,16 +29,17 @@ class ComposioAPIComponent(LCToolComponent):
name="api_key",
display_name="Composio API Key",
required=True,
# refresh_button=True,
info="Refer to https://docs.composio.dev/faq/api_key/api_key",
real_time_refresh=True,
),
DropdownInput(
name="app_names",
display_name="App Name",
options=list(App.__annotations__),
options=[str(app).replace("App.", "") for app in App.all()],
value="",
info="The app name to use. Please refresh after selecting app name",
refresh_button=True,
required=True,
),
# Authentication-related inputs (initially hidden)
SecretStrInput(
@ -49,6 +49,7 @@ class ComposioAPIComponent(LCToolComponent):
dynamic=True,
show=False,
info="Credentials for app authentication (API Key, Password, etc)",
load_from_db=False,
),
MessageTextInput(
name="username",
@ -220,19 +221,24 @@ class ComposioAPIComponent(LCToolComponent):
"""
return self.app_names.replace("", "").replace("_connected", "")
@override
def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None) -> dict:
def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None) -> dict: # noqa: ARG002
# First, ensure all dynamic fields are hidden by default
dynamic_fields = ["app_credentials", "username", "auth_link", "auth_status", "action_names"]
for field in dynamic_fields:
if field in build_config:
if build_config[field]["value"] is None or build_config[field]["value"] == "":
build_config[field]["show"] = False
build_config[field]["advanced"] = True # Hide from main view
build_config[field]["advanced"] = True
build_config[field]["load_from_db"] = False
else:
build_config[field]["show"] = True
build_config[field]["advanced"] = False
if field_name == "app_names" and (not hasattr(self, "app_names") or not self.app_names):
build_config["auth_status"]["show"] = True
build_config["auth_status"]["value"] = "Please select an app first"
return build_config
if field_name == "app_names" and hasattr(self, "api_key") and self.api_key != "":
# app_name = self._get_normalized_app_name()
app_name = self.app_names
@ -285,7 +291,7 @@ class ComposioAPIComponent(LCToolComponent):
# Update action names if connected
if build_config["auth_status"]["value"] == "":
all_action_names = list(Action.__annotations__)
all_action_names = [str(action).replace("Action.", "") for action in Action.all()]
app_action_names = [
action_name
for action_name in all_action_names

24
uv.lock generated
View file

@ -1157,7 +1157,7 @@ wheels = [
[[package]]
name = "composio-core"
version = "0.5.42"
version = "0.6.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "aiohttp" },
@ -1177,14 +1177,14 @@ dependencies = [
{ name = "sentry-sdk" },
{ name = "uvicorn" },
]
sdist = { url = "https://files.pythonhosted.org/packages/83/b9/a66a7646564f91937e2ac9a72c12308a37aac76dea88ea1d727a061bf153/composio_core-0.5.42.tar.gz", hash = "sha256:b38ea94e25807a6da813efb2c53ea8e01f71e54f0275ecfa55225887b36b6537", size = 295930 }
sdist = { url = "https://files.pythonhosted.org/packages/5f/21/730e8e305489d88f49d44d25630779fa79601d4add08ec00cb3c576f30fb/composio_core-0.6.3.tar.gz", hash = "sha256:13098b20d8832e74453ca194889305c935432156fc07be91dfddf76561ad591b", size = 305588 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/00/7a/45acb7b6bcca477712f89bd43888393f365dca0270062e97389e3653aec8/composio_core-0.5.42-py3-none-any.whl", hash = "sha256:351ddee8ac8203ea8039098c8afce7c43b1cf4a97eccbb2046c489a3a53afa54", size = 457643 },
{ url = "https://files.pythonhosted.org/packages/3f/33/e696eccb062d24182740b3203b53114aa633c9d8ded5a5799f5ff6ef5808/composio_core-0.6.3-py3-none-any.whl", hash = "sha256:981a9856781b791242f947a9685a18974d8a012ac7fab2c09438e1b19610d6a2", size = 468385 },
]
[[package]]
name = "composio-langchain"
version = "0.5.42"
version = "0.6.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "composio-core" },
@ -1193,9 +1193,9 @@ dependencies = [
{ name = "langchainhub" },
{ name = "pydantic" },
]
sdist = { url = "https://files.pythonhosted.org/packages/18/3e/fa76297c590405d17ca8183396a51ae461845f82e232e64f68f383e2f804/composio_langchain-0.5.42.tar.gz", hash = "sha256:ed95acce4603099eccc022cd42f75df876dc566ecd0ed509bb33d18d0c541358", size = 4281 }
sdist = { url = "https://files.pythonhosted.org/packages/e7/cc/c6b48d16081c8a90f6e73e339b2cac26d8bae875622b853442bbd3cab525/composio_langchain-0.6.3.tar.gz", hash = "sha256:2036f94bfe60974b31f2be0bfdb33dd75a1d43435f275141219b3376587bf49d", size = 4252 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/da/a4/4d65985c49db8d828ef39843003c443919fa9a285d3244dba3aaedbd4fd1/composio_langchain-0.5.42-py3-none-any.whl", hash = "sha256:ddbffa94c5ad7105bdc877e0103a5633cca8c736a7b6853230078e143e718700", size = 4701 },
{ url = "https://files.pythonhosted.org/packages/ad/01/cad5fd344f79b3c86e0baa7092d16dff8b38ea83640bcfc8350139d4b6aa/composio_langchain-0.6.3-py3-none-any.whl", hash = "sha256:0e749a1603dc0562293412d0a6429f88b75152b01a313cca859732070d762a6b", size = 4676 },
]
[[package]]
@ -3933,6 +3933,7 @@ dependencies = [
{ name = "boto3" },
{ name = "certifi" },
{ name = "chromadb" },
{ name = "composio-core" },
{ name = "composio-langchain" },
{ name = "crewai" },
{ name = "dspy-ai" },
@ -4031,7 +4032,7 @@ local = [
{ name = "sentence-transformers" },
]
[package.dev-dependencies]
[package.dependency-groups]
dev = [
{ name = "asgi-lifespan" },
{ name = "blockbuster" },
@ -4087,7 +4088,8 @@ requires-dist = [
{ name = "certifi", specifier = ">=2023.11.17,<2025.0.0" },
{ name = "chromadb", specifier = "==0.5.23" },
{ name = "clickhouse-connect", marker = "extra == 'clickhouse-connect'", specifier = "==0.7.19" },
{ name = "composio-langchain", specifier = "==0.5.42" },
{ name = "composio-core", specifier = "==0.6.3" },
{ name = "composio-langchain", specifier = "==0.6.3" },
{ name = "couchbase", marker = "extra == 'couchbase'", specifier = ">=4.2.1" },
{ name = "crewai", specifier = "~=0.86.0" },
{ name = "ctransformers", marker = "extra == 'local'", specifier = ">=0.2.10" },
@ -4170,7 +4172,7 @@ requires-dist = [
{ name = "zep-python", specifier = "==2.0.2" },
]
[package.metadata.requires-dev]
[package.metadata.dependency-groups]
dev = [
{ name = "asgi-lifespan", specifier = ">=2.1.0" },
{ name = "blockbuster", specifier = ">=1.5.2,<1.6" },
@ -4327,7 +4329,7 @@ local = [
{ name = "sentence-transformers" },
]
[package.dev-dependencies]
[package.dependency-groups]
dev = [
{ name = "asgi-lifespan" },
{ name = "pytest-codspeed" },
@ -4439,7 +4441,7 @@ requires-dist = [
{ name = "vulture", marker = "extra == 'dev'", specifier = ">=2.11" },
]
[package.metadata.requires-dev]
[package.metadata.dependency-groups]
dev = [
{ name = "asgi-lifespan", specifier = ">=2.1.0" },
{ name = "pytest-codspeed", specifier = ">=3.0.0" },