lfx-nightly 0.2.0.dev25__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.

Files changed (769) hide show
  1. lfx/__init__.py +0 -0
  2. lfx/__main__.py +25 -0
  3. lfx/_assets/component_index.json +1 -0
  4. lfx/base/__init__.py +0 -0
  5. lfx/base/agents/__init__.py +0 -0
  6. lfx/base/agents/agent.py +375 -0
  7. lfx/base/agents/altk_base_agent.py +380 -0
  8. lfx/base/agents/altk_tool_wrappers.py +565 -0
  9. lfx/base/agents/callback.py +130 -0
  10. lfx/base/agents/context.py +109 -0
  11. lfx/base/agents/crewai/__init__.py +0 -0
  12. lfx/base/agents/crewai/crew.py +231 -0
  13. lfx/base/agents/crewai/tasks.py +12 -0
  14. lfx/base/agents/default_prompts.py +23 -0
  15. lfx/base/agents/errors.py +15 -0
  16. lfx/base/agents/events.py +430 -0
  17. lfx/base/agents/utils.py +237 -0
  18. lfx/base/astra_assistants/__init__.py +0 -0
  19. lfx/base/astra_assistants/util.py +171 -0
  20. lfx/base/chains/__init__.py +0 -0
  21. lfx/base/chains/model.py +19 -0
  22. lfx/base/composio/__init__.py +0 -0
  23. lfx/base/composio/composio_base.py +2584 -0
  24. lfx/base/compressors/__init__.py +0 -0
  25. lfx/base/compressors/model.py +60 -0
  26. lfx/base/constants.py +46 -0
  27. lfx/base/curl/__init__.py +0 -0
  28. lfx/base/curl/parse.py +188 -0
  29. lfx/base/data/__init__.py +5 -0
  30. lfx/base/data/base_file.py +810 -0
  31. lfx/base/data/docling_utils.py +338 -0
  32. lfx/base/data/storage_utils.py +192 -0
  33. lfx/base/data/utils.py +362 -0
  34. lfx/base/datastax/__init__.py +5 -0
  35. lfx/base/datastax/astradb_base.py +896 -0
  36. lfx/base/document_transformers/__init__.py +0 -0
  37. lfx/base/document_transformers/model.py +43 -0
  38. lfx/base/embeddings/__init__.py +0 -0
  39. lfx/base/embeddings/aiml_embeddings.py +62 -0
  40. lfx/base/embeddings/embeddings_class.py +113 -0
  41. lfx/base/embeddings/model.py +26 -0
  42. lfx/base/flow_processing/__init__.py +0 -0
  43. lfx/base/flow_processing/utils.py +86 -0
  44. lfx/base/huggingface/__init__.py +0 -0
  45. lfx/base/huggingface/model_bridge.py +133 -0
  46. lfx/base/io/__init__.py +0 -0
  47. lfx/base/io/chat.py +21 -0
  48. lfx/base/io/text.py +22 -0
  49. lfx/base/knowledge_bases/__init__.py +3 -0
  50. lfx/base/knowledge_bases/knowledge_base_utils.py +137 -0
  51. lfx/base/langchain_utilities/__init__.py +0 -0
  52. lfx/base/langchain_utilities/model.py +35 -0
  53. lfx/base/langchain_utilities/spider_constants.py +1 -0
  54. lfx/base/langwatch/__init__.py +0 -0
  55. lfx/base/langwatch/utils.py +18 -0
  56. lfx/base/mcp/__init__.py +0 -0
  57. lfx/base/mcp/constants.py +2 -0
  58. lfx/base/mcp/util.py +1659 -0
  59. lfx/base/memory/__init__.py +0 -0
  60. lfx/base/memory/memory.py +49 -0
  61. lfx/base/memory/model.py +38 -0
  62. lfx/base/models/__init__.py +3 -0
  63. lfx/base/models/aiml_constants.py +51 -0
  64. lfx/base/models/anthropic_constants.py +51 -0
  65. lfx/base/models/aws_constants.py +151 -0
  66. lfx/base/models/chat_result.py +76 -0
  67. lfx/base/models/cometapi_constants.py +54 -0
  68. lfx/base/models/google_generative_ai_constants.py +70 -0
  69. lfx/base/models/google_generative_ai_model.py +38 -0
  70. lfx/base/models/groq_constants.py +150 -0
  71. lfx/base/models/groq_model_discovery.py +265 -0
  72. lfx/base/models/model.py +375 -0
  73. lfx/base/models/model_input_constants.py +378 -0
  74. lfx/base/models/model_metadata.py +41 -0
  75. lfx/base/models/model_utils.py +108 -0
  76. lfx/base/models/novita_constants.py +35 -0
  77. lfx/base/models/ollama_constants.py +52 -0
  78. lfx/base/models/openai_constants.py +129 -0
  79. lfx/base/models/sambanova_constants.py +18 -0
  80. lfx/base/models/watsonx_constants.py +36 -0
  81. lfx/base/processing/__init__.py +0 -0
  82. lfx/base/prompts/__init__.py +0 -0
  83. lfx/base/prompts/api_utils.py +224 -0
  84. lfx/base/prompts/utils.py +61 -0
  85. lfx/base/textsplitters/__init__.py +0 -0
  86. lfx/base/textsplitters/model.py +28 -0
  87. lfx/base/tools/__init__.py +0 -0
  88. lfx/base/tools/base.py +26 -0
  89. lfx/base/tools/component_tool.py +325 -0
  90. lfx/base/tools/constants.py +49 -0
  91. lfx/base/tools/flow_tool.py +132 -0
  92. lfx/base/tools/run_flow.py +698 -0
  93. lfx/base/vectorstores/__init__.py +0 -0
  94. lfx/base/vectorstores/model.py +193 -0
  95. lfx/base/vectorstores/utils.py +22 -0
  96. lfx/base/vectorstores/vector_store_connection_decorator.py +52 -0
  97. lfx/cli/__init__.py +5 -0
  98. lfx/cli/commands.py +327 -0
  99. lfx/cli/common.py +650 -0
  100. lfx/cli/run.py +506 -0
  101. lfx/cli/script_loader.py +289 -0
  102. lfx/cli/serve_app.py +546 -0
  103. lfx/cli/validation.py +69 -0
  104. lfx/components/FAISS/__init__.py +34 -0
  105. lfx/components/FAISS/faiss.py +111 -0
  106. lfx/components/Notion/__init__.py +19 -0
  107. lfx/components/Notion/add_content_to_page.py +269 -0
  108. lfx/components/Notion/create_page.py +94 -0
  109. lfx/components/Notion/list_database_properties.py +68 -0
  110. lfx/components/Notion/list_pages.py +122 -0
  111. lfx/components/Notion/list_users.py +77 -0
  112. lfx/components/Notion/page_content_viewer.py +93 -0
  113. lfx/components/Notion/search.py +111 -0
  114. lfx/components/Notion/update_page_property.py +114 -0
  115. lfx/components/__init__.py +428 -0
  116. lfx/components/_importing.py +42 -0
  117. lfx/components/agentql/__init__.py +3 -0
  118. lfx/components/agentql/agentql_api.py +151 -0
  119. lfx/components/aiml/__init__.py +37 -0
  120. lfx/components/aiml/aiml.py +115 -0
  121. lfx/components/aiml/aiml_embeddings.py +37 -0
  122. lfx/components/altk/__init__.py +34 -0
  123. lfx/components/altk/altk_agent.py +193 -0
  124. lfx/components/amazon/__init__.py +36 -0
  125. lfx/components/amazon/amazon_bedrock_converse.py +195 -0
  126. lfx/components/amazon/amazon_bedrock_embedding.py +109 -0
  127. lfx/components/amazon/amazon_bedrock_model.py +130 -0
  128. lfx/components/amazon/s3_bucket_uploader.py +211 -0
  129. lfx/components/anthropic/__init__.py +34 -0
  130. lfx/components/anthropic/anthropic.py +187 -0
  131. lfx/components/apify/__init__.py +5 -0
  132. lfx/components/apify/apify_actor.py +325 -0
  133. lfx/components/arxiv/__init__.py +3 -0
  134. lfx/components/arxiv/arxiv.py +169 -0
  135. lfx/components/assemblyai/__init__.py +46 -0
  136. lfx/components/assemblyai/assemblyai_get_subtitles.py +83 -0
  137. lfx/components/assemblyai/assemblyai_lemur.py +183 -0
  138. lfx/components/assemblyai/assemblyai_list_transcripts.py +95 -0
  139. lfx/components/assemblyai/assemblyai_poll_transcript.py +72 -0
  140. lfx/components/assemblyai/assemblyai_start_transcript.py +188 -0
  141. lfx/components/azure/__init__.py +37 -0
  142. lfx/components/azure/azure_openai.py +95 -0
  143. lfx/components/azure/azure_openai_embeddings.py +83 -0
  144. lfx/components/baidu/__init__.py +32 -0
  145. lfx/components/baidu/baidu_qianfan_chat.py +113 -0
  146. lfx/components/bing/__init__.py +3 -0
  147. lfx/components/bing/bing_search_api.py +61 -0
  148. lfx/components/cassandra/__init__.py +40 -0
  149. lfx/components/cassandra/cassandra.py +264 -0
  150. lfx/components/cassandra/cassandra_chat.py +92 -0
  151. lfx/components/cassandra/cassandra_graph.py +238 -0
  152. lfx/components/chains/__init__.py +3 -0
  153. lfx/components/chroma/__init__.py +34 -0
  154. lfx/components/chroma/chroma.py +169 -0
  155. lfx/components/cleanlab/__init__.py +40 -0
  156. lfx/components/cleanlab/cleanlab_evaluator.py +155 -0
  157. lfx/components/cleanlab/cleanlab_rag_evaluator.py +254 -0
  158. lfx/components/cleanlab/cleanlab_remediator.py +131 -0
  159. lfx/components/clickhouse/__init__.py +34 -0
  160. lfx/components/clickhouse/clickhouse.py +135 -0
  161. lfx/components/cloudflare/__init__.py +32 -0
  162. lfx/components/cloudflare/cloudflare.py +81 -0
  163. lfx/components/cohere/__init__.py +40 -0
  164. lfx/components/cohere/cohere_embeddings.py +81 -0
  165. lfx/components/cohere/cohere_models.py +46 -0
  166. lfx/components/cohere/cohere_rerank.py +51 -0
  167. lfx/components/cometapi/__init__.py +32 -0
  168. lfx/components/cometapi/cometapi.py +166 -0
  169. lfx/components/composio/__init__.py +222 -0
  170. lfx/components/composio/agentql_composio.py +11 -0
  171. lfx/components/composio/agiled_composio.py +11 -0
  172. lfx/components/composio/airtable_composio.py +11 -0
  173. lfx/components/composio/apollo_composio.py +11 -0
  174. lfx/components/composio/asana_composio.py +11 -0
  175. lfx/components/composio/attio_composio.py +11 -0
  176. lfx/components/composio/bitbucket_composio.py +11 -0
  177. lfx/components/composio/bolna_composio.py +11 -0
  178. lfx/components/composio/brightdata_composio.py +11 -0
  179. lfx/components/composio/calendly_composio.py +11 -0
  180. lfx/components/composio/canva_composio.py +11 -0
  181. lfx/components/composio/canvas_composio.py +11 -0
  182. lfx/components/composio/coda_composio.py +11 -0
  183. lfx/components/composio/composio_api.py +278 -0
  184. lfx/components/composio/contentful_composio.py +11 -0
  185. lfx/components/composio/digicert_composio.py +11 -0
  186. lfx/components/composio/discord_composio.py +11 -0
  187. lfx/components/composio/dropbox_compnent.py +11 -0
  188. lfx/components/composio/elevenlabs_composio.py +11 -0
  189. lfx/components/composio/exa_composio.py +11 -0
  190. lfx/components/composio/figma_composio.py +11 -0
  191. lfx/components/composio/finage_composio.py +11 -0
  192. lfx/components/composio/firecrawl_composio.py +11 -0
  193. lfx/components/composio/fireflies_composio.py +11 -0
  194. lfx/components/composio/fixer_composio.py +11 -0
  195. lfx/components/composio/flexisign_composio.py +11 -0
  196. lfx/components/composio/freshdesk_composio.py +11 -0
  197. lfx/components/composio/github_composio.py +11 -0
  198. lfx/components/composio/gmail_composio.py +38 -0
  199. lfx/components/composio/googlebigquery_composio.py +11 -0
  200. lfx/components/composio/googlecalendar_composio.py +11 -0
  201. lfx/components/composio/googleclassroom_composio.py +11 -0
  202. lfx/components/composio/googledocs_composio.py +11 -0
  203. lfx/components/composio/googlemeet_composio.py +11 -0
  204. lfx/components/composio/googlesheets_composio.py +11 -0
  205. lfx/components/composio/googletasks_composio.py +8 -0
  206. lfx/components/composio/heygen_composio.py +11 -0
  207. lfx/components/composio/instagram_composio.py +11 -0
  208. lfx/components/composio/jira_composio.py +11 -0
  209. lfx/components/composio/jotform_composio.py +11 -0
  210. lfx/components/composio/klaviyo_composio.py +11 -0
  211. lfx/components/composio/linear_composio.py +11 -0
  212. lfx/components/composio/listennotes_composio.py +11 -0
  213. lfx/components/composio/mem0_composio.py +11 -0
  214. lfx/components/composio/miro_composio.py +11 -0
  215. lfx/components/composio/missive_composio.py +11 -0
  216. lfx/components/composio/notion_composio.py +11 -0
  217. lfx/components/composio/onedrive_composio.py +11 -0
  218. lfx/components/composio/outlook_composio.py +11 -0
  219. lfx/components/composio/pandadoc_composio.py +11 -0
  220. lfx/components/composio/peopledatalabs_composio.py +11 -0
  221. lfx/components/composio/perplexityai_composio.py +11 -0
  222. lfx/components/composio/reddit_composio.py +11 -0
  223. lfx/components/composio/serpapi_composio.py +11 -0
  224. lfx/components/composio/slack_composio.py +11 -0
  225. lfx/components/composio/slackbot_composio.py +11 -0
  226. lfx/components/composio/snowflake_composio.py +11 -0
  227. lfx/components/composio/supabase_composio.py +11 -0
  228. lfx/components/composio/tavily_composio.py +11 -0
  229. lfx/components/composio/timelinesai_composio.py +11 -0
  230. lfx/components/composio/todoist_composio.py +11 -0
  231. lfx/components/composio/wrike_composio.py +11 -0
  232. lfx/components/composio/youtube_composio.py +11 -0
  233. lfx/components/confluence/__init__.py +3 -0
  234. lfx/components/confluence/confluence.py +84 -0
  235. lfx/components/couchbase/__init__.py +34 -0
  236. lfx/components/couchbase/couchbase.py +102 -0
  237. lfx/components/crewai/__init__.py +49 -0
  238. lfx/components/crewai/crewai.py +108 -0
  239. lfx/components/crewai/hierarchical_crew.py +47 -0
  240. lfx/components/crewai/hierarchical_task.py +45 -0
  241. lfx/components/crewai/sequential_crew.py +53 -0
  242. lfx/components/crewai/sequential_task.py +74 -0
  243. lfx/components/crewai/sequential_task_agent.py +144 -0
  244. lfx/components/cuga/__init__.py +34 -0
  245. lfx/components/cuga/cuga_agent.py +730 -0
  246. lfx/components/custom_component/__init__.py +34 -0
  247. lfx/components/custom_component/custom_component.py +31 -0
  248. lfx/components/data/__init__.py +114 -0
  249. lfx/components/data_source/__init__.py +58 -0
  250. lfx/components/data_source/api_request.py +577 -0
  251. lfx/components/data_source/csv_to_data.py +101 -0
  252. lfx/components/data_source/json_to_data.py +106 -0
  253. lfx/components/data_source/mock_data.py +398 -0
  254. lfx/components/data_source/news_search.py +166 -0
  255. lfx/components/data_source/rss.py +71 -0
  256. lfx/components/data_source/sql_executor.py +101 -0
  257. lfx/components/data_source/url.py +311 -0
  258. lfx/components/data_source/web_search.py +326 -0
  259. lfx/components/datastax/__init__.py +76 -0
  260. lfx/components/datastax/astradb_assistant_manager.py +307 -0
  261. lfx/components/datastax/astradb_chatmemory.py +40 -0
  262. lfx/components/datastax/astradb_cql.py +288 -0
  263. lfx/components/datastax/astradb_graph.py +217 -0
  264. lfx/components/datastax/astradb_tool.py +378 -0
  265. lfx/components/datastax/astradb_vectorize.py +122 -0
  266. lfx/components/datastax/astradb_vectorstore.py +449 -0
  267. lfx/components/datastax/create_assistant.py +59 -0
  268. lfx/components/datastax/create_thread.py +33 -0
  269. lfx/components/datastax/dotenv.py +36 -0
  270. lfx/components/datastax/get_assistant.py +38 -0
  271. lfx/components/datastax/getenvvar.py +31 -0
  272. lfx/components/datastax/graph_rag.py +141 -0
  273. lfx/components/datastax/hcd.py +315 -0
  274. lfx/components/datastax/list_assistants.py +26 -0
  275. lfx/components/datastax/run.py +90 -0
  276. lfx/components/deactivated/__init__.py +15 -0
  277. lfx/components/deactivated/amazon_kendra.py +66 -0
  278. lfx/components/deactivated/chat_litellm_model.py +158 -0
  279. lfx/components/deactivated/code_block_extractor.py +26 -0
  280. lfx/components/deactivated/documents_to_data.py +22 -0
  281. lfx/components/deactivated/embed.py +16 -0
  282. lfx/components/deactivated/extract_key_from_data.py +46 -0
  283. lfx/components/deactivated/json_document_builder.py +57 -0
  284. lfx/components/deactivated/list_flows.py +20 -0
  285. lfx/components/deactivated/mcp_sse.py +61 -0
  286. lfx/components/deactivated/mcp_stdio.py +62 -0
  287. lfx/components/deactivated/merge_data.py +93 -0
  288. lfx/components/deactivated/message.py +37 -0
  289. lfx/components/deactivated/metal.py +54 -0
  290. lfx/components/deactivated/multi_query.py +59 -0
  291. lfx/components/deactivated/retriever.py +43 -0
  292. lfx/components/deactivated/selective_passthrough.py +77 -0
  293. lfx/components/deactivated/should_run_next.py +40 -0
  294. lfx/components/deactivated/split_text.py +63 -0
  295. lfx/components/deactivated/store_message.py +24 -0
  296. lfx/components/deactivated/sub_flow.py +124 -0
  297. lfx/components/deactivated/vectara_self_query.py +76 -0
  298. lfx/components/deactivated/vector_store.py +24 -0
  299. lfx/components/deepseek/__init__.py +34 -0
  300. lfx/components/deepseek/deepseek.py +136 -0
  301. lfx/components/docling/__init__.py +43 -0
  302. lfx/components/docling/chunk_docling_document.py +186 -0
  303. lfx/components/docling/docling_inline.py +238 -0
  304. lfx/components/docling/docling_remote.py +195 -0
  305. lfx/components/docling/export_docling_document.py +117 -0
  306. lfx/components/documentloaders/__init__.py +3 -0
  307. lfx/components/duckduckgo/__init__.py +3 -0
  308. lfx/components/duckduckgo/duck_duck_go_search_run.py +92 -0
  309. lfx/components/elastic/__init__.py +37 -0
  310. lfx/components/elastic/elasticsearch.py +267 -0
  311. lfx/components/elastic/opensearch.py +789 -0
  312. lfx/components/elastic/opensearch_multimodal.py +1575 -0
  313. lfx/components/embeddings/__init__.py +37 -0
  314. lfx/components/embeddings/similarity.py +77 -0
  315. lfx/components/embeddings/text_embedder.py +65 -0
  316. lfx/components/exa/__init__.py +3 -0
  317. lfx/components/exa/exa_search.py +68 -0
  318. lfx/components/files_and_knowledge/__init__.py +47 -0
  319. lfx/components/files_and_knowledge/directory.py +113 -0
  320. lfx/components/files_and_knowledge/file.py +841 -0
  321. lfx/components/files_and_knowledge/ingestion.py +694 -0
  322. lfx/components/files_and_knowledge/retrieval.py +264 -0
  323. lfx/components/files_and_knowledge/save_file.py +746 -0
  324. lfx/components/firecrawl/__init__.py +43 -0
  325. lfx/components/firecrawl/firecrawl_crawl_api.py +88 -0
  326. lfx/components/firecrawl/firecrawl_extract_api.py +136 -0
  327. lfx/components/firecrawl/firecrawl_map_api.py +89 -0
  328. lfx/components/firecrawl/firecrawl_scrape_api.py +73 -0
  329. lfx/components/flow_controls/__init__.py +58 -0
  330. lfx/components/flow_controls/conditional_router.py +208 -0
  331. lfx/components/flow_controls/data_conditional_router.py +126 -0
  332. lfx/components/flow_controls/flow_tool.py +111 -0
  333. lfx/components/flow_controls/listen.py +29 -0
  334. lfx/components/flow_controls/loop.py +163 -0
  335. lfx/components/flow_controls/notify.py +88 -0
  336. lfx/components/flow_controls/pass_message.py +36 -0
  337. lfx/components/flow_controls/run_flow.py +108 -0
  338. lfx/components/flow_controls/sub_flow.py +115 -0
  339. lfx/components/git/__init__.py +4 -0
  340. lfx/components/git/git.py +262 -0
  341. lfx/components/git/gitextractor.py +196 -0
  342. lfx/components/glean/__init__.py +3 -0
  343. lfx/components/glean/glean_search_api.py +173 -0
  344. lfx/components/google/__init__.py +17 -0
  345. lfx/components/google/gmail.py +193 -0
  346. lfx/components/google/google_bq_sql_executor.py +157 -0
  347. lfx/components/google/google_drive.py +92 -0
  348. lfx/components/google/google_drive_search.py +152 -0
  349. lfx/components/google/google_generative_ai.py +144 -0
  350. lfx/components/google/google_generative_ai_embeddings.py +141 -0
  351. lfx/components/google/google_oauth_token.py +89 -0
  352. lfx/components/google/google_search_api_core.py +68 -0
  353. lfx/components/google/google_serper_api_core.py +74 -0
  354. lfx/components/groq/__init__.py +34 -0
  355. lfx/components/groq/groq.py +143 -0
  356. lfx/components/helpers/__init__.py +154 -0
  357. lfx/components/homeassistant/__init__.py +7 -0
  358. lfx/components/homeassistant/home_assistant_control.py +152 -0
  359. lfx/components/homeassistant/list_home_assistant_states.py +137 -0
  360. lfx/components/huggingface/__init__.py +37 -0
  361. lfx/components/huggingface/huggingface.py +199 -0
  362. lfx/components/huggingface/huggingface_inference_api.py +106 -0
  363. lfx/components/ibm/__init__.py +34 -0
  364. lfx/components/ibm/watsonx.py +207 -0
  365. lfx/components/ibm/watsonx_embeddings.py +135 -0
  366. lfx/components/icosacomputing/__init__.py +5 -0
  367. lfx/components/icosacomputing/combinatorial_reasoner.py +84 -0
  368. lfx/components/input_output/__init__.py +40 -0
  369. lfx/components/input_output/chat.py +109 -0
  370. lfx/components/input_output/chat_output.py +184 -0
  371. lfx/components/input_output/text.py +27 -0
  372. lfx/components/input_output/text_output.py +29 -0
  373. lfx/components/input_output/webhook.py +56 -0
  374. lfx/components/jigsawstack/__init__.py +23 -0
  375. lfx/components/jigsawstack/ai_scrape.py +126 -0
  376. lfx/components/jigsawstack/ai_web_search.py +136 -0
  377. lfx/components/jigsawstack/file_read.py +115 -0
  378. lfx/components/jigsawstack/file_upload.py +94 -0
  379. lfx/components/jigsawstack/image_generation.py +205 -0
  380. lfx/components/jigsawstack/nsfw.py +60 -0
  381. lfx/components/jigsawstack/object_detection.py +124 -0
  382. lfx/components/jigsawstack/sentiment.py +112 -0
  383. lfx/components/jigsawstack/text_to_sql.py +90 -0
  384. lfx/components/jigsawstack/text_translate.py +77 -0
  385. lfx/components/jigsawstack/vocr.py +107 -0
  386. lfx/components/knowledge_bases/__init__.py +89 -0
  387. lfx/components/langchain_utilities/__init__.py +109 -0
  388. lfx/components/langchain_utilities/character.py +53 -0
  389. lfx/components/langchain_utilities/conversation.py +59 -0
  390. lfx/components/langchain_utilities/csv_agent.py +175 -0
  391. lfx/components/langchain_utilities/fake_embeddings.py +26 -0
  392. lfx/components/langchain_utilities/html_link_extractor.py +35 -0
  393. lfx/components/langchain_utilities/json_agent.py +100 -0
  394. lfx/components/langchain_utilities/langchain_hub.py +126 -0
  395. lfx/components/langchain_utilities/language_recursive.py +49 -0
  396. lfx/components/langchain_utilities/language_semantic.py +138 -0
  397. lfx/components/langchain_utilities/llm_checker.py +39 -0
  398. lfx/components/langchain_utilities/llm_math.py +42 -0
  399. lfx/components/langchain_utilities/natural_language.py +61 -0
  400. lfx/components/langchain_utilities/openai_tools.py +53 -0
  401. lfx/components/langchain_utilities/openapi.py +48 -0
  402. lfx/components/langchain_utilities/recursive_character.py +60 -0
  403. lfx/components/langchain_utilities/retrieval_qa.py +83 -0
  404. lfx/components/langchain_utilities/runnable_executor.py +137 -0
  405. lfx/components/langchain_utilities/self_query.py +80 -0
  406. lfx/components/langchain_utilities/spider.py +142 -0
  407. lfx/components/langchain_utilities/sql.py +40 -0
  408. lfx/components/langchain_utilities/sql_database.py +35 -0
  409. lfx/components/langchain_utilities/sql_generator.py +78 -0
  410. lfx/components/langchain_utilities/tool_calling.py +59 -0
  411. lfx/components/langchain_utilities/vector_store_info.py +49 -0
  412. lfx/components/langchain_utilities/vector_store_router.py +33 -0
  413. lfx/components/langchain_utilities/xml_agent.py +71 -0
  414. lfx/components/langwatch/__init__.py +3 -0
  415. lfx/components/langwatch/langwatch.py +278 -0
  416. lfx/components/link_extractors/__init__.py +3 -0
  417. lfx/components/llm_operations/__init__.py +46 -0
  418. lfx/components/llm_operations/batch_run.py +205 -0
  419. lfx/components/llm_operations/lambda_filter.py +218 -0
  420. lfx/components/llm_operations/llm_conditional_router.py +421 -0
  421. lfx/components/llm_operations/llm_selector.py +499 -0
  422. lfx/components/llm_operations/structured_output.py +244 -0
  423. lfx/components/lmstudio/__init__.py +34 -0
  424. lfx/components/lmstudio/lmstudioembeddings.py +89 -0
  425. lfx/components/lmstudio/lmstudiomodel.py +133 -0
  426. lfx/components/logic/__init__.py +181 -0
  427. lfx/components/maritalk/__init__.py +32 -0
  428. lfx/components/maritalk/maritalk.py +52 -0
  429. lfx/components/mem0/__init__.py +3 -0
  430. lfx/components/mem0/mem0_chat_memory.py +147 -0
  431. lfx/components/milvus/__init__.py +34 -0
  432. lfx/components/milvus/milvus.py +115 -0
  433. lfx/components/mistral/__init__.py +37 -0
  434. lfx/components/mistral/mistral.py +114 -0
  435. lfx/components/mistral/mistral_embeddings.py +58 -0
  436. lfx/components/models/__init__.py +89 -0
  437. lfx/components/models_and_agents/__init__.py +49 -0
  438. lfx/components/models_and_agents/agent.py +644 -0
  439. lfx/components/models_and_agents/embedding_model.py +423 -0
  440. lfx/components/models_and_agents/language_model.py +398 -0
  441. lfx/components/models_and_agents/mcp_component.py +594 -0
  442. lfx/components/models_and_agents/memory.py +268 -0
  443. lfx/components/models_and_agents/prompt.py +67 -0
  444. lfx/components/mongodb/__init__.py +34 -0
  445. lfx/components/mongodb/mongodb_atlas.py +213 -0
  446. lfx/components/needle/__init__.py +3 -0
  447. lfx/components/needle/needle.py +104 -0
  448. lfx/components/notdiamond/__init__.py +34 -0
  449. lfx/components/notdiamond/notdiamond.py +228 -0
  450. lfx/components/novita/__init__.py +32 -0
  451. lfx/components/novita/novita.py +130 -0
  452. lfx/components/nvidia/__init__.py +57 -0
  453. lfx/components/nvidia/nvidia.py +151 -0
  454. lfx/components/nvidia/nvidia_embedding.py +77 -0
  455. lfx/components/nvidia/nvidia_ingest.py +317 -0
  456. lfx/components/nvidia/nvidia_rerank.py +63 -0
  457. lfx/components/nvidia/system_assist.py +65 -0
  458. lfx/components/olivya/__init__.py +3 -0
  459. lfx/components/olivya/olivya.py +116 -0
  460. lfx/components/ollama/__init__.py +37 -0
  461. lfx/components/ollama/ollama.py +548 -0
  462. lfx/components/ollama/ollama_embeddings.py +103 -0
  463. lfx/components/openai/__init__.py +37 -0
  464. lfx/components/openai/openai.py +100 -0
  465. lfx/components/openai/openai_chat_model.py +176 -0
  466. lfx/components/openrouter/__init__.py +32 -0
  467. lfx/components/openrouter/openrouter.py +104 -0
  468. lfx/components/output_parsers/__init__.py +3 -0
  469. lfx/components/perplexity/__init__.py +34 -0
  470. lfx/components/perplexity/perplexity.py +75 -0
  471. lfx/components/pgvector/__init__.py +34 -0
  472. lfx/components/pgvector/pgvector.py +72 -0
  473. lfx/components/pinecone/__init__.py +34 -0
  474. lfx/components/pinecone/pinecone.py +134 -0
  475. lfx/components/processing/__init__.py +72 -0
  476. lfx/components/processing/alter_metadata.py +109 -0
  477. lfx/components/processing/combine_text.py +40 -0
  478. lfx/components/processing/converter.py +248 -0
  479. lfx/components/processing/create_data.py +111 -0
  480. lfx/components/processing/create_list.py +40 -0
  481. lfx/components/processing/data_operations.py +528 -0
  482. lfx/components/processing/data_to_dataframe.py +71 -0
  483. lfx/components/processing/dataframe_operations.py +313 -0
  484. lfx/components/processing/dataframe_to_toolset.py +259 -0
  485. lfx/components/processing/dynamic_create_data.py +357 -0
  486. lfx/components/processing/extract_key.py +54 -0
  487. lfx/components/processing/filter_data.py +43 -0
  488. lfx/components/processing/filter_data_values.py +89 -0
  489. lfx/components/processing/json_cleaner.py +104 -0
  490. lfx/components/processing/merge_data.py +91 -0
  491. lfx/components/processing/message_to_data.py +37 -0
  492. lfx/components/processing/output_parser.py +46 -0
  493. lfx/components/processing/parse_data.py +71 -0
  494. lfx/components/processing/parse_dataframe.py +69 -0
  495. lfx/components/processing/parse_json_data.py +91 -0
  496. lfx/components/processing/parser.py +148 -0
  497. lfx/components/processing/regex.py +83 -0
  498. lfx/components/processing/select_data.py +49 -0
  499. lfx/components/processing/split_text.py +141 -0
  500. lfx/components/processing/store_message.py +91 -0
  501. lfx/components/processing/update_data.py +161 -0
  502. lfx/components/prototypes/__init__.py +35 -0
  503. lfx/components/prototypes/python_function.py +73 -0
  504. lfx/components/qdrant/__init__.py +34 -0
  505. lfx/components/qdrant/qdrant.py +109 -0
  506. lfx/components/redis/__init__.py +37 -0
  507. lfx/components/redis/redis.py +89 -0
  508. lfx/components/redis/redis_chat.py +43 -0
  509. lfx/components/sambanova/__init__.py +32 -0
  510. lfx/components/sambanova/sambanova.py +84 -0
  511. lfx/components/scrapegraph/__init__.py +40 -0
  512. lfx/components/scrapegraph/scrapegraph_markdownify_api.py +64 -0
  513. lfx/components/scrapegraph/scrapegraph_search_api.py +64 -0
  514. lfx/components/scrapegraph/scrapegraph_smart_scraper_api.py +71 -0
  515. lfx/components/searchapi/__init__.py +34 -0
  516. lfx/components/searchapi/search.py +79 -0
  517. lfx/components/serpapi/__init__.py +3 -0
  518. lfx/components/serpapi/serp.py +115 -0
  519. lfx/components/supabase/__init__.py +34 -0
  520. lfx/components/supabase/supabase.py +76 -0
  521. lfx/components/tavily/__init__.py +4 -0
  522. lfx/components/tavily/tavily_extract.py +117 -0
  523. lfx/components/tavily/tavily_search.py +212 -0
  524. lfx/components/textsplitters/__init__.py +3 -0
  525. lfx/components/toolkits/__init__.py +3 -0
  526. lfx/components/tools/__init__.py +66 -0
  527. lfx/components/tools/calculator.py +109 -0
  528. lfx/components/tools/google_search_api.py +45 -0
  529. lfx/components/tools/google_serper_api.py +115 -0
  530. lfx/components/tools/python_code_structured_tool.py +328 -0
  531. lfx/components/tools/python_repl.py +98 -0
  532. lfx/components/tools/search_api.py +88 -0
  533. lfx/components/tools/searxng.py +145 -0
  534. lfx/components/tools/serp_api.py +120 -0
  535. lfx/components/tools/tavily_search_tool.py +345 -0
  536. lfx/components/tools/wikidata_api.py +103 -0
  537. lfx/components/tools/wikipedia_api.py +50 -0
  538. lfx/components/tools/yahoo_finance.py +130 -0
  539. lfx/components/twelvelabs/__init__.py +52 -0
  540. lfx/components/twelvelabs/convert_astra_results.py +84 -0
  541. lfx/components/twelvelabs/pegasus_index.py +311 -0
  542. lfx/components/twelvelabs/split_video.py +301 -0
  543. lfx/components/twelvelabs/text_embeddings.py +57 -0
  544. lfx/components/twelvelabs/twelvelabs_pegasus.py +408 -0
  545. lfx/components/twelvelabs/video_embeddings.py +100 -0
  546. lfx/components/twelvelabs/video_file.py +191 -0
  547. lfx/components/unstructured/__init__.py +3 -0
  548. lfx/components/unstructured/unstructured.py +121 -0
  549. lfx/components/upstash/__init__.py +34 -0
  550. lfx/components/upstash/upstash.py +124 -0
  551. lfx/components/utilities/__init__.py +43 -0
  552. lfx/components/utilities/calculator_core.py +89 -0
  553. lfx/components/utilities/current_date.py +42 -0
  554. lfx/components/utilities/id_generator.py +42 -0
  555. lfx/components/utilities/python_repl_core.py +98 -0
  556. lfx/components/vectara/__init__.py +37 -0
  557. lfx/components/vectara/vectara.py +97 -0
  558. lfx/components/vectara/vectara_rag.py +164 -0
  559. lfx/components/vectorstores/__init__.py +34 -0
  560. lfx/components/vectorstores/local_db.py +270 -0
  561. lfx/components/vertexai/__init__.py +37 -0
  562. lfx/components/vertexai/vertexai.py +71 -0
  563. lfx/components/vertexai/vertexai_embeddings.py +67 -0
  564. lfx/components/vlmrun/__init__.py +34 -0
  565. lfx/components/vlmrun/vlmrun_transcription.py +224 -0
  566. lfx/components/weaviate/__init__.py +34 -0
  567. lfx/components/weaviate/weaviate.py +89 -0
  568. lfx/components/wikipedia/__init__.py +4 -0
  569. lfx/components/wikipedia/wikidata.py +86 -0
  570. lfx/components/wikipedia/wikipedia.py +53 -0
  571. lfx/components/wolframalpha/__init__.py +3 -0
  572. lfx/components/wolframalpha/wolfram_alpha_api.py +54 -0
  573. lfx/components/xai/__init__.py +32 -0
  574. lfx/components/xai/xai.py +167 -0
  575. lfx/components/yahoosearch/__init__.py +3 -0
  576. lfx/components/yahoosearch/yahoo.py +137 -0
  577. lfx/components/youtube/__init__.py +52 -0
  578. lfx/components/youtube/channel.py +227 -0
  579. lfx/components/youtube/comments.py +231 -0
  580. lfx/components/youtube/playlist.py +33 -0
  581. lfx/components/youtube/search.py +120 -0
  582. lfx/components/youtube/trending.py +285 -0
  583. lfx/components/youtube/video_details.py +263 -0
  584. lfx/components/youtube/youtube_transcripts.py +206 -0
  585. lfx/components/zep/__init__.py +3 -0
  586. lfx/components/zep/zep.py +45 -0
  587. lfx/constants.py +6 -0
  588. lfx/custom/__init__.py +7 -0
  589. lfx/custom/attributes.py +87 -0
  590. lfx/custom/code_parser/__init__.py +3 -0
  591. lfx/custom/code_parser/code_parser.py +361 -0
  592. lfx/custom/custom_component/__init__.py +0 -0
  593. lfx/custom/custom_component/base_component.py +128 -0
  594. lfx/custom/custom_component/component.py +1890 -0
  595. lfx/custom/custom_component/component_with_cache.py +8 -0
  596. lfx/custom/custom_component/custom_component.py +650 -0
  597. lfx/custom/dependency_analyzer.py +165 -0
  598. lfx/custom/directory_reader/__init__.py +3 -0
  599. lfx/custom/directory_reader/directory_reader.py +359 -0
  600. lfx/custom/directory_reader/utils.py +171 -0
  601. lfx/custom/eval.py +12 -0
  602. lfx/custom/schema.py +32 -0
  603. lfx/custom/tree_visitor.py +21 -0
  604. lfx/custom/utils.py +877 -0
  605. lfx/custom/validate.py +523 -0
  606. lfx/events/__init__.py +1 -0
  607. lfx/events/event_manager.py +110 -0
  608. lfx/exceptions/__init__.py +0 -0
  609. lfx/exceptions/component.py +15 -0
  610. lfx/field_typing/__init__.py +91 -0
  611. lfx/field_typing/constants.py +216 -0
  612. lfx/field_typing/range_spec.py +35 -0
  613. lfx/graph/__init__.py +6 -0
  614. lfx/graph/edge/__init__.py +0 -0
  615. lfx/graph/edge/base.py +300 -0
  616. lfx/graph/edge/schema.py +119 -0
  617. lfx/graph/edge/utils.py +0 -0
  618. lfx/graph/graph/__init__.py +0 -0
  619. lfx/graph/graph/ascii.py +202 -0
  620. lfx/graph/graph/base.py +2298 -0
  621. lfx/graph/graph/constants.py +63 -0
  622. lfx/graph/graph/runnable_vertices_manager.py +133 -0
  623. lfx/graph/graph/schema.py +53 -0
  624. lfx/graph/graph/state_model.py +66 -0
  625. lfx/graph/graph/utils.py +1024 -0
  626. lfx/graph/schema.py +75 -0
  627. lfx/graph/state/__init__.py +0 -0
  628. lfx/graph/state/model.py +250 -0
  629. lfx/graph/utils.py +206 -0
  630. lfx/graph/vertex/__init__.py +0 -0
  631. lfx/graph/vertex/base.py +826 -0
  632. lfx/graph/vertex/constants.py +0 -0
  633. lfx/graph/vertex/exceptions.py +4 -0
  634. lfx/graph/vertex/param_handler.py +316 -0
  635. lfx/graph/vertex/schema.py +26 -0
  636. lfx/graph/vertex/utils.py +19 -0
  637. lfx/graph/vertex/vertex_types.py +489 -0
  638. lfx/helpers/__init__.py +141 -0
  639. lfx/helpers/base_model.py +71 -0
  640. lfx/helpers/custom.py +13 -0
  641. lfx/helpers/data.py +167 -0
  642. lfx/helpers/flow.py +308 -0
  643. lfx/inputs/__init__.py +68 -0
  644. lfx/inputs/constants.py +2 -0
  645. lfx/inputs/input_mixin.py +352 -0
  646. lfx/inputs/inputs.py +718 -0
  647. lfx/inputs/validators.py +19 -0
  648. lfx/interface/__init__.py +6 -0
  649. lfx/interface/components.py +897 -0
  650. lfx/interface/importing/__init__.py +5 -0
  651. lfx/interface/importing/utils.py +39 -0
  652. lfx/interface/initialize/__init__.py +3 -0
  653. lfx/interface/initialize/loading.py +317 -0
  654. lfx/interface/listing.py +26 -0
  655. lfx/interface/run.py +16 -0
  656. lfx/interface/utils.py +111 -0
  657. lfx/io/__init__.py +63 -0
  658. lfx/io/schema.py +295 -0
  659. lfx/load/__init__.py +8 -0
  660. lfx/load/load.py +256 -0
  661. lfx/load/utils.py +99 -0
  662. lfx/log/__init__.py +5 -0
  663. lfx/log/logger.py +411 -0
  664. lfx/logging/__init__.py +11 -0
  665. lfx/logging/logger.py +24 -0
  666. lfx/memory/__init__.py +70 -0
  667. lfx/memory/stubs.py +302 -0
  668. lfx/processing/__init__.py +1 -0
  669. lfx/processing/process.py +238 -0
  670. lfx/processing/utils.py +25 -0
  671. lfx/py.typed +0 -0
  672. lfx/schema/__init__.py +66 -0
  673. lfx/schema/artifact.py +83 -0
  674. lfx/schema/content_block.py +62 -0
  675. lfx/schema/content_types.py +91 -0
  676. lfx/schema/cross_module.py +80 -0
  677. lfx/schema/data.py +309 -0
  678. lfx/schema/dataframe.py +210 -0
  679. lfx/schema/dotdict.py +74 -0
  680. lfx/schema/encoders.py +13 -0
  681. lfx/schema/graph.py +47 -0
  682. lfx/schema/image.py +184 -0
  683. lfx/schema/json_schema.py +186 -0
  684. lfx/schema/log.py +62 -0
  685. lfx/schema/message.py +493 -0
  686. lfx/schema/openai_responses_schemas.py +74 -0
  687. lfx/schema/properties.py +41 -0
  688. lfx/schema/schema.py +180 -0
  689. lfx/schema/serialize.py +13 -0
  690. lfx/schema/table.py +142 -0
  691. lfx/schema/validators.py +114 -0
  692. lfx/serialization/__init__.py +5 -0
  693. lfx/serialization/constants.py +2 -0
  694. lfx/serialization/serialization.py +314 -0
  695. lfx/services/__init__.py +26 -0
  696. lfx/services/base.py +28 -0
  697. lfx/services/cache/__init__.py +6 -0
  698. lfx/services/cache/base.py +183 -0
  699. lfx/services/cache/service.py +166 -0
  700. lfx/services/cache/utils.py +169 -0
  701. lfx/services/chat/__init__.py +1 -0
  702. lfx/services/chat/config.py +2 -0
  703. lfx/services/chat/schema.py +10 -0
  704. lfx/services/database/__init__.py +5 -0
  705. lfx/services/database/service.py +25 -0
  706. lfx/services/deps.py +194 -0
  707. lfx/services/factory.py +19 -0
  708. lfx/services/initialize.py +19 -0
  709. lfx/services/interfaces.py +103 -0
  710. lfx/services/manager.py +185 -0
  711. lfx/services/mcp_composer/__init__.py +6 -0
  712. lfx/services/mcp_composer/factory.py +16 -0
  713. lfx/services/mcp_composer/service.py +1441 -0
  714. lfx/services/schema.py +21 -0
  715. lfx/services/session.py +87 -0
  716. lfx/services/settings/__init__.py +3 -0
  717. lfx/services/settings/auth.py +133 -0
  718. lfx/services/settings/base.py +668 -0
  719. lfx/services/settings/constants.py +43 -0
  720. lfx/services/settings/factory.py +23 -0
  721. lfx/services/settings/feature_flags.py +11 -0
  722. lfx/services/settings/service.py +35 -0
  723. lfx/services/settings/utils.py +40 -0
  724. lfx/services/shared_component_cache/__init__.py +1 -0
  725. lfx/services/shared_component_cache/factory.py +30 -0
  726. lfx/services/shared_component_cache/service.py +9 -0
  727. lfx/services/storage/__init__.py +5 -0
  728. lfx/services/storage/local.py +185 -0
  729. lfx/services/storage/service.py +177 -0
  730. lfx/services/tracing/__init__.py +1 -0
  731. lfx/services/tracing/service.py +21 -0
  732. lfx/settings.py +6 -0
  733. lfx/template/__init__.py +6 -0
  734. lfx/template/field/__init__.py +0 -0
  735. lfx/template/field/base.py +260 -0
  736. lfx/template/field/prompt.py +15 -0
  737. lfx/template/frontend_node/__init__.py +6 -0
  738. lfx/template/frontend_node/base.py +214 -0
  739. lfx/template/frontend_node/constants.py +65 -0
  740. lfx/template/frontend_node/custom_components.py +79 -0
  741. lfx/template/template/__init__.py +0 -0
  742. lfx/template/template/base.py +100 -0
  743. lfx/template/utils.py +217 -0
  744. lfx/type_extraction/__init__.py +19 -0
  745. lfx/type_extraction/type_extraction.py +75 -0
  746. lfx/type_extraction.py +80 -0
  747. lfx/utils/__init__.py +1 -0
  748. lfx/utils/async_helpers.py +42 -0
  749. lfx/utils/component_utils.py +154 -0
  750. lfx/utils/concurrency.py +60 -0
  751. lfx/utils/connection_string_parser.py +11 -0
  752. lfx/utils/constants.py +233 -0
  753. lfx/utils/data_structure.py +212 -0
  754. lfx/utils/exceptions.py +22 -0
  755. lfx/utils/helpers.py +34 -0
  756. lfx/utils/image.py +79 -0
  757. lfx/utils/langflow_utils.py +52 -0
  758. lfx/utils/lazy_load.py +15 -0
  759. lfx/utils/request_utils.py +18 -0
  760. lfx/utils/schemas.py +139 -0
  761. lfx/utils/ssrf_protection.py +384 -0
  762. lfx/utils/util.py +626 -0
  763. lfx/utils/util_strings.py +56 -0
  764. lfx/utils/validate_cloud.py +26 -0
  765. lfx/utils/version.py +24 -0
  766. lfx_nightly-0.2.0.dev25.dist-info/METADATA +312 -0
  767. lfx_nightly-0.2.0.dev25.dist-info/RECORD +769 -0
  768. lfx_nightly-0.2.0.dev25.dist-info/WHEEL +4 -0
  769. lfx_nightly-0.2.0.dev25.dist-info/entry_points.txt +2 -0
@@ -0,0 +1,112 @@
1
+ from lfx.custom.custom_component.component import Component
2
+ from lfx.io import MessageTextInput, Output, SecretStrInput
3
+ from lfx.schema.data import Data
4
+ from lfx.schema.message import Message
5
+
6
+
7
+ class JigsawStackSentimentComponent(Component):
8
+ display_name = "Sentiment Analysis"
9
+ description = "Analyze sentiment of text using JigsawStack AI"
10
+ documentation = "https://jigsawstack.com/docs/api-reference/ai/sentiment"
11
+ icon = "JigsawStack"
12
+ name = "JigsawStackSentiment"
13
+
14
+ inputs = [
15
+ SecretStrInput(
16
+ name="api_key",
17
+ display_name="JigsawStack API Key",
18
+ info="Your JigsawStack API key for authentication",
19
+ required=True,
20
+ ),
21
+ MessageTextInput(
22
+ name="text",
23
+ display_name="Text",
24
+ info="Text to analyze for sentiment",
25
+ required=True,
26
+ tool_mode=True,
27
+ ),
28
+ ]
29
+
30
+ outputs = [
31
+ Output(display_name="Sentiment Data", name="sentiment_data", method="analyze_sentiment"),
32
+ Output(display_name="Sentiment Text", name="sentiment_text", method="get_sentiment_text"),
33
+ ]
34
+
35
+ def analyze_sentiment(self) -> Data:
36
+ try:
37
+ from jigsawstack import JigsawStack, JigsawStackError
38
+ except ImportError as e:
39
+ jigsawstack_import_error = (
40
+ "JigsawStack package not found. Please install it using: pip install jigsawstack>=0.2.7"
41
+ )
42
+ raise ImportError(jigsawstack_import_error) from e
43
+
44
+ try:
45
+ client = JigsawStack(api_key=self.api_key)
46
+ response = client.sentiment({"text": self.text})
47
+
48
+ api_error_msg = "JigsawStack API returned unsuccessful response"
49
+ if not response.get("success", False):
50
+ raise ValueError(api_error_msg)
51
+
52
+ sentiment_data = response.get("sentiment", {})
53
+
54
+ result_data = {
55
+ "text_analyzed": self.text,
56
+ "sentiment": sentiment_data.get("sentiment", "Unknown"),
57
+ "emotion": sentiment_data.get("emotion", "Unknown"),
58
+ "score": sentiment_data.get("score", 0.0),
59
+ "sentences": response.get("sentences", []),
60
+ "success": True,
61
+ }
62
+
63
+ self.status = (
64
+ f"Sentiment: {sentiment_data.get('sentiment', 'Unknown')} | "
65
+ f"Emotion: {sentiment_data.get('emotion', 'Unknown')} | "
66
+ f"Score: {sentiment_data.get('score', 0.0):.3f}"
67
+ )
68
+
69
+ return Data(data=result_data)
70
+
71
+ except JigsawStackError as e:
72
+ error_data = {"error": str(e), "text_analyzed": self.text, "success": False}
73
+ self.status = f"Error: {e!s}"
74
+ return Data(data=error_data)
75
+
76
+ def get_sentiment_text(self) -> Message:
77
+ try:
78
+ from jigsawstack import JigsawStack, JigsawStackError
79
+ except ImportError:
80
+ return Message(text="Error: JigsawStack package not found. Please install it with: pip install jigsawstack")
81
+
82
+ try:
83
+ client = JigsawStack(api_key=self.api_key)
84
+ response = client.sentiment({"text": self.text})
85
+
86
+ sentiment_data = response.get("sentiment", {})
87
+ sentences = response.get("sentences", [])
88
+
89
+ # Format the output
90
+ formatted_output = f"""Sentiment Analysis Results:
91
+
92
+ Text: {self.text}
93
+
94
+ Overall Sentiment: {sentiment_data.get("sentiment", "Unknown")}
95
+ Emotion: {sentiment_data.get("emotion", "Unknown")}
96
+ Score: {sentiment_data.get("score", 0.0):.3f}
97
+
98
+ Sentence-by-sentence Analysis:
99
+ """
100
+
101
+ for i, sentence in enumerate(sentences, 1):
102
+ formatted_output += (
103
+ f"{i}. {sentence.get('text', '')}\n"
104
+ f" Sentiment: {sentence.get('sentiment', 'Unknown')} | "
105
+ f"Emotion: {sentence.get('emotion', 'Unknown')} | "
106
+ f"Score: {sentence.get('score', 0.0):.3f}\n"
107
+ )
108
+
109
+ return Message(text=formatted_output)
110
+
111
+ except JigsawStackError as e:
112
+ return Message(text=f"Error analyzing sentiment: {e!s}")
@@ -0,0 +1,90 @@
1
+ from lfx.custom.custom_component.component import Component
2
+ from lfx.io import MessageTextInput, Output, QueryInput, SecretStrInput, StrInput
3
+ from lfx.schema.data import Data
4
+
5
+
6
+ class JigsawStackTextToSQLComponent(Component):
7
+ display_name = "Text to SQL"
8
+ description = "Convert natural language to SQL queries using JigsawStack AI"
9
+ documentation = "https://jigsawstack.com/docs/api-reference/ai/text-to-sql"
10
+ icon = "JigsawStack"
11
+ name = "JigsawStackTextToSQL"
12
+
13
+ inputs = [
14
+ SecretStrInput(
15
+ name="api_key",
16
+ display_name="JigsawStack API Key",
17
+ info="Your JigsawStack API key for authentication",
18
+ required=True,
19
+ ),
20
+ QueryInput(
21
+ name="prompt",
22
+ display_name="Prompt",
23
+ info="Natural language description of the SQL query you want to generate",
24
+ required=True,
25
+ tool_mode=True,
26
+ ),
27
+ MessageTextInput(
28
+ name="sql_schema",
29
+ display_name="SQL Schema",
30
+ info=(
31
+ "The database schema information. Can be a CREATE TABLE statement or schema description. "
32
+ "Specifying this parameter improves SQL generation accuracy by applying "
33
+ "database-specific syntax and optimizations."
34
+ ),
35
+ required=False,
36
+ tool_mode=True,
37
+ ),
38
+ StrInput(
39
+ name="file_store_key",
40
+ display_name="File Store Key",
41
+ info=(
42
+ "The key used to store the database schema on Jigsawstack file Storage. "
43
+ "Not required if sql_schema is specified."
44
+ ),
45
+ required=False,
46
+ tool_mode=True,
47
+ ),
48
+ ]
49
+
50
+ outputs = [
51
+ Output(display_name="SQL Query", name="sql_query", method="generate_sql"),
52
+ ]
53
+
54
+ def generate_sql(self) -> Data:
55
+ try:
56
+ from jigsawstack import JigsawStack, JigsawStackError
57
+ except ImportError as e:
58
+ jigsawstack_import_error = (
59
+ "JigsawStack package not found. Please install it using: pip install jigsawstack>=0.2.7"
60
+ )
61
+ raise ImportError(jigsawstack_import_error) from e
62
+
63
+ try:
64
+ schema_error = "Either 'sql_schema' or 'file_store_key' must be provided"
65
+ if not self.sql_schema and not self.file_store_key:
66
+ raise ValueError(schema_error)
67
+
68
+ # build request object
69
+ params = {"prompt": self.prompt}
70
+
71
+ if self.sql_schema:
72
+ params["sql_schema"] = self.sql_schema
73
+ if self.file_store_key:
74
+ params["file_store_key"] = self.file_store_key
75
+
76
+ client = JigsawStack(api_key=self.api_key)
77
+ response = client.text_to_sql(params)
78
+
79
+ api_error_msg = "JigsawStack API returned unsuccessful response"
80
+ if not response.get("success", False):
81
+ raise ValueError(api_error_msg)
82
+
83
+ return Data(data=response)
84
+
85
+ except ValueError:
86
+ raise
87
+ except JigsawStackError as e:
88
+ error_data = {"error": str(e), "success": False}
89
+ self.status = f"Error: {e!s}"
90
+ return Data(data=error_data)
@@ -0,0 +1,77 @@
1
+ from lfx.custom.custom_component.component import Component
2
+ from lfx.io import MessageTextInput, Output, SecretStrInput, StrInput
3
+ from lfx.schema.data import Data
4
+
5
+
6
+ class JigsawStackTextTranslateComponent(Component):
7
+ display_name = "Text Translate"
8
+ description = "Translate text from one language to another with support for multiple text formats."
9
+ documentation = "https://jigsawstack.com/docs/api-reference/ai/translate"
10
+ icon = "JigsawStack"
11
+ name = "JigsawStackTextTranslate"
12
+ inputs = [
13
+ SecretStrInput(
14
+ name="api_key",
15
+ display_name="JigsawStack API Key",
16
+ info="Your JigsawStack API key for authentication",
17
+ required=True,
18
+ ),
19
+ StrInput(
20
+ name="target_language",
21
+ display_name="Target Language",
22
+ info="The language code of the target language to translate to. \
23
+ Language code is identified by a unique ISO 639-1 two-letter code",
24
+ required=True,
25
+ tool_mode=True,
26
+ ),
27
+ MessageTextInput(
28
+ name="text",
29
+ display_name="Text",
30
+ info="The text to translate. This can be a single string or a list of strings. \
31
+ If a list is provided, each string will be translated separately.",
32
+ required=True,
33
+ is_list=True,
34
+ tool_mode=True,
35
+ ),
36
+ ]
37
+
38
+ outputs = [
39
+ Output(display_name="Translation Results", name="translation_results", method="translation"),
40
+ ]
41
+
42
+ def translation(self) -> Data:
43
+ try:
44
+ from jigsawstack import JigsawStack, JigsawStackError
45
+ except ImportError as e:
46
+ jigsawstack_import_error = (
47
+ "JigsawStack package not found. Please install it using: pip install jigsawstack>=0.2.7"
48
+ )
49
+ raise ImportError(jigsawstack_import_error) from e
50
+
51
+ try:
52
+ client = JigsawStack(api_key=self.api_key)
53
+
54
+ # build request object
55
+ params = {}
56
+ if self.target_language:
57
+ params["target_language"] = self.target_language
58
+
59
+ if self.text:
60
+ if isinstance(self.text, list):
61
+ params["text"] = self.text
62
+ else:
63
+ params["text"] = [self.text]
64
+
65
+ # Call web scraping
66
+ response = client.translate.text(params)
67
+
68
+ if not response.get("success", False):
69
+ failed_response_error = "JigsawStack API returned unsuccessful response"
70
+ raise ValueError(failed_response_error)
71
+
72
+ return Data(data=response)
73
+
74
+ except JigsawStackError as e:
75
+ error_data = {"error": str(e), "success": False}
76
+ self.status = f"Error: {e!s}"
77
+ return Data(data=error_data)
@@ -0,0 +1,107 @@
1
+ from lfx.custom.custom_component.component import Component
2
+ from lfx.io import IntInput, MessageTextInput, Output, SecretStrInput, StrInput
3
+ from lfx.schema.data import Data
4
+
5
+
6
+ class JigsawStackVOCRComponent(Component):
7
+ display_name = "VOCR"
8
+ description = "Extract data from any document type in a consistent structure with fine-tuned \
9
+ vLLMs for the highest accuracy"
10
+ documentation = "https://jigsawstack.com/docs/api-reference/ai/vocr"
11
+ icon = "JigsawStack"
12
+ name = "JigsawStackVOCR"
13
+
14
+ inputs = [
15
+ SecretStrInput(
16
+ name="api_key",
17
+ display_name="JigsawStack API Key",
18
+ info="Your JigsawStack API key for authentication",
19
+ required=True,
20
+ ),
21
+ MessageTextInput(
22
+ name="prompts",
23
+ display_name="Prompts",
24
+ info="The prompts used to describe the image. Default prompt is Describe the image in detail. \
25
+ You can pass a list of comma-separated prompts to extract different information from the image.",
26
+ required=False,
27
+ tool_mode=True,
28
+ ),
29
+ StrInput(
30
+ name="url",
31
+ display_name="URL",
32
+ info="The image or document url. Not required if file_store_key is specified.",
33
+ required=False,
34
+ tool_mode=True,
35
+ ),
36
+ StrInput(
37
+ name="file_store_key",
38
+ display_name="File Store Key",
39
+ info="The key used to store the image on Jigsawstack File Storage. Not required if url is specified.",
40
+ required=False,
41
+ tool_mode=True,
42
+ ),
43
+ IntInput(
44
+ name="page_range_start",
45
+ display_name="Page Range",
46
+ info="Page range start limit for the document. If not specified, all pages will be processed.",
47
+ required=False,
48
+ ),
49
+ IntInput(
50
+ name="page_range_end",
51
+ display_name="Page Range End",
52
+ info="Page range end limit for the document. If not specified, all pages will be processed.",
53
+ required=False,
54
+ ),
55
+ ]
56
+
57
+ outputs = [
58
+ Output(display_name="VOCR results", name="vocr_results", method="vocr"),
59
+ ]
60
+
61
+ def vocr(self) -> Data:
62
+ try:
63
+ from jigsawstack import JigsawStack, JigsawStackError
64
+ except ImportError as e:
65
+ jigsawstack_import_error = (
66
+ "JigsawStack package not found. Please install it using: pip install jigsawstack>=0.2.7"
67
+ )
68
+ raise ImportError(jigsawstack_import_error) from e
69
+
70
+ try:
71
+ client = JigsawStack(api_key=self.api_key)
72
+
73
+ # build request object
74
+ params = {}
75
+ if self.prompts:
76
+ if isinstance(self.prompts, list):
77
+ params["prompt"] = self.prompts
78
+ elif isinstance(self.prompts, str):
79
+ if "," in self.prompts:
80
+ # Split by comma and strip whitespace
81
+ params["prompt"] = [p.strip() for p in self.prompts.split(",")]
82
+ else:
83
+ params["prompt"] = [self.prompts.strip()]
84
+ else:
85
+ invalid_prompt_error = "Prompt must be a list of strings or a single string"
86
+ raise ValueError(invalid_prompt_error)
87
+ if self.url:
88
+ params["url"] = self.url
89
+ if self.file_store_key:
90
+ params["file_store_key"] = self.file_store_key
91
+
92
+ if self.page_range_start and self.page_range_end:
93
+ params["page_range"] = [self.page_range_start, self.page_range_end]
94
+
95
+ # Call VOCR
96
+ response = client.vision.vocr(params)
97
+
98
+ if not response.get("success", False):
99
+ failed_response_error = "JigsawStack API returned unsuccessful response"
100
+ raise ValueError(failed_response_error)
101
+
102
+ return Data(data=response)
103
+
104
+ except JigsawStackError as e:
105
+ error_data = {"error": str(e), "success": False}
106
+ self.status = f"Error: {e!s}"
107
+ return Data(data=error_data)
@@ -0,0 +1,89 @@
1
+ """Knowledge bases module - backwards compatibility alias for files_and_knowledge.
2
+
3
+ This module provides backwards compatibility by forwarding all imports
4
+ to files_and_knowledge where the actual knowledge base components are located.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import sys
10
+ from typing import TYPE_CHECKING, Any
11
+
12
+ from lfx.components._importing import import_mod
13
+
14
+ if TYPE_CHECKING:
15
+ from lfx.components.files_and_knowledge.ingestion import KnowledgeIngestionComponent
16
+ from lfx.components.files_and_knowledge.retrieval import KnowledgeRetrievalComponent
17
+
18
+ _dynamic_imports = {
19
+ "KnowledgeIngestionComponent": "ingestion",
20
+ "KnowledgeRetrievalComponent": "retrieval",
21
+ }
22
+
23
+ __all__ = ["KnowledgeIngestionComponent", "KnowledgeRetrievalComponent"]
24
+
25
+ # Register redirected submodules in sys.modules for direct importlib.import_module() calls
26
+ # This allows imports like: import lfx.components.knowledge_bases.ingestion
27
+ _redirected_submodules = {
28
+ "lfx.components.knowledge_bases.ingestion": "lfx.components.files_and_knowledge.ingestion",
29
+ "lfx.components.knowledge_bases.retrieval": "lfx.components.files_and_knowledge.retrieval",
30
+ }
31
+
32
+ for old_path, new_path in _redirected_submodules.items():
33
+ if old_path not in sys.modules:
34
+ # Use a lazy loader that imports the actual module when accessed
35
+ class _RedirectedModule:
36
+ def __init__(self, target_path: str, original_path: str):
37
+ self._target_path = target_path
38
+ self._original_path = original_path
39
+ self._module = None
40
+
41
+ def __getattr__(self, name: str) -> Any:
42
+ if self._module is None:
43
+ from importlib import import_module
44
+
45
+ self._module = import_module(self._target_path)
46
+ # Also register under the original path for future imports
47
+ sys.modules[self._original_path] = self._module
48
+ return getattr(self._module, name)
49
+
50
+ def __repr__(self) -> str:
51
+ return f"<redirected module '{self._original_path}' -> '{self._target_path}'>"
52
+
53
+ sys.modules[old_path] = _RedirectedModule(new_path, old_path)
54
+
55
+
56
+ def __getattr__(attr_name: str) -> Any:
57
+ """Forward attribute access to files_and_knowledge components."""
58
+ # Handle submodule access for backwards compatibility
59
+ if attr_name == "ingestion":
60
+ from importlib import import_module
61
+
62
+ result = import_module("lfx.components.files_and_knowledge.ingestion")
63
+ globals()[attr_name] = result
64
+ return result
65
+ if attr_name == "retrieval":
66
+ from importlib import import_module
67
+
68
+ result = import_module("lfx.components.files_and_knowledge.retrieval")
69
+ globals()[attr_name] = result
70
+ return result
71
+
72
+ if attr_name not in _dynamic_imports:
73
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
74
+ raise AttributeError(msg)
75
+
76
+ # Import from files_and_knowledge using the correct package path
77
+ package = "lfx.components.files_and_knowledge"
78
+ try:
79
+ result = import_mod(attr_name, _dynamic_imports[attr_name], package)
80
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
81
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
82
+ raise AttributeError(msg) from e
83
+ globals()[attr_name] = result
84
+ return result
85
+
86
+
87
+ def __dir__() -> list[str]:
88
+ """Return directory of available components."""
89
+ return list(__all__)
@@ -0,0 +1,109 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from lfx.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from .character import CharacterTextSplitterComponent
9
+ from .conversation import ConversationChainComponent
10
+ from .csv_agent import CSVAgentComponent
11
+ from .fake_embeddings import FakeEmbeddingsComponent
12
+ from .html_link_extractor import HtmlLinkExtractorComponent
13
+ from .json_agent import JsonAgentComponent
14
+ from .langchain_hub import LangChainHubPromptComponent
15
+ from .language_recursive import LanguageRecursiveTextSplitterComponent
16
+ from .language_semantic import SemanticTextSplitterComponent
17
+ from .llm_checker import LLMCheckerChainComponent
18
+ from .llm_math import LLMMathChainComponent
19
+ from .natural_language import NaturalLanguageTextSplitterComponent
20
+ from .openai_tools import OpenAIToolsAgentComponent
21
+ from .openapi import OpenAPIAgentComponent
22
+ from .recursive_character import RecursiveCharacterTextSplitterComponent
23
+ from .retrieval_qa import RetrievalQAComponent
24
+ from .runnable_executor import RunnableExecComponent
25
+ from .self_query import SelfQueryRetrieverComponent
26
+ from .spider import SpiderTool
27
+ from .sql import SQLAgentComponent
28
+ from .sql_database import SQLDatabaseComponent
29
+ from .sql_generator import SQLGeneratorComponent
30
+ from .tool_calling import ToolCallingAgentComponent
31
+ from .vector_store_info import VectorStoreInfoComponent
32
+ from .vector_store_router import VectorStoreRouterAgentComponent
33
+ from .xml_agent import XMLAgentComponent
34
+
35
+ _dynamic_imports = {
36
+ "CharacterTextSplitterComponent": "character",
37
+ "ConversationChainComponent": "conversation",
38
+ "CSVAgentComponent": "csv_agent",
39
+ "FakeEmbeddingsComponent": "fake_embeddings",
40
+ "HtmlLinkExtractorComponent": "html_link_extractor",
41
+ "JsonAgentComponent": "json_agent",
42
+ "LangChainHubPromptComponent": "langchain_hub",
43
+ "LanguageRecursiveTextSplitterComponent": "language_recursive",
44
+ "LLMCheckerChainComponent": "llm_checker",
45
+ "LLMMathChainComponent": "llm_math",
46
+ "NaturalLanguageTextSplitterComponent": "natural_language",
47
+ "OpenAIToolsAgentComponent": "openai_tools",
48
+ "OpenAPIAgentComponent": "openapi",
49
+ "RecursiveCharacterTextSplitterComponent": "recursive_character",
50
+ "RetrievalQAComponent": "retrieval_qa",
51
+ "RunnableExecComponent": "runnable_executor",
52
+ "SelfQueryRetrieverComponent": "self_query",
53
+ "SemanticTextSplitterComponent": "language_semantic",
54
+ "SpiderTool": "spider",
55
+ "SQLAgentComponent": "sql",
56
+ "SQLDatabaseComponent": "sql_database",
57
+ "SQLGeneratorComponent": "sql_generator",
58
+ "ToolCallingAgentComponent": "tool_calling",
59
+ "VectorStoreInfoComponent": "vector_store_info",
60
+ "VectorStoreRouterAgentComponent": "vector_store_router",
61
+ "XMLAgentComponent": "xml_agent",
62
+ }
63
+
64
+ __all__ = [
65
+ "CSVAgentComponent",
66
+ "CharacterTextSplitterComponent",
67
+ "ConversationChainComponent",
68
+ "FakeEmbeddingsComponent",
69
+ "HtmlLinkExtractorComponent",
70
+ "JsonAgentComponent",
71
+ "LLMCheckerChainComponent",
72
+ "LLMMathChainComponent",
73
+ "LangChainHubPromptComponent",
74
+ "LanguageRecursiveTextSplitterComponent",
75
+ "NaturalLanguageTextSplitterComponent",
76
+ "OpenAIToolsAgentComponent",
77
+ "OpenAPIAgentComponent",
78
+ "RecursiveCharacterTextSplitterComponent",
79
+ "RetrievalQAComponent",
80
+ "RunnableExecComponent",
81
+ "SQLAgentComponent",
82
+ "SQLDatabaseComponent",
83
+ "SQLGeneratorComponent",
84
+ "SelfQueryRetrieverComponent",
85
+ "SemanticTextSplitterComponent",
86
+ "SpiderTool",
87
+ "ToolCallingAgentComponent",
88
+ "VectorStoreInfoComponent",
89
+ "VectorStoreRouterAgentComponent",
90
+ "XMLAgentComponent",
91
+ ]
92
+
93
+
94
+ def __getattr__(attr_name: str) -> Any:
95
+ """Lazily import langchain utility components on attribute access."""
96
+ if attr_name not in _dynamic_imports:
97
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
98
+ raise AttributeError(msg)
99
+ try:
100
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
101
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
102
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
103
+ raise AttributeError(msg) from e
104
+ globals()[attr_name] = result
105
+ return result
106
+
107
+
108
+ def __dir__() -> list[str]:
109
+ return list(__all__)
@@ -0,0 +1,53 @@
1
+ from typing import Any
2
+
3
+ from langchain_text_splitters import CharacterTextSplitter, TextSplitter
4
+
5
+ from lfx.base.textsplitters.model import LCTextSplitterComponent
6
+ from lfx.inputs.inputs import DataInput, IntInput, MessageTextInput
7
+ from lfx.utils.util import unescape_string
8
+
9
+
10
+ class CharacterTextSplitterComponent(LCTextSplitterComponent):
11
+ display_name = "Character Text Splitter"
12
+ description = "Split text by number of characters."
13
+ documentation = "https://docs.langflow.org/bundles-langchain"
14
+ name = "CharacterTextSplitter"
15
+ icon = "LangChain"
16
+
17
+ inputs = [
18
+ IntInput(
19
+ name="chunk_size",
20
+ display_name="Chunk Size",
21
+ info="The maximum length of each chunk.",
22
+ value=1000,
23
+ ),
24
+ IntInput(
25
+ name="chunk_overlap",
26
+ display_name="Chunk Overlap",
27
+ info="The amount of overlap between chunks.",
28
+ value=200,
29
+ ),
30
+ DataInput(
31
+ name="data_input",
32
+ display_name="Input",
33
+ info="The texts to split.",
34
+ input_types=["Document", "Data"],
35
+ required=True,
36
+ ),
37
+ MessageTextInput(
38
+ name="separator",
39
+ display_name="Separator",
40
+ info='The characters to split on.\nIf left empty defaults to "\\n\\n".',
41
+ ),
42
+ ]
43
+
44
+ def get_data_input(self) -> Any:
45
+ return self.data_input
46
+
47
+ def build_text_splitter(self) -> TextSplitter:
48
+ separator = unescape_string(self.separator) if self.separator else "\n\n"
49
+ return CharacterTextSplitter(
50
+ chunk_overlap=self.chunk_overlap,
51
+ chunk_size=self.chunk_size,
52
+ separator=separator,
53
+ )