langflow-base-nightly 0.5.0.dev37__py3-none-any.whl → 0.5.0.dev38__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.
- langflow/__main__.py +1 -1
- langflow/alembic/versions/4e5980a44eaa_fix_date_times_again.py +24 -30
- langflow/alembic/versions/58b28437a398_modify_nullable.py +6 -6
- langflow/alembic/versions/79e675cb6752_change_datetime_type.py +24 -30
- langflow/alembic/versions/b2fa308044b5_add_unique_constraints.py +12 -13
- langflow/api/build.py +21 -26
- langflow/api/health_check_router.py +3 -3
- langflow/api/utils.py +3 -3
- langflow/api/v1/callback.py +2 -2
- langflow/api/v1/chat.py +19 -31
- langflow/api/v1/endpoints.py +10 -10
- langflow/api/v1/flows.py +1 -1
- langflow/api/v1/knowledge_bases.py +3 -3
- langflow/api/v1/mcp.py +12 -12
- langflow/api/v1/mcp_projects.py +45 -81
- langflow/api/v1/mcp_utils.py +8 -8
- langflow/api/v1/schemas.py +1 -5
- langflow/api/v1/store.py +1 -1
- langflow/api/v1/validate.py +2 -2
- langflow/api/v1/voice_mode.py +58 -62
- langflow/api/v2/files.py +2 -2
- langflow/api/v2/mcp.py +10 -9
- langflow/base/composio/composio_base.py +21 -2
- langflow/base/data/docling_utils.py +194 -0
- langflow/base/embeddings/aiml_embeddings.py +1 -1
- langflow/base/flow_processing/utils.py +1 -2
- langflow/base/io/__init__.py +0 -1
- langflow/base/langwatch/utils.py +2 -1
- langflow/base/mcp/util.py +49 -47
- langflow/base/prompts/api_utils.py +1 -1
- langflow/base/tools/flow_tool.py +2 -2
- langflow/base/tools/run_flow.py +2 -6
- langflow/components/Notion/add_content_to_page.py +2 -2
- langflow/components/Notion/list_database_properties.py +2 -2
- langflow/components/Notion/list_pages.py +2 -2
- langflow/components/Notion/page_content_viewer.py +2 -2
- langflow/components/Notion/update_page_property.py +1 -1
- langflow/components/agentql/agentql_api.py +2 -10
- langflow/components/agents/agent.py +3 -3
- langflow/components/agents/mcp_component.py +14 -14
- langflow/components/anthropic/anthropic.py +5 -4
- langflow/components/assemblyai/assemblyai_get_subtitles.py +2 -2
- langflow/components/assemblyai/assemblyai_lemur.py +2 -2
- langflow/components/assemblyai/assemblyai_list_transcripts.py +2 -2
- langflow/components/assemblyai/assemblyai_poll_transcript.py +2 -2
- langflow/components/assemblyai/assemblyai_start_transcript.py +2 -2
- langflow/components/data/file.py +575 -55
- langflow/components/data/url.py +1 -1
- langflow/components/datastax/astra_assistant_manager.py +3 -3
- langflow/components/datastax/create_assistant.py +1 -2
- langflow/components/deactivated/merge_data.py +1 -2
- langflow/components/deactivated/sub_flow.py +6 -7
- langflow/components/deactivated/vectara_self_query.py +3 -3
- langflow/components/docling/__init__.py +0 -198
- langflow/components/docling/docling_inline.py +1 -1
- langflow/components/embeddings/text_embedder.py +3 -3
- langflow/components/firecrawl/firecrawl_extract_api.py +2 -9
- langflow/components/google/gmail.py +1 -1
- langflow/components/google/google_generative_ai.py +5 -11
- langflow/components/groq/groq.py +4 -3
- langflow/components/helpers/current_date.py +2 -3
- langflow/components/helpers/memory.py +1 -1
- langflow/components/ibm/watsonx.py +1 -1
- langflow/components/ibm/watsonx_embeddings.py +1 -1
- langflow/components/langwatch/langwatch.py +3 -3
- langflow/components/logic/flow_tool.py +2 -2
- langflow/components/logic/notify.py +1 -1
- langflow/components/logic/run_flow.py +2 -3
- langflow/components/logic/sub_flow.py +4 -5
- langflow/components/mem0/mem0_chat_memory.py +2 -8
- langflow/components/nvidia/nvidia.py +3 -3
- langflow/components/olivya/olivya.py +7 -7
- langflow/components/ollama/ollama.py +8 -6
- langflow/components/processing/batch_run.py +8 -8
- langflow/components/processing/data_operations.py +2 -2
- langflow/components/processing/merge_data.py +1 -2
- langflow/components/processing/message_to_data.py +2 -3
- langflow/components/processing/parse_json_data.py +1 -1
- langflow/components/prototypes/python_function.py +2 -3
- langflow/components/serpapi/serp.py +1 -1
- langflow/components/tavily/tavily_extract.py +1 -1
- langflow/components/tavily/tavily_search.py +1 -1
- langflow/components/tools/calculator.py +2 -2
- langflow/components/tools/python_code_structured_tool.py +3 -10
- langflow/components/tools/python_repl.py +2 -2
- langflow/components/tools/searxng.py +3 -3
- langflow/components/tools/serp_api.py +2 -2
- langflow/components/tools/tavily_search_tool.py +2 -2
- langflow/components/tools/yahoo_finance.py +1 -1
- langflow/components/twelvelabs/video_embeddings.py +4 -4
- langflow/components/vectorstores/local_db.py +1 -1
- langflow/components/yahoosearch/yahoo.py +1 -1
- langflow/components/youtube/trending.py +3 -4
- langflow/custom/attributes.py +2 -1
- langflow/custom/code_parser/code_parser.py +1 -1
- langflow/custom/custom_component/base_component.py +1 -1
- langflow/custom/custom_component/component.py +16 -2
- langflow/custom/directory_reader/directory_reader.py +7 -7
- langflow/custom/directory_reader/utils.py +1 -2
- langflow/custom/utils.py +30 -30
- langflow/events/event_manager.py +1 -1
- langflow/frontend/assets/{SlackIcon-CnvyOamQ.js → SlackIcon-BhW6H3JR.js} +1 -1
- langflow/frontend/assets/{Wikipedia-nyTEXdr2.js → Wikipedia-Dx5jbiy3.js} +1 -1
- langflow/frontend/assets/{Wolfram-BYMQkNSq.js → Wolfram-CIyonzwo.js} +1 -1
- langflow/frontend/assets/{index-HK3bVMYA.js → index-0XQqYgdG.js} +1 -1
- langflow/frontend/assets/{index-BZgXW854.js → index-1Q3VBqKn.js} +1 -1
- langflow/frontend/assets/{index-BQ6NUdMY.js → index-35sspuLu.js} +1 -1
- langflow/frontend/assets/{index-DPCzHdsC.js → index-7hzXChQz.js} +1 -1
- langflow/frontend/assets/{index-CFDvOtKC.js → index-8cuhogZP.js} +1 -1
- langflow/frontend/assets/{index-CYDAYm-i.js → index-B0m53xKd.js} +1 -1
- langflow/frontend/assets/{index-Q9vDw0Xl.js → index-B1XqWJhG.js} +1 -1
- langflow/frontend/assets/{index-Gkrq-vzm.js → index-B3KCdQ91.js} +1 -1
- langflow/frontend/assets/{index-DytJENYD.js → index-B7uEuOPK.js} +1 -1
- langflow/frontend/assets/{index-DkXy1WFo.js → index-B8UR8v-Q.js} +1 -1
- langflow/frontend/assets/{index-BChjg6Az.js → index-BD7Io1hL.js} +6 -6
- langflow/frontend/assets/{index-CyPvTB63.js → index-BDQrd7Tj.js} +1 -1
- langflow/frontend/assets/{index-BbJjt5m4.js → index-BDuk0d7P.js} +1 -1
- langflow/frontend/assets/{index-BBxAPk1y.js → index-BFQ8KFK0.js} +1 -1
- langflow/frontend/assets/{index-BqPpO6KG.js → index-BFf0HTFI.js} +1 -1
- langflow/frontend/assets/{index-yCHsaqs8.js → index-BHhnpSkW.js} +1 -1
- langflow/frontend/assets/{index-Bd6WtbKA.js → index-BKKrUElc.js} +1 -1
- langflow/frontend/assets/{index-DHq8TQPB.js → index-BKeZt2hQ.js} +1 -1
- langflow/frontend/assets/{index-BCCGvqay.js → index-BKlQbl-6.js} +1 -1
- langflow/frontend/assets/{index-Boso-xEw.js → index-BLYw9MK2.js} +1 -1
- langflow/frontend/assets/{index-DmMDPoi0.js → index-BLsVo9iW.js} +1 -1
- langflow/frontend/assets/{index-Car-zdor.js → index-BNQIbda3.js} +1 -1
- langflow/frontend/assets/{index-Dg-63Si_.js → index-BPR2mEFC.js} +1 -1
- langflow/frontend/assets/{index-CTrt1Q_j.js → index-BPfdqCc_.js} +1 -1
- langflow/frontend/assets/{index-CVQmT7ZL.js → index-BQrVDjR1.js} +1 -1
- langflow/frontend/assets/{index-BB15_iOb.js → index-BRmSeoWR.js} +1 -1
- langflow/frontend/assets/{index-BX5D-USa.js → index-BUse-kxM.js} +1 -1
- langflow/frontend/assets/{index-CaQ_H9ww.js → index-BVFaF7HW.js} +1 -1
- langflow/frontend/assets/{index-C26RqKWL.js → index-BWgIWfv2.js} +1 -1
- langflow/frontend/assets/{index-DbMFlnHE.js → index-BWt5xGeA.js} +1 -1
- langflow/frontend/assets/{index-Db71w3lq.js → index-BYhcGLTV.js} +1 -1
- langflow/frontend/assets/{index-DzW2mfkK.js → index-BYjw7Gk3.js} +1 -1
- langflow/frontend/assets/{index-DJB12jIC.js → index-BZFljdMa.js} +1 -1
- langflow/frontend/assets/{index-nVwHLjuV.js → index-BcAgItH4.js} +1 -1
- langflow/frontend/assets/{index-DkelbYy7.js → index-Bct1s6__.js} +1 -1
- langflow/frontend/assets/{index-ChXJpBz4.js → index-Bhv79Zso.js} +1 -1
- langflow/frontend/assets/{index-BxEuHa76.js → index-Bj3lSwvZ.js} +1 -1
- langflow/frontend/assets/{index-BkPYpfgw.js → index-Bk4mTwnI.js} +1 -1
- langflow/frontend/assets/{index-BvT7L317.js → index-BmIx1cws.js} +1 -1
- langflow/frontend/assets/{index-DIDDfmlJ.js → index-BmYJJ5YS.js} +1 -1
- langflow/frontend/assets/{index-C7QWbnLK.js → index-BnAFhkSN.js} +1 -1
- langflow/frontend/assets/{index-CJo_cyWW.js → index-Bo-ww0Bb.js} +1 -1
- langflow/frontend/assets/{index-DjQETUy8.js → index-BpmqDOeZ.js} +1 -1
- langflow/frontend/assets/{index-ya2uXE8v.js → index-BrVhdPZb.js} +1 -1
- langflow/frontend/assets/{index-DCRk27Tp.js → index-BvGQfVBD.js} +1 -1
- langflow/frontend/assets/{index-BTrsh9LS.js → index-Bwi4flFg.js} +1 -1
- langflow/frontend/assets/{index-BRxvproo.js → index-BzoRPtTY.js} +1 -1
- langflow/frontend/assets/{index-BIQQCMvz.js → index-C--IDAyc.js} +1 -1
- langflow/frontend/assets/{index-DfngcQxO.js → index-C0E3_MIK.js} +1 -1
- langflow/frontend/assets/{index-Bvxg4_ux.js → index-C27Jj_26.js} +1 -1
- langflow/frontend/assets/{index-D8lOi1GI.js → index-C2eQmQsn.js} +1 -1
- langflow/frontend/assets/{index-rXV1G1aB.js → index-C8K0r39B.js} +1 -1
- langflow/frontend/assets/{index-B3Sur4Z3.js → index-CEJNWPhA.js} +1 -1
- langflow/frontend/assets/{index-BR0bkVqX.js → index-CFNTYfFK.js} +1 -1
- langflow/frontend/assets/{index-Bnqod3vk.js → index-CMHpjHZl.js} +1 -1
- langflow/frontend/assets/{index-BLGYN-9b.js → index-CSu8KHOi.js} +1 -1
- langflow/frontend/assets/{index-BOB_zsjl.js → index-CUKmGsI6.js} +1 -1
- langflow/frontend/assets/{index-BzEUlaw_.js → index-CWYiSeWV.js} +1 -1
- langflow/frontend/assets/{index-DVlceYFD.js → index-CY7_TBTC.js} +1 -1
- langflow/frontend/assets/{index-D3DDfngy.js → index-CbnWRlYY.js} +1 -1
- langflow/frontend/assets/{index-cvZdgWHQ.js → index-CfPBgkqg.js} +1 -1
- langflow/frontend/assets/{index-Ui4xUImO.js → index-Cg53lrYh.js} +1 -1
- langflow/frontend/assets/{index-C6jri9Wm.js → index-CgU7KF4I.js} +1 -1
- langflow/frontend/assets/{index-BVEZDXxS.js → index-CgwykVGh.js} +1 -1
- langflow/frontend/assets/{index-BOeo01QB.js → index-Ch5r0oW6.js} +1 -1
- langflow/frontend/assets/{index-D6PSjHxP.js → index-CjsommIr.js} +1 -1
- langflow/frontend/assets/{index-pCQ_yw8m.js → index-CkK25zZO.js} +1 -1
- langflow/frontend/assets/{index-BFp_O-c9.js → index-CkjwSTSM.js} +1 -1
- langflow/frontend/assets/{index-Du_18NCU.js → index-CmSFKgiD.js} +1 -1
- langflow/frontend/assets/{index-BvwZfF2i.js → index-Cr5v2ave.js} +1 -1
- langflow/frontend/assets/{index-FUxmznS-.js → index-CrAF-31Y.js} +1 -1
- langflow/frontend/assets/{index-C-2hghRJ.js → index-CsLQiWNf.js} +1 -1
- langflow/frontend/assets/{index-C_TdzfAn.js → index-CuCM7Wu7.js} +1 -1
- langflow/frontend/assets/{index-D5_DsUJc.js → index-Cxy9sEpy.js} +1 -1
- langflow/frontend/assets/{index-C_veJlEb.js → index-CyP3py8K.js} +1 -1
- langflow/frontend/assets/{index-OazXJdEl.js → index-CzHzeZuA.js} +1 -1
- langflow/frontend/assets/{index-CvcEzq4x.js → index-D1oynC8a.js} +1 -1
- langflow/frontend/assets/{index-CZQ9rXNa.js → index-D4tjMhfY.js} +1 -1
- langflow/frontend/assets/{index-B1YN7oMV.js → index-D6CSIrp1.js} +1 -1
- langflow/frontend/assets/{index-DfxYyS3M.js → index-D9kwEzPB.js} +1 -1
- langflow/frontend/assets/{index-BbRm7beF.js → index-DDXsm8tz.js} +1 -1
- langflow/frontend/assets/{index-xuIrH2Dq.js → index-DDhJVVel.js} +1 -1
- langflow/frontend/assets/{index-CmplyEaa.js → index-DH6o91_s.js} +1 -1
- langflow/frontend/assets/{index-DnEGCgih.js → index-DHngW1k8.js} +1 -1
- langflow/frontend/assets/{index-ajRge-Mg.js → index-DIKUsGLF.js} +1 -1
- langflow/frontend/assets/{index-DpClkXIV.js → index-DJESSNJi.js} +1 -1
- langflow/frontend/assets/{index-8WdfSTTz.js → index-DMCWDJOl.js} +1 -1
- langflow/frontend/assets/{index-DZTC5pdT.js → index-DOEvKC2X.js} +1 -1
- langflow/frontend/assets/{index-DysKpOuj.js → index-DOQDkSoK.js} +1 -1
- langflow/frontend/assets/{index-C82JjCPD.js → index-DXAfIEvs.js} +1 -1
- langflow/frontend/assets/{index-D8GJngXa.js → index-DZP_SaHb.js} +1 -1
- langflow/frontend/assets/{index-DIkNW9Cd.js → index-DZxUIhWh.js} +1 -1
- langflow/frontend/assets/{index-DK1Ptcc4.js → index-Dda2u_yz.js} +1 -1
- langflow/frontend/assets/{index-BWmPX4iQ.js → index-Dg8N3NSO.js} +1 -1
- langflow/frontend/assets/{index-CWdkbVsd.js → index-DkGhPNeA.js} +1 -1
- langflow/frontend/assets/{index-DF5VwgU6.js → index-Dka_Rk4-.js} +1 -1
- langflow/frontend/assets/{index-Bsa0xZyL.js → index-DljpLeCW.js} +1 -1
- langflow/frontend/assets/{index-CLPdN-q6.js → index-DnVYJtVO.js} +1 -1
- langflow/frontend/assets/{index-CxvP91st.js → index-DqbzUcI5.js} +1 -1
- langflow/frontend/assets/{index-BIzTEqFh.js → index-Dr6pVDPI.js} +1 -1
- langflow/frontend/assets/{index-tVYiABdp.js → index-DsoX2o1S.js} +1 -1
- langflow/frontend/assets/{index-CCePCqkT.js → index-DwfHWnX7.js} +1 -1
- langflow/frontend/assets/{index-BEMw2Np8.js → index-Dx-Z87KT.js} +1 -1
- langflow/frontend/assets/{index-BRYjyhAd.js → index-DyqITq51.js} +1 -1
- langflow/frontend/assets/{index-l7bzB8Ex.js → index-DzIv3RyR.js} +1 -1
- langflow/frontend/assets/{index-D-9TI74R.js → index-G4ro0MjT.js} +1 -1
- langflow/frontend/assets/{index-CCxGSSTT.js → index-H7J7w7fa.js} +1 -1
- langflow/frontend/assets/{index-_UcqeEjm.js → index-KWY77KfV.js} +1 -1
- langflow/frontend/assets/{index-Dqd4RjYA.js → index-U9GWm1eH.js} +1 -1
- langflow/frontend/assets/{index-Dq5ilsem.js → index-Un9pWxnP.js} +1 -1
- langflow/frontend/assets/{index-BzL_EoKd.js → index-Xi4TplbI.js} +1 -1
- langflow/frontend/assets/{index-LbYjHKkn.js → index-_cbGmjF4.js} +1 -1
- langflow/frontend/assets/{index-DGRMNe9n.js → index-cEXY6V06.js} +1 -1
- langflow/frontend/assets/{index-8yMsjVV2.js → index-dyXKnkMi.js} +1 -1
- langflow/frontend/assets/{index-DKHNourL.js → index-eUkS6iJM.js} +1 -1
- langflow/frontend/assets/{index-Bv8h2Z-q.js → index-ekfMOqrF.js} +1 -1
- langflow/frontend/assets/{index-B748uLP1.js → index-gdb7XMS8.js} +1 -1
- langflow/frontend/assets/{index-CpvYQ0ug.js → index-hZUcL0MZ.js} +1 -1
- langflow/frontend/assets/{index-BIXaW2aY.js → index-kkA-qHB_.js} +1 -1
- langflow/frontend/assets/{index-BhIOhlCH.js → index-mzl9ULw5.js} +1 -1
- langflow/frontend/assets/{index-CYe8Ipef.js → index-oxHBZk2v.js} +1 -1
- langflow/frontend/assets/{index-WPFivmdQ.js → index-p2kStSPe.js} +1 -1
- langflow/frontend/assets/{index-BmX5CoED.js → index-paQEWYGT.js} +1 -1
- langflow/frontend/assets/{index-CpcbQZIF.js → index-r_8gs4nL.js} +1 -1
- langflow/frontend/assets/{index-dcnYpT9N.js → index-uiKla4UR.js} +1 -1
- langflow/frontend/assets/{index-BTEW9e8P.js → index-vJOO5U8M.js} +1 -1
- langflow/frontend/assets/{index-CQMoqLAu.js → index-w72fDjpG.js} +1 -1
- langflow/frontend/assets/{index-Dsps-jKu.js → index-zV82kQ6k.js} +1 -1
- langflow/frontend/assets/lazyIconImports-DTNgvPE-.js +2 -0
- langflow/frontend/assets/{use-post-add-user-BrBYH9eR.js → use-post-add-user-CvtuazTg.js} +1 -1
- langflow/frontend/index.html +1 -1
- langflow/graph/edge/base.py +2 -3
- langflow/graph/graph/base.py +14 -12
- langflow/graph/graph/constants.py +3 -0
- langflow/graph/utils.py +6 -6
- langflow/graph/vertex/base.py +4 -5
- langflow/graph/vertex/param_handler.py +1 -1
- langflow/graph/vertex/vertex_types.py +2 -2
- langflow/helpers/flow.py +1 -1
- langflow/initial_setup/setup.py +32 -30
- langflow/initial_setup/starter_projects/Blog Writer.json +2 -2
- langflow/initial_setup/starter_projects/Custom Component Generator.json +2 -2
- langflow/initial_setup/starter_projects/Document Q&A.json +1 -1
- langflow/initial_setup/starter_projects/Instagram Copywriter.json +3 -3
- langflow/initial_setup/starter_projects/Invoice Summarizer.json +1 -1
- langflow/initial_setup/starter_projects/Knowledge Ingestion.json +2 -2
- langflow/initial_setup/starter_projects/Market Research.json +3 -3
- langflow/initial_setup/starter_projects/Meeting Summary.json +6 -6
- langflow/initial_setup/starter_projects/Memory Chatbot.json +2 -2
- langflow/initial_setup/starter_projects/News Aggregator.json +3 -3
- langflow/initial_setup/starter_projects/Nvidia Remix.json +3 -3
- langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +1 -1
- langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +1 -1
- langflow/initial_setup/starter_projects/Price Deal Finder.json +5 -5
- langflow/initial_setup/starter_projects/Research Agent.json +3 -3
- langflow/initial_setup/starter_projects/SaaS Pricing.json +1 -1
- langflow/initial_setup/starter_projects/Search agent.json +1 -1
- langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +7 -7
- langflow/initial_setup/starter_projects/Simple Agent.json +3 -3
- langflow/initial_setup/starter_projects/Social Media Agent.json +1 -1
- langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +1 -1
- langflow/initial_setup/starter_projects/Travel Planning Agents.json +3 -3
- langflow/initial_setup/starter_projects/Vector Store RAG.json +1 -1
- langflow/initial_setup/starter_projects/Youtube Analysis.json +3 -3
- langflow/interface/components.py +23 -22
- langflow/interface/initialize/loading.py +5 -5
- langflow/interface/run.py +1 -1
- langflow/interface/utils.py +1 -1
- langflow/io/__init__.py +0 -1
- langflow/langflow_launcher.py +1 -1
- langflow/load/load.py +2 -7
- langflow/logging/__init__.py +0 -1
- langflow/logging/logger.py +191 -115
- langflow/logging/setup.py +1 -1
- langflow/main.py +37 -52
- langflow/memory.py +7 -7
- langflow/middleware.py +1 -1
- langflow/processing/process.py +3 -3
- langflow/schema/artifact.py +2 -2
- langflow/schema/data.py +10 -2
- langflow/schema/dataframe.py +1 -1
- langflow/schema/message.py +1 -1
- langflow/serialization/serialization.py +1 -1
- langflow/services/auth/utils.py +2 -2
- langflow/services/cache/disk.py +1 -1
- langflow/services/cache/service.py +3 -3
- langflow/services/database/models/flow/model.py +2 -7
- langflow/services/database/models/transactions/crud.py +2 -2
- langflow/services/database/models/user/crud.py +2 -2
- langflow/services/database/service.py +8 -8
- langflow/services/database/utils.py +6 -5
- langflow/services/deps.py +2 -3
- langflow/services/factory.py +1 -1
- langflow/services/flow/flow_runner.py +7 -12
- langflow/services/job_queue/service.py +16 -15
- langflow/services/manager.py +3 -4
- langflow/services/settings/auth.py +1 -1
- langflow/services/settings/base.py +3 -8
- langflow/services/settings/manager.py +1 -1
- langflow/services/settings/utils.py +1 -1
- langflow/services/socket/__init__.py +0 -1
- langflow/services/socket/service.py +3 -3
- langflow/services/socket/utils.py +4 -4
- langflow/services/state/service.py +1 -2
- langflow/services/storage/factory.py +1 -1
- langflow/services/storage/local.py +9 -8
- langflow/services/storage/s3.py +11 -10
- langflow/services/store/service.py +3 -3
- langflow/services/store/utils.py +3 -2
- langflow/services/task/temp_flow_cleanup.py +7 -7
- langflow/services/telemetry/service.py +10 -10
- langflow/services/tracing/arize_phoenix.py +2 -2
- langflow/services/tracing/langfuse.py +1 -1
- langflow/services/tracing/langsmith.py +1 -1
- langflow/services/tracing/langwatch.py +1 -1
- langflow/services/tracing/opik.py +1 -1
- langflow/services/tracing/service.py +25 -6
- langflow/services/tracing/traceloop.py +245 -0
- langflow/services/utils.py +7 -7
- langflow/services/variable/kubernetes.py +3 -3
- langflow/services/variable/kubernetes_secrets.py +2 -1
- langflow/services/variable/service.py +5 -5
- langflow/utils/component_utils.py +9 -6
- langflow/utils/util.py +5 -5
- langflow/utils/validate.py +3 -3
- langflow/utils/voice_utils.py +2 -2
- {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/METADATA +2 -1
- {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/RECORD +334 -333
- langflow/frontend/assets/lazyIconImports-t6wEndt1.js +0 -2
- {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-0.5.0.dev37.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/entry_points.txt +0 -0
|
@@ -4,13 +4,13 @@ from typing import Any
|
|
|
4
4
|
import requests
|
|
5
5
|
from bs4 import BeautifulSoup
|
|
6
6
|
from langchain.tools import StructuredTool
|
|
7
|
-
from loguru import logger
|
|
8
7
|
from markdown import markdown
|
|
9
8
|
from pydantic import BaseModel, Field
|
|
10
9
|
|
|
11
10
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
|
12
11
|
from langflow.field_typing import Tool
|
|
13
12
|
from langflow.inputs.inputs import MultilineInput, SecretStrInput, StrInput
|
|
13
|
+
from langflow.logging.logger import logger
|
|
14
14
|
from langflow.schema.data import Data
|
|
15
15
|
|
|
16
16
|
MIN_ROWS_IN_TABLE = 3
|
|
@@ -84,7 +84,7 @@ class AddContentToPage(LCToolComponent):
|
|
|
84
84
|
error_message += f" Status code: {e.response.status_code}, Response: {e.response.text}"
|
|
85
85
|
return error_message
|
|
86
86
|
except Exception as e: # noqa: BLE001
|
|
87
|
-
logger.
|
|
87
|
+
logger.debug("Error adding content to Notion page", exc_info=True)
|
|
88
88
|
return f"Error: An unexpected error occurred while adding content to Notion page. {e}"
|
|
89
89
|
|
|
90
90
|
def process_node(self, node):
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import requests
|
|
2
2
|
from langchain.tools import StructuredTool
|
|
3
|
-
from loguru import logger
|
|
4
3
|
from pydantic import BaseModel, Field
|
|
5
4
|
|
|
6
5
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
|
7
6
|
from langflow.field_typing import Tool
|
|
8
7
|
from langflow.inputs.inputs import SecretStrInput, StrInput
|
|
8
|
+
from langflow.logging.logger import logger
|
|
9
9
|
from langflow.schema.data import Data
|
|
10
10
|
|
|
11
11
|
|
|
@@ -64,5 +64,5 @@ class NotionDatabaseProperties(LCToolComponent):
|
|
|
64
64
|
except ValueError as e:
|
|
65
65
|
return f"Error parsing Notion API response: {e}"
|
|
66
66
|
except Exception as e: # noqa: BLE001
|
|
67
|
-
logger.
|
|
67
|
+
logger.debug("Error fetching Notion database properties", exc_info=True)
|
|
68
68
|
return f"An unexpected error occurred: {e}"
|
|
@@ -3,12 +3,12 @@ from typing import Any
|
|
|
3
3
|
|
|
4
4
|
import requests
|
|
5
5
|
from langchain.tools import StructuredTool
|
|
6
|
-
from loguru import logger
|
|
7
6
|
from pydantic import BaseModel, Field
|
|
8
7
|
|
|
9
8
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
|
10
9
|
from langflow.field_typing import Tool
|
|
11
10
|
from langflow.inputs.inputs import MultilineInput, SecretStrInput, StrInput
|
|
11
|
+
from langflow.logging.logger import logger
|
|
12
12
|
from langflow.schema.data import Data
|
|
13
13
|
|
|
14
14
|
|
|
@@ -118,5 +118,5 @@ class NotionListPages(LCToolComponent):
|
|
|
118
118
|
except KeyError:
|
|
119
119
|
return "Unexpected response format from Notion API"
|
|
120
120
|
except Exception as e: # noqa: BLE001
|
|
121
|
-
logger.
|
|
121
|
+
logger.debug("Error querying Notion database", exc_info=True)
|
|
122
122
|
return f"An unexpected error occurred: {e}"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import requests
|
|
2
2
|
from langchain.tools import StructuredTool
|
|
3
|
-
from loguru import logger
|
|
4
3
|
from pydantic import BaseModel, Field
|
|
5
4
|
|
|
6
5
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
|
7
6
|
from langflow.field_typing import Tool
|
|
8
7
|
from langflow.inputs.inputs import SecretStrInput, StrInput
|
|
8
|
+
from langflow.logging.logger import logger
|
|
9
9
|
from langflow.schema.data import Data
|
|
10
10
|
|
|
11
11
|
|
|
@@ -65,7 +65,7 @@ class NotionPageContent(LCToolComponent):
|
|
|
65
65
|
error_message += f" Status code: {e.response.status_code}, Response: {e.response.text}"
|
|
66
66
|
return error_message
|
|
67
67
|
except Exception as e: # noqa: BLE001
|
|
68
|
-
logger.
|
|
68
|
+
logger.debug("Error retrieving Notion page content", exc_info=True)
|
|
69
69
|
return f"Error: An unexpected error occurred while retrieving Notion page content. {e}"
|
|
70
70
|
|
|
71
71
|
def parse_blocks(self, blocks: list) -> str:
|
|
@@ -3,12 +3,12 @@ from typing import Any
|
|
|
3
3
|
|
|
4
4
|
import requests
|
|
5
5
|
from langchain.tools import StructuredTool
|
|
6
|
-
from loguru import logger
|
|
7
6
|
from pydantic import BaseModel, Field
|
|
8
7
|
|
|
9
8
|
from langflow.base.langchain_utilities.model import LCToolComponent
|
|
10
9
|
from langflow.field_typing import Tool
|
|
11
10
|
from langflow.inputs.inputs import MultilineInput, SecretStrInput, StrInput
|
|
11
|
+
from langflow.logging.logger import logger
|
|
12
12
|
from langflow.schema.data import Data
|
|
13
13
|
|
|
14
14
|
|
|
@@ -1,17 +1,9 @@
|
|
|
1
1
|
import httpx
|
|
2
|
-
from loguru import logger
|
|
3
2
|
|
|
4
3
|
from langflow.custom.custom_component.component import Component
|
|
5
4
|
from langflow.field_typing.range_spec import RangeSpec
|
|
6
|
-
from langflow.io import
|
|
7
|
-
|
|
8
|
-
DropdownInput,
|
|
9
|
-
IntInput,
|
|
10
|
-
MessageTextInput,
|
|
11
|
-
MultilineInput,
|
|
12
|
-
Output,
|
|
13
|
-
SecretStrInput,
|
|
14
|
-
)
|
|
5
|
+
from langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, MultilineInput, Output, SecretStrInput
|
|
6
|
+
from langflow.logging.logger import logger
|
|
15
7
|
from langflow.schema.data import Data
|
|
16
8
|
|
|
17
9
|
|
|
@@ -135,13 +135,13 @@ class AgentComponent(ToolCallingAgentComponent):
|
|
|
135
135
|
# return result
|
|
136
136
|
|
|
137
137
|
except (ValueError, TypeError, KeyError) as e:
|
|
138
|
-
logger.
|
|
138
|
+
await logger.aerror(f"{type(e).__name__}: {e!s}")
|
|
139
139
|
raise
|
|
140
140
|
except ExceptionWithMessageError as e:
|
|
141
|
-
logger.
|
|
141
|
+
await logger.aerror(f"ExceptionWithMessageError occurred: {e}")
|
|
142
142
|
raise
|
|
143
143
|
except Exception as e:
|
|
144
|
-
logger.
|
|
144
|
+
await logger.aerror(f"Unexpected error: {e!s}")
|
|
145
145
|
raise
|
|
146
146
|
else:
|
|
147
147
|
return result
|
|
@@ -117,12 +117,12 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
117
117
|
schema_inputs = schema_to_langflow_inputs(input_schema)
|
|
118
118
|
if not schema_inputs:
|
|
119
119
|
msg = f"No input parameters defined for tool '{tool_obj.name}'"
|
|
120
|
-
logger.
|
|
120
|
+
await logger.awarning(msg)
|
|
121
121
|
return []
|
|
122
122
|
|
|
123
123
|
except Exception as e:
|
|
124
124
|
msg = f"Error validating schema inputs: {e!s}"
|
|
125
|
-
logger.
|
|
125
|
+
await logger.aexception(msg)
|
|
126
126
|
raise ValueError(msg) from e
|
|
127
127
|
else:
|
|
128
128
|
return schema_inputs
|
|
@@ -202,11 +202,11 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
202
202
|
|
|
203
203
|
except (TimeoutError, asyncio.TimeoutError) as e:
|
|
204
204
|
msg = f"Timeout updating tool list: {e!s}"
|
|
205
|
-
logger.
|
|
205
|
+
await logger.aexception(msg)
|
|
206
206
|
raise TimeoutError(msg) from e
|
|
207
207
|
except Exception as e:
|
|
208
208
|
msg = f"Error updating tool list: {e!s}"
|
|
209
|
-
logger.
|
|
209
|
+
await logger.aexception(msg)
|
|
210
210
|
raise ValueError(msg) from e
|
|
211
211
|
else:
|
|
212
212
|
return tool_list, {"name": server_name, "config": server_config}
|
|
@@ -223,7 +223,7 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
223
223
|
build_config["tool"]["placeholder"] = "Select a tool"
|
|
224
224
|
except (TimeoutError, asyncio.TimeoutError) as e:
|
|
225
225
|
msg = f"Timeout updating tool list: {e!s}"
|
|
226
|
-
logger.
|
|
226
|
+
await logger.aexception(msg)
|
|
227
227
|
if not build_config["tools_metadata"]["show"]:
|
|
228
228
|
build_config["tool"]["show"] = True
|
|
229
229
|
build_config["tool"]["options"] = []
|
|
@@ -249,7 +249,7 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
249
249
|
break
|
|
250
250
|
if tool_obj is None:
|
|
251
251
|
msg = f"Tool {field_value} not found in available tools: {self.tools}"
|
|
252
|
-
logger.
|
|
252
|
+
await logger.awarning(msg)
|
|
253
253
|
return build_config
|
|
254
254
|
await self._update_tool_config(build_config, field_value)
|
|
255
255
|
except Exception as e:
|
|
@@ -333,7 +333,7 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
333
333
|
|
|
334
334
|
except Exception as e:
|
|
335
335
|
msg = f"Error in update_build_config: {e!s}"
|
|
336
|
-
logger.
|
|
336
|
+
await logger.aexception(msg)
|
|
337
337
|
raise ValueError(msg) from e
|
|
338
338
|
else:
|
|
339
339
|
return build_config
|
|
@@ -386,7 +386,7 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
386
386
|
msg = f"Tool {tool_name} not found in available tools: {self.tools}"
|
|
387
387
|
self.remove_non_default_keys(build_config)
|
|
388
388
|
build_config["tool"]["value"] = ""
|
|
389
|
-
logger.
|
|
389
|
+
await logger.awarning(msg)
|
|
390
390
|
return
|
|
391
391
|
|
|
392
392
|
try:
|
|
@@ -404,14 +404,14 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
404
404
|
self.schema_inputs = await self._validate_schema_inputs(tool_obj)
|
|
405
405
|
if not self.schema_inputs:
|
|
406
406
|
msg = f"No input parameters to configure for tool '{tool_name}'"
|
|
407
|
-
logger.
|
|
407
|
+
await logger.ainfo(msg)
|
|
408
408
|
return
|
|
409
409
|
|
|
410
410
|
# Add new inputs to build config
|
|
411
411
|
for schema_input in self.schema_inputs:
|
|
412
412
|
if not schema_input or not hasattr(schema_input, "name"):
|
|
413
413
|
msg = "Invalid schema input detected, skipping"
|
|
414
|
-
logger.
|
|
414
|
+
await logger.awarning(msg)
|
|
415
415
|
continue
|
|
416
416
|
|
|
417
417
|
try:
|
|
@@ -428,16 +428,16 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
428
428
|
|
|
429
429
|
except (AttributeError, KeyError, TypeError) as e:
|
|
430
430
|
msg = f"Error processing schema input {schema_input}: {e!s}"
|
|
431
|
-
logger.
|
|
431
|
+
await logger.aexception(msg)
|
|
432
432
|
continue
|
|
433
433
|
except ValueError as e:
|
|
434
434
|
msg = f"Schema validation error for tool {tool_name}: {e!s}"
|
|
435
|
-
logger.
|
|
435
|
+
await logger.aexception(msg)
|
|
436
436
|
self.schema_inputs = []
|
|
437
437
|
return
|
|
438
438
|
except (AttributeError, KeyError, TypeError) as e:
|
|
439
439
|
msg = f"Error updating tool config: {e!s}"
|
|
440
|
-
logger.
|
|
440
|
+
await logger.aexception(msg)
|
|
441
441
|
raise ValueError(msg) from e
|
|
442
442
|
|
|
443
443
|
async def build_output(self) -> DataFrame:
|
|
@@ -474,7 +474,7 @@ class MCPToolsComponent(ComponentWithCache):
|
|
|
474
474
|
return DataFrame(data=[{"error": "You must select a tool"}])
|
|
475
475
|
except Exception as e:
|
|
476
476
|
msg = f"Error in build_output: {e!s}"
|
|
477
|
-
logger.
|
|
477
|
+
await logger.aexception(msg)
|
|
478
478
|
raise ValueError(msg) from e
|
|
479
479
|
|
|
480
480
|
def _get_session_context(self) -> str | None:
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from typing import Any, cast
|
|
2
2
|
|
|
3
3
|
import requests
|
|
4
|
-
from loguru import logger
|
|
5
4
|
from pydantic import ValidationError
|
|
6
5
|
|
|
7
6
|
from langflow.base.models.anthropic_constants import (
|
|
@@ -14,6 +13,7 @@ from langflow.base.models.model import LCModelComponent
|
|
|
14
13
|
from langflow.field_typing import LanguageModel
|
|
15
14
|
from langflow.field_typing.range_spec import RangeSpec
|
|
16
15
|
from langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, SecretStrInput, SliderInput
|
|
16
|
+
from langflow.logging.logger import logger
|
|
17
17
|
from langflow.schema.dotdict import dotdict
|
|
18
18
|
|
|
19
19
|
|
|
@@ -101,7 +101,7 @@ class AnthropicModelComponent(LCModelComponent):
|
|
|
101
101
|
|
|
102
102
|
return output
|
|
103
103
|
|
|
104
|
-
def get_models(self, tool_model_enabled: bool | None = None) -> list[str]:
|
|
104
|
+
def get_models(self, *, tool_model_enabled: bool | None = None) -> list[str]:
|
|
105
105
|
try:
|
|
106
106
|
import anthropic
|
|
107
107
|
|
|
@@ -129,7 +129,7 @@ class AnthropicModelComponent(LCModelComponent):
|
|
|
129
129
|
model_with_tool = ChatAnthropic(
|
|
130
130
|
model=model, # Use the current model being checked
|
|
131
131
|
anthropic_api_key=self.api_key,
|
|
132
|
-
anthropic_api_url=cast(str, self.base_url) or DEFAULT_ANTHROPIC_API_URL,
|
|
132
|
+
anthropic_api_url=cast("str", self.base_url) or DEFAULT_ANTHROPIC_API_URL,
|
|
133
133
|
)
|
|
134
134
|
|
|
135
135
|
if (
|
|
@@ -177,8 +177,9 @@ class AnthropicModelComponent(LCModelComponent):
|
|
|
177
177
|
except (ImportError, ValueError, requests.exceptions.RequestException) as e:
|
|
178
178
|
logger.exception(f"Error getting model names: {e}")
|
|
179
179
|
ids = ANTHROPIC_MODELS
|
|
180
|
+
build_config.setdefault("model_name", {})
|
|
180
181
|
build_config["model_name"]["options"] = ids
|
|
181
|
-
build_config["model_name"]
|
|
182
|
+
build_config["model_name"].setdefault("value", ids[0])
|
|
182
183
|
build_config["model_name"]["combobox"] = True
|
|
183
184
|
except Exception as e:
|
|
184
185
|
msg = f"Error getting model names: {e}"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import assemblyai as aai
|
|
2
|
-
from loguru import logger
|
|
3
2
|
|
|
4
3
|
from langflow.custom.custom_component.component import Component
|
|
5
4
|
from langflow.io import DataInput, DropdownInput, IntInput, Output, SecretStrInput
|
|
5
|
+
from langflow.logging.logger import logger
|
|
6
6
|
from langflow.schema.data import Data
|
|
7
7
|
|
|
8
8
|
|
|
@@ -58,7 +58,7 @@ class AssemblyAIGetSubtitles(Component):
|
|
|
58
58
|
transcript = aai.Transcript.get_by_id(transcript_id)
|
|
59
59
|
except Exception as e: # noqa: BLE001
|
|
60
60
|
error = f"Getting transcription failed: {e}"
|
|
61
|
-
logger.
|
|
61
|
+
logger.debug(error, exc_info=True)
|
|
62
62
|
self.status = error
|
|
63
63
|
return Data(data={"error": error})
|
|
64
64
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import assemblyai as aai
|
|
2
|
-
from loguru import logger
|
|
3
2
|
|
|
4
3
|
from langflow.custom.custom_component.component import Component
|
|
5
4
|
from langflow.io import DataInput, DropdownInput, FloatInput, IntInput, MultilineInput, Output, SecretStrInput
|
|
5
|
+
from langflow.logging.logger import logger
|
|
6
6
|
from langflow.schema.data import Data
|
|
7
7
|
|
|
8
8
|
|
|
@@ -131,7 +131,7 @@ class AssemblyAILeMUR(Component):
|
|
|
131
131
|
try:
|
|
132
132
|
response = self.perform_lemur_action(transcript_group, self.endpoint)
|
|
133
133
|
except Exception as e: # noqa: BLE001
|
|
134
|
-
logger.
|
|
134
|
+
logger.debug("Error running LeMUR", exc_info=True)
|
|
135
135
|
error = f"An Error happened: {e}"
|
|
136
136
|
self.status = error
|
|
137
137
|
return Data(data={"error": error})
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import assemblyai as aai
|
|
2
|
-
from loguru import logger
|
|
3
2
|
|
|
4
3
|
from langflow.custom.custom_component.component import Component
|
|
5
4
|
from langflow.io import BoolInput, DropdownInput, IntInput, MessageTextInput, Output, SecretStrInput
|
|
5
|
+
from langflow.logging.logger import logger
|
|
6
6
|
from langflow.schema.data import Data
|
|
7
7
|
|
|
8
8
|
|
|
@@ -86,7 +86,7 @@ class AssemblyAIListTranscripts(Component):
|
|
|
86
86
|
transcripts = convert_page_to_data_list(page)
|
|
87
87
|
|
|
88
88
|
except Exception as e: # noqa: BLE001
|
|
89
|
-
logger.
|
|
89
|
+
logger.debug("Error listing transcripts", exc_info=True)
|
|
90
90
|
error_data = Data(data={"error": f"An error occurred: {e}"})
|
|
91
91
|
self.status = [error_data]
|
|
92
92
|
return [error_data]
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import assemblyai as aai
|
|
2
|
-
from loguru import logger
|
|
3
2
|
|
|
4
3
|
from langflow.custom.custom_component.component import Component
|
|
5
4
|
from langflow.field_typing.range_spec import RangeSpec
|
|
6
5
|
from langflow.io import DataInput, FloatInput, Output, SecretStrInput
|
|
6
|
+
from langflow.logging.logger import logger
|
|
7
7
|
from langflow.schema.data import Data
|
|
8
8
|
|
|
9
9
|
|
|
@@ -54,7 +54,7 @@ class AssemblyAITranscriptionJobPoller(Component):
|
|
|
54
54
|
transcript = aai.Transcript.get_by_id(self.transcript_id.data["transcript_id"])
|
|
55
55
|
except Exception as e: # noqa: BLE001
|
|
56
56
|
error = f"Getting transcription failed: {e}"
|
|
57
|
-
logger.
|
|
57
|
+
logger.debug(error, exc_info=True)
|
|
58
58
|
self.status = error
|
|
59
59
|
return Data(data={"error": error})
|
|
60
60
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
|
|
3
3
|
import assemblyai as aai
|
|
4
|
-
from loguru import logger
|
|
5
4
|
|
|
6
5
|
from langflow.custom.custom_component.component import Component
|
|
7
6
|
from langflow.io import BoolInput, DropdownInput, FileInput, MessageTextInput, Output, SecretStrInput
|
|
7
|
+
from langflow.logging.logger import logger
|
|
8
8
|
from langflow.schema.data import Data
|
|
9
9
|
|
|
10
10
|
|
|
@@ -176,7 +176,7 @@ class AssemblyAITranscriptionJobCreator(Component):
|
|
|
176
176
|
try:
|
|
177
177
|
transcript = aai.Transcriber().submit(audio, config=config)
|
|
178
178
|
except Exception as e: # noqa: BLE001
|
|
179
|
-
logger.
|
|
179
|
+
logger.debug("Error submitting transcription job", exc_info=True)
|
|
180
180
|
self.status = f"An error occurred: {e}"
|
|
181
181
|
return Data(data={"error": f"An error occurred: {e}"})
|
|
182
182
|
|