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.
- lfx/__init__.py +0 -0
- lfx/__main__.py +25 -0
- lfx/_assets/component_index.json +1 -0
- lfx/base/__init__.py +0 -0
- lfx/base/agents/__init__.py +0 -0
- lfx/base/agents/agent.py +375 -0
- lfx/base/agents/altk_base_agent.py +380 -0
- lfx/base/agents/altk_tool_wrappers.py +565 -0
- lfx/base/agents/callback.py +130 -0
- lfx/base/agents/context.py +109 -0
- lfx/base/agents/crewai/__init__.py +0 -0
- lfx/base/agents/crewai/crew.py +231 -0
- lfx/base/agents/crewai/tasks.py +12 -0
- lfx/base/agents/default_prompts.py +23 -0
- lfx/base/agents/errors.py +15 -0
- lfx/base/agents/events.py +430 -0
- lfx/base/agents/utils.py +237 -0
- lfx/base/astra_assistants/__init__.py +0 -0
- lfx/base/astra_assistants/util.py +171 -0
- lfx/base/chains/__init__.py +0 -0
- lfx/base/chains/model.py +19 -0
- lfx/base/composio/__init__.py +0 -0
- lfx/base/composio/composio_base.py +2584 -0
- lfx/base/compressors/__init__.py +0 -0
- lfx/base/compressors/model.py +60 -0
- lfx/base/constants.py +46 -0
- lfx/base/curl/__init__.py +0 -0
- lfx/base/curl/parse.py +188 -0
- lfx/base/data/__init__.py +5 -0
- lfx/base/data/base_file.py +810 -0
- lfx/base/data/docling_utils.py +338 -0
- lfx/base/data/storage_utils.py +192 -0
- lfx/base/data/utils.py +362 -0
- lfx/base/datastax/__init__.py +5 -0
- lfx/base/datastax/astradb_base.py +896 -0
- lfx/base/document_transformers/__init__.py +0 -0
- lfx/base/document_transformers/model.py +43 -0
- lfx/base/embeddings/__init__.py +0 -0
- lfx/base/embeddings/aiml_embeddings.py +62 -0
- lfx/base/embeddings/embeddings_class.py +113 -0
- lfx/base/embeddings/model.py +26 -0
- lfx/base/flow_processing/__init__.py +0 -0
- lfx/base/flow_processing/utils.py +86 -0
- lfx/base/huggingface/__init__.py +0 -0
- lfx/base/huggingface/model_bridge.py +133 -0
- lfx/base/io/__init__.py +0 -0
- lfx/base/io/chat.py +21 -0
- lfx/base/io/text.py +22 -0
- lfx/base/knowledge_bases/__init__.py +3 -0
- lfx/base/knowledge_bases/knowledge_base_utils.py +137 -0
- lfx/base/langchain_utilities/__init__.py +0 -0
- lfx/base/langchain_utilities/model.py +35 -0
- lfx/base/langchain_utilities/spider_constants.py +1 -0
- lfx/base/langwatch/__init__.py +0 -0
- lfx/base/langwatch/utils.py +18 -0
- lfx/base/mcp/__init__.py +0 -0
- lfx/base/mcp/constants.py +2 -0
- lfx/base/mcp/util.py +1659 -0
- lfx/base/memory/__init__.py +0 -0
- lfx/base/memory/memory.py +49 -0
- lfx/base/memory/model.py +38 -0
- lfx/base/models/__init__.py +3 -0
- lfx/base/models/aiml_constants.py +51 -0
- lfx/base/models/anthropic_constants.py +51 -0
- lfx/base/models/aws_constants.py +151 -0
- lfx/base/models/chat_result.py +76 -0
- lfx/base/models/cometapi_constants.py +54 -0
- lfx/base/models/google_generative_ai_constants.py +70 -0
- lfx/base/models/google_generative_ai_model.py +38 -0
- lfx/base/models/groq_constants.py +150 -0
- lfx/base/models/groq_model_discovery.py +265 -0
- lfx/base/models/model.py +375 -0
- lfx/base/models/model_input_constants.py +378 -0
- lfx/base/models/model_metadata.py +41 -0
- lfx/base/models/model_utils.py +108 -0
- lfx/base/models/novita_constants.py +35 -0
- lfx/base/models/ollama_constants.py +52 -0
- lfx/base/models/openai_constants.py +129 -0
- lfx/base/models/sambanova_constants.py +18 -0
- lfx/base/models/watsonx_constants.py +36 -0
- lfx/base/processing/__init__.py +0 -0
- lfx/base/prompts/__init__.py +0 -0
- lfx/base/prompts/api_utils.py +224 -0
- lfx/base/prompts/utils.py +61 -0
- lfx/base/textsplitters/__init__.py +0 -0
- lfx/base/textsplitters/model.py +28 -0
- lfx/base/tools/__init__.py +0 -0
- lfx/base/tools/base.py +26 -0
- lfx/base/tools/component_tool.py +325 -0
- lfx/base/tools/constants.py +49 -0
- lfx/base/tools/flow_tool.py +132 -0
- lfx/base/tools/run_flow.py +698 -0
- lfx/base/vectorstores/__init__.py +0 -0
- lfx/base/vectorstores/model.py +193 -0
- lfx/base/vectorstores/utils.py +22 -0
- lfx/base/vectorstores/vector_store_connection_decorator.py +52 -0
- lfx/cli/__init__.py +5 -0
- lfx/cli/commands.py +327 -0
- lfx/cli/common.py +650 -0
- lfx/cli/run.py +506 -0
- lfx/cli/script_loader.py +289 -0
- lfx/cli/serve_app.py +546 -0
- lfx/cli/validation.py +69 -0
- lfx/components/FAISS/__init__.py +34 -0
- lfx/components/FAISS/faiss.py +111 -0
- lfx/components/Notion/__init__.py +19 -0
- lfx/components/Notion/add_content_to_page.py +269 -0
- lfx/components/Notion/create_page.py +94 -0
- lfx/components/Notion/list_database_properties.py +68 -0
- lfx/components/Notion/list_pages.py +122 -0
- lfx/components/Notion/list_users.py +77 -0
- lfx/components/Notion/page_content_viewer.py +93 -0
- lfx/components/Notion/search.py +111 -0
- lfx/components/Notion/update_page_property.py +114 -0
- lfx/components/__init__.py +428 -0
- lfx/components/_importing.py +42 -0
- lfx/components/agentql/__init__.py +3 -0
- lfx/components/agentql/agentql_api.py +151 -0
- lfx/components/aiml/__init__.py +37 -0
- lfx/components/aiml/aiml.py +115 -0
- lfx/components/aiml/aiml_embeddings.py +37 -0
- lfx/components/altk/__init__.py +34 -0
- lfx/components/altk/altk_agent.py +193 -0
- lfx/components/amazon/__init__.py +36 -0
- lfx/components/amazon/amazon_bedrock_converse.py +195 -0
- lfx/components/amazon/amazon_bedrock_embedding.py +109 -0
- lfx/components/amazon/amazon_bedrock_model.py +130 -0
- lfx/components/amazon/s3_bucket_uploader.py +211 -0
- lfx/components/anthropic/__init__.py +34 -0
- lfx/components/anthropic/anthropic.py +187 -0
- lfx/components/apify/__init__.py +5 -0
- lfx/components/apify/apify_actor.py +325 -0
- lfx/components/arxiv/__init__.py +3 -0
- lfx/components/arxiv/arxiv.py +169 -0
- lfx/components/assemblyai/__init__.py +46 -0
- lfx/components/assemblyai/assemblyai_get_subtitles.py +83 -0
- lfx/components/assemblyai/assemblyai_lemur.py +183 -0
- lfx/components/assemblyai/assemblyai_list_transcripts.py +95 -0
- lfx/components/assemblyai/assemblyai_poll_transcript.py +72 -0
- lfx/components/assemblyai/assemblyai_start_transcript.py +188 -0
- lfx/components/azure/__init__.py +37 -0
- lfx/components/azure/azure_openai.py +95 -0
- lfx/components/azure/azure_openai_embeddings.py +83 -0
- lfx/components/baidu/__init__.py +32 -0
- lfx/components/baidu/baidu_qianfan_chat.py +113 -0
- lfx/components/bing/__init__.py +3 -0
- lfx/components/bing/bing_search_api.py +61 -0
- lfx/components/cassandra/__init__.py +40 -0
- lfx/components/cassandra/cassandra.py +264 -0
- lfx/components/cassandra/cassandra_chat.py +92 -0
- lfx/components/cassandra/cassandra_graph.py +238 -0
- lfx/components/chains/__init__.py +3 -0
- lfx/components/chroma/__init__.py +34 -0
- lfx/components/chroma/chroma.py +169 -0
- lfx/components/cleanlab/__init__.py +40 -0
- lfx/components/cleanlab/cleanlab_evaluator.py +155 -0
- lfx/components/cleanlab/cleanlab_rag_evaluator.py +254 -0
- lfx/components/cleanlab/cleanlab_remediator.py +131 -0
- lfx/components/clickhouse/__init__.py +34 -0
- lfx/components/clickhouse/clickhouse.py +135 -0
- lfx/components/cloudflare/__init__.py +32 -0
- lfx/components/cloudflare/cloudflare.py +81 -0
- lfx/components/cohere/__init__.py +40 -0
- lfx/components/cohere/cohere_embeddings.py +81 -0
- lfx/components/cohere/cohere_models.py +46 -0
- lfx/components/cohere/cohere_rerank.py +51 -0
- lfx/components/cometapi/__init__.py +32 -0
- lfx/components/cometapi/cometapi.py +166 -0
- lfx/components/composio/__init__.py +222 -0
- lfx/components/composio/agentql_composio.py +11 -0
- lfx/components/composio/agiled_composio.py +11 -0
- lfx/components/composio/airtable_composio.py +11 -0
- lfx/components/composio/apollo_composio.py +11 -0
- lfx/components/composio/asana_composio.py +11 -0
- lfx/components/composio/attio_composio.py +11 -0
- lfx/components/composio/bitbucket_composio.py +11 -0
- lfx/components/composio/bolna_composio.py +11 -0
- lfx/components/composio/brightdata_composio.py +11 -0
- lfx/components/composio/calendly_composio.py +11 -0
- lfx/components/composio/canva_composio.py +11 -0
- lfx/components/composio/canvas_composio.py +11 -0
- lfx/components/composio/coda_composio.py +11 -0
- lfx/components/composio/composio_api.py +278 -0
- lfx/components/composio/contentful_composio.py +11 -0
- lfx/components/composio/digicert_composio.py +11 -0
- lfx/components/composio/discord_composio.py +11 -0
- lfx/components/composio/dropbox_compnent.py +11 -0
- lfx/components/composio/elevenlabs_composio.py +11 -0
- lfx/components/composio/exa_composio.py +11 -0
- lfx/components/composio/figma_composio.py +11 -0
- lfx/components/composio/finage_composio.py +11 -0
- lfx/components/composio/firecrawl_composio.py +11 -0
- lfx/components/composio/fireflies_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/github_composio.py +11 -0
- lfx/components/composio/gmail_composio.py +38 -0
- lfx/components/composio/googlebigquery_composio.py +11 -0
- lfx/components/composio/googlecalendar_composio.py +11 -0
- lfx/components/composio/googleclassroom_composio.py +11 -0
- lfx/components/composio/googledocs_composio.py +11 -0
- lfx/components/composio/googlemeet_composio.py +11 -0
- lfx/components/composio/googlesheets_composio.py +11 -0
- lfx/components/composio/googletasks_composio.py +8 -0
- lfx/components/composio/heygen_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/klaviyo_composio.py +11 -0
- lfx/components/composio/linear_composio.py +11 -0
- lfx/components/composio/listennotes_composio.py +11 -0
- lfx/components/composio/mem0_composio.py +11 -0
- lfx/components/composio/miro_composio.py +11 -0
- lfx/components/composio/missive_composio.py +11 -0
- lfx/components/composio/notion_composio.py +11 -0
- lfx/components/composio/onedrive_composio.py +11 -0
- lfx/components/composio/outlook_composio.py +11 -0
- lfx/components/composio/pandadoc_composio.py +11 -0
- lfx/components/composio/peopledatalabs_composio.py +11 -0
- lfx/components/composio/perplexityai_composio.py +11 -0
- lfx/components/composio/reddit_composio.py +11 -0
- lfx/components/composio/serpapi_composio.py +11 -0
- lfx/components/composio/slack_composio.py +11 -0
- lfx/components/composio/slackbot_composio.py +11 -0
- lfx/components/composio/snowflake_composio.py +11 -0
- lfx/components/composio/supabase_composio.py +11 -0
- lfx/components/composio/tavily_composio.py +11 -0
- lfx/components/composio/timelinesai_composio.py +11 -0
- lfx/components/composio/todoist_composio.py +11 -0
- lfx/components/composio/wrike_composio.py +11 -0
- lfx/components/composio/youtube_composio.py +11 -0
- lfx/components/confluence/__init__.py +3 -0
- lfx/components/confluence/confluence.py +84 -0
- lfx/components/couchbase/__init__.py +34 -0
- lfx/components/couchbase/couchbase.py +102 -0
- lfx/components/crewai/__init__.py +49 -0
- lfx/components/crewai/crewai.py +108 -0
- lfx/components/crewai/hierarchical_crew.py +47 -0
- lfx/components/crewai/hierarchical_task.py +45 -0
- lfx/components/crewai/sequential_crew.py +53 -0
- lfx/components/crewai/sequential_task.py +74 -0
- lfx/components/crewai/sequential_task_agent.py +144 -0
- lfx/components/cuga/__init__.py +34 -0
- lfx/components/cuga/cuga_agent.py +730 -0
- lfx/components/custom_component/__init__.py +34 -0
- lfx/components/custom_component/custom_component.py +31 -0
- lfx/components/data/__init__.py +114 -0
- lfx/components/data_source/__init__.py +58 -0
- lfx/components/data_source/api_request.py +577 -0
- lfx/components/data_source/csv_to_data.py +101 -0
- lfx/components/data_source/json_to_data.py +106 -0
- lfx/components/data_source/mock_data.py +398 -0
- lfx/components/data_source/news_search.py +166 -0
- lfx/components/data_source/rss.py +71 -0
- lfx/components/data_source/sql_executor.py +101 -0
- lfx/components/data_source/url.py +311 -0
- lfx/components/data_source/web_search.py +326 -0
- lfx/components/datastax/__init__.py +76 -0
- lfx/components/datastax/astradb_assistant_manager.py +307 -0
- lfx/components/datastax/astradb_chatmemory.py +40 -0
- lfx/components/datastax/astradb_cql.py +288 -0
- lfx/components/datastax/astradb_graph.py +217 -0
- lfx/components/datastax/astradb_tool.py +378 -0
- lfx/components/datastax/astradb_vectorize.py +122 -0
- lfx/components/datastax/astradb_vectorstore.py +449 -0
- lfx/components/datastax/create_assistant.py +59 -0
- lfx/components/datastax/create_thread.py +33 -0
- lfx/components/datastax/dotenv.py +36 -0
- lfx/components/datastax/get_assistant.py +38 -0
- lfx/components/datastax/getenvvar.py +31 -0
- lfx/components/datastax/graph_rag.py +141 -0
- lfx/components/datastax/hcd.py +315 -0
- lfx/components/datastax/list_assistants.py +26 -0
- lfx/components/datastax/run.py +90 -0
- lfx/components/deactivated/__init__.py +15 -0
- lfx/components/deactivated/amazon_kendra.py +66 -0
- lfx/components/deactivated/chat_litellm_model.py +158 -0
- lfx/components/deactivated/code_block_extractor.py +26 -0
- lfx/components/deactivated/documents_to_data.py +22 -0
- lfx/components/deactivated/embed.py +16 -0
- lfx/components/deactivated/extract_key_from_data.py +46 -0
- lfx/components/deactivated/json_document_builder.py +57 -0
- lfx/components/deactivated/list_flows.py +20 -0
- lfx/components/deactivated/mcp_sse.py +61 -0
- lfx/components/deactivated/mcp_stdio.py +62 -0
- lfx/components/deactivated/merge_data.py +93 -0
- lfx/components/deactivated/message.py +37 -0
- lfx/components/deactivated/metal.py +54 -0
- lfx/components/deactivated/multi_query.py +59 -0
- lfx/components/deactivated/retriever.py +43 -0
- lfx/components/deactivated/selective_passthrough.py +77 -0
- lfx/components/deactivated/should_run_next.py +40 -0
- lfx/components/deactivated/split_text.py +63 -0
- lfx/components/deactivated/store_message.py +24 -0
- lfx/components/deactivated/sub_flow.py +124 -0
- lfx/components/deactivated/vectara_self_query.py +76 -0
- lfx/components/deactivated/vector_store.py +24 -0
- lfx/components/deepseek/__init__.py +34 -0
- lfx/components/deepseek/deepseek.py +136 -0
- lfx/components/docling/__init__.py +43 -0
- lfx/components/docling/chunk_docling_document.py +186 -0
- lfx/components/docling/docling_inline.py +238 -0
- lfx/components/docling/docling_remote.py +195 -0
- lfx/components/docling/export_docling_document.py +117 -0
- lfx/components/documentloaders/__init__.py +3 -0
- lfx/components/duckduckgo/__init__.py +3 -0
- lfx/components/duckduckgo/duck_duck_go_search_run.py +92 -0
- lfx/components/elastic/__init__.py +37 -0
- lfx/components/elastic/elasticsearch.py +267 -0
- lfx/components/elastic/opensearch.py +789 -0
- lfx/components/elastic/opensearch_multimodal.py +1575 -0
- lfx/components/embeddings/__init__.py +37 -0
- lfx/components/embeddings/similarity.py +77 -0
- lfx/components/embeddings/text_embedder.py +65 -0
- lfx/components/exa/__init__.py +3 -0
- lfx/components/exa/exa_search.py +68 -0
- lfx/components/files_and_knowledge/__init__.py +47 -0
- lfx/components/files_and_knowledge/directory.py +113 -0
- lfx/components/files_and_knowledge/file.py +841 -0
- lfx/components/files_and_knowledge/ingestion.py +694 -0
- lfx/components/files_and_knowledge/retrieval.py +264 -0
- lfx/components/files_and_knowledge/save_file.py +746 -0
- lfx/components/firecrawl/__init__.py +43 -0
- lfx/components/firecrawl/firecrawl_crawl_api.py +88 -0
- lfx/components/firecrawl/firecrawl_extract_api.py +136 -0
- lfx/components/firecrawl/firecrawl_map_api.py +89 -0
- lfx/components/firecrawl/firecrawl_scrape_api.py +73 -0
- lfx/components/flow_controls/__init__.py +58 -0
- lfx/components/flow_controls/conditional_router.py +208 -0
- lfx/components/flow_controls/data_conditional_router.py +126 -0
- lfx/components/flow_controls/flow_tool.py +111 -0
- lfx/components/flow_controls/listen.py +29 -0
- lfx/components/flow_controls/loop.py +163 -0
- lfx/components/flow_controls/notify.py +88 -0
- lfx/components/flow_controls/pass_message.py +36 -0
- lfx/components/flow_controls/run_flow.py +108 -0
- lfx/components/flow_controls/sub_flow.py +115 -0
- lfx/components/git/__init__.py +4 -0
- lfx/components/git/git.py +262 -0
- lfx/components/git/gitextractor.py +196 -0
- lfx/components/glean/__init__.py +3 -0
- lfx/components/glean/glean_search_api.py +173 -0
- lfx/components/google/__init__.py +17 -0
- lfx/components/google/gmail.py +193 -0
- lfx/components/google/google_bq_sql_executor.py +157 -0
- lfx/components/google/google_drive.py +92 -0
- lfx/components/google/google_drive_search.py +152 -0
- lfx/components/google/google_generative_ai.py +144 -0
- lfx/components/google/google_generative_ai_embeddings.py +141 -0
- lfx/components/google/google_oauth_token.py +89 -0
- lfx/components/google/google_search_api_core.py +68 -0
- lfx/components/google/google_serper_api_core.py +74 -0
- lfx/components/groq/__init__.py +34 -0
- lfx/components/groq/groq.py +143 -0
- lfx/components/helpers/__init__.py +154 -0
- lfx/components/homeassistant/__init__.py +7 -0
- lfx/components/homeassistant/home_assistant_control.py +152 -0
- lfx/components/homeassistant/list_home_assistant_states.py +137 -0
- lfx/components/huggingface/__init__.py +37 -0
- lfx/components/huggingface/huggingface.py +199 -0
- lfx/components/huggingface/huggingface_inference_api.py +106 -0
- lfx/components/ibm/__init__.py +34 -0
- lfx/components/ibm/watsonx.py +207 -0
- lfx/components/ibm/watsonx_embeddings.py +135 -0
- lfx/components/icosacomputing/__init__.py +5 -0
- lfx/components/icosacomputing/combinatorial_reasoner.py +84 -0
- lfx/components/input_output/__init__.py +40 -0
- lfx/components/input_output/chat.py +109 -0
- lfx/components/input_output/chat_output.py +184 -0
- lfx/components/input_output/text.py +27 -0
- lfx/components/input_output/text_output.py +29 -0
- lfx/components/input_output/webhook.py +56 -0
- lfx/components/jigsawstack/__init__.py +23 -0
- lfx/components/jigsawstack/ai_scrape.py +126 -0
- lfx/components/jigsawstack/ai_web_search.py +136 -0
- lfx/components/jigsawstack/file_read.py +115 -0
- lfx/components/jigsawstack/file_upload.py +94 -0
- lfx/components/jigsawstack/image_generation.py +205 -0
- lfx/components/jigsawstack/nsfw.py +60 -0
- lfx/components/jigsawstack/object_detection.py +124 -0
- lfx/components/jigsawstack/sentiment.py +112 -0
- lfx/components/jigsawstack/text_to_sql.py +90 -0
- lfx/components/jigsawstack/text_translate.py +77 -0
- lfx/components/jigsawstack/vocr.py +107 -0
- lfx/components/knowledge_bases/__init__.py +89 -0
- lfx/components/langchain_utilities/__init__.py +109 -0
- lfx/components/langchain_utilities/character.py +53 -0
- lfx/components/langchain_utilities/conversation.py +59 -0
- lfx/components/langchain_utilities/csv_agent.py +175 -0
- lfx/components/langchain_utilities/fake_embeddings.py +26 -0
- lfx/components/langchain_utilities/html_link_extractor.py +35 -0
- lfx/components/langchain_utilities/json_agent.py +100 -0
- lfx/components/langchain_utilities/langchain_hub.py +126 -0
- lfx/components/langchain_utilities/language_recursive.py +49 -0
- lfx/components/langchain_utilities/language_semantic.py +138 -0
- lfx/components/langchain_utilities/llm_checker.py +39 -0
- lfx/components/langchain_utilities/llm_math.py +42 -0
- lfx/components/langchain_utilities/natural_language.py +61 -0
- lfx/components/langchain_utilities/openai_tools.py +53 -0
- lfx/components/langchain_utilities/openapi.py +48 -0
- lfx/components/langchain_utilities/recursive_character.py +60 -0
- lfx/components/langchain_utilities/retrieval_qa.py +83 -0
- lfx/components/langchain_utilities/runnable_executor.py +137 -0
- lfx/components/langchain_utilities/self_query.py +80 -0
- lfx/components/langchain_utilities/spider.py +142 -0
- lfx/components/langchain_utilities/sql.py +40 -0
- lfx/components/langchain_utilities/sql_database.py +35 -0
- lfx/components/langchain_utilities/sql_generator.py +78 -0
- lfx/components/langchain_utilities/tool_calling.py +59 -0
- lfx/components/langchain_utilities/vector_store_info.py +49 -0
- lfx/components/langchain_utilities/vector_store_router.py +33 -0
- lfx/components/langchain_utilities/xml_agent.py +71 -0
- lfx/components/langwatch/__init__.py +3 -0
- lfx/components/langwatch/langwatch.py +278 -0
- lfx/components/link_extractors/__init__.py +3 -0
- lfx/components/llm_operations/__init__.py +46 -0
- lfx/components/llm_operations/batch_run.py +205 -0
- lfx/components/llm_operations/lambda_filter.py +218 -0
- lfx/components/llm_operations/llm_conditional_router.py +421 -0
- lfx/components/llm_operations/llm_selector.py +499 -0
- lfx/components/llm_operations/structured_output.py +244 -0
- lfx/components/lmstudio/__init__.py +34 -0
- lfx/components/lmstudio/lmstudioembeddings.py +89 -0
- lfx/components/lmstudio/lmstudiomodel.py +133 -0
- lfx/components/logic/__init__.py +181 -0
- lfx/components/maritalk/__init__.py +32 -0
- lfx/components/maritalk/maritalk.py +52 -0
- lfx/components/mem0/__init__.py +3 -0
- lfx/components/mem0/mem0_chat_memory.py +147 -0
- lfx/components/milvus/__init__.py +34 -0
- lfx/components/milvus/milvus.py +115 -0
- lfx/components/mistral/__init__.py +37 -0
- lfx/components/mistral/mistral.py +114 -0
- lfx/components/mistral/mistral_embeddings.py +58 -0
- lfx/components/models/__init__.py +89 -0
- lfx/components/models_and_agents/__init__.py +49 -0
- lfx/components/models_and_agents/agent.py +644 -0
- lfx/components/models_and_agents/embedding_model.py +423 -0
- lfx/components/models_and_agents/language_model.py +398 -0
- lfx/components/models_and_agents/mcp_component.py +594 -0
- lfx/components/models_and_agents/memory.py +268 -0
- lfx/components/models_and_agents/prompt.py +67 -0
- lfx/components/mongodb/__init__.py +34 -0
- lfx/components/mongodb/mongodb_atlas.py +213 -0
- lfx/components/needle/__init__.py +3 -0
- lfx/components/needle/needle.py +104 -0
- lfx/components/notdiamond/__init__.py +34 -0
- lfx/components/notdiamond/notdiamond.py +228 -0
- lfx/components/novita/__init__.py +32 -0
- lfx/components/novita/novita.py +130 -0
- lfx/components/nvidia/__init__.py +57 -0
- lfx/components/nvidia/nvidia.py +151 -0
- lfx/components/nvidia/nvidia_embedding.py +77 -0
- lfx/components/nvidia/nvidia_ingest.py +317 -0
- lfx/components/nvidia/nvidia_rerank.py +63 -0
- lfx/components/nvidia/system_assist.py +65 -0
- lfx/components/olivya/__init__.py +3 -0
- lfx/components/olivya/olivya.py +116 -0
- lfx/components/ollama/__init__.py +37 -0
- lfx/components/ollama/ollama.py +548 -0
- lfx/components/ollama/ollama_embeddings.py +103 -0
- lfx/components/openai/__init__.py +37 -0
- lfx/components/openai/openai.py +100 -0
- lfx/components/openai/openai_chat_model.py +176 -0
- lfx/components/openrouter/__init__.py +32 -0
- lfx/components/openrouter/openrouter.py +104 -0
- lfx/components/output_parsers/__init__.py +3 -0
- lfx/components/perplexity/__init__.py +34 -0
- lfx/components/perplexity/perplexity.py +75 -0
- lfx/components/pgvector/__init__.py +34 -0
- lfx/components/pgvector/pgvector.py +72 -0
- lfx/components/pinecone/__init__.py +34 -0
- lfx/components/pinecone/pinecone.py +134 -0
- lfx/components/processing/__init__.py +72 -0
- lfx/components/processing/alter_metadata.py +109 -0
- lfx/components/processing/combine_text.py +40 -0
- lfx/components/processing/converter.py +248 -0
- lfx/components/processing/create_data.py +111 -0
- lfx/components/processing/create_list.py +40 -0
- lfx/components/processing/data_operations.py +528 -0
- lfx/components/processing/data_to_dataframe.py +71 -0
- lfx/components/processing/dataframe_operations.py +313 -0
- lfx/components/processing/dataframe_to_toolset.py +259 -0
- lfx/components/processing/dynamic_create_data.py +357 -0
- lfx/components/processing/extract_key.py +54 -0
- lfx/components/processing/filter_data.py +43 -0
- lfx/components/processing/filter_data_values.py +89 -0
- lfx/components/processing/json_cleaner.py +104 -0
- lfx/components/processing/merge_data.py +91 -0
- lfx/components/processing/message_to_data.py +37 -0
- lfx/components/processing/output_parser.py +46 -0
- lfx/components/processing/parse_data.py +71 -0
- lfx/components/processing/parse_dataframe.py +69 -0
- lfx/components/processing/parse_json_data.py +91 -0
- lfx/components/processing/parser.py +148 -0
- lfx/components/processing/regex.py +83 -0
- lfx/components/processing/select_data.py +49 -0
- lfx/components/processing/split_text.py +141 -0
- lfx/components/processing/store_message.py +91 -0
- lfx/components/processing/update_data.py +161 -0
- lfx/components/prototypes/__init__.py +35 -0
- lfx/components/prototypes/python_function.py +73 -0
- lfx/components/qdrant/__init__.py +34 -0
- lfx/components/qdrant/qdrant.py +109 -0
- lfx/components/redis/__init__.py +37 -0
- lfx/components/redis/redis.py +89 -0
- lfx/components/redis/redis_chat.py +43 -0
- lfx/components/sambanova/__init__.py +32 -0
- lfx/components/sambanova/sambanova.py +84 -0
- lfx/components/scrapegraph/__init__.py +40 -0
- lfx/components/scrapegraph/scrapegraph_markdownify_api.py +64 -0
- lfx/components/scrapegraph/scrapegraph_search_api.py +64 -0
- lfx/components/scrapegraph/scrapegraph_smart_scraper_api.py +71 -0
- lfx/components/searchapi/__init__.py +34 -0
- lfx/components/searchapi/search.py +79 -0
- lfx/components/serpapi/__init__.py +3 -0
- lfx/components/serpapi/serp.py +115 -0
- lfx/components/supabase/__init__.py +34 -0
- lfx/components/supabase/supabase.py +76 -0
- lfx/components/tavily/__init__.py +4 -0
- lfx/components/tavily/tavily_extract.py +117 -0
- lfx/components/tavily/tavily_search.py +212 -0
- lfx/components/textsplitters/__init__.py +3 -0
- lfx/components/toolkits/__init__.py +3 -0
- lfx/components/tools/__init__.py +66 -0
- lfx/components/tools/calculator.py +109 -0
- lfx/components/tools/google_search_api.py +45 -0
- lfx/components/tools/google_serper_api.py +115 -0
- lfx/components/tools/python_code_structured_tool.py +328 -0
- lfx/components/tools/python_repl.py +98 -0
- lfx/components/tools/search_api.py +88 -0
- lfx/components/tools/searxng.py +145 -0
- lfx/components/tools/serp_api.py +120 -0
- lfx/components/tools/tavily_search_tool.py +345 -0
- lfx/components/tools/wikidata_api.py +103 -0
- lfx/components/tools/wikipedia_api.py +50 -0
- lfx/components/tools/yahoo_finance.py +130 -0
- lfx/components/twelvelabs/__init__.py +52 -0
- lfx/components/twelvelabs/convert_astra_results.py +84 -0
- lfx/components/twelvelabs/pegasus_index.py +311 -0
- lfx/components/twelvelabs/split_video.py +301 -0
- lfx/components/twelvelabs/text_embeddings.py +57 -0
- lfx/components/twelvelabs/twelvelabs_pegasus.py +408 -0
- lfx/components/twelvelabs/video_embeddings.py +100 -0
- lfx/components/twelvelabs/video_file.py +191 -0
- lfx/components/unstructured/__init__.py +3 -0
- lfx/components/unstructured/unstructured.py +121 -0
- lfx/components/upstash/__init__.py +34 -0
- lfx/components/upstash/upstash.py +124 -0
- lfx/components/utilities/__init__.py +43 -0
- lfx/components/utilities/calculator_core.py +89 -0
- lfx/components/utilities/current_date.py +42 -0
- lfx/components/utilities/id_generator.py +42 -0
- lfx/components/utilities/python_repl_core.py +98 -0
- lfx/components/vectara/__init__.py +37 -0
- lfx/components/vectara/vectara.py +97 -0
- lfx/components/vectara/vectara_rag.py +164 -0
- lfx/components/vectorstores/__init__.py +34 -0
- lfx/components/vectorstores/local_db.py +270 -0
- lfx/components/vertexai/__init__.py +37 -0
- lfx/components/vertexai/vertexai.py +71 -0
- lfx/components/vertexai/vertexai_embeddings.py +67 -0
- lfx/components/vlmrun/__init__.py +34 -0
- lfx/components/vlmrun/vlmrun_transcription.py +224 -0
- lfx/components/weaviate/__init__.py +34 -0
- lfx/components/weaviate/weaviate.py +89 -0
- lfx/components/wikipedia/__init__.py +4 -0
- lfx/components/wikipedia/wikidata.py +86 -0
- lfx/components/wikipedia/wikipedia.py +53 -0
- lfx/components/wolframalpha/__init__.py +3 -0
- lfx/components/wolframalpha/wolfram_alpha_api.py +54 -0
- lfx/components/xai/__init__.py +32 -0
- lfx/components/xai/xai.py +167 -0
- lfx/components/yahoosearch/__init__.py +3 -0
- lfx/components/yahoosearch/yahoo.py +137 -0
- lfx/components/youtube/__init__.py +52 -0
- lfx/components/youtube/channel.py +227 -0
- lfx/components/youtube/comments.py +231 -0
- lfx/components/youtube/playlist.py +33 -0
- lfx/components/youtube/search.py +120 -0
- lfx/components/youtube/trending.py +285 -0
- lfx/components/youtube/video_details.py +263 -0
- lfx/components/youtube/youtube_transcripts.py +206 -0
- lfx/components/zep/__init__.py +3 -0
- lfx/components/zep/zep.py +45 -0
- lfx/constants.py +6 -0
- lfx/custom/__init__.py +7 -0
- lfx/custom/attributes.py +87 -0
- lfx/custom/code_parser/__init__.py +3 -0
- lfx/custom/code_parser/code_parser.py +361 -0
- lfx/custom/custom_component/__init__.py +0 -0
- lfx/custom/custom_component/base_component.py +128 -0
- lfx/custom/custom_component/component.py +1890 -0
- lfx/custom/custom_component/component_with_cache.py +8 -0
- lfx/custom/custom_component/custom_component.py +650 -0
- lfx/custom/dependency_analyzer.py +165 -0
- lfx/custom/directory_reader/__init__.py +3 -0
- lfx/custom/directory_reader/directory_reader.py +359 -0
- lfx/custom/directory_reader/utils.py +171 -0
- lfx/custom/eval.py +12 -0
- lfx/custom/schema.py +32 -0
- lfx/custom/tree_visitor.py +21 -0
- lfx/custom/utils.py +877 -0
- lfx/custom/validate.py +523 -0
- lfx/events/__init__.py +1 -0
- lfx/events/event_manager.py +110 -0
- lfx/exceptions/__init__.py +0 -0
- lfx/exceptions/component.py +15 -0
- lfx/field_typing/__init__.py +91 -0
- lfx/field_typing/constants.py +216 -0
- lfx/field_typing/range_spec.py +35 -0
- lfx/graph/__init__.py +6 -0
- lfx/graph/edge/__init__.py +0 -0
- lfx/graph/edge/base.py +300 -0
- lfx/graph/edge/schema.py +119 -0
- lfx/graph/edge/utils.py +0 -0
- lfx/graph/graph/__init__.py +0 -0
- lfx/graph/graph/ascii.py +202 -0
- lfx/graph/graph/base.py +2298 -0
- lfx/graph/graph/constants.py +63 -0
- lfx/graph/graph/runnable_vertices_manager.py +133 -0
- lfx/graph/graph/schema.py +53 -0
- lfx/graph/graph/state_model.py +66 -0
- lfx/graph/graph/utils.py +1024 -0
- lfx/graph/schema.py +75 -0
- lfx/graph/state/__init__.py +0 -0
- lfx/graph/state/model.py +250 -0
- lfx/graph/utils.py +206 -0
- lfx/graph/vertex/__init__.py +0 -0
- lfx/graph/vertex/base.py +826 -0
- lfx/graph/vertex/constants.py +0 -0
- lfx/graph/vertex/exceptions.py +4 -0
- lfx/graph/vertex/param_handler.py +316 -0
- lfx/graph/vertex/schema.py +26 -0
- lfx/graph/vertex/utils.py +19 -0
- lfx/graph/vertex/vertex_types.py +489 -0
- lfx/helpers/__init__.py +141 -0
- lfx/helpers/base_model.py +71 -0
- lfx/helpers/custom.py +13 -0
- lfx/helpers/data.py +167 -0
- lfx/helpers/flow.py +308 -0
- lfx/inputs/__init__.py +68 -0
- lfx/inputs/constants.py +2 -0
- lfx/inputs/input_mixin.py +352 -0
- lfx/inputs/inputs.py +718 -0
- lfx/inputs/validators.py +19 -0
- lfx/interface/__init__.py +6 -0
- lfx/interface/components.py +897 -0
- lfx/interface/importing/__init__.py +5 -0
- lfx/interface/importing/utils.py +39 -0
- lfx/interface/initialize/__init__.py +3 -0
- lfx/interface/initialize/loading.py +317 -0
- lfx/interface/listing.py +26 -0
- lfx/interface/run.py +16 -0
- lfx/interface/utils.py +111 -0
- lfx/io/__init__.py +63 -0
- lfx/io/schema.py +295 -0
- lfx/load/__init__.py +8 -0
- lfx/load/load.py +256 -0
- lfx/load/utils.py +99 -0
- lfx/log/__init__.py +5 -0
- lfx/log/logger.py +411 -0
- lfx/logging/__init__.py +11 -0
- lfx/logging/logger.py +24 -0
- lfx/memory/__init__.py +70 -0
- lfx/memory/stubs.py +302 -0
- lfx/processing/__init__.py +1 -0
- lfx/processing/process.py +238 -0
- lfx/processing/utils.py +25 -0
- lfx/py.typed +0 -0
- lfx/schema/__init__.py +66 -0
- lfx/schema/artifact.py +83 -0
- lfx/schema/content_block.py +62 -0
- lfx/schema/content_types.py +91 -0
- lfx/schema/cross_module.py +80 -0
- lfx/schema/data.py +309 -0
- lfx/schema/dataframe.py +210 -0
- lfx/schema/dotdict.py +74 -0
- lfx/schema/encoders.py +13 -0
- lfx/schema/graph.py +47 -0
- lfx/schema/image.py +184 -0
- lfx/schema/json_schema.py +186 -0
- lfx/schema/log.py +62 -0
- lfx/schema/message.py +493 -0
- lfx/schema/openai_responses_schemas.py +74 -0
- lfx/schema/properties.py +41 -0
- lfx/schema/schema.py +180 -0
- lfx/schema/serialize.py +13 -0
- lfx/schema/table.py +142 -0
- lfx/schema/validators.py +114 -0
- lfx/serialization/__init__.py +5 -0
- lfx/serialization/constants.py +2 -0
- lfx/serialization/serialization.py +314 -0
- lfx/services/__init__.py +26 -0
- lfx/services/base.py +28 -0
- lfx/services/cache/__init__.py +6 -0
- lfx/services/cache/base.py +183 -0
- lfx/services/cache/service.py +166 -0
- lfx/services/cache/utils.py +169 -0
- lfx/services/chat/__init__.py +1 -0
- lfx/services/chat/config.py +2 -0
- lfx/services/chat/schema.py +10 -0
- lfx/services/database/__init__.py +5 -0
- lfx/services/database/service.py +25 -0
- lfx/services/deps.py +194 -0
- lfx/services/factory.py +19 -0
- lfx/services/initialize.py +19 -0
- lfx/services/interfaces.py +103 -0
- lfx/services/manager.py +185 -0
- lfx/services/mcp_composer/__init__.py +6 -0
- lfx/services/mcp_composer/factory.py +16 -0
- lfx/services/mcp_composer/service.py +1441 -0
- lfx/services/schema.py +21 -0
- lfx/services/session.py +87 -0
- lfx/services/settings/__init__.py +3 -0
- lfx/services/settings/auth.py +133 -0
- lfx/services/settings/base.py +668 -0
- lfx/services/settings/constants.py +43 -0
- lfx/services/settings/factory.py +23 -0
- lfx/services/settings/feature_flags.py +11 -0
- lfx/services/settings/service.py +35 -0
- lfx/services/settings/utils.py +40 -0
- lfx/services/shared_component_cache/__init__.py +1 -0
- lfx/services/shared_component_cache/factory.py +30 -0
- lfx/services/shared_component_cache/service.py +9 -0
- lfx/services/storage/__init__.py +5 -0
- lfx/services/storage/local.py +185 -0
- lfx/services/storage/service.py +177 -0
- lfx/services/tracing/__init__.py +1 -0
- lfx/services/tracing/service.py +21 -0
- lfx/settings.py +6 -0
- lfx/template/__init__.py +6 -0
- lfx/template/field/__init__.py +0 -0
- lfx/template/field/base.py +260 -0
- lfx/template/field/prompt.py +15 -0
- lfx/template/frontend_node/__init__.py +6 -0
- lfx/template/frontend_node/base.py +214 -0
- lfx/template/frontend_node/constants.py +65 -0
- lfx/template/frontend_node/custom_components.py +79 -0
- lfx/template/template/__init__.py +0 -0
- lfx/template/template/base.py +100 -0
- lfx/template/utils.py +217 -0
- lfx/type_extraction/__init__.py +19 -0
- lfx/type_extraction/type_extraction.py +75 -0
- lfx/type_extraction.py +80 -0
- lfx/utils/__init__.py +1 -0
- lfx/utils/async_helpers.py +42 -0
- lfx/utils/component_utils.py +154 -0
- lfx/utils/concurrency.py +60 -0
- lfx/utils/connection_string_parser.py +11 -0
- lfx/utils/constants.py +233 -0
- lfx/utils/data_structure.py +212 -0
- lfx/utils/exceptions.py +22 -0
- lfx/utils/helpers.py +34 -0
- lfx/utils/image.py +79 -0
- lfx/utils/langflow_utils.py +52 -0
- lfx/utils/lazy_load.py +15 -0
- lfx/utils/request_utils.py +18 -0
- lfx/utils/schemas.py +139 -0
- lfx/utils/ssrf_protection.py +384 -0
- lfx/utils/util.py +626 -0
- lfx/utils/util_strings.py +56 -0
- lfx/utils/validate_cloud.py +26 -0
- lfx/utils/version.py +24 -0
- lfx_nightly-0.2.0.dev25.dist-info/METADATA +312 -0
- lfx_nightly-0.2.0.dev25.dist-info/RECORD +769 -0
- lfx_nightly-0.2.0.dev25.dist-info/WHEEL +4 -0
- lfx_nightly-0.2.0.dev25.dist-info/entry_points.txt +2 -0
|
@@ -0,0 +1,40 @@
|
|
|
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 .cohere_embeddings import CohereEmbeddingsComponent
|
|
9
|
+
from .cohere_models import CohereComponent
|
|
10
|
+
from .cohere_rerank import CohereRerankComponent
|
|
11
|
+
|
|
12
|
+
_dynamic_imports = {
|
|
13
|
+
"CohereComponent": "cohere_models",
|
|
14
|
+
"CohereEmbeddingsComponent": "cohere_embeddings",
|
|
15
|
+
"CohereRerankComponent": "cohere_rerank",
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
__all__ = [
|
|
19
|
+
"CohereComponent",
|
|
20
|
+
"CohereEmbeddingsComponent",
|
|
21
|
+
"CohereRerankComponent",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def __getattr__(attr_name: str) -> Any:
|
|
26
|
+
"""Lazily import cohere components on attribute access."""
|
|
27
|
+
if attr_name not in _dynamic_imports:
|
|
28
|
+
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
29
|
+
raise AttributeError(msg)
|
|
30
|
+
try:
|
|
31
|
+
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
32
|
+
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
33
|
+
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
34
|
+
raise AttributeError(msg) from e
|
|
35
|
+
globals()[attr_name] = result
|
|
36
|
+
return result
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def __dir__() -> list[str]:
|
|
40
|
+
return list(__all__)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
import cohere
|
|
4
|
+
from langchain_cohere import CohereEmbeddings
|
|
5
|
+
|
|
6
|
+
from lfx.base.models.model import LCModelComponent
|
|
7
|
+
from lfx.field_typing import Embeddings
|
|
8
|
+
from lfx.io import DropdownInput, FloatInput, IntInput, MessageTextInput, Output, SecretStrInput
|
|
9
|
+
|
|
10
|
+
HTTP_STATUS_OK = 200
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class CohereEmbeddingsComponent(LCModelComponent):
|
|
14
|
+
display_name = "Cohere Embeddings"
|
|
15
|
+
description = "Generate embeddings using Cohere models."
|
|
16
|
+
icon = "Cohere"
|
|
17
|
+
name = "CohereEmbeddings"
|
|
18
|
+
|
|
19
|
+
inputs = [
|
|
20
|
+
SecretStrInput(name="api_key", display_name="Cohere API Key", required=True, real_time_refresh=True),
|
|
21
|
+
DropdownInput(
|
|
22
|
+
name="model_name",
|
|
23
|
+
display_name="Model",
|
|
24
|
+
advanced=False,
|
|
25
|
+
options=[
|
|
26
|
+
"embed-english-v2.0",
|
|
27
|
+
"embed-multilingual-v2.0",
|
|
28
|
+
"embed-english-light-v2.0",
|
|
29
|
+
"embed-multilingual-light-v2.0",
|
|
30
|
+
],
|
|
31
|
+
value="embed-english-v2.0",
|
|
32
|
+
refresh_button=True,
|
|
33
|
+
combobox=True,
|
|
34
|
+
),
|
|
35
|
+
MessageTextInput(name="truncate", display_name="Truncate", advanced=True),
|
|
36
|
+
IntInput(name="max_retries", display_name="Max Retries", value=3, advanced=True),
|
|
37
|
+
MessageTextInput(name="user_agent", display_name="User Agent", advanced=True, value="langchain"),
|
|
38
|
+
FloatInput(name="request_timeout", display_name="Request Timeout", advanced=True),
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
outputs = [
|
|
42
|
+
Output(display_name="Embeddings", name="embeddings", method="build_embeddings"),
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
def build_embeddings(self) -> Embeddings:
|
|
46
|
+
data = None
|
|
47
|
+
try:
|
|
48
|
+
data = CohereEmbeddings(
|
|
49
|
+
cohere_api_key=self.api_key,
|
|
50
|
+
model=self.model_name,
|
|
51
|
+
truncate=self.truncate,
|
|
52
|
+
max_retries=self.max_retries,
|
|
53
|
+
user_agent=self.user_agent,
|
|
54
|
+
request_timeout=self.request_timeout or None,
|
|
55
|
+
)
|
|
56
|
+
except Exception as e:
|
|
57
|
+
msg = (
|
|
58
|
+
"Unable to create Cohere Embeddings. ",
|
|
59
|
+
"Please verify the API key and model parameters, and try again.",
|
|
60
|
+
)
|
|
61
|
+
raise ValueError(msg) from e
|
|
62
|
+
# added status if not the return data would be serialised to create the status
|
|
63
|
+
return data
|
|
64
|
+
|
|
65
|
+
def get_model(self):
|
|
66
|
+
try:
|
|
67
|
+
co = cohere.ClientV2(self.api_key)
|
|
68
|
+
response = co.models.list(endpoint="embed")
|
|
69
|
+
models = response.models
|
|
70
|
+
return [model.name for model in models]
|
|
71
|
+
except Exception as e:
|
|
72
|
+
msg = f"Failed to fetch Cohere models. Error: {e}"
|
|
73
|
+
raise ValueError(msg) from e
|
|
74
|
+
|
|
75
|
+
async def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None):
|
|
76
|
+
if field_name in {"model_name", "api_key"}:
|
|
77
|
+
if build_config.get("api_key", {}).get("value", None):
|
|
78
|
+
build_config["model_name"]["options"] = self.get_model()
|
|
79
|
+
else:
|
|
80
|
+
build_config["model_name"]["options"] = field_value
|
|
81
|
+
return build_config
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
from langchain_cohere import ChatCohere
|
|
2
|
+
from pydantic.v1 import SecretStr
|
|
3
|
+
|
|
4
|
+
from lfx.base.models.model import LCModelComponent
|
|
5
|
+
from lfx.field_typing import LanguageModel
|
|
6
|
+
from lfx.field_typing.range_spec import RangeSpec
|
|
7
|
+
from lfx.io import SecretStrInput, SliderInput
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class CohereComponent(LCModelComponent):
|
|
11
|
+
display_name = "Cohere Language Models"
|
|
12
|
+
description = "Generate text using Cohere LLMs."
|
|
13
|
+
documentation = "https://python.langchain.com/docs/integrations/llms/cohere/"
|
|
14
|
+
icon = "Cohere"
|
|
15
|
+
name = "CohereModel"
|
|
16
|
+
|
|
17
|
+
inputs = [
|
|
18
|
+
*LCModelComponent.get_base_inputs(),
|
|
19
|
+
SecretStrInput(
|
|
20
|
+
name="cohere_api_key",
|
|
21
|
+
display_name="Cohere API Key",
|
|
22
|
+
info="The Cohere API Key to use for the Cohere model.",
|
|
23
|
+
advanced=False,
|
|
24
|
+
value="COHERE_API_KEY",
|
|
25
|
+
required=True,
|
|
26
|
+
),
|
|
27
|
+
SliderInput(
|
|
28
|
+
name="temperature",
|
|
29
|
+
display_name="Temperature",
|
|
30
|
+
value=0.75,
|
|
31
|
+
range_spec=RangeSpec(min=0, max=2, step=0.01),
|
|
32
|
+
info="Controls randomness. Lower values are more deterministic, higher values are more creative.",
|
|
33
|
+
advanced=True,
|
|
34
|
+
),
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
def build_model(self) -> LanguageModel: # type: ignore[type-var]
|
|
38
|
+
cohere_api_key = self.cohere_api_key
|
|
39
|
+
temperature = self.temperature
|
|
40
|
+
|
|
41
|
+
api_key = SecretStr(cohere_api_key).get_secret_value() if cohere_api_key else None
|
|
42
|
+
|
|
43
|
+
return ChatCohere(
|
|
44
|
+
temperature=temperature or 0.75,
|
|
45
|
+
cohere_api_key=api_key,
|
|
46
|
+
)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from lfx.base.compressors.model import LCCompressorComponent
|
|
2
|
+
from lfx.field_typing import BaseDocumentCompressor
|
|
3
|
+
from lfx.inputs.inputs import SecretStrInput
|
|
4
|
+
from lfx.io import DropdownInput
|
|
5
|
+
from lfx.template.field.base import Output
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CohereRerankComponent(LCCompressorComponent):
|
|
9
|
+
display_name = "Cohere Rerank"
|
|
10
|
+
description = "Rerank documents using the Cohere API."
|
|
11
|
+
name = "CohereRerank"
|
|
12
|
+
icon = "Cohere"
|
|
13
|
+
|
|
14
|
+
inputs = [
|
|
15
|
+
*LCCompressorComponent.inputs,
|
|
16
|
+
SecretStrInput(
|
|
17
|
+
name="api_key",
|
|
18
|
+
display_name="Cohere API Key",
|
|
19
|
+
),
|
|
20
|
+
DropdownInput(
|
|
21
|
+
name="model",
|
|
22
|
+
display_name="Model",
|
|
23
|
+
options=[
|
|
24
|
+
"rerank-english-v3.0",
|
|
25
|
+
"rerank-multilingual-v3.0",
|
|
26
|
+
"rerank-english-v2.0",
|
|
27
|
+
"rerank-multilingual-v2.0",
|
|
28
|
+
],
|
|
29
|
+
value="rerank-english-v3.0",
|
|
30
|
+
),
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
outputs = [
|
|
34
|
+
Output(
|
|
35
|
+
display_name="Reranked Documents",
|
|
36
|
+
name="reranked_documents",
|
|
37
|
+
method="compress_documents",
|
|
38
|
+
),
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
def build_compressor(self) -> BaseDocumentCompressor: # type: ignore[type-var]
|
|
42
|
+
try:
|
|
43
|
+
from langchain_cohere import CohereRerank
|
|
44
|
+
except ImportError as e:
|
|
45
|
+
msg = "Please install langchain-cohere to use the Cohere model."
|
|
46
|
+
raise ImportError(msg) from e
|
|
47
|
+
return CohereRerank(
|
|
48
|
+
cohere_api_key=self.api_key,
|
|
49
|
+
model=self.model,
|
|
50
|
+
top_n=self.top_n,
|
|
51
|
+
)
|
|
@@ -0,0 +1,32 @@
|
|
|
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 lfx.components.cometapi.cometapi import CometAPIComponent
|
|
9
|
+
|
|
10
|
+
_dynamic_imports = {
|
|
11
|
+
"CometAPIComponent": "cometapi",
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
__all__ = ["CometAPIComponent"]
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __getattr__(attr_name: str) -> Any:
|
|
18
|
+
"""Lazily import cometapi components on attribute access."""
|
|
19
|
+
if attr_name not in _dynamic_imports:
|
|
20
|
+
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
21
|
+
raise AttributeError(msg)
|
|
22
|
+
try:
|
|
23
|
+
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
24
|
+
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
25
|
+
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
26
|
+
raise AttributeError(msg) from e
|
|
27
|
+
globals()[attr_name] = result
|
|
28
|
+
return result
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def __dir__() -> list[str]:
|
|
32
|
+
return list(__all__)
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
import requests
|
|
4
|
+
from langchain_openai import ChatOpenAI
|
|
5
|
+
from pydantic.v1 import SecretStr
|
|
6
|
+
from typing_extensions import override
|
|
7
|
+
|
|
8
|
+
from lfx.base.models.cometapi_constants import MODEL_NAMES
|
|
9
|
+
from lfx.base.models.model import LCModelComponent
|
|
10
|
+
from lfx.field_typing import LanguageModel
|
|
11
|
+
from lfx.field_typing.range_spec import RangeSpec
|
|
12
|
+
from lfx.inputs.inputs import (
|
|
13
|
+
BoolInput,
|
|
14
|
+
DictInput,
|
|
15
|
+
DropdownInput,
|
|
16
|
+
IntInput,
|
|
17
|
+
SecretStrInput,
|
|
18
|
+
SliderInput,
|
|
19
|
+
StrInput,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class CometAPIComponent(LCModelComponent):
|
|
24
|
+
"""CometAPI component for language models."""
|
|
25
|
+
|
|
26
|
+
display_name = "CometAPI"
|
|
27
|
+
description = "All AI Models in One API 500+ AI Models"
|
|
28
|
+
icon = "CometAPI"
|
|
29
|
+
name = "CometAPIModel"
|
|
30
|
+
|
|
31
|
+
inputs = [
|
|
32
|
+
*LCModelComponent.get_base_inputs(),
|
|
33
|
+
SecretStrInput(
|
|
34
|
+
name="api_key",
|
|
35
|
+
display_name="CometAPI Key",
|
|
36
|
+
required=True,
|
|
37
|
+
info="Your CometAPI key",
|
|
38
|
+
real_time_refresh=True,
|
|
39
|
+
),
|
|
40
|
+
StrInput(
|
|
41
|
+
name="app_name",
|
|
42
|
+
display_name="App Name",
|
|
43
|
+
info="Your app name for CometAPI rankings",
|
|
44
|
+
advanced=True,
|
|
45
|
+
),
|
|
46
|
+
DropdownInput(
|
|
47
|
+
name="model_name",
|
|
48
|
+
display_name="Model",
|
|
49
|
+
info="The model to use for chat completion",
|
|
50
|
+
options=["Select a model"],
|
|
51
|
+
value="Select a model",
|
|
52
|
+
real_time_refresh=True,
|
|
53
|
+
required=True,
|
|
54
|
+
),
|
|
55
|
+
DictInput(
|
|
56
|
+
name="model_kwargs",
|
|
57
|
+
display_name="Model Kwargs",
|
|
58
|
+
info="Additional keyword arguments to pass to the model.",
|
|
59
|
+
advanced=True,
|
|
60
|
+
),
|
|
61
|
+
SliderInput(
|
|
62
|
+
name="temperature",
|
|
63
|
+
display_name="Temperature",
|
|
64
|
+
value=0.7,
|
|
65
|
+
range_spec=RangeSpec(min=0, max=2, step=0.01),
|
|
66
|
+
info="Controls randomness. Lower values are more deterministic, higher values are more creative.",
|
|
67
|
+
advanced=True,
|
|
68
|
+
),
|
|
69
|
+
IntInput(
|
|
70
|
+
name="max_tokens",
|
|
71
|
+
display_name="Max Tokens",
|
|
72
|
+
info="Maximum number of tokens to generate",
|
|
73
|
+
advanced=True,
|
|
74
|
+
),
|
|
75
|
+
IntInput(
|
|
76
|
+
name="seed",
|
|
77
|
+
display_name="Seed",
|
|
78
|
+
info="Seed for reproducible outputs.",
|
|
79
|
+
value=1,
|
|
80
|
+
advanced=True,
|
|
81
|
+
),
|
|
82
|
+
BoolInput(
|
|
83
|
+
name="json_mode",
|
|
84
|
+
display_name="JSON Mode",
|
|
85
|
+
info="If enabled, the model will be asked to return a JSON object.",
|
|
86
|
+
advanced=True,
|
|
87
|
+
),
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
def get_models(self, token_override: str | None = None) -> list[str]:
|
|
91
|
+
base_url = "https://api.cometapi.com/v1"
|
|
92
|
+
url = f"{base_url}/models"
|
|
93
|
+
|
|
94
|
+
headers = {"Content-Type": "application/json"}
|
|
95
|
+
# Add Bearer Authorization when API key is available
|
|
96
|
+
api_key_source = token_override if token_override else getattr(self, "api_key", None)
|
|
97
|
+
if api_key_source:
|
|
98
|
+
token = api_key_source.get_secret_value() if isinstance(api_key_source, SecretStr) else str(api_key_source)
|
|
99
|
+
headers["Authorization"] = f"Bearer {token}"
|
|
100
|
+
|
|
101
|
+
try:
|
|
102
|
+
response = requests.get(url, headers=headers, timeout=10)
|
|
103
|
+
response.raise_for_status()
|
|
104
|
+
# Safely parse JSON; fallback to defaults on failure
|
|
105
|
+
try:
|
|
106
|
+
model_list = response.json()
|
|
107
|
+
except (json.JSONDecodeError, ValueError) as e:
|
|
108
|
+
self.status = f"Error decoding models response: {e}"
|
|
109
|
+
return MODEL_NAMES
|
|
110
|
+
return [model["id"] for model in model_list.get("data", [])]
|
|
111
|
+
except requests.RequestException as e:
|
|
112
|
+
self.status = f"Error fetching models: {e}"
|
|
113
|
+
return MODEL_NAMES
|
|
114
|
+
|
|
115
|
+
@override
|
|
116
|
+
def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):
|
|
117
|
+
if field_name == "api_key":
|
|
118
|
+
models = self.get_models(field_value)
|
|
119
|
+
model_cfg = build_config.get("model_name", {})
|
|
120
|
+
# Preserve placeholder (fallback to existing value or a generic prompt)
|
|
121
|
+
placeholder = model_cfg.get("placeholder", model_cfg.get("value", "Select a model"))
|
|
122
|
+
current_value = model_cfg.get("value")
|
|
123
|
+
|
|
124
|
+
options = list(models) if models else []
|
|
125
|
+
# Ensure current value stays visible even if not present in fetched options
|
|
126
|
+
if current_value and current_value not in options:
|
|
127
|
+
options = [current_value, *options]
|
|
128
|
+
|
|
129
|
+
model_cfg["options"] = options
|
|
130
|
+
model_cfg["placeholder"] = placeholder
|
|
131
|
+
build_config["model_name"] = model_cfg
|
|
132
|
+
return build_config
|
|
133
|
+
|
|
134
|
+
def build_model(self) -> LanguageModel: # type: ignore[type-var]
|
|
135
|
+
api_key = self.api_key
|
|
136
|
+
temperature = self.temperature
|
|
137
|
+
model_name: str = self.model_name
|
|
138
|
+
max_tokens = self.max_tokens
|
|
139
|
+
model_kwargs = getattr(self, "model_kwargs", {}) or {}
|
|
140
|
+
json_mode = self.json_mode
|
|
141
|
+
seed = self.seed
|
|
142
|
+
# Ensure a valid model was selected
|
|
143
|
+
if not model_name or model_name == "Select a model":
|
|
144
|
+
msg = "Please select a valid CometAPI model."
|
|
145
|
+
raise ValueError(msg)
|
|
146
|
+
try:
|
|
147
|
+
# Extract raw API key safely
|
|
148
|
+
_api_key = api_key.get_secret_value() if isinstance(api_key, SecretStr) else api_key
|
|
149
|
+
output = ChatOpenAI(
|
|
150
|
+
model=model_name,
|
|
151
|
+
api_key=_api_key or None,
|
|
152
|
+
max_tokens=max_tokens or None,
|
|
153
|
+
temperature=temperature,
|
|
154
|
+
model_kwargs=model_kwargs,
|
|
155
|
+
streaming=bool(self.stream),
|
|
156
|
+
seed=seed,
|
|
157
|
+
base_url="https://api.cometapi.com/v1",
|
|
158
|
+
)
|
|
159
|
+
except (TypeError, ValueError) as e:
|
|
160
|
+
msg = "Could not connect to CometAPI."
|
|
161
|
+
raise ValueError(msg) from e
|
|
162
|
+
|
|
163
|
+
if json_mode:
|
|
164
|
+
output = output.bind(response_format={"type": "json_object"})
|
|
165
|
+
|
|
166
|
+
return output
|
|
@@ -0,0 +1,222 @@
|
|
|
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 .agentql_composio import ComposioAgentQLAPIComponent
|
|
9
|
+
from .agiled_composio import ComposioAgiledAPIComponent
|
|
10
|
+
from .airtable_composio import ComposioAirtableAPIComponent
|
|
11
|
+
from .apollo_composio import ComposioApolloAPIComponent
|
|
12
|
+
from .asana_composio import ComposioAsanaAPIComponent
|
|
13
|
+
from .attio_composio import ComposioAttioAPIComponent
|
|
14
|
+
from .bitbucket_composio import ComposioBitbucketAPIComponent
|
|
15
|
+
from .bolna_composio import ComposioBolnaAPIComponent
|
|
16
|
+
from .brightdata_composio import ComposioBrightdataAPIComponent
|
|
17
|
+
from .calendly_composio import ComposioCalendlyAPIComponent
|
|
18
|
+
from .canva_composio import ComposioCanvaAPIComponent
|
|
19
|
+
from .canvas_composio import ComposioCanvasAPIComponent
|
|
20
|
+
from .coda_composio import ComposioCodaAPIComponent
|
|
21
|
+
from .composio_api import ComposioAPIComponent
|
|
22
|
+
from .contentful_composio import ComposioContentfulAPIComponent
|
|
23
|
+
from .digicert_composio import ComposioDigicertAPIComponent
|
|
24
|
+
from .discord_composio import ComposioDiscordAPIComponent
|
|
25
|
+
from .elevenlabs_composio import ComposioElevenLabsAPIComponent
|
|
26
|
+
from .exa_composio import ComposioExaAPIComponent
|
|
27
|
+
from .figma_composio import ComposioFigmaAPIComponent
|
|
28
|
+
from .finage_composio import ComposioFinageAPIComponent
|
|
29
|
+
from .firecrawl_composio import ComposioFirecrawlAPIComponent
|
|
30
|
+
from .fireflies_composio import ComposioFirefliesAPIComponent
|
|
31
|
+
from .fixer_composio import ComposioFixerAPIComponent
|
|
32
|
+
from .flexisign_composio import ComposioFlexisignAPIComponent
|
|
33
|
+
from .freshdesk_composio import ComposioFreshdeskAPIComponent
|
|
34
|
+
from .github_composio import ComposioGitHubAPIComponent
|
|
35
|
+
from .gmail_composio import ComposioGmailAPIComponent
|
|
36
|
+
from .googlebigquery_composio import ComposioGoogleBigQueryAPIComponent
|
|
37
|
+
from .googlecalendar_composio import ComposioGoogleCalendarAPIComponent
|
|
38
|
+
from .googleclassroom_composio import ComposioGoogleclassroomAPIComponent
|
|
39
|
+
from .googledocs_composio import ComposioGoogleDocsAPIComponent
|
|
40
|
+
from .googlemeet_composio import ComposioGooglemeetAPIComponent
|
|
41
|
+
from .googlesheets_composio import ComposioGoogleSheetsAPIComponent
|
|
42
|
+
from .googletasks_composio import ComposioGoogleTasksAPIComponent
|
|
43
|
+
from .heygen_composio import ComposioHeygenAPIComponent
|
|
44
|
+
from .instagram_composio import ComposioInstagramAPIComponent
|
|
45
|
+
from .jira_composio import ComposioJiraAPIComponent
|
|
46
|
+
from .jotform_composio import ComposioJotformAPIComponent
|
|
47
|
+
from .klaviyo_composio import ComposioKlaviyoAPIComponent
|
|
48
|
+
from .linear_composio import ComposioLinearAPIComponent
|
|
49
|
+
from .listennotes_composio import ComposioListennotesAPIComponent
|
|
50
|
+
from .mem0_composio import ComposioMem0APIComponent
|
|
51
|
+
from .miro_composio import ComposioMiroAPIComponent
|
|
52
|
+
from .missive_composio import ComposioMissiveAPIComponent
|
|
53
|
+
from .notion_composio import ComposioNotionAPIComponent
|
|
54
|
+
from .onedrive_composio import ComposioOneDriveAPIComponent
|
|
55
|
+
from .outlook_composio import ComposioOutlookAPIComponent
|
|
56
|
+
from .pandadoc_composio import ComposioPandadocAPIComponent
|
|
57
|
+
from .peopledatalabs_composio import ComposioPeopleDataLabsAPIComponent
|
|
58
|
+
from .perplexityai_composio import ComposioPerplexityAIAPIComponent
|
|
59
|
+
from .reddit_composio import ComposioRedditAPIComponent
|
|
60
|
+
from .serpapi_composio import ComposioSerpAPIComponent
|
|
61
|
+
from .slack_composio import ComposioSlackAPIComponent
|
|
62
|
+
from .slackbot_composio import ComposioSlackbotAPIComponent
|
|
63
|
+
from .snowflake_composio import ComposioSnowflakeAPIComponent
|
|
64
|
+
from .supabase_composio import ComposioSupabaseAPIComponent
|
|
65
|
+
from .tavily_composio import ComposioTavilyAPIComponent
|
|
66
|
+
from .timelinesai_composio import ComposioTimelinesAIAPIComponent
|
|
67
|
+
from .todoist_composio import ComposioTodoistAPIComponent
|
|
68
|
+
from .wrike_composio import ComposioWrikeAPIComponent
|
|
69
|
+
from .youtube_composio import ComposioYoutubeAPIComponent
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
_dynamic_imports = {
|
|
73
|
+
"ComposioAPIComponent": "composio_api",
|
|
74
|
+
"ComposioCanvaAPIComponent": "canva_composio",
|
|
75
|
+
"ComposioCodaAPIComponent": "coda_composio",
|
|
76
|
+
"ComposioSlackAPIComponent": "slack_composio",
|
|
77
|
+
"ComposioRedditAPIComponent": "reddit_composio",
|
|
78
|
+
"ComposioSlackbotAPIComponent": "slackbot_composio",
|
|
79
|
+
"ComposioPeopleDataLabsAPIComponent": "peopledatalabs_composio",
|
|
80
|
+
"ComposioPerplexityAIAPIComponent": "perplexityai_composio",
|
|
81
|
+
"ComposioSupabaseAPIComponent": "supabase_composio",
|
|
82
|
+
"ComposioSerpAPIComponent": "serpapi_composio",
|
|
83
|
+
"ComposioSnowflakeAPIComponent": "snowflake_composio",
|
|
84
|
+
"ComposioTodoistAPIComponent": "todoist_composio",
|
|
85
|
+
"ComposioTavilyAPIComponent": "tavily_composio",
|
|
86
|
+
"ComposioYoutubeAPIComponent": "youtube_composio",
|
|
87
|
+
"ComposioAgentQLAPIComponent": "agentql_composio",
|
|
88
|
+
"ComposioAgiledAPIComponent": "agiled_composio",
|
|
89
|
+
"ComposioAirtableAPIComponent": "airtable_composio",
|
|
90
|
+
"ComposioApolloAPIComponent": "apollo_composio",
|
|
91
|
+
"ComposioAsanaAPIComponent": "asana_composio",
|
|
92
|
+
"ComposioAttioAPIComponent": "attio_composio",
|
|
93
|
+
"ComposioBitbucketAPIComponent": "bitbucket_composio",
|
|
94
|
+
"ComposioBolnaAPIComponent": "bolna_composio",
|
|
95
|
+
"ComposioBrightdataAPIComponent": "brightdata_composio",
|
|
96
|
+
"ComposioCalendlyAPIComponent": "calendly_composio",
|
|
97
|
+
"ComposioCanvasAPIComponent": "canvas_composio",
|
|
98
|
+
"ComposioContentfulAPIComponent": "contentful_composio",
|
|
99
|
+
"ComposioDigicertAPIComponent": "digicert_composio",
|
|
100
|
+
"ComposioDiscordAPIComponent": "discord_composio",
|
|
101
|
+
"ComposioElevenLabsAPIComponent": "elevenlabs_composio",
|
|
102
|
+
"ComposioExaAPIComponent": "exa_composio",
|
|
103
|
+
"ComposioFigmaAPIComponent": "figma_composio",
|
|
104
|
+
"ComposioFinageAPIComponent": "finage_composio",
|
|
105
|
+
"ComposioFirecrawlAPIComponent": "firecrawl_composio",
|
|
106
|
+
"ComposioFirefliesAPIComponent": "fireflies_composio",
|
|
107
|
+
"ComposioFixerAPIComponent": "fixer_composio",
|
|
108
|
+
"ComposioFlexisignAPIComponent": "flexisign_composio",
|
|
109
|
+
"ComposioFreshdeskAPIComponent": "freshdesk_composio",
|
|
110
|
+
"ComposioGitHubAPIComponent": "github_composio",
|
|
111
|
+
"ComposioGmailAPIComponent": "gmail_composio",
|
|
112
|
+
"ComposioGoogleBigQueryAPIComponent": "googlebigquery_composio",
|
|
113
|
+
"ComposioGoogleCalendarAPIComponent": "googlecalendar_composio",
|
|
114
|
+
"ComposioGoogleclassroomAPIComponent": "googleclassroom_composio",
|
|
115
|
+
"ComposioGoogleDocsAPIComponent": "googledocs_composio",
|
|
116
|
+
"ComposioGooglemeetAPIComponent": "googlemeet_composio",
|
|
117
|
+
"ComposioGoogleSheetsAPIComponent": "googlesheets_composio",
|
|
118
|
+
"ComposioGoogleTasksAPIComponent": "googletasks_composio",
|
|
119
|
+
"ComposioHeygenAPIComponent": "heygen_composio",
|
|
120
|
+
"ComposioInstagramAPIComponent": "instagram_composio",
|
|
121
|
+
"ComposioJiraAPIComponent": "jira_composio",
|
|
122
|
+
"ComposioJotformAPIComponent": "jotform_composio",
|
|
123
|
+
"ComposioKlaviyoAPIComponent": "klaviyo_composio",
|
|
124
|
+
"ComposioLinearAPIComponent": "linear_composio",
|
|
125
|
+
"ComposioListennotesAPIComponent": "listennotes_composio",
|
|
126
|
+
"ComposioMem0APIComponent": "mem0_composio",
|
|
127
|
+
"ComposioMiroAPIComponent": "miro_composio",
|
|
128
|
+
"ComposioMissiveAPIComponent": "missive_composio",
|
|
129
|
+
"ComposioNotionAPIComponent": "notion_composio",
|
|
130
|
+
"ComposioOneDriveAPIComponent": "onedrive_composio",
|
|
131
|
+
"ComposioOutlookAPIComponent": "outlook_composio",
|
|
132
|
+
"ComposioPandadocAPIComponent": "pandadoc_composio",
|
|
133
|
+
"ComposioTimelinesAIAPIComponent": "timelinesai_composio",
|
|
134
|
+
"ComposioWrikeAPIComponent": "wrike_composio",
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
# Always expose all components - individual failures will be handled on import
|
|
138
|
+
__all__ = [
|
|
139
|
+
"ComposioAPIComponent",
|
|
140
|
+
"ComposioAgentQLAPIComponent",
|
|
141
|
+
"ComposioAgiledAPIComponent",
|
|
142
|
+
"ComposioAirtableAPIComponent",
|
|
143
|
+
"ComposioApolloAPIComponent",
|
|
144
|
+
"ComposioAsanaAPIComponent",
|
|
145
|
+
"ComposioAttioAPIComponent",
|
|
146
|
+
"ComposioBitbucketAPIComponent",
|
|
147
|
+
"ComposioBolnaAPIComponent",
|
|
148
|
+
"ComposioBrightdataAPIComponent",
|
|
149
|
+
"ComposioCalendlyAPIComponent",
|
|
150
|
+
"ComposioCalendlyAPIComponent",
|
|
151
|
+
"ComposioCanvaAPIComponent",
|
|
152
|
+
"ComposioCanvasAPIComponent",
|
|
153
|
+
"ComposioCodaAPIComponent",
|
|
154
|
+
"ComposioContentfulAPIComponent",
|
|
155
|
+
"ComposioDigicertAPIComponent",
|
|
156
|
+
"ComposioDiscordAPIComponent",
|
|
157
|
+
"ComposioElevenLabsAPIComponent",
|
|
158
|
+
"ComposioExaAPIComponent",
|
|
159
|
+
"ComposioFigmaAPIComponent",
|
|
160
|
+
"ComposioFinageAPIComponent",
|
|
161
|
+
"ComposioFirecrawlAPIComponent",
|
|
162
|
+
"ComposioFirefliesAPIComponent",
|
|
163
|
+
"ComposioFixerAPIComponent",
|
|
164
|
+
"ComposioFlexisignAPIComponent",
|
|
165
|
+
"ComposioFreshdeskAPIComponent",
|
|
166
|
+
"ComposioGitHubAPIComponent",
|
|
167
|
+
"ComposioGmailAPIComponent",
|
|
168
|
+
"ComposioGoogleBigQueryAPIComponent",
|
|
169
|
+
"ComposioGoogleCalendarAPIComponent",
|
|
170
|
+
"ComposioGoogleDocsAPIComponent",
|
|
171
|
+
"ComposioGoogleSheetsAPIComponent",
|
|
172
|
+
"ComposioGoogleTasksAPIComponent",
|
|
173
|
+
"ComposioGoogleclassroomAPIComponent",
|
|
174
|
+
"ComposioGooglemeetAPIComponent",
|
|
175
|
+
"ComposioHeygenAPIComponent",
|
|
176
|
+
"ComposioInstagramAPIComponent",
|
|
177
|
+
"ComposioJiraAPIComponent",
|
|
178
|
+
"ComposioJotformAPIComponent",
|
|
179
|
+
"ComposioKlaviyoAPIComponent",
|
|
180
|
+
"ComposioKlaviyoAPIComponent",
|
|
181
|
+
"ComposioLinearAPIComponent",
|
|
182
|
+
"ComposioLinearAPIComponent",
|
|
183
|
+
"ComposioListennotesAPIComponent",
|
|
184
|
+
"ComposioMem0APIComponent",
|
|
185
|
+
"ComposioMiroAPIComponent",
|
|
186
|
+
"ComposioMissiveAPIComponent",
|
|
187
|
+
"ComposioNotionAPIComponent",
|
|
188
|
+
"ComposioOneDriveAPIComponent",
|
|
189
|
+
"ComposioOutlookAPIComponent",
|
|
190
|
+
"ComposioPandadocAPIComponent",
|
|
191
|
+
"ComposioPeopleDataLabsAPIComponent",
|
|
192
|
+
"ComposioPerplexityAIAPIComponent",
|
|
193
|
+
"ComposioRedditAPIComponent",
|
|
194
|
+
"ComposioSerpAPIComponent",
|
|
195
|
+
"ComposioSlackAPIComponent",
|
|
196
|
+
"ComposioSlackbotAPIComponent",
|
|
197
|
+
"ComposioSnowflakeAPIComponent",
|
|
198
|
+
"ComposioSupabaseAPIComponent",
|
|
199
|
+
"ComposioTavilyAPIComponent",
|
|
200
|
+
"ComposioTimelinesAIAPIComponent",
|
|
201
|
+
"ComposioTodoistAPIComponent",
|
|
202
|
+
"ComposioWrikeAPIComponent",
|
|
203
|
+
"ComposioYoutubeAPIComponent",
|
|
204
|
+
]
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
def __getattr__(attr_name: str) -> Any:
|
|
208
|
+
"""Lazily import composio components on attribute access."""
|
|
209
|
+
if attr_name not in _dynamic_imports:
|
|
210
|
+
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
211
|
+
raise AttributeError(msg)
|
|
212
|
+
try:
|
|
213
|
+
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
214
|
+
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
215
|
+
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
216
|
+
raise AttributeError(msg) from e
|
|
217
|
+
globals()[attr_name] = result
|
|
218
|
+
return result
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def __dir__() -> list[str]:
|
|
222
|
+
return list(__all__)
|
|
@@ -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 ComposioAirtableAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Airtable"
|
|
6
|
+
icon = "Airtable"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "airtable"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Airtable component."""
|