lfx-nightly 0.1.12.dev38__py3-none-any.whl → 0.1.12.dev40__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of lfx-nightly might be problematic. Click here for more details.
- lfx/_assets/component_index.json +1 -0
- lfx/cli/run.py +7 -3
- lfx/components/agents/agent.py +1 -0
- lfx/components/arxiv/arxiv.py +8 -2
- lfx/components/composio/__init__.py +71 -17
- lfx/components/composio/agentql_composio.py +11 -0
- lfx/components/composio/agiled_composio.py +11 -0
- lfx/components/composio/bolna_composio.py +11 -0
- lfx/components/composio/brightdata_composio.py +11 -0
- lfx/components/composio/canvas_composio.py +11 -0
- lfx/components/composio/digicert_composio.py +11 -0
- lfx/components/composio/finage_composio.py +11 -0
- lfx/components/composio/fixer_composio.py +11 -0
- lfx/components/composio/flexisign_composio.py +11 -0
- lfx/components/composio/freshdesk_composio.py +11 -0
- lfx/components/composio/googleclassroom_composio.py +11 -0
- lfx/components/composio/instagram_composio.py +11 -0
- lfx/components/composio/jira_composio.py +11 -0
- lfx/components/composio/jotform_composio.py +11 -0
- lfx/components/composio/listennotes_composio.py +11 -0
- lfx/components/composio/missive_composio.py +11 -0
- lfx/components/composio/pandadoc_composio.py +11 -0
- lfx/components/composio/timelinesai_composio.py +11 -0
- lfx/components/helpers/current_date.py +1 -1
- lfx/components/lmstudio/lmstudiomodel.py +9 -5
- lfx/components/logic/__init__.py +3 -0
- lfx/components/logic/llm_conditional_router.py +65 -21
- lfx/components/nvidia/nvidia.py +3 -3
- lfx/components/processing/__init__.py +3 -0
- lfx/components/processing/dynamic_create_data.py +357 -0
- lfx/components/processing/lambda_filter.py +82 -18
- lfx/custom/validate.py +12 -3
- lfx/interface/components.py +336 -8
- lfx/services/settings/base.py +7 -0
- {lfx_nightly-0.1.12.dev38.dist-info → lfx_nightly-0.1.12.dev40.dist-info}/METADATA +1 -1
- {lfx_nightly-0.1.12.dev38.dist-info → lfx_nightly-0.1.12.dev40.dist-info}/RECORD +38 -18
- {lfx_nightly-0.1.12.dev38.dist-info → lfx_nightly-0.1.12.dev40.dist-info}/WHEEL +0 -0
- {lfx_nightly-0.1.12.dev38.dist-info → lfx_nightly-0.1.12.dev40.dist-info}/entry_points.txt +0 -0
lfx/cli/run.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import re
|
|
2
3
|
import sys
|
|
3
4
|
import tempfile
|
|
4
5
|
from functools import partial
|
|
@@ -243,9 +244,12 @@ async def run(
|
|
|
243
244
|
if "ModuleNotFoundError" in str(e) or "No module named" in str(e):
|
|
244
245
|
logger.info("This appears to be a missing dependency issue")
|
|
245
246
|
if "langchain" in str(e).lower():
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
247
|
+
match = re.search(r"langchain_(.*)", str(e).lower())
|
|
248
|
+
if match:
|
|
249
|
+
module_name = match.group(1)
|
|
250
|
+
logger.info(
|
|
251
|
+
f"Missing LangChain dependency detected. Try: pip install langchain-{module_name}",
|
|
252
|
+
)
|
|
249
253
|
elif "ImportError" in str(e):
|
|
250
254
|
logger.info("This appears to be an import issue - check component dependencies")
|
|
251
255
|
elif "AttributeError" in str(e):
|
lfx/components/agents/agent.py
CHANGED
|
@@ -179,6 +179,7 @@ class AgentComponent(ToolCallingAgentComponent):
|
|
|
179
179
|
|
|
180
180
|
# Get memory data
|
|
181
181
|
self.chat_history = await self.get_memory_data()
|
|
182
|
+
await logger.adebug(f"Retrieved {len(self.chat_history)} chat history messages")
|
|
182
183
|
if isinstance(self.chat_history, Message):
|
|
183
184
|
self.chat_history = [self.chat_history]
|
|
184
185
|
|
lfx/components/arxiv/arxiv.py
CHANGED
|
@@ -45,8 +45,14 @@ class ArXivComponent(Component):
|
|
|
45
45
|
"""Build the arXiv API query URL."""
|
|
46
46
|
base_url = "http://export.arxiv.org/api/query?"
|
|
47
47
|
|
|
48
|
-
# Build the search query
|
|
49
|
-
|
|
48
|
+
# Build the search query based on search type
|
|
49
|
+
if self.search_type == "all":
|
|
50
|
+
search_query = self.search_query # No prefix for all fields
|
|
51
|
+
else:
|
|
52
|
+
# Map dropdown values to ArXiv API prefixes
|
|
53
|
+
prefix_map = {"title": "ti", "abstract": "abs", "author": "au", "cat": "cat"}
|
|
54
|
+
prefix = prefix_map.get(self.search_type, "")
|
|
55
|
+
search_query = f"{prefix}:{self.search_query}"
|
|
50
56
|
|
|
51
57
|
# URL parameters
|
|
52
58
|
params = {
|
|
@@ -5,93 +5,147 @@ from typing import TYPE_CHECKING, Any
|
|
|
5
5
|
from lfx.components._importing import import_mod
|
|
6
6
|
|
|
7
7
|
if TYPE_CHECKING:
|
|
8
|
+
from .agentql_composio import ComposioAgentQLAPIComponent
|
|
9
|
+
from .agiled_composio import ComposioAgiledAPIComponent
|
|
8
10
|
from .airtable_composio import ComposioAirtableAPIComponent
|
|
9
11
|
from .asana_composio import ComposioAsanaAPIComponent
|
|
10
12
|
from .attio_composio import ComposioAttioAPIComponent
|
|
13
|
+
from .bolna_composio import ComposioBolnaAPIComponent
|
|
14
|
+
from .brightdata_composio import ComposioBrightdataAPIComponent
|
|
11
15
|
from .calendly_composio import ComposioCalendlyAPIComponent
|
|
16
|
+
from .canvas_composio import ComposioCanvasAPIComponent
|
|
12
17
|
from .composio_api import ComposioAPIComponent
|
|
13
18
|
from .contentful_composio import ComposioContentfulAPIComponent
|
|
19
|
+
from .digicert_composio import ComposioDigicertAPIComponent
|
|
14
20
|
from .discord_composio import ComposioDiscordAPIComponent
|
|
15
21
|
from .figma_composio import ComposioFigmaAPIComponent
|
|
22
|
+
from .finage_composio import ComposioFinageAPIComponent
|
|
23
|
+
from .fixer_composio import ComposioFixerAPIComponent
|
|
24
|
+
from .flexisign_composio import ComposioFlexisignAPIComponent
|
|
25
|
+
from .freshdesk_composio import ComposioFreshdeskAPIComponent
|
|
16
26
|
from .github_composio import ComposioGitHubAPIComponent
|
|
17
27
|
from .gmail_composio import ComposioGmailAPIComponent
|
|
18
28
|
from .googlecalendar_composio import ComposioGoogleCalendarAPIComponent
|
|
29
|
+
from .googleclassroom_composio import ComposioGoogleclassroomAPIComponent
|
|
19
30
|
from .googledocs_composio import ComposioGoogleDocsAPIComponent
|
|
20
31
|
from .googlemeet_composio import ComposioGooglemeetAPIComponent
|
|
21
32
|
from .googlesheets_composio import ComposioGoogleSheetsAPIComponent
|
|
22
33
|
from .googletasks_composio import ComposioGoogleTasksAPIComponent
|
|
34
|
+
from .instagram_composio import ComposioInstagramAPIComponent
|
|
35
|
+
from .jira_composio import ComposioJiraAPIComponent
|
|
36
|
+
from .jotform_composio import ComposioJotformAPIComponent
|
|
23
37
|
from .klaviyo_composio import ComposioKlaviyoAPIComponent
|
|
24
38
|
from .linear_composio import ComposioLinearAPIComponent
|
|
39
|
+
from .listennotes_composio import ComposioListennotesAPIComponent
|
|
25
40
|
from .miro_composio import ComposioMiroAPIComponent
|
|
41
|
+
from .missive_composio import ComposioMissiveAPIComponent
|
|
26
42
|
from .notion_composio import ComposioNotionAPIComponent
|
|
27
43
|
from .onedrive_composio import ComposioOneDriveAPIComponent
|
|
28
44
|
from .outlook_composio import ComposioOutlookAPIComponent
|
|
45
|
+
from .pandadoc_composio import ComposioPandadocAPIComponent
|
|
29
46
|
from .reddit_composio import ComposioRedditAPIComponent
|
|
30
47
|
from .slack_composio import ComposioSlackAPIComponent
|
|
31
48
|
from .slackbot_composio import ComposioSlackbotAPIComponent
|
|
32
49
|
from .supabase_composio import ComposioSupabaseAPIComponent
|
|
50
|
+
from .timelinesai_composio import ComposioTimelinesAIAPIComponent
|
|
33
51
|
from .todoist_composio import ComposioTodoistAPIComponent
|
|
34
52
|
from .wrike_composio import ComposioWrikeAPIComponent
|
|
35
53
|
from .youtube_composio import ComposioYoutubeAPIComponent
|
|
36
54
|
|
|
37
55
|
_dynamic_imports = {
|
|
38
56
|
"ComposioAPIComponent": "composio_api",
|
|
57
|
+
"ComposioAgentQLAPIComponent": "agentql_composio",
|
|
58
|
+
"ComposioAgiledAPIComponent": "agiled_composio",
|
|
59
|
+
"ComposioAirtableAPIComponent": "airtable_composio",
|
|
60
|
+
"ComposioAsanaAPIComponent": "asana_composio",
|
|
61
|
+
"ComposioAttioAPIComponent": "attio_composio",
|
|
62
|
+
"ComposioBolnaAPIComponent": "bolna_composio",
|
|
63
|
+
"ComposioBrightdataAPIComponent": "brightdata_composio",
|
|
64
|
+
"ComposioCalendlyAPIComponent": "calendly_composio",
|
|
65
|
+
"ComposioCanvasAPIComponent": "canvas_composio",
|
|
66
|
+
"ComposioContentfulAPIComponent": "contentful_composio",
|
|
67
|
+
"ComposioDiscordAPIComponent": "discord_composio",
|
|
68
|
+
"ComposioDigicertAPIComponent": "digicert_composio",
|
|
69
|
+
"ComposioFigmaAPIComponent": "figma_composio",
|
|
39
70
|
"ComposioGitHubAPIComponent": "github_composio",
|
|
40
71
|
"ComposioGmailAPIComponent": "gmail_composio",
|
|
41
72
|
"ComposioGoogleCalendarAPIComponent": "googlecalendar_composio",
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"ComposioSlackAPIComponent": "slack_composio",
|
|
73
|
+
"ComposioGoogleDocsAPIComponent": "googledocs_composio",
|
|
74
|
+
"ComposioGoogleSheetsAPIComponent": "googlesheets_composio",
|
|
45
75
|
"ComposioGoogleTasksAPIComponent": "googletasks_composio",
|
|
76
|
+
"ComposioGooglemeetAPIComponent": "googlemeet_composio",
|
|
77
|
+
"ComposioJiraAPIComponent": "jira_composio",
|
|
78
|
+
"ComposioKlaviyoAPIComponent": "klaviyo_composio",
|
|
46
79
|
"ComposioLinearAPIComponent": "linear_composio",
|
|
80
|
+
"ComposioMiroAPIComponent": "miro_composio",
|
|
81
|
+
"ComposioNotionAPIComponent": "notion_composio",
|
|
82
|
+
"ComposioOneDriveAPIComponent": "onedrive_composio",
|
|
83
|
+
"ComposioOutlookAPIComponent": "outlook_composio",
|
|
47
84
|
"ComposioRedditAPIComponent": "reddit_composio",
|
|
85
|
+
"ComposioSlackAPIComponent": "slack_composio",
|
|
48
86
|
"ComposioSlackbotAPIComponent": "slackbot_composio",
|
|
49
87
|
"ComposioSupabaseAPIComponent": "supabase_composio",
|
|
88
|
+
"ComposioTimelinesAIAPIComponent": "timelinesai_composio",
|
|
50
89
|
"ComposioTodoistAPIComponent": "todoist_composio",
|
|
51
|
-
"ComposioYoutubeAPIComponent": "youtube_composio",
|
|
52
|
-
"ComposioGoogleDocsAPIComponent": "googledocs_composio",
|
|
53
|
-
"ComposioGoogleSheetsAPIComponent": "googlesheets_composio",
|
|
54
|
-
"ComposioKlaviyoAPIComponent": "klaviyo_composio",
|
|
55
|
-
"ComposioNotionAPIComponent": "notion_composio",
|
|
56
|
-
"ComposioOneDriveAPIComponent": "onedrive_composio",
|
|
57
|
-
"ComposioAirtableAPIComponent": "airtable_composio",
|
|
58
|
-
"ComposioAsanaAPIComponent": "asana_composio",
|
|
59
|
-
"ComposioAttioAPIComponent": "attio_composio",
|
|
60
|
-
"ComposioCalendlyAPIComponent": "calendly_composio",
|
|
61
|
-
"ComposioContentfulAPIComponent": "contentful_composio",
|
|
62
|
-
"ComposioDiscordAPIComponent": "discord_composio",
|
|
63
|
-
"ComposioFigmaAPIComponent": "figma_composio",
|
|
64
|
-
"ComposioMiroAPIComponent": "miro_composio",
|
|
65
90
|
"ComposioWrikeAPIComponent": "wrike_composio",
|
|
91
|
+
"ComposioYoutubeAPIComponent": "youtube_composio",
|
|
92
|
+
"ComposioFinageAPIComponent": "finage_composio",
|
|
93
|
+
"ComposioFixerAPIComponent": "fixer_composio",
|
|
94
|
+
"ComposioFlexisignAPIComponent": "flexisign_composio",
|
|
95
|
+
"ComposioFreshdeskAPIComponent": "freshdesk_composio",
|
|
96
|
+
"ComposioGoogleclassroomAPIComponent": "googleclassroom_composio",
|
|
97
|
+
"ComposioInstagramAPIComponent": "instagram_composio",
|
|
98
|
+
"ComposioJotformAPIComponent": "jotform_composio",
|
|
99
|
+
"ComposioListennotesAPIComponent": "listennotes_composio",
|
|
100
|
+
"ComposioMissiveAPIComponent": "missive_composio",
|
|
101
|
+
"ComposioPandadocAPIComponent": "pandadoc_composio",
|
|
66
102
|
}
|
|
67
103
|
|
|
68
104
|
# Always expose all components - individual failures will be handled on import
|
|
69
105
|
__all__ = [
|
|
70
106
|
"ComposioAPIComponent",
|
|
107
|
+
"ComposioAgentQLAPIComponent",
|
|
108
|
+
"ComposioAgiledAPIComponent",
|
|
71
109
|
"ComposioAirtableAPIComponent",
|
|
72
110
|
"ComposioAsanaAPIComponent",
|
|
73
111
|
"ComposioAttioAPIComponent",
|
|
112
|
+
"ComposioBolnaAPIComponent",
|
|
113
|
+
"ComposioBrightdataAPIComponent",
|
|
74
114
|
"ComposioCalendlyAPIComponent",
|
|
115
|
+
"ComposioCanvasAPIComponent",
|
|
75
116
|
"ComposioContentfulAPIComponent",
|
|
117
|
+
"ComposioDigicertAPIComponent",
|
|
76
118
|
"ComposioDiscordAPIComponent",
|
|
77
119
|
"ComposioFigmaAPIComponent",
|
|
120
|
+
"ComposioFinageAPIComponent",
|
|
121
|
+
"ComposioFixerAPIComponent",
|
|
122
|
+
"ComposioFlexisignAPIComponent",
|
|
123
|
+
"ComposioFreshdeskAPIComponent",
|
|
78
124
|
"ComposioGitHubAPIComponent",
|
|
79
125
|
"ComposioGmailAPIComponent",
|
|
80
126
|
"ComposioGoogleCalendarAPIComponent",
|
|
81
127
|
"ComposioGoogleDocsAPIComponent",
|
|
82
128
|
"ComposioGoogleSheetsAPIComponent",
|
|
83
129
|
"ComposioGoogleTasksAPIComponent",
|
|
130
|
+
"ComposioGoogleclassroomAPIComponent",
|
|
84
131
|
"ComposioGooglemeetAPIComponent",
|
|
132
|
+
"ComposioInstagramAPIComponent",
|
|
133
|
+
"ComposioJiraAPIComponent",
|
|
134
|
+
"ComposioJotformAPIComponent",
|
|
85
135
|
"ComposioKlaviyoAPIComponent",
|
|
86
136
|
"ComposioLinearAPIComponent",
|
|
137
|
+
"ComposioListennotesAPIComponent",
|
|
87
138
|
"ComposioMiroAPIComponent",
|
|
139
|
+
"ComposioMissiveAPIComponent",
|
|
88
140
|
"ComposioNotionAPIComponent",
|
|
89
141
|
"ComposioOneDriveAPIComponent",
|
|
90
142
|
"ComposioOutlookAPIComponent",
|
|
143
|
+
"ComposioPandadocAPIComponent",
|
|
91
144
|
"ComposioRedditAPIComponent",
|
|
92
145
|
"ComposioSlackAPIComponent",
|
|
93
146
|
"ComposioSlackbotAPIComponent",
|
|
94
147
|
"ComposioSupabaseAPIComponent",
|
|
148
|
+
"ComposioTimelinesAIAPIComponent",
|
|
95
149
|
"ComposioTodoistAPIComponent",
|
|
96
150
|
"ComposioWrikeAPIComponent",
|
|
97
151
|
"ComposioYoutubeAPIComponent",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioAgentQLAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "AgentQL"
|
|
6
|
+
icon = "AgentQL"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "agentql"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for AgentQL component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioAgiledAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Agiled"
|
|
6
|
+
icon = "Agiled"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "agiled"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Agiled component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioBolnaAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Bolna"
|
|
6
|
+
icon = "Bolna"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "bolna"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Bolna component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioBrightdataAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Brightdata"
|
|
6
|
+
icon = "Brightdata"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "brightdata"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Brightdata component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioCanvasAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Canvas"
|
|
6
|
+
icon = "Canvas"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "canvas"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Canvaas component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioDigicertAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Digicert"
|
|
6
|
+
icon = "Digicert"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "digicert"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Digicert component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioFinageAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Finage"
|
|
6
|
+
icon = "Finage"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "finage"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Finage component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioFixerAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Fixer"
|
|
6
|
+
icon = "Fixer"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "fixer"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Fixer component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioFlexisignAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Flexisign"
|
|
6
|
+
icon = "Flexisign"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "flexisign"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Flexisign component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioFreshdeskAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Freshdesk"
|
|
6
|
+
icon = "Freshdesk"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "freshdesk"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Freshdesk component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioGoogleclassroomAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Google Classroom"
|
|
6
|
+
icon = "Classroom"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "GOOGLE_CLASSROOM"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Google Classroom component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioInstagramAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Instagram"
|
|
6
|
+
icon = "Instagram"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "instagram"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Instagram component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioJiraAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Jira"
|
|
6
|
+
icon = "Jira"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "jira"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Jira component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioJotformAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Jotform"
|
|
6
|
+
icon = "Jotform"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "jotform"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Jotform component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioListennotesAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Listennotes"
|
|
6
|
+
icon = "Listennotes"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "listennotes"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Listennotes component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioMissiveAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Missive"
|
|
6
|
+
icon = "Missive"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "missive"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Missive component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioPandadocAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Pandadoc"
|
|
6
|
+
icon = "Pandadoc"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "pandadoc"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Pandadoc component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioTimelinesAIAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "TimelinesAI"
|
|
6
|
+
icon = "Timelinesai"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "timelinesai"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for TimelinesAI component."""
|
|
@@ -18,7 +18,7 @@ class CurrentDateComponent(Component):
|
|
|
18
18
|
DropdownInput(
|
|
19
19
|
name="timezone",
|
|
20
20
|
display_name="Timezone",
|
|
21
|
-
options=
|
|
21
|
+
options=sorted(tz for tz in available_timezones() if tz != "localtime"),
|
|
22
22
|
value="UTC",
|
|
23
23
|
info="Select the timezone for the current date and time.",
|
|
24
24
|
tool_mode=True,
|
|
@@ -3,7 +3,6 @@ from urllib.parse import urljoin
|
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
from langchain_openai import ChatOpenAI
|
|
6
|
-
from typing_extensions import override
|
|
7
6
|
|
|
8
7
|
from lfx.base.models.model import LCModelComponent
|
|
9
8
|
from lfx.field_typing import LanguageModel
|
|
@@ -17,16 +16,21 @@ class LMStudioModelComponent(LCModelComponent):
|
|
|
17
16
|
icon = "LMStudio"
|
|
18
17
|
name = "LMStudioModel"
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
async def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None):
|
|
19
|
+
async def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None): # noqa: ARG002
|
|
22
20
|
if field_name == "model_name":
|
|
23
21
|
base_url_dict = build_config.get("base_url", {})
|
|
24
22
|
base_url_load_from_db = base_url_dict.get("load_from_db", False)
|
|
25
23
|
base_url_value = base_url_dict.get("value")
|
|
26
24
|
if base_url_load_from_db:
|
|
27
25
|
base_url_value = await self.get_variables(base_url_value, field_name)
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
try:
|
|
27
|
+
async with httpx.AsyncClient() as client:
|
|
28
|
+
response = await client.get(urljoin(base_url_value, "/v1/models"), timeout=2.0)
|
|
29
|
+
response.raise_for_status()
|
|
30
|
+
except httpx.HTTPError:
|
|
31
|
+
msg = "Could not access the default LM Studio URL. Please, specify the 'Base URL' field."
|
|
32
|
+
self.log(msg)
|
|
33
|
+
return build_config
|
|
30
34
|
build_config["model_name"]["options"] = await self.get_model(base_url_value)
|
|
31
35
|
|
|
32
36
|
return build_config
|
lfx/components/logic/__init__.py
CHANGED
|
@@ -8,6 +8,7 @@ if TYPE_CHECKING:
|
|
|
8
8
|
from lfx.components.logic.conditional_router import ConditionalRouterComponent
|
|
9
9
|
from lfx.components.logic.data_conditional_router import DataConditionalRouterComponent
|
|
10
10
|
from lfx.components.logic.flow_tool import FlowToolComponent
|
|
11
|
+
from lfx.components.logic.llm_conditional_router import SmartRouterComponent
|
|
11
12
|
from lfx.components.logic.loop import LoopComponent
|
|
12
13
|
from lfx.components.logic.pass_message import PassMessageComponent
|
|
13
14
|
from lfx.components.logic.run_flow import RunFlowComponent
|
|
@@ -20,6 +21,7 @@ _dynamic_imports = {
|
|
|
20
21
|
"LoopComponent": "loop",
|
|
21
22
|
"PassMessageComponent": "pass_message",
|
|
22
23
|
"RunFlowComponent": "run_flow",
|
|
24
|
+
"SmartRouterComponent": "llm_conditional_router",
|
|
23
25
|
"SubFlowComponent": "sub_flow",
|
|
24
26
|
}
|
|
25
27
|
|
|
@@ -30,6 +32,7 @@ __all__ = [
|
|
|
30
32
|
"LoopComponent",
|
|
31
33
|
"PassMessageComponent",
|
|
32
34
|
"RunFlowComponent",
|
|
35
|
+
"SmartRouterComponent",
|
|
33
36
|
"SubFlowComponent",
|
|
34
37
|
]
|
|
35
38
|
|