langflow-base-nightly 0.5.0.dev36__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.
Files changed (343) hide show
  1. langflow/__main__.py +1 -1
  2. langflow/alembic/versions/4e5980a44eaa_fix_date_times_again.py +24 -30
  3. langflow/alembic/versions/58b28437a398_modify_nullable.py +6 -6
  4. langflow/alembic/versions/79e675cb6752_change_datetime_type.py +24 -30
  5. langflow/alembic/versions/b2fa308044b5_add_unique_constraints.py +12 -13
  6. langflow/api/build.py +21 -26
  7. langflow/api/health_check_router.py +3 -3
  8. langflow/api/utils.py +3 -3
  9. langflow/api/v1/callback.py +2 -2
  10. langflow/api/v1/chat.py +19 -31
  11. langflow/api/v1/endpoints.py +10 -10
  12. langflow/api/v1/flows.py +1 -1
  13. langflow/api/v1/knowledge_bases.py +19 -12
  14. langflow/api/v1/mcp.py +12 -12
  15. langflow/api/v1/mcp_projects.py +45 -81
  16. langflow/api/v1/mcp_utils.py +8 -8
  17. langflow/api/v1/schemas.py +1 -5
  18. langflow/api/v1/store.py +1 -1
  19. langflow/api/v1/validate.py +2 -2
  20. langflow/api/v1/voice_mode.py +58 -62
  21. langflow/api/v2/files.py +5 -3
  22. langflow/api/v2/mcp.py +10 -9
  23. langflow/base/composio/composio_base.py +21 -2
  24. langflow/base/data/docling_utils.py +194 -0
  25. langflow/base/data/kb_utils.py +33 -0
  26. langflow/base/embeddings/aiml_embeddings.py +1 -1
  27. langflow/base/flow_processing/utils.py +1 -2
  28. langflow/base/io/__init__.py +0 -1
  29. langflow/base/langwatch/utils.py +2 -1
  30. langflow/base/mcp/util.py +49 -47
  31. langflow/base/models/model.py +3 -3
  32. langflow/base/prompts/api_utils.py +1 -1
  33. langflow/base/tools/flow_tool.py +2 -2
  34. langflow/base/tools/run_flow.py +2 -6
  35. langflow/components/Notion/add_content_to_page.py +2 -2
  36. langflow/components/Notion/list_database_properties.py +2 -2
  37. langflow/components/Notion/list_pages.py +2 -2
  38. langflow/components/Notion/page_content_viewer.py +2 -2
  39. langflow/components/Notion/update_page_property.py +1 -1
  40. langflow/components/agentql/agentql_api.py +2 -10
  41. langflow/components/agents/agent.py +3 -3
  42. langflow/components/agents/mcp_component.py +54 -69
  43. langflow/components/anthropic/anthropic.py +5 -4
  44. langflow/components/assemblyai/assemblyai_get_subtitles.py +2 -2
  45. langflow/components/assemblyai/assemblyai_lemur.py +2 -2
  46. langflow/components/assemblyai/assemblyai_list_transcripts.py +2 -2
  47. langflow/components/assemblyai/assemblyai_poll_transcript.py +2 -2
  48. langflow/components/assemblyai/assemblyai_start_transcript.py +2 -2
  49. langflow/components/data/file.py +575 -55
  50. langflow/components/data/kb_ingest.py +116 -43
  51. langflow/components/data/kb_retrieval.py +24 -26
  52. langflow/components/data/url.py +1 -1
  53. langflow/components/datastax/astra_assistant_manager.py +3 -3
  54. langflow/components/datastax/create_assistant.py +1 -2
  55. langflow/components/deactivated/merge_data.py +1 -2
  56. langflow/components/deactivated/sub_flow.py +6 -7
  57. langflow/components/deactivated/vectara_self_query.py +3 -3
  58. langflow/components/docling/__init__.py +0 -198
  59. langflow/components/docling/docling_inline.py +1 -1
  60. langflow/components/embeddings/text_embedder.py +3 -3
  61. langflow/components/firecrawl/firecrawl_extract_api.py +2 -9
  62. langflow/components/google/gmail.py +1 -1
  63. langflow/components/google/google_generative_ai.py +5 -11
  64. langflow/components/groq/groq.py +4 -3
  65. langflow/components/helpers/current_date.py +2 -3
  66. langflow/components/helpers/memory.py +1 -1
  67. langflow/components/ibm/watsonx.py +1 -1
  68. langflow/components/ibm/watsonx_embeddings.py +1 -1
  69. langflow/components/langwatch/langwatch.py +3 -3
  70. langflow/components/logic/flow_tool.py +2 -2
  71. langflow/components/logic/notify.py +1 -1
  72. langflow/components/logic/run_flow.py +2 -3
  73. langflow/components/logic/sub_flow.py +4 -5
  74. langflow/components/mem0/mem0_chat_memory.py +2 -8
  75. langflow/components/nvidia/nvidia.py +3 -3
  76. langflow/components/olivya/olivya.py +7 -7
  77. langflow/components/ollama/ollama.py +8 -6
  78. langflow/components/processing/batch_run.py +8 -8
  79. langflow/components/processing/data_operations.py +2 -2
  80. langflow/components/processing/merge_data.py +1 -2
  81. langflow/components/processing/message_to_data.py +2 -3
  82. langflow/components/processing/parse_json_data.py +1 -1
  83. langflow/components/processing/save_file.py +6 -32
  84. langflow/components/prototypes/python_function.py +2 -3
  85. langflow/components/serpapi/serp.py +1 -1
  86. langflow/components/tavily/tavily_extract.py +1 -1
  87. langflow/components/tavily/tavily_search.py +1 -1
  88. langflow/components/tools/calculator.py +2 -2
  89. langflow/components/tools/python_code_structured_tool.py +3 -10
  90. langflow/components/tools/python_repl.py +2 -2
  91. langflow/components/tools/searxng.py +3 -3
  92. langflow/components/tools/serp_api.py +2 -2
  93. langflow/components/tools/tavily_search_tool.py +2 -2
  94. langflow/components/tools/yahoo_finance.py +1 -1
  95. langflow/components/twelvelabs/video_embeddings.py +4 -4
  96. langflow/components/vectorstores/astradb.py +30 -19
  97. langflow/components/vectorstores/local_db.py +1 -1
  98. langflow/components/yahoosearch/yahoo.py +1 -1
  99. langflow/components/youtube/trending.py +3 -4
  100. langflow/custom/attributes.py +2 -1
  101. langflow/custom/code_parser/code_parser.py +1 -1
  102. langflow/custom/custom_component/base_component.py +1 -1
  103. langflow/custom/custom_component/component.py +16 -2
  104. langflow/custom/directory_reader/directory_reader.py +7 -7
  105. langflow/custom/directory_reader/utils.py +1 -2
  106. langflow/custom/utils.py +30 -30
  107. langflow/events/event_manager.py +1 -1
  108. langflow/frontend/assets/{SlackIcon-B260Qg_R.js → SlackIcon-BhW6H3JR.js} +1 -1
  109. langflow/frontend/assets/{Wikipedia-BB2mbgyd.js → Wikipedia-Dx5jbiy3.js} +1 -1
  110. langflow/frontend/assets/{Wolfram-DytXC9hF.js → Wolfram-CIyonzwo.js} +1 -1
  111. langflow/frontend/assets/{index-DPX6X_bw.js → index-0XQqYgdG.js} +1 -1
  112. langflow/frontend/assets/{index-DtJyCbzF.js → index-1Q3VBqKn.js} +1 -1
  113. langflow/frontend/assets/{index-DztLFiip.js → index-35sspuLu.js} +1 -1
  114. langflow/frontend/assets/{index-BeNby7qF.js → index-7hzXChQz.js} +1 -1
  115. langflow/frontend/assets/{index-BOEf7-ty.js → index-8cuhogZP.js} +1 -1
  116. langflow/frontend/assets/{index-D0s9f6Re.js → index-B0m53xKd.js} +1 -1
  117. langflow/frontend/assets/{index-DpJiH-Rk.js → index-B1XqWJhG.js} +1 -1
  118. langflow/frontend/assets/{index-DuAeoC-H.js → index-B3KCdQ91.js} +1 -1
  119. langflow/frontend/assets/{index-Bxml6wXu.js → index-B7uEuOPK.js} +1 -1
  120. langflow/frontend/assets/{index-CDFLVFB4.js → index-B8UR8v-Q.js} +1 -1
  121. langflow/frontend/assets/{index-ci4XHjbJ.js → index-BD7Io1hL.js} +6 -6
  122. langflow/frontend/assets/{index-DasrI03Y.js → index-BDQrd7Tj.js} +1 -1
  123. langflow/frontend/assets/{index-CkQ-bJ4G.js → index-BDuk0d7P.js} +1 -1
  124. langflow/frontend/assets/{index-C_1RBTul.js → index-BFQ8KFK0.js} +1 -1
  125. langflow/frontend/assets/{index-DqSH4x-R.js → index-BFf0HTFI.js} +1 -1
  126. langflow/frontend/assets/{index-BXMhmvTj.js → index-BHhnpSkW.js} +1 -1
  127. langflow/frontend/assets/{index-Uq2ij_SS.js → index-BKKrUElc.js} +1 -1
  128. langflow/frontend/assets/{index-3TJWUdmx.js → index-BKeZt2hQ.js} +1 -1
  129. langflow/frontend/assets/{index-DHlEwAxb.js → index-BKlQbl-6.js} +1 -1
  130. langflow/frontend/assets/{index-Bisa4IQF.js → index-BLYw9MK2.js} +1 -1
  131. langflow/frontend/assets/{index-GODbXlHC.js → index-BLsVo9iW.js} +1 -1
  132. langflow/frontend/assets/{index-CHFO5O4g.js → index-BNQIbda3.js} +1 -1
  133. langflow/frontend/assets/{index-3uOAA_XX.js → index-BPR2mEFC.js} +1 -1
  134. langflow/frontend/assets/{index-3qMh9x6K.js → index-BPfdqCc_.js} +1 -1
  135. langflow/frontend/assets/{index-rcdQpNcU.js → index-BQrVDjR1.js} +1 -1
  136. langflow/frontend/assets/{index-4eRtaV45.js → index-BRmSeoWR.js} +1 -1
  137. langflow/frontend/assets/{index-Ct9_T9ox.js → index-BUse-kxM.js} +1 -1
  138. langflow/frontend/assets/{index-BdYgKk1d.js → index-BVFaF7HW.js} +1 -1
  139. langflow/frontend/assets/{index-CWWo2zOA.js → index-BWgIWfv2.js} +1 -1
  140. langflow/frontend/assets/{index-Du9aJK7m.js → index-BWt5xGeA.js} +1 -1
  141. langflow/frontend/assets/{index-Baka5dKE.js → index-BYhcGLTV.js} +1 -1
  142. langflow/frontend/assets/{index-BWq9GTzt.js → index-BYjw7Gk3.js} +1 -1
  143. langflow/frontend/assets/{index-r1LZg-PY.js → index-BZFljdMa.js} +1 -1
  144. langflow/frontend/assets/index-BcAgItH4.js +1 -0
  145. langflow/frontend/assets/{index-B8TlNgn-.js → index-Bct1s6__.js} +1 -1
  146. langflow/frontend/assets/{index-DZzbmg3J.js → index-Bhv79Zso.js} +1 -1
  147. langflow/frontend/assets/{index-CqDUqHfd.js → index-Bj3lSwvZ.js} +1 -1
  148. langflow/frontend/assets/{index-dkS0ek2S.js → index-Bk4mTwnI.js} +1 -1
  149. langflow/frontend/assets/{index-tOy_uloT.js → index-BmIx1cws.js} +1 -1
  150. langflow/frontend/assets/{index-BVtf6m9S.js → index-BmYJJ5YS.js} +1 -1
  151. langflow/frontend/assets/{index-mBjJYD9q.js → index-BnAFhkSN.js} +1 -1
  152. langflow/frontend/assets/{index-Ba3RTMXI.js → index-Bo-ww0Bb.js} +1 -1
  153. langflow/frontend/assets/{index-BsBWP-Dh.js → index-BpmqDOeZ.js} +1 -1
  154. langflow/frontend/assets/{index-BqUeOc7Y.js → index-BrVhdPZb.js} +1 -1
  155. langflow/frontend/assets/{index-DWkMJnbd.js → index-BvGQfVBD.js} +1 -1
  156. langflow/frontend/assets/{index-DdzVmJHE.js → index-Bwi4flFg.js} +1 -1
  157. langflow/frontend/assets/{index-Ccb5B8zG.js → index-BzoRPtTY.js} +1 -1
  158. langflow/frontend/assets/{index-Ym6gz0T6.js → index-C--IDAyc.js} +1 -1
  159. langflow/frontend/assets/{index-CvQ0w8Pj.js → index-C0E3_MIK.js} +1 -1
  160. langflow/frontend/assets/{index-DxIs8VSp.js → index-C27Jj_26.js} +1 -1
  161. langflow/frontend/assets/{index-BxWXWRmZ.js → index-C2eQmQsn.js} +1 -1
  162. langflow/frontend/assets/{index-B536IPXH.js → index-C8K0r39B.js} +1 -1
  163. langflow/frontend/assets/{index-BEDxAk3N.js → index-CEJNWPhA.js} +1 -1
  164. langflow/frontend/assets/{index-G_U_kPAd.js → index-CFNTYfFK.js} +1 -1
  165. langflow/frontend/assets/{index-CMGZGIx_.js → index-CMHpjHZl.js} +1 -1
  166. langflow/frontend/assets/{index-C76aBV_h.js → index-CSu8KHOi.js} +1 -1
  167. langflow/frontend/assets/{index-B-c82Fnu.js → index-CUKmGsI6.js} +1 -1
  168. langflow/frontend/assets/{index-DX7XsAcx.js → index-CWYiSeWV.js} +1 -1
  169. langflow/frontend/assets/{index-COL0eiWI.js → index-CY7_TBTC.js} +1 -1
  170. langflow/frontend/assets/{index-BlBl2tvQ.js → index-CbnWRlYY.js} +1 -1
  171. langflow/frontend/assets/{index-BQB-iDYl.js → index-CfPBgkqg.js} +1 -1
  172. langflow/frontend/assets/{index-DWr_zPkx.js → index-Cg53lrYh.js} +1 -1
  173. langflow/frontend/assets/{index-BcgB3rXH.js → index-CgU7KF4I.js} +1 -1
  174. langflow/frontend/assets/{index-CkSzjCqM.js → index-CgwykVGh.js} +1 -1
  175. langflow/frontend/assets/{index-BbsND1Qg.js → index-Ch5r0oW6.js} +1 -1
  176. langflow/frontend/assets/{index-AY5Dm2mG.js → index-CjsommIr.js} +1 -1
  177. langflow/frontend/assets/{index-BtJ2o21k.js → index-CkK25zZO.js} +1 -1
  178. langflow/frontend/assets/{index-BKvKC-12.js → index-CkjwSTSM.js} +1 -1
  179. langflow/frontend/assets/{index-BVHvIhT5.js → index-CmSFKgiD.js} +1 -1
  180. langflow/frontend/assets/{index-D-zkHcob.js → index-Cr5v2ave.js} +1 -1
  181. langflow/frontend/assets/{index-js8ceOaP.js → index-CrAF-31Y.js} +1 -1
  182. langflow/frontend/assets/{index-BNbWMmAV.js → index-CsLQiWNf.js} +1 -1
  183. langflow/frontend/assets/{index-VcXZzovW.js → index-CuCM7Wu7.js} +1 -1
  184. langflow/frontend/assets/{index-DzeIsaBm.js → index-Cxy9sEpy.js} +1 -1
  185. langflow/frontend/assets/{index-LrMzDsq9.js → index-CyP3py8K.js} +1 -1
  186. langflow/frontend/assets/{index-C8KD3LPb.js → index-CzHzeZuA.js} +1 -1
  187. langflow/frontend/assets/{index-DS1EgA10.js → index-D1oynC8a.js} +1 -1
  188. langflow/frontend/assets/{index-ByFXr9Iq.js → index-D4tjMhfY.js} +1 -1
  189. langflow/frontend/assets/{index-DyJDHm2D.js → index-D6CSIrp1.js} +1 -1
  190. langflow/frontend/assets/{index-DIqSyDVO.js → index-D9kwEzPB.js} +1 -1
  191. langflow/frontend/assets/{index-D5PeCofu.js → index-DDXsm8tz.js} +1 -1
  192. langflow/frontend/assets/{index-CJwYfDBz.js → index-DDhJVVel.js} +1 -1
  193. langflow/frontend/assets/{index-C7x9R_Yo.js → index-DH6o91_s.js} +1 -1
  194. langflow/frontend/assets/{index-DpQKtcXu.js → index-DHngW1k8.js} +1 -1
  195. langflow/frontend/assets/{index-VZnN0P6C.js → index-DIKUsGLF.js} +1 -1
  196. langflow/frontend/assets/{index-VHmUHUUU.js → index-DJESSNJi.js} +1 -1
  197. langflow/frontend/assets/{index-BdIWbCEL.js → index-DMCWDJOl.js} +1 -1
  198. langflow/frontend/assets/{index-DK8vNpXK.js → index-DOEvKC2X.js} +1 -1
  199. langflow/frontend/assets/{index-C7V5U9yH.js → index-DOQDkSoK.js} +1 -1
  200. langflow/frontend/assets/{index-D0HmkH0H.js → index-DXAfIEvs.js} +1 -1
  201. langflow/frontend/assets/{index-C9N80hP8.js → index-DZP_SaHb.js} +1 -1
  202. langflow/frontend/assets/{index-B2ggrBuR.js → index-DZxUIhWh.js} +1 -1
  203. langflow/frontend/assets/{index-DS9I4y48.js → index-Dda2u_yz.js} +1 -1
  204. langflow/frontend/assets/{index-BLROcaSz.js → index-Dg8N3NSO.js} +1 -1
  205. langflow/frontend/assets/{index-Dpz3oBf5.js → index-DkGhPNeA.js} +1 -1
  206. langflow/frontend/assets/{index-BnLT29qW.js → index-Dka_Rk4-.js} +1 -1
  207. langflow/frontend/assets/{index-B5ed-sAv.js → index-DljpLeCW.js} +1 -1
  208. langflow/frontend/assets/{index-Cx__T92e.js → index-DnVYJtVO.js} +1 -1
  209. langflow/frontend/assets/{index-hOkEW3JP.js → index-DqbzUcI5.js} +1 -1
  210. langflow/frontend/assets/{index-BxkZkBgQ.js → index-Dr6pVDPI.js} +1 -1
  211. langflow/frontend/assets/{index-BIkqesA-.js → index-DsoX2o1S.js} +1 -1
  212. langflow/frontend/assets/{index-Cpgkb0Q3.js → index-DwfHWnX7.js} +1 -1
  213. langflow/frontend/assets/{index-B9Mo3ndZ.js → index-Dx-Z87KT.js} +1 -1
  214. langflow/frontend/assets/{index-R7q8cAek.js → index-DyqITq51.js} +1 -1
  215. langflow/frontend/assets/{index-DKEXZFUO.js → index-DzIv3RyR.js} +1 -1
  216. langflow/frontend/assets/{index-BJrY2Fiu.js → index-G4ro0MjT.js} +1 -1
  217. langflow/frontend/assets/{index-IFGgPiye.js → index-H7J7w7fa.js} +1 -1
  218. langflow/frontend/assets/{index-lKEJpUsF.js → index-KWY77KfV.js} +1 -1
  219. langflow/frontend/assets/{index-DDNNv4C0.js → index-U9GWm1eH.js} +1 -1
  220. langflow/frontend/assets/{index-BRWNIt9F.js → index-Un9pWxnP.js} +1 -1
  221. langflow/frontend/assets/{index-BCK-ZyIh.js → index-Xi4TplbI.js} +1 -1
  222. langflow/frontend/assets/{index-BEKoRwsX.js → index-_cbGmjF4.js} +1 -1
  223. langflow/frontend/assets/{index-7xXgqu09.js → index-cEXY6V06.js} +1 -1
  224. langflow/frontend/assets/{index-D87Zw62M.js → index-dyXKnkMi.js} +1 -1
  225. langflow/frontend/assets/{index-CG7cp0nD.js → index-eUkS6iJM.js} +1 -1
  226. langflow/frontend/assets/{index-CoUlHbtg.js → index-ekfMOqrF.js} +1 -1
  227. langflow/frontend/assets/{index-DhzEUXfr.js → index-gdb7XMS8.js} +1 -1
  228. langflow/frontend/assets/{index-D9eflZfP.js → index-hZUcL0MZ.js} +1 -1
  229. langflow/frontend/assets/{index-CwIxqYlT.js → index-kkA-qHB_.js} +1 -1
  230. langflow/frontend/assets/{index-sS6XLk3j.js → index-mzl9ULw5.js} +1 -1
  231. langflow/frontend/assets/{index-BjENqyKe.js → index-oxHBZk2v.js} +1 -1
  232. langflow/frontend/assets/{index-BejHxU5W.js → index-p2kStSPe.js} +1 -1
  233. langflow/frontend/assets/{index-BOYTBrh9.js → index-paQEWYGT.js} +1 -1
  234. langflow/frontend/assets/{index-Cd5zuUUK.js → index-r_8gs4nL.js} +1 -1
  235. langflow/frontend/assets/{index-AlJ7td-D.js → index-uiKla4UR.js} +1 -1
  236. langflow/frontend/assets/{index-B8y58M9b.js → index-vJOO5U8M.js} +1 -1
  237. langflow/frontend/assets/{index-CF4dtI6S.js → index-w72fDjpG.js} +1 -1
  238. langflow/frontend/assets/{index-C2Xd7UkR.js → index-zV82kQ6k.js} +1 -1
  239. langflow/frontend/assets/lazyIconImports-DTNgvPE-.js +2 -0
  240. langflow/frontend/assets/{use-post-add-user-HN0rRnhv.js → use-post-add-user-CvtuazTg.js} +1 -1
  241. langflow/frontend/index.html +1 -1
  242. langflow/graph/edge/base.py +2 -3
  243. langflow/graph/graph/base.py +14 -12
  244. langflow/graph/graph/constants.py +3 -0
  245. langflow/graph/utils.py +6 -6
  246. langflow/graph/vertex/base.py +4 -5
  247. langflow/graph/vertex/param_handler.py +1 -1
  248. langflow/graph/vertex/vertex_types.py +2 -2
  249. langflow/helpers/flow.py +1 -1
  250. langflow/initial_setup/setup.py +32 -30
  251. langflow/initial_setup/starter_projects/Blog Writer.json +2 -2
  252. langflow/initial_setup/starter_projects/Custom Component Generator.json +2 -2
  253. langflow/initial_setup/starter_projects/Document Q&A.json +1 -1
  254. langflow/initial_setup/starter_projects/Hybrid Search RAG.json +2 -2
  255. langflow/initial_setup/starter_projects/Instagram Copywriter.json +3 -3
  256. langflow/initial_setup/starter_projects/Invoice Summarizer.json +1 -1
  257. langflow/initial_setup/starter_projects/Knowledge Ingestion.json +4 -4
  258. langflow/initial_setup/starter_projects/Knowledge Retrieval.json +2 -2
  259. langflow/initial_setup/starter_projects/Market Research.json +3 -3
  260. langflow/initial_setup/starter_projects/Meeting Summary.json +6 -6
  261. langflow/initial_setup/starter_projects/Memory Chatbot.json +2 -2
  262. langflow/initial_setup/starter_projects/News Aggregator.json +5 -22
  263. langflow/initial_setup/starter_projects/Nvidia Remix.json +3 -20
  264. langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +1 -1
  265. langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +1 -1
  266. langflow/initial_setup/starter_projects/Price Deal Finder.json +5 -5
  267. langflow/initial_setup/starter_projects/Research Agent.json +3 -3
  268. langflow/initial_setup/starter_projects/SaaS Pricing.json +1 -1
  269. langflow/initial_setup/starter_projects/Search agent.json +1 -1
  270. langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +7 -7
  271. langflow/initial_setup/starter_projects/Simple Agent.json +3 -3
  272. langflow/initial_setup/starter_projects/Social Media Agent.json +1 -1
  273. langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +1 -1
  274. langflow/initial_setup/starter_projects/Travel Planning Agents.json +3 -3
  275. langflow/initial_setup/starter_projects/Vector Store RAG.json +5 -5
  276. langflow/initial_setup/starter_projects/Youtube Analysis.json +3 -3
  277. langflow/interface/components.py +23 -22
  278. langflow/interface/initialize/loading.py +5 -5
  279. langflow/interface/run.py +1 -1
  280. langflow/interface/utils.py +1 -1
  281. langflow/io/__init__.py +0 -1
  282. langflow/langflow_launcher.py +1 -1
  283. langflow/load/load.py +2 -7
  284. langflow/logging/__init__.py +0 -1
  285. langflow/logging/logger.py +191 -115
  286. langflow/logging/setup.py +1 -1
  287. langflow/main.py +37 -52
  288. langflow/memory.py +7 -7
  289. langflow/middleware.py +1 -1
  290. langflow/processing/process.py +4 -4
  291. langflow/schema/artifact.py +2 -2
  292. langflow/schema/data.py +10 -2
  293. langflow/schema/dataframe.py +1 -1
  294. langflow/schema/message.py +1 -1
  295. langflow/serialization/serialization.py +1 -1
  296. langflow/services/auth/utils.py +2 -2
  297. langflow/services/cache/disk.py +1 -1
  298. langflow/services/cache/service.py +3 -3
  299. langflow/services/database/models/flow/model.py +2 -7
  300. langflow/services/database/models/transactions/crud.py +2 -2
  301. langflow/services/database/models/user/crud.py +2 -2
  302. langflow/services/database/service.py +8 -8
  303. langflow/services/database/utils.py +6 -5
  304. langflow/services/deps.py +2 -3
  305. langflow/services/factory.py +1 -1
  306. langflow/services/flow/flow_runner.py +7 -12
  307. langflow/services/job_queue/service.py +16 -15
  308. langflow/services/manager.py +3 -4
  309. langflow/services/settings/auth.py +1 -1
  310. langflow/services/settings/base.py +3 -8
  311. langflow/services/settings/manager.py +1 -1
  312. langflow/services/settings/utils.py +1 -1
  313. langflow/services/socket/__init__.py +0 -1
  314. langflow/services/socket/service.py +3 -3
  315. langflow/services/socket/utils.py +4 -4
  316. langflow/services/state/service.py +1 -2
  317. langflow/services/storage/factory.py +1 -1
  318. langflow/services/storage/local.py +9 -8
  319. langflow/services/storage/s3.py +11 -10
  320. langflow/services/store/service.py +3 -3
  321. langflow/services/store/utils.py +3 -2
  322. langflow/services/task/temp_flow_cleanup.py +7 -7
  323. langflow/services/telemetry/service.py +10 -10
  324. langflow/services/tracing/arize_phoenix.py +2 -2
  325. langflow/services/tracing/langfuse.py +1 -1
  326. langflow/services/tracing/langsmith.py +1 -1
  327. langflow/services/tracing/langwatch.py +1 -1
  328. langflow/services/tracing/opik.py +1 -1
  329. langflow/services/tracing/service.py +25 -6
  330. langflow/services/tracing/traceloop.py +245 -0
  331. langflow/services/utils.py +7 -7
  332. langflow/services/variable/kubernetes.py +3 -3
  333. langflow/services/variable/kubernetes_secrets.py +2 -1
  334. langflow/services/variable/service.py +5 -5
  335. langflow/utils/component_utils.py +9 -6
  336. langflow/utils/util.py +5 -5
  337. langflow/utils/validate.py +3 -3
  338. langflow/utils/voice_utils.py +2 -2
  339. {langflow_base_nightly-0.5.0.dev36.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/METADATA +2 -1
  340. {langflow_base_nightly-0.5.0.dev36.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/RECORD +342 -340
  341. langflow/frontend/assets/lazyIconImports-Bh1TFfvH.js +0 -2
  342. {langflow_base_nightly-0.5.0.dev36.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/WHEEL +0 -0
  343. {langflow_base_nightly-0.5.0.dev36.dist-info → langflow_base_nightly-0.5.0.dev38.dist-info}/entry_points.txt +0 -0
@@ -3,10 +3,10 @@ from typing import Any
3
3
 
4
4
  from fastapi import HTTPException
5
5
  from langchain_core.prompts import PromptTemplate
6
- from loguru import logger
7
6
 
8
7
  from langflow.inputs.inputs import DefaultPromptField
9
8
  from langflow.interface.utils import extract_input_variables_from_prompt
9
+ from langflow.logging.logger import logger
10
10
 
11
11
  _INVALID_CHARACTERS = {
12
12
  " ",
@@ -3,13 +3,13 @@ from __future__ import annotations
3
3
  from typing import TYPE_CHECKING, Any
4
4
 
5
5
  from langchain_core.tools import BaseTool, ToolException
6
- from loguru import logger
7
6
  from typing_extensions import override
8
7
 
9
8
  from langflow.base.flow_processing.utils import build_data_from_result_data, format_flow_output_data
10
9
  from langflow.graph.graph.base import Graph # cannot be a part of TYPE_CHECKING # noqa: TC001
11
10
  from langflow.graph.vertex.base import Vertex # cannot be a part of TYPE_CHECKING # noqa: TC001
12
11
  from langflow.helpers.flow import build_schema_from_inputs, get_arg_names, get_flow_inputs, run_flow
12
+ from langflow.logging.logger import logger
13
13
  from langflow.utils.async_helpers import run_until_complete
14
14
 
15
15
  if TYPE_CHECKING:
@@ -109,7 +109,7 @@ class FlowTool(BaseTool):
109
109
  try:
110
110
  run_id = self.graph.run_id if hasattr(self, "graph") and self.graph else None
111
111
  except Exception: # noqa: BLE001
112
- logger.opt(exception=True).warning("Failed to set run_id")
112
+ logger.warning("Failed to set run_id", exc_info=True)
113
113
  run_id = None
114
114
  run_outputs = await run_flow(
115
115
  tweaks={key: {"input_value": value} for key, value in tweaks.items()},
@@ -1,7 +1,6 @@
1
1
  from abc import abstractmethod
2
2
  from typing import TYPE_CHECKING
3
3
 
4
- from loguru import logger
5
4
  from typing_extensions import override
6
5
 
7
6
  from langflow.custom.custom_component.component import Component, _get_component_toolkit
@@ -9,11 +8,8 @@ from langflow.field_typing import Tool
9
8
  from langflow.graph.graph.base import Graph
10
9
  from langflow.graph.vertex.base import Vertex
11
10
  from langflow.helpers.flow import get_flow_inputs
12
- from langflow.inputs.inputs import (
13
- DropdownInput,
14
- InputTypes,
15
- MessageInput,
16
- )
11
+ from langflow.inputs.inputs import DropdownInput, InputTypes, MessageInput
12
+ from langflow.logging.logger import logger
17
13
  from langflow.schema.data import Data
18
14
  from langflow.schema.dataframe import DataFrame
19
15
  from langflow.schema.dotdict import dotdict
@@ -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.opt(exception=True).debug("Error adding content to Notion page")
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.opt(exception=True).debug("Error fetching Notion database properties")
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.opt(exception=True).debug("Error querying Notion database")
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.opt(exception=True).debug("Error retrieving Notion page content")
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
- BoolInput,
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.error(f"{type(e).__name__}: {e!s}")
138
+ await logger.aerror(f"{type(e).__name__}: {e!s}")
139
139
  raise
140
140
  except ExceptionWithMessageError as e:
141
- logger.error(f"ExceptionWithMessageError occurred: {e}")
141
+ await logger.aerror(f"ExceptionWithMessageError occurred: {e}")
142
142
  raise
143
143
  except Exception as e:
144
- logger.error(f"Unexpected error: {e!s}")
144
+ await logger.aerror(f"Unexpected error: {e!s}")
145
145
  raise
146
146
  else:
147
147
  return result
@@ -16,16 +16,15 @@ from langflow.base.mcp.util import (
16
16
  )
17
17
  from langflow.custom.custom_component.component_with_cache import ComponentWithCache
18
18
  from langflow.inputs.inputs import InputTypes # noqa: TC001
19
- from langflow.io import DropdownInput, McpInput, MessageTextInput, Output, SecretStrInput
19
+ from langflow.io import DropdownInput, McpInput, MessageTextInput, Output
20
20
  from langflow.io.schema import flatten_schema, schema_to_langflow_inputs
21
21
  from langflow.logging import logger
22
22
  from langflow.schema.dataframe import DataFrame
23
23
  from langflow.schema.message import Message
24
24
 
25
25
  # Import get_server from the backend API
26
- from langflow.services.auth.utils import create_user_longterm_token, get_current_user
27
26
  from langflow.services.database.models.user.crud import get_user_by_id
28
- from langflow.services.deps import get_session, get_settings_service, get_storage_service
27
+ from langflow.services.deps import get_settings_service, get_storage_service, session_scope
29
28
 
30
29
 
31
30
  class MCPToolsComponent(ComponentWithCache):
@@ -96,13 +95,6 @@ class MCPToolsComponent(ComponentWithCache):
96
95
  show=False,
97
96
  tool_mode=False,
98
97
  ),
99
- SecretStrInput(
100
- name="api_key",
101
- display_name="Langflow API Key",
102
- info="Langflow API key for authentication when fetching MCP servers and tools.",
103
- required=False,
104
- advanced=True,
105
- ),
106
98
  ]
107
99
 
108
100
  outputs = [
@@ -125,12 +117,12 @@ class MCPToolsComponent(ComponentWithCache):
125
117
  schema_inputs = schema_to_langflow_inputs(input_schema)
126
118
  if not schema_inputs:
127
119
  msg = f"No input parameters defined for tool '{tool_obj.name}'"
128
- logger.warning(msg)
120
+ await logger.awarning(msg)
129
121
  return []
130
122
 
131
123
  except Exception as e:
132
124
  msg = f"Error validating schema inputs: {e!s}"
133
- logger.exception(msg)
125
+ await logger.aexception(msg)
134
126
  raise ValueError(msg) from e
135
127
  else:
136
128
  return schema_inputs
@@ -161,19 +153,11 @@ class MCPToolsComponent(ComponentWithCache):
161
153
  return self.tools, {"name": server_name, "config": server_config_from_value}
162
154
 
163
155
  try:
164
- async for db in get_session():
165
- # TODO: In 1.6, this may need to be removed or adjusted
166
- # Try to get the super user token, if possible
167
- if self.api_key:
168
- current_user = await get_current_user(
169
- token=None,
170
- query_param=self.api_key,
171
- header_param=None,
172
- db=db,
173
- )
174
- else:
175
- user_id, _ = await create_user_longterm_token(db)
176
- current_user = await get_user_by_id(db, user_id)
156
+ async with session_scope() as db:
157
+ if not self.user_id:
158
+ msg = "User ID is required for fetching MCP tools."
159
+ raise ValueError(msg)
160
+ current_user = await get_user_by_id(db, self.user_id)
177
161
 
178
162
  # Try to get server config from DB/API
179
163
  server_config = await get_server(
@@ -184,47 +168,48 @@ class MCPToolsComponent(ComponentWithCache):
184
168
  settings_service=get_settings_service(),
185
169
  )
186
170
 
187
- # If get_server returns empty but we have a config, use it
188
- if not server_config and server_config_from_value:
189
- server_config = server_config_from_value
190
-
191
- if not server_config:
192
- self.tools = []
193
- return [], {"name": server_name, "config": server_config}
171
+ # If get_server returns empty but we have a config, use it
172
+ if not server_config and server_config_from_value:
173
+ server_config = server_config_from_value
174
+
175
+ if not server_config:
176
+ self.tools = []
177
+ return [], {"name": server_name, "config": server_config}
178
+
179
+ _, tool_list, tool_cache = await update_tools(
180
+ server_name=server_name,
181
+ server_config=server_config,
182
+ mcp_stdio_client=self.stdio_client,
183
+ mcp_sse_client=self.sse_client,
184
+ )
185
+
186
+ self.tool_names = [tool.name for tool in tool_list if hasattr(tool, "name")]
187
+ self._tool_cache = tool_cache
188
+ self.tools = tool_list
189
+ # Cache the result using shared cache
190
+ cache_data = {
191
+ "tools": tool_list,
192
+ "tool_names": self.tool_names,
193
+ "tool_cache": tool_cache,
194
+ "config": server_config,
195
+ }
196
+
197
+ # Safely update the servers cache
198
+ current_servers_cache = safe_cache_get(self._shared_component_cache, "servers", {})
199
+ if isinstance(current_servers_cache, dict):
200
+ current_servers_cache[server_name] = cache_data
201
+ safe_cache_set(self._shared_component_cache, "servers", current_servers_cache)
194
202
 
195
- _, tool_list, tool_cache = await update_tools(
196
- server_name=server_name,
197
- server_config=server_config,
198
- mcp_stdio_client=self.stdio_client,
199
- mcp_sse_client=self.sse_client,
200
- )
201
-
202
- self.tool_names = [tool.name for tool in tool_list if hasattr(tool, "name")]
203
- self._tool_cache = tool_cache
204
- self.tools = tool_list
205
- # Cache the result using shared cache
206
- cache_data = {
207
- "tools": tool_list,
208
- "tool_names": self.tool_names,
209
- "tool_cache": tool_cache,
210
- "config": server_config,
211
- }
212
-
213
- # Safely update the servers cache
214
- current_servers_cache = safe_cache_get(self._shared_component_cache, "servers", {})
215
- if isinstance(current_servers_cache, dict):
216
- current_servers_cache[server_name] = cache_data
217
- safe_cache_set(self._shared_component_cache, "servers", current_servers_cache)
218
-
219
- return tool_list, {"name": server_name, "config": server_config}
220
203
  except (TimeoutError, asyncio.TimeoutError) as e:
221
204
  msg = f"Timeout updating tool list: {e!s}"
222
- logger.exception(msg)
205
+ await logger.aexception(msg)
223
206
  raise TimeoutError(msg) from e
224
207
  except Exception as e:
225
208
  msg = f"Error updating tool list: {e!s}"
226
- logger.exception(msg)
209
+ await logger.aexception(msg)
227
210
  raise ValueError(msg) from e
211
+ else:
212
+ return tool_list, {"name": server_name, "config": server_config}
228
213
 
229
214
  async def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None) -> dict:
230
215
  """Toggle the visibility of connection-specific fields based on the selected mode."""
@@ -238,7 +223,7 @@ class MCPToolsComponent(ComponentWithCache):
238
223
  build_config["tool"]["placeholder"] = "Select a tool"
239
224
  except (TimeoutError, asyncio.TimeoutError) as e:
240
225
  msg = f"Timeout updating tool list: {e!s}"
241
- logger.exception(msg)
226
+ await logger.aexception(msg)
242
227
  if not build_config["tools_metadata"]["show"]:
243
228
  build_config["tool"]["show"] = True
244
229
  build_config["tool"]["options"] = []
@@ -264,7 +249,7 @@ class MCPToolsComponent(ComponentWithCache):
264
249
  break
265
250
  if tool_obj is None:
266
251
  msg = f"Tool {field_value} not found in available tools: {self.tools}"
267
- logger.warning(msg)
252
+ await logger.awarning(msg)
268
253
  return build_config
269
254
  await self._update_tool_config(build_config, field_value)
270
255
  except Exception as e:
@@ -348,7 +333,7 @@ class MCPToolsComponent(ComponentWithCache):
348
333
 
349
334
  except Exception as e:
350
335
  msg = f"Error in update_build_config: {e!s}"
351
- logger.exception(msg)
336
+ await logger.aexception(msg)
352
337
  raise ValueError(msg) from e
353
338
  else:
354
339
  return build_config
@@ -401,7 +386,7 @@ class MCPToolsComponent(ComponentWithCache):
401
386
  msg = f"Tool {tool_name} not found in available tools: {self.tools}"
402
387
  self.remove_non_default_keys(build_config)
403
388
  build_config["tool"]["value"] = ""
404
- logger.warning(msg)
389
+ await logger.awarning(msg)
405
390
  return
406
391
 
407
392
  try:
@@ -419,14 +404,14 @@ class MCPToolsComponent(ComponentWithCache):
419
404
  self.schema_inputs = await self._validate_schema_inputs(tool_obj)
420
405
  if not self.schema_inputs:
421
406
  msg = f"No input parameters to configure for tool '{tool_name}'"
422
- logger.info(msg)
407
+ await logger.ainfo(msg)
423
408
  return
424
409
 
425
410
  # Add new inputs to build config
426
411
  for schema_input in self.schema_inputs:
427
412
  if not schema_input or not hasattr(schema_input, "name"):
428
413
  msg = "Invalid schema input detected, skipping"
429
- logger.warning(msg)
414
+ await logger.awarning(msg)
430
415
  continue
431
416
 
432
417
  try:
@@ -443,16 +428,16 @@ class MCPToolsComponent(ComponentWithCache):
443
428
 
444
429
  except (AttributeError, KeyError, TypeError) as e:
445
430
  msg = f"Error processing schema input {schema_input}: {e!s}"
446
- logger.exception(msg)
431
+ await logger.aexception(msg)
447
432
  continue
448
433
  except ValueError as e:
449
434
  msg = f"Schema validation error for tool {tool_name}: {e!s}"
450
- logger.exception(msg)
435
+ await logger.aexception(msg)
451
436
  self.schema_inputs = []
452
437
  return
453
438
  except (AttributeError, KeyError, TypeError) as e:
454
439
  msg = f"Error updating tool config: {e!s}"
455
- logger.exception(msg)
440
+ await logger.aexception(msg)
456
441
  raise ValueError(msg) from e
457
442
 
458
443
  async def build_output(self) -> DataFrame:
@@ -489,7 +474,7 @@ class MCPToolsComponent(ComponentWithCache):
489
474
  return DataFrame(data=[{"error": "You must select a tool"}])
490
475
  except Exception as e:
491
476
  msg = f"Error in build_output: {e!s}"
492
- logger.exception(msg)
477
+ await logger.aexception(msg)
493
478
  raise ValueError(msg) from e
494
479
 
495
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"]["value"] = ids[0]
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.opt(exception=True).debug(error)
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.opt(exception=True).debug("Error running LeMUR")
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.opt(exception=True).debug("Error listing transcripts")
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.opt(exception=True).debug(error)
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.opt(exception=True).debug("Error submitting transcription job")
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