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,378 @@
|
|
|
1
|
+
from typing_extensions import TypedDict
|
|
2
|
+
|
|
3
|
+
from lfx.base.models.model import LCModelComponent
|
|
4
|
+
from lfx.inputs.inputs import InputTypes, SecretStrInput
|
|
5
|
+
from lfx.template.field.base import Input
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ModelProvidersDict(TypedDict):
|
|
9
|
+
fields: dict
|
|
10
|
+
inputs: list[InputTypes]
|
|
11
|
+
prefix: str
|
|
12
|
+
component_class: LCModelComponent
|
|
13
|
+
icon: str
|
|
14
|
+
is_active: bool
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def get_filtered_inputs(component_class, provider_name: str | None = None):
|
|
18
|
+
base_input_names = {field.name for field in LCModelComponent.get_base_inputs()}
|
|
19
|
+
component_instance = component_class()
|
|
20
|
+
|
|
21
|
+
return [
|
|
22
|
+
process_inputs(input_, provider_name)
|
|
23
|
+
for input_ in component_instance.inputs
|
|
24
|
+
if input_.name not in base_input_names
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def process_inputs(component_data: Input, provider_name: str | None = None):
|
|
29
|
+
"""Processes and modifies an input configuration based on its type or name.
|
|
30
|
+
|
|
31
|
+
Adjusts properties such as value, advanced status, real-time refresh, and additional information for specific
|
|
32
|
+
input types or names to ensure correct behavior in the UI and provider integration.
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
component_data: The input configuration to process.
|
|
36
|
+
provider_name: The name of the provider to process the inputs for.
|
|
37
|
+
|
|
38
|
+
Returns:
|
|
39
|
+
The modified input configuration.
|
|
40
|
+
"""
|
|
41
|
+
if isinstance(component_data, SecretStrInput):
|
|
42
|
+
component_data.value = ""
|
|
43
|
+
component_data.load_from_db = False
|
|
44
|
+
component_data.real_time_refresh = True
|
|
45
|
+
if component_data.name == "api_key":
|
|
46
|
+
component_data.required = False
|
|
47
|
+
elif component_data.name == "tool_model_enabled":
|
|
48
|
+
component_data.advanced = True
|
|
49
|
+
component_data.value = True
|
|
50
|
+
elif component_data.name in {"temperature", "base_url"}:
|
|
51
|
+
if provider_name not in ["IBM watsonx.ai", "Ollama"]:
|
|
52
|
+
component_data = set_advanced_true(component_data)
|
|
53
|
+
elif component_data.name == "model_name":
|
|
54
|
+
if provider_name not in ["IBM watsonx.ai"]:
|
|
55
|
+
component_data = set_real_time_refresh_false(component_data)
|
|
56
|
+
component_data = add_combobox_true(component_data)
|
|
57
|
+
component_data = add_info(
|
|
58
|
+
component_data,
|
|
59
|
+
"To see the model names, first choose a provider. Then, enter your API key and click the refresh button "
|
|
60
|
+
"next to the model name.",
|
|
61
|
+
)
|
|
62
|
+
return component_data
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def set_advanced_true(component_input):
|
|
66
|
+
component_input.advanced = True
|
|
67
|
+
return component_input
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def set_real_time_refresh_false(component_input):
|
|
71
|
+
component_input.real_time_refresh = False
|
|
72
|
+
return component_input
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def add_info(component_input, info_str: str):
|
|
76
|
+
component_input.info = info_str
|
|
77
|
+
return component_input
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def add_combobox_true(component_input):
|
|
81
|
+
component_input.combobox = True
|
|
82
|
+
return component_input
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def create_input_fields_dict(inputs: list[Input], prefix: str) -> dict[str, Input]:
|
|
86
|
+
return {f"{prefix}{input_.name}": input_.to_dict() for input_ in inputs}
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def _get_ollama_inputs_and_fields():
|
|
90
|
+
try:
|
|
91
|
+
from lfx.components.ollama.ollama import ChatOllamaComponent
|
|
92
|
+
|
|
93
|
+
ollama_inputs = get_filtered_inputs(ChatOllamaComponent, provider_name="Ollama")
|
|
94
|
+
except ImportError as e:
|
|
95
|
+
msg = "Ollama is not installed. Please install it with `pip install langchain-ollama`."
|
|
96
|
+
raise ImportError(msg) from e
|
|
97
|
+
return ollama_inputs, create_input_fields_dict(ollama_inputs, "")
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
def _get_watsonx_inputs_and_fields():
|
|
101
|
+
try:
|
|
102
|
+
from lfx.components.ibm.watsonx import WatsonxAIComponent
|
|
103
|
+
|
|
104
|
+
watsonx_inputs = get_filtered_inputs(WatsonxAIComponent, provider_name="IBM watsonx.ai")
|
|
105
|
+
except ImportError as e:
|
|
106
|
+
msg = "IBM watsonx.ai is not installed. Please install it with `pip install langchain-ibm-watsonx`."
|
|
107
|
+
raise ImportError(msg) from e
|
|
108
|
+
return watsonx_inputs, create_input_fields_dict(watsonx_inputs, "")
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def _get_google_generative_ai_inputs_and_fields():
|
|
112
|
+
try:
|
|
113
|
+
from lfx.components.google.google_generative_ai import GoogleGenerativeAIComponent
|
|
114
|
+
|
|
115
|
+
google_generative_ai_inputs = get_filtered_inputs(GoogleGenerativeAIComponent)
|
|
116
|
+
except ImportError as e:
|
|
117
|
+
msg = (
|
|
118
|
+
"Google Generative AI is not installed. Please install it with "
|
|
119
|
+
"`pip install langchain-google-generative-ai`."
|
|
120
|
+
)
|
|
121
|
+
raise ImportError(msg) from e
|
|
122
|
+
return google_generative_ai_inputs, create_input_fields_dict(google_generative_ai_inputs, "")
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def _get_openai_inputs_and_fields():
|
|
126
|
+
try:
|
|
127
|
+
from lfx.components.openai.openai_chat_model import OpenAIModelComponent
|
|
128
|
+
|
|
129
|
+
openai_inputs = get_filtered_inputs(OpenAIModelComponent)
|
|
130
|
+
except ImportError as e:
|
|
131
|
+
msg = "OpenAI is not installed. Please install it with `pip install langchain-openai`."
|
|
132
|
+
raise ImportError(msg) from e
|
|
133
|
+
return openai_inputs, create_input_fields_dict(openai_inputs, "")
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def _get_azure_inputs_and_fields():
|
|
137
|
+
try:
|
|
138
|
+
from lfx.components.azure.azure_openai import AzureChatOpenAIComponent
|
|
139
|
+
|
|
140
|
+
azure_inputs = get_filtered_inputs(AzureChatOpenAIComponent)
|
|
141
|
+
except ImportError as e:
|
|
142
|
+
msg = "Azure OpenAI is not installed. Please install it with `pip install langchain-azure-openai`."
|
|
143
|
+
raise ImportError(msg) from e
|
|
144
|
+
return azure_inputs, create_input_fields_dict(azure_inputs, "")
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def _get_groq_inputs_and_fields():
|
|
148
|
+
try:
|
|
149
|
+
from lfx.components.groq.groq import GroqModel
|
|
150
|
+
|
|
151
|
+
groq_inputs = get_filtered_inputs(GroqModel)
|
|
152
|
+
except ImportError as e:
|
|
153
|
+
msg = "Groq is not installed. Please install it with `pip install langchain-groq`."
|
|
154
|
+
raise ImportError(msg) from e
|
|
155
|
+
return groq_inputs, create_input_fields_dict(groq_inputs, "")
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
def _get_anthropic_inputs_and_fields():
|
|
159
|
+
try:
|
|
160
|
+
from lfx.components.anthropic.anthropic import AnthropicModelComponent
|
|
161
|
+
|
|
162
|
+
anthropic_inputs = get_filtered_inputs(AnthropicModelComponent)
|
|
163
|
+
except ImportError as e:
|
|
164
|
+
msg = "Anthropic is not installed. Please install it with `pip install langchain-anthropic`."
|
|
165
|
+
raise ImportError(msg) from e
|
|
166
|
+
return anthropic_inputs, create_input_fields_dict(anthropic_inputs, "")
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def _get_nvidia_inputs_and_fields():
|
|
170
|
+
try:
|
|
171
|
+
from lfx.components.nvidia.nvidia import NVIDIAModelComponent
|
|
172
|
+
|
|
173
|
+
nvidia_inputs = get_filtered_inputs(NVIDIAModelComponent)
|
|
174
|
+
except ImportError as e:
|
|
175
|
+
msg = "NVIDIA is not installed. Please install it with `pip install langchain-nvidia`."
|
|
176
|
+
raise ImportError(msg) from e
|
|
177
|
+
return nvidia_inputs, create_input_fields_dict(nvidia_inputs, "")
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
def _get_amazon_bedrock_inputs_and_fields():
|
|
181
|
+
try:
|
|
182
|
+
from lfx.components.amazon.amazon_bedrock_model import AmazonBedrockComponent
|
|
183
|
+
|
|
184
|
+
amazon_bedrock_inputs = get_filtered_inputs(AmazonBedrockComponent)
|
|
185
|
+
except ImportError as e:
|
|
186
|
+
msg = "Amazon Bedrock is not installed. Please install it with `pip install langchain-amazon-bedrock`."
|
|
187
|
+
raise ImportError(msg) from e
|
|
188
|
+
return amazon_bedrock_inputs, create_input_fields_dict(amazon_bedrock_inputs, "")
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def _get_sambanova_inputs_and_fields():
|
|
192
|
+
try:
|
|
193
|
+
from lfx.components.sambanova.sambanova import SambaNovaComponent
|
|
194
|
+
|
|
195
|
+
sambanova_inputs = get_filtered_inputs(SambaNovaComponent)
|
|
196
|
+
except ImportError as e:
|
|
197
|
+
msg = "SambaNova is not installed. Please install it with `pip install langchain-sambanova`."
|
|
198
|
+
raise ImportError(msg) from e
|
|
199
|
+
return sambanova_inputs, create_input_fields_dict(sambanova_inputs, "")
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
MODEL_PROVIDERS_DICT: dict[str, ModelProvidersDict] = {}
|
|
203
|
+
|
|
204
|
+
# Try to add each provider
|
|
205
|
+
try:
|
|
206
|
+
from lfx.components.openai.openai_chat_model import OpenAIModelComponent
|
|
207
|
+
|
|
208
|
+
openai_inputs, openai_fields = _get_openai_inputs_and_fields()
|
|
209
|
+
MODEL_PROVIDERS_DICT["OpenAI"] = {
|
|
210
|
+
"fields": openai_fields,
|
|
211
|
+
"inputs": openai_inputs,
|
|
212
|
+
"prefix": "",
|
|
213
|
+
"component_class": OpenAIModelComponent(),
|
|
214
|
+
"icon": OpenAIModelComponent.icon,
|
|
215
|
+
"is_active": True,
|
|
216
|
+
}
|
|
217
|
+
except ImportError:
|
|
218
|
+
pass
|
|
219
|
+
|
|
220
|
+
try:
|
|
221
|
+
from lfx.components.azure.azure_openai import AzureChatOpenAIComponent
|
|
222
|
+
|
|
223
|
+
azure_inputs, azure_fields = _get_azure_inputs_and_fields()
|
|
224
|
+
MODEL_PROVIDERS_DICT["Azure OpenAI"] = {
|
|
225
|
+
"fields": azure_fields,
|
|
226
|
+
"inputs": azure_inputs,
|
|
227
|
+
"prefix": "",
|
|
228
|
+
"component_class": AzureChatOpenAIComponent(),
|
|
229
|
+
"icon": AzureChatOpenAIComponent.icon,
|
|
230
|
+
"is_active": False,
|
|
231
|
+
}
|
|
232
|
+
except ImportError:
|
|
233
|
+
pass
|
|
234
|
+
|
|
235
|
+
try:
|
|
236
|
+
from lfx.components.groq.groq import GroqModel
|
|
237
|
+
|
|
238
|
+
groq_inputs, groq_fields = _get_groq_inputs_and_fields()
|
|
239
|
+
MODEL_PROVIDERS_DICT["Groq"] = {
|
|
240
|
+
"fields": groq_fields,
|
|
241
|
+
"inputs": groq_inputs,
|
|
242
|
+
"prefix": "",
|
|
243
|
+
"component_class": GroqModel(),
|
|
244
|
+
"icon": GroqModel.icon,
|
|
245
|
+
"is_active": False,
|
|
246
|
+
}
|
|
247
|
+
except ImportError:
|
|
248
|
+
pass
|
|
249
|
+
|
|
250
|
+
try:
|
|
251
|
+
from lfx.components.anthropic.anthropic import AnthropicModelComponent
|
|
252
|
+
|
|
253
|
+
anthropic_inputs, anthropic_fields = _get_anthropic_inputs_and_fields()
|
|
254
|
+
MODEL_PROVIDERS_DICT["Anthropic"] = {
|
|
255
|
+
"fields": anthropic_fields,
|
|
256
|
+
"inputs": anthropic_inputs,
|
|
257
|
+
"prefix": "",
|
|
258
|
+
"component_class": AnthropicModelComponent(),
|
|
259
|
+
"icon": AnthropicModelComponent.icon,
|
|
260
|
+
"is_active": True,
|
|
261
|
+
}
|
|
262
|
+
except ImportError:
|
|
263
|
+
pass
|
|
264
|
+
|
|
265
|
+
try:
|
|
266
|
+
from lfx.components.nvidia.nvidia import NVIDIAModelComponent
|
|
267
|
+
|
|
268
|
+
nvidia_inputs, nvidia_fields = _get_nvidia_inputs_and_fields()
|
|
269
|
+
MODEL_PROVIDERS_DICT["NVIDIA"] = {
|
|
270
|
+
"fields": nvidia_fields,
|
|
271
|
+
"inputs": nvidia_inputs,
|
|
272
|
+
"prefix": "",
|
|
273
|
+
"component_class": NVIDIAModelComponent(),
|
|
274
|
+
"icon": NVIDIAModelComponent.icon,
|
|
275
|
+
"is_active": False,
|
|
276
|
+
}
|
|
277
|
+
except ImportError:
|
|
278
|
+
pass
|
|
279
|
+
|
|
280
|
+
try:
|
|
281
|
+
from lfx.components.amazon.amazon_bedrock_model import AmazonBedrockComponent
|
|
282
|
+
|
|
283
|
+
bedrock_inputs, bedrock_fields = _get_amazon_bedrock_inputs_and_fields()
|
|
284
|
+
MODEL_PROVIDERS_DICT["Amazon Bedrock"] = {
|
|
285
|
+
"fields": bedrock_fields,
|
|
286
|
+
"inputs": bedrock_inputs,
|
|
287
|
+
"prefix": "",
|
|
288
|
+
"component_class": AmazonBedrockComponent(),
|
|
289
|
+
"icon": AmazonBedrockComponent.icon,
|
|
290
|
+
"is_active": False,
|
|
291
|
+
}
|
|
292
|
+
except ImportError:
|
|
293
|
+
pass
|
|
294
|
+
|
|
295
|
+
try:
|
|
296
|
+
from lfx.components.google.google_generative_ai import GoogleGenerativeAIComponent
|
|
297
|
+
|
|
298
|
+
google_generative_ai_inputs, google_generative_ai_fields = _get_google_generative_ai_inputs_and_fields()
|
|
299
|
+
MODEL_PROVIDERS_DICT["Google Generative AI"] = {
|
|
300
|
+
"fields": google_generative_ai_fields,
|
|
301
|
+
"inputs": google_generative_ai_inputs,
|
|
302
|
+
"prefix": "",
|
|
303
|
+
"component_class": GoogleGenerativeAIComponent(),
|
|
304
|
+
"icon": GoogleGenerativeAIComponent.icon,
|
|
305
|
+
"is_active": True,
|
|
306
|
+
}
|
|
307
|
+
except ImportError:
|
|
308
|
+
pass
|
|
309
|
+
|
|
310
|
+
try:
|
|
311
|
+
from lfx.components.sambanova.sambanova import SambaNovaComponent
|
|
312
|
+
|
|
313
|
+
sambanova_inputs, sambanova_fields = _get_sambanova_inputs_and_fields()
|
|
314
|
+
MODEL_PROVIDERS_DICT["SambaNova"] = {
|
|
315
|
+
"fields": sambanova_fields,
|
|
316
|
+
"inputs": sambanova_inputs,
|
|
317
|
+
"prefix": "",
|
|
318
|
+
"component_class": SambaNovaComponent(),
|
|
319
|
+
"icon": SambaNovaComponent.icon,
|
|
320
|
+
"is_active": False,
|
|
321
|
+
}
|
|
322
|
+
except ImportError:
|
|
323
|
+
pass
|
|
324
|
+
|
|
325
|
+
try:
|
|
326
|
+
from lfx.components.ibm.watsonx import WatsonxAIComponent
|
|
327
|
+
|
|
328
|
+
watsonx_inputs, watsonx_fields = _get_watsonx_inputs_and_fields()
|
|
329
|
+
MODEL_PROVIDERS_DICT["IBM watsonx.ai"] = {
|
|
330
|
+
"fields": watsonx_fields,
|
|
331
|
+
"inputs": watsonx_inputs,
|
|
332
|
+
"prefix": "",
|
|
333
|
+
"component_class": WatsonxAIComponent(),
|
|
334
|
+
"icon": WatsonxAIComponent.icon,
|
|
335
|
+
"is_active": True,
|
|
336
|
+
}
|
|
337
|
+
except ImportError:
|
|
338
|
+
pass
|
|
339
|
+
|
|
340
|
+
try:
|
|
341
|
+
from lfx.components.ollama.ollama import ChatOllamaComponent
|
|
342
|
+
|
|
343
|
+
ollama_inputs, ollama_fields = _get_ollama_inputs_and_fields()
|
|
344
|
+
MODEL_PROVIDERS_DICT["Ollama"] = {
|
|
345
|
+
"fields": ollama_fields,
|
|
346
|
+
"inputs": ollama_inputs,
|
|
347
|
+
"prefix": "",
|
|
348
|
+
"component_class": ChatOllamaComponent(),
|
|
349
|
+
"icon": ChatOllamaComponent.icon,
|
|
350
|
+
"is_active": True,
|
|
351
|
+
}
|
|
352
|
+
except ImportError:
|
|
353
|
+
pass
|
|
354
|
+
|
|
355
|
+
# Expose only active providers ----------------------------------------------
|
|
356
|
+
ACTIVE_MODEL_PROVIDERS_DICT: dict[str, ModelProvidersDict] = {
|
|
357
|
+
name: prov for name, prov in MODEL_PROVIDERS_DICT.items() if prov.get("is_active", True)
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
MODEL_PROVIDERS: list[str] = list(ACTIVE_MODEL_PROVIDERS_DICT.keys())
|
|
361
|
+
|
|
362
|
+
ALL_PROVIDER_FIELDS: list[str] = [field for prov in ACTIVE_MODEL_PROVIDERS_DICT.values() for field in prov["fields"]]
|
|
363
|
+
|
|
364
|
+
MODEL_DYNAMIC_UPDATE_FIELDS = [
|
|
365
|
+
"api_key",
|
|
366
|
+
"model",
|
|
367
|
+
"tool_model_enabled",
|
|
368
|
+
"base_url",
|
|
369
|
+
"model_name",
|
|
370
|
+
"watsonx_endpoint",
|
|
371
|
+
"url",
|
|
372
|
+
]
|
|
373
|
+
|
|
374
|
+
MODELS_METADATA = {name: {"icon": prov["icon"]} for name, prov in ACTIVE_MODEL_PROVIDERS_DICT.items()}
|
|
375
|
+
|
|
376
|
+
MODEL_PROVIDERS_LIST = ["Anthropic", "Google Generative AI", "OpenAI", "IBM watsonx.ai", "Ollama"]
|
|
377
|
+
|
|
378
|
+
MODEL_OPTIONS_METADATA = [MODELS_METADATA[key] for key in MODEL_PROVIDERS_LIST if key in MODELS_METADATA]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from typing import TypedDict
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ModelMetadata(TypedDict, total=False):
|
|
5
|
+
"""Simple model metadata structure."""
|
|
6
|
+
|
|
7
|
+
provider: str # Provider name (e.g., "anthropic", "groq", "openai")
|
|
8
|
+
name: str # Model name/ID
|
|
9
|
+
icon: str # Icon name for UI
|
|
10
|
+
tool_calling: bool # Whether model supports tool calling (defaults to False)
|
|
11
|
+
reasoning: bool # Reasoning models (defaults to False)
|
|
12
|
+
search: bool # Search models (defaults to False)
|
|
13
|
+
preview: bool # Whether model is in preview/beta (defaults to False)
|
|
14
|
+
not_supported: bool # Whether model is not supported or deprecated (defaults to False)
|
|
15
|
+
deprecated: bool # Whether model is deprecated (defaults to False)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def create_model_metadata(
|
|
19
|
+
provider: str,
|
|
20
|
+
name: str,
|
|
21
|
+
icon: str,
|
|
22
|
+
*,
|
|
23
|
+
tool_calling: bool = False,
|
|
24
|
+
reasoning: bool = False,
|
|
25
|
+
search: bool = False,
|
|
26
|
+
preview: bool = False,
|
|
27
|
+
not_supported: bool = False,
|
|
28
|
+
deprecated: bool = False,
|
|
29
|
+
) -> ModelMetadata:
|
|
30
|
+
"""Helper function to create ModelMetadata with explicit defaults."""
|
|
31
|
+
return ModelMetadata(
|
|
32
|
+
provider=provider,
|
|
33
|
+
name=name,
|
|
34
|
+
icon=icon,
|
|
35
|
+
tool_calling=tool_calling,
|
|
36
|
+
reasoning=reasoning,
|
|
37
|
+
search=search,
|
|
38
|
+
preview=preview,
|
|
39
|
+
not_supported=not_supported,
|
|
40
|
+
deprecated=deprecated,
|
|
41
|
+
)
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
from urllib.parse import urljoin
|
|
3
|
+
|
|
4
|
+
import httpx
|
|
5
|
+
|
|
6
|
+
from lfx.log.logger import logger
|
|
7
|
+
from lfx.utils.util import transform_localhost_url
|
|
8
|
+
|
|
9
|
+
HTTP_STATUS_OK = 200
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def get_model_name(llm, display_name: str | None = "Custom"):
|
|
13
|
+
attributes_to_check = ["model_name", "model", "model_id", "deployment_name"]
|
|
14
|
+
|
|
15
|
+
# Use a generator expression with next() to find the first matching attribute
|
|
16
|
+
model_name = next((getattr(llm, attr) for attr in attributes_to_check if hasattr(llm, attr)), None)
|
|
17
|
+
|
|
18
|
+
# If no matching attribute is found, return the class name as a fallback
|
|
19
|
+
return model_name if model_name is not None else display_name
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
async def is_valid_ollama_url(url: str) -> bool:
|
|
23
|
+
"""Check if the provided URL is a valid Ollama API endpoint."""
|
|
24
|
+
try:
|
|
25
|
+
url = transform_localhost_url(url)
|
|
26
|
+
if not url:
|
|
27
|
+
return False
|
|
28
|
+
# Strip /v1 suffix if present, as Ollama API endpoints are at root level
|
|
29
|
+
url = url.rstrip("/").removesuffix("/v1")
|
|
30
|
+
if not url.endswith("/"):
|
|
31
|
+
url = url + "/"
|
|
32
|
+
async with httpx.AsyncClient() as client:
|
|
33
|
+
return (await client.get(url=urljoin(url, "api/tags"))).status_code == HTTP_STATUS_OK
|
|
34
|
+
except httpx.RequestError:
|
|
35
|
+
logger.debug(f"Invalid Ollama URL: {url}")
|
|
36
|
+
return False
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
async def get_ollama_models(
|
|
40
|
+
base_url_value: str, desired_capability: str, json_models_key: str, json_name_key: str, json_capabilities_key: str
|
|
41
|
+
) -> list[str]:
|
|
42
|
+
"""Fetch available completion models from the Ollama API.
|
|
43
|
+
|
|
44
|
+
Filters out embedding models and only returns models with completion capability.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
base_url_value (str): The base URL of the Ollama API.
|
|
48
|
+
desired_capability (str): The desired capability of the model.
|
|
49
|
+
json_models_key (str): The key in the JSON response that contains the models.
|
|
50
|
+
json_name_key (str): The key in the JSON response that contains the model names.
|
|
51
|
+
json_capabilities_key (str): The key in the JSON response that contains the model capabilities.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
list[str]: A sorted list of model names that support completion.
|
|
55
|
+
|
|
56
|
+
Raises:
|
|
57
|
+
ValueError: If there is an issue with the API request or response.
|
|
58
|
+
"""
|
|
59
|
+
try:
|
|
60
|
+
# Strip /v1 suffix if present, as Ollama API endpoints are at root level
|
|
61
|
+
base_url = base_url_value.rstrip("/").removesuffix("/v1")
|
|
62
|
+
if not base_url.endswith("/"):
|
|
63
|
+
base_url = base_url + "/"
|
|
64
|
+
base_url = transform_localhost_url(base_url)
|
|
65
|
+
|
|
66
|
+
# Ollama REST API to return models
|
|
67
|
+
tags_url = urljoin(base_url, "api/tags")
|
|
68
|
+
|
|
69
|
+
# Ollama REST API to return model capabilities
|
|
70
|
+
show_url = urljoin(base_url, "api/show")
|
|
71
|
+
tags_response = None
|
|
72
|
+
|
|
73
|
+
async with httpx.AsyncClient() as client:
|
|
74
|
+
# Fetch available models
|
|
75
|
+
tags_response = await client.get(url=tags_url)
|
|
76
|
+
tags_response.raise_for_status()
|
|
77
|
+
models = tags_response.json()
|
|
78
|
+
if asyncio.iscoroutine(models):
|
|
79
|
+
models = await models
|
|
80
|
+
await logger.adebug(f"Available models: {models}")
|
|
81
|
+
|
|
82
|
+
# Filter models that are NOT embedding models
|
|
83
|
+
model_ids = []
|
|
84
|
+
for model in models.get(json_models_key, []):
|
|
85
|
+
model_name = model.get(json_name_key)
|
|
86
|
+
if not model_name:
|
|
87
|
+
continue
|
|
88
|
+
await logger.adebug(f"Checking model: {model_name}")
|
|
89
|
+
|
|
90
|
+
payload = {"model": model_name}
|
|
91
|
+
show_response = await client.post(url=show_url, json=payload)
|
|
92
|
+
show_response.raise_for_status()
|
|
93
|
+
json_data = show_response.json()
|
|
94
|
+
if asyncio.iscoroutine(json_data):
|
|
95
|
+
json_data = await json_data
|
|
96
|
+
|
|
97
|
+
capabilities = json_data.get(json_capabilities_key, [])
|
|
98
|
+
await logger.adebug(f"Model: {model_name}, Capabilities: {capabilities}")
|
|
99
|
+
|
|
100
|
+
if desired_capability in capabilities:
|
|
101
|
+
model_ids.append(model_name)
|
|
102
|
+
|
|
103
|
+
return sorted(model_ids)
|
|
104
|
+
|
|
105
|
+
except (httpx.RequestError, ValueError) as e:
|
|
106
|
+
msg = "Could not get model names from Ollama."
|
|
107
|
+
await logger.aexception(msg)
|
|
108
|
+
raise ValueError(msg) from e
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
NOVITA_MODELS = [
|
|
2
|
+
"deepseek/deepseek-r1",
|
|
3
|
+
"deepseek/deepseek_v3",
|
|
4
|
+
"meta-llama/llama-3.3-70b-instruct",
|
|
5
|
+
"meta-llama/llama-3.1-8b-instruct",
|
|
6
|
+
"meta-llama/llama-3.1-70b-instruct",
|
|
7
|
+
"mistralai/mistral-nemo",
|
|
8
|
+
"Sao10K/L3-8B-Stheno-v3.2",
|
|
9
|
+
"gryphe/mythomax-l2-13b",
|
|
10
|
+
"qwen/qwen-2.5-72b-instruct",
|
|
11
|
+
"meta-llama/llama-3-8b-instruct",
|
|
12
|
+
"microsoft/wizardlm-2-8x22b",
|
|
13
|
+
"google/gemma-2-9b-it",
|
|
14
|
+
"mistralai/mistral-7b-instruct",
|
|
15
|
+
"meta-llama/llama-3-70b-instruct",
|
|
16
|
+
"openchat/openchat-7b",
|
|
17
|
+
"nousresearch/hermes-2-pro-llama-3-8b",
|
|
18
|
+
"sao10k/l3-70b-euryale-v2.1",
|
|
19
|
+
"cognitivecomputations/dolphin-mixtral-8x22b",
|
|
20
|
+
"jondurbin/airoboros-l2-70b",
|
|
21
|
+
"nousresearch/nous-hermes-llama2-13b",
|
|
22
|
+
"teknium/openhermes-2.5-mistral-7b",
|
|
23
|
+
"sophosympatheia/midnight-rose-70b",
|
|
24
|
+
"meta-llama/llama-3.1-8b-instruct-max",
|
|
25
|
+
"sao10k/l3-8b-lunaris",
|
|
26
|
+
"qwen/qwen-2-vl-72b-instruct",
|
|
27
|
+
"meta-llama/llama-3.2-1b-instruct",
|
|
28
|
+
"meta-llama/llama-3.2-11b-vision-instruct",
|
|
29
|
+
"meta-llama/llama-3.2-3b-instruct",
|
|
30
|
+
"meta-llama/llama-3.1-8b-instruct-bf16",
|
|
31
|
+
"sao10k/l31-70b-euryale-v2.2",
|
|
32
|
+
"qwen/qwen-2-7b-instruct",
|
|
33
|
+
"qwen/qwen-2-72b-instruct",
|
|
34
|
+
]
|
|
35
|
+
MODEL_NAMES = NOVITA_MODELS # reverse compatibility
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# https://ollama.com/search?c=embedding
|
|
2
|
+
OLLAMA_EMBEDDING_MODELS = [
|
|
3
|
+
"nomic-embed-text",
|
|
4
|
+
"mxbai-embed-large",
|
|
5
|
+
"snowflake-arctic-embed",
|
|
6
|
+
"all-minilm",
|
|
7
|
+
"bge-m3",
|
|
8
|
+
"bge-large",
|
|
9
|
+
"paraphrase-multilingual",
|
|
10
|
+
"granite-embedding",
|
|
11
|
+
"jina-embeddings-v2-base-en",
|
|
12
|
+
]
|
|
13
|
+
# https://ollama.com/search?c=tools
|
|
14
|
+
OLLAMA_TOOL_MODELS_BASE = [
|
|
15
|
+
"llama3.3",
|
|
16
|
+
"qwq",
|
|
17
|
+
"llama3.2",
|
|
18
|
+
"llama3.1",
|
|
19
|
+
"mistral",
|
|
20
|
+
"qwen2",
|
|
21
|
+
"qwen2.5",
|
|
22
|
+
"qwen2.5-coder",
|
|
23
|
+
"mistral-nemo",
|
|
24
|
+
"mixtral",
|
|
25
|
+
"command-r",
|
|
26
|
+
"command-r-plus",
|
|
27
|
+
"mistral-large",
|
|
28
|
+
"smollm2",
|
|
29
|
+
"hermes3",
|
|
30
|
+
"athene-v2",
|
|
31
|
+
"mistral-small",
|
|
32
|
+
"nemotron-mini",
|
|
33
|
+
"nemotron",
|
|
34
|
+
"llama3-groq-tool-use",
|
|
35
|
+
"granite3-dense",
|
|
36
|
+
"granite3.1-dense",
|
|
37
|
+
"aya-expanse",
|
|
38
|
+
"granite3-moe",
|
|
39
|
+
"firefunction-v2",
|
|
40
|
+
"cogito",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
URL_LIST = [
|
|
45
|
+
"http://localhost:11434",
|
|
46
|
+
"http://host.docker.internal:11434",
|
|
47
|
+
"http://127.0.0.1:11434",
|
|
48
|
+
"http://0.0.0.0:11434",
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
DEFAULT_OLLAMA_API_URL = "https://ollama.com"
|