langflow-base-nightly 1.7.0.dev34__py3-none-any.whl → 1.7.0.dev40__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/api/router.py +4 -0
- langflow/api/v1/__init__.py +4 -0
- langflow/api/v1/files.py +23 -6
- langflow/api/v1/model_options.py +22 -0
- langflow/api/v1/models.py +756 -0
- langflow/api/v1/variable.py +137 -4
- langflow/frontend/assets/SlackIcon-jcCvARnG.js +1 -0
- langflow/frontend/assets/Wikipedia-Cz1tq71R.js +1 -0
- langflow/frontend/assets/Wolfram-BLAy3uVb.js +1 -0
- langflow/frontend/assets/a-arrow-down-CoUXUP8z.js +6 -0
- langflow/frontend/assets/a-arrow-up-Da-SDnfk.js +6 -0
- langflow/frontend/assets/a-large-small-CV13HtTT.js +6 -0
- langflow/frontend/assets/accessibility-ffdbU-Je.js +6 -0
- langflow/frontend/assets/activity-xmJG9JcO.js +6 -0
- langflow/frontend/assets/air-vent-B4cDTftV.js +6 -0
- langflow/frontend/assets/airplay-CYzjY62P.js +6 -0
- langflow/frontend/assets/alarm-clock-CPhWhrK9.js +6 -0
- langflow/frontend/assets/alarm-clock-check-CeoYM26U.js +6 -0
- langflow/frontend/assets/alarm-clock-minus-cW54e1dX.js +6 -0
- langflow/frontend/assets/alarm-clock-off-D4L9bw6Q.js +6 -0
- langflow/frontend/assets/alarm-clock-plus-UYimGrZt.js +6 -0
- langflow/frontend/assets/alarm-smoke-fS8_f5ar.js +6 -0
- langflow/frontend/assets/album-keNuqc_Y.js +6 -0
- langflow/frontend/assets/align-center-CItuDiwO.js +6 -0
- langflow/frontend/assets/align-center-horizontal-BGzpCFno.js +6 -0
- langflow/frontend/assets/align-center-vertical-CYFsiO_d.js +6 -0
- langflow/frontend/assets/align-end-horizontal-C19_l6Py.js +6 -0
- langflow/frontend/assets/align-end-vertical-DlF2CtTI.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-center-By1Rqfwu.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-end-CipTXlX9.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-start-Ddri2UoL.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-center-y7r_ZOvU.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-end-D2atYO7T.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-start-FxOuff2G.js +6 -0
- langflow/frontend/assets/align-horizontal-space-around-Dz2LH_-W.js +6 -0
- langflow/frontend/assets/align-horizontal-space-between-LKQSaLc4.js +6 -0
- langflow/frontend/assets/align-justify-CQ8PiLWD.js +6 -0
- langflow/frontend/assets/align-left-CJGTx_R8.js +6 -0
- langflow/frontend/assets/align-right-DxASEZxW.js +6 -0
- langflow/frontend/assets/align-start-horizontal-BoqPRKhg.js +6 -0
- langflow/frontend/assets/align-start-vertical-B9e-NH9L.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-center-E_Dslh2B.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-end-B0ihML-j.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-start-DSMIg2-U.js +6 -0
- langflow/frontend/assets/align-vertical-justify-center-IBKS2-Xh.js +6 -0
- langflow/frontend/assets/align-vertical-justify-end-rWF_cVz1.js +6 -0
- langflow/frontend/assets/align-vertical-justify-start-C7SZc01x.js +6 -0
- langflow/frontend/assets/align-vertical-space-around-BPgfsCep.js +6 -0
- langflow/frontend/assets/align-vertical-space-between-gJBnWzWI.js +6 -0
- langflow/frontend/assets/ambulance-Ds99_9Ha.js +6 -0
- langflow/frontend/assets/ampersand-bGdQ2Pt8.js +6 -0
- langflow/frontend/assets/ampersands-BgeuTmF1.js +6 -0
- langflow/frontend/assets/amphora-DYtx7KqO.js +6 -0
- langflow/frontend/assets/anchor-Am2KWjXh.js +6 -0
- langflow/frontend/assets/angry-W80ZBe6e.js +6 -0
- langflow/frontend/assets/annoyed-BVwmtL1I.js +6 -0
- langflow/frontend/assets/antenna-DnPyUkAj.js +6 -0
- langflow/frontend/assets/anvil-ATVhnyA1.js +6 -0
- langflow/frontend/assets/aperture-CsSad2e5.js +6 -0
- langflow/frontend/assets/app-window-VQdvIPE9.js +6 -0
- langflow/frontend/assets/app-window-mac-9Pg6SAVr.js +6 -0
- langflow/frontend/assets/apple-gBHWzbAj.js +6 -0
- langflow/frontend/assets/archive-I37U9ply.js +6 -0
- langflow/frontend/assets/archive-restore-BM1_vDTP.js +6 -0
- langflow/frontend/assets/archive-x-CgCKsspX.js +6 -0
- langflow/frontend/assets/armchair-VuyB5kjI.js +6 -0
- langflow/frontend/assets/arrow-big-down-Kkn0QVML.js +6 -0
- langflow/frontend/assets/arrow-big-down-dash-BzW-7F7k.js +6 -0
- langflow/frontend/assets/arrow-big-left-dash-DjUPgnhB.js +6 -0
- langflow/frontend/assets/arrow-big-left-wewxTXoO.js +6 -0
- langflow/frontend/assets/arrow-big-right-CWaWOx8y.js +6 -0
- langflow/frontend/assets/arrow-big-right-dash-B6y6j6ZT.js +6 -0
- langflow/frontend/assets/arrow-big-up-054FNpxq.js +6 -0
- langflow/frontend/assets/arrow-big-up-dash-Ls7mJP_2.js +6 -0
- langflow/frontend/assets/arrow-down-0-1-D15MTOft.js +6 -0
- langflow/frontend/assets/arrow-down-1-0-BHEY69wi.js +6 -0
- langflow/frontend/assets/arrow-down-1oLsmGhJ.js +6 -0
- langflow/frontend/assets/arrow-down-a-z-DVaPd5s-.js +6 -0
- langflow/frontend/assets/arrow-down-from-line-DQr8k1ps.js +6 -0
- langflow/frontend/assets/arrow-down-left-IJZxrTP8.js +6 -0
- langflow/frontend/assets/arrow-down-narrow-wide-BSob5e0e.js +6 -0
- langflow/frontend/assets/arrow-down-right-BHfj05pH.js +6 -0
- langflow/frontend/assets/arrow-down-to-dot-BayAkcRL.js +6 -0
- langflow/frontend/assets/arrow-down-to-line-DDjXnoi2.js +6 -0
- langflow/frontend/assets/arrow-down-up-DXhTqGiS.js +6 -0
- langflow/frontend/assets/arrow-down-wide-narrow-ClJG0lKU.js +6 -0
- langflow/frontend/assets/arrow-down-z-a-BhLeo9br.js +6 -0
- langflow/frontend/assets/arrow-left-BIuT_8wX.js +6 -0
- langflow/frontend/assets/arrow-left-from-line-CJs1tTJH.js +6 -0
- langflow/frontend/assets/arrow-left-right-CaaNUB6B.js +6 -0
- langflow/frontend/assets/arrow-left-to-line-B3Y1lAIS.js +6 -0
- langflow/frontend/assets/arrow-right-DyUTIxWM.js +6 -0
- langflow/frontend/assets/arrow-right-from-line-B07gJFBJ.js +6 -0
- langflow/frontend/assets/arrow-right-left-LMVQjljN.js +6 -0
- langflow/frontend/assets/arrow-right-to-line-Y-40GtoJ.js +6 -0
- langflow/frontend/assets/arrow-up-0-1-8O33adFA.js +6 -0
- langflow/frontend/assets/arrow-up-1-0-koVxRDqJ.js +6 -0
- langflow/frontend/assets/arrow-up-C_eNpYkg.js +6 -0
- langflow/frontend/assets/arrow-up-a-z-C3xdYwTO.js +6 -0
- langflow/frontend/assets/arrow-up-down-C6Ce99Bi.js +6 -0
- langflow/frontend/assets/arrow-up-from-dot-BK0jxUBe.js +6 -0
- langflow/frontend/assets/arrow-up-from-line-CdkJH3iH.js +6 -0
- langflow/frontend/assets/arrow-up-left--WO6vvLD.js +6 -0
- langflow/frontend/assets/arrow-up-narrow-wide-Bq5-_J0-.js +6 -0
- langflow/frontend/assets/arrow-up-right-umIP6WZE.js +6 -0
- langflow/frontend/assets/arrow-up-to-line-CsxyNAy5.js +6 -0
- langflow/frontend/assets/arrow-up-wide-narrow-ZILqBK5i.js +6 -0
- langflow/frontend/assets/arrow-up-z-a-B02YLD2h.js +6 -0
- langflow/frontend/assets/arrows-up-from-line-DgGrF4wT.js +6 -0
- langflow/frontend/assets/asterisk-DWTMSgV3.js +6 -0
- langflow/frontend/assets/at-sign-DFysBWCu.js +6 -0
- langflow/frontend/assets/atom-C154yWRS.js +6 -0
- langflow/frontend/assets/audio-lines-D1OS44At.js +6 -0
- langflow/frontend/assets/audio-waveform-CI3uPWIO.js +6 -0
- langflow/frontend/assets/award-9PNBbtYl.js +6 -0
- langflow/frontend/assets/axe-CNQBcuBw.js +6 -0
- langflow/frontend/assets/axis-3d-CJAn3Koa.js +6 -0
- langflow/frontend/assets/baby-95MDXuZv.js +6 -0
- langflow/frontend/assets/backpack-B8DgU-DL.js +6 -0
- langflow/frontend/assets/badge-alert-CKqzKxXc.js +6 -0
- langflow/frontend/assets/badge-cent-CsiJ45xU.js +6 -0
- langflow/frontend/assets/badge-check-3qM8ZUBq.js +6 -0
- langflow/frontend/assets/badge-dollar-sign-DB9okIZw.js +6 -0
- langflow/frontend/assets/badge-euro-DG9LsWTy.js +6 -0
- langflow/frontend/assets/badge-help-vgj4hWX0.js +6 -0
- langflow/frontend/assets/badge-indian-rupee-JaJmz7qh.js +6 -0
- langflow/frontend/assets/badge-info-zTLRz_n7.js +6 -0
- langflow/frontend/assets/badge-japanese-yen-C3Vci6Xx.js +6 -0
- langflow/frontend/assets/badge-minus-C2Cb760Q.js +6 -0
- langflow/frontend/assets/badge-percent-ok4E7-Ka.js +6 -0
- langflow/frontend/assets/badge-plus-C3y2yIh8.js +6 -0
- langflow/frontend/assets/badge-pound-sterling-BO21TLny.js +6 -0
- langflow/frontend/assets/badge-russian-ruble-B0aCX1a4.js +6 -0
- langflow/frontend/assets/badge-sdXY7f9V.js +6 -0
- langflow/frontend/assets/badge-swiss-franc-D_MFAaD6.js +6 -0
- langflow/frontend/assets/badge-x-CES15ZMw.js +6 -0
- langflow/frontend/assets/baggage-claim-NnSOPJJo.js +6 -0
- langflow/frontend/assets/ban-CLeuKU1_.js +6 -0
- langflow/frontend/assets/banana-B8oktbJo.js +6 -0
- langflow/frontend/assets/bandage-DZpaO6_l.js +6 -0
- langflow/frontend/assets/banknote-CVGQ1yfc.js +6 -0
- langflow/frontend/assets/banknote-arrow-down-C6PQh4aK.js +6 -0
- langflow/frontend/assets/banknote-arrow-up-CoFnpQBF.js +6 -0
- langflow/frontend/assets/banknote-x-ONn2S72-.js +6 -0
- langflow/frontend/assets/barcode-CRySdnYF.js +6 -0
- langflow/frontend/assets/baseline-tr5dd6J0.js +6 -0
- langflow/frontend/assets/bath-UPP4QPwq.js +6 -0
- langflow/frontend/assets/battery-BVuaya1V.js +6 -0
- langflow/frontend/assets/battery-charging-DSv6MbjW.js +6 -0
- langflow/frontend/assets/battery-full-CKS7bDvY.js +6 -0
- langflow/frontend/assets/battery-low-anF9-3g1.js +6 -0
- langflow/frontend/assets/battery-medium-BGoVc26H.js +6 -0
- langflow/frontend/assets/battery-plus-BxVemFfo.js +6 -0
- langflow/frontend/assets/battery-warning-Cq9MXMRT.js +6 -0
- langflow/frontend/assets/beaker-DyDEnhnU.js +6 -0
- langflow/frontend/assets/bean-ds69-JwO.js +6 -0
- langflow/frontend/assets/bean-off-8s8byDpq.js +6 -0
- langflow/frontend/assets/bed-DmuISvUH.js +6 -0
- langflow/frontend/assets/bed-double-BpAWf4n6.js +6 -0
- langflow/frontend/assets/bed-single-CkYO5mTP.js +6 -0
- langflow/frontend/assets/beef-cNNOaoxh.js +6 -0
- langflow/frontend/assets/beer-CDFf23om.js +6 -0
- langflow/frontend/assets/beer-off-DhSEC3mI.js +6 -0
- langflow/frontend/assets/bell-BzkavWQ7.js +6 -0
- langflow/frontend/assets/bell-dot-BZ8e5MRv.js +6 -0
- langflow/frontend/assets/bell-electric-jX0QnhxK.js +6 -0
- langflow/frontend/assets/bell-minus-Bxh7wBRN.js +6 -0
- langflow/frontend/assets/bell-off-BnmdInNN.js +6 -0
- langflow/frontend/assets/bell-plus-TwicCCL6.js +6 -0
- langflow/frontend/assets/bell-ring-CgYKWayy.js +6 -0
- langflow/frontend/assets/between-horizontal-end-CVX2xL1T.js +6 -0
- langflow/frontend/assets/between-horizontal-start-BJEyTUwb.js +6 -0
- langflow/frontend/assets/between-vertical-end-8MkQaeYN.js +6 -0
- langflow/frontend/assets/between-vertical-start-BNiBjS1I.js +6 -0
- langflow/frontend/assets/biceps-flexed-CusoCTW6.js +6 -0
- langflow/frontend/assets/bike-CCxMkbXH.js +6 -0
- langflow/frontend/assets/binary-iD-1XtPD.js +6 -0
- langflow/frontend/assets/binoculars-DuND1yob.js +6 -0
- langflow/frontend/assets/biohazard-CJebCS8u.js +6 -0
- langflow/frontend/assets/bird-gTwDa8M7.js +6 -0
- langflow/frontend/assets/bitcoin-QFEr6ysh.js +6 -0
- langflow/frontend/assets/blend-DaUs6DQE.js +6 -0
- langflow/frontend/assets/blinds-DZn8-dAm.js +6 -0
- langflow/frontend/assets/blocks-Co6tWvh0.js +6 -0
- langflow/frontend/assets/bluetooth-B5Dl6P5X.js +6 -0
- langflow/frontend/assets/bluetooth-connected-DwtkTd7a.js +6 -0
- langflow/frontend/assets/bluetooth-off-D_auq7ar.js +6 -0
- langflow/frontend/assets/bluetooth-searching-Cu7J6xDn.js +6 -0
- langflow/frontend/assets/bold-EXAyIMd5.js +6 -0
- langflow/frontend/assets/bolt-C9oJDgeP.js +6 -0
- langflow/frontend/assets/bomb-Cg2K4-de.js +6 -0
- langflow/frontend/assets/bone-CXtcETt2.js +6 -0
- langflow/frontend/assets/book-a-C72OoC2b.js +6 -0
- langflow/frontend/assets/book-audio-kE0u0oU7.js +6 -0
- langflow/frontend/assets/book-check-BDuBbfSh.js +6 -0
- langflow/frontend/assets/book-copy-DVi5leRn.js +6 -0
- langflow/frontend/assets/book-dashed-B9FDPuob.js +6 -0
- langflow/frontend/assets/book-down-DeoxgeY6.js +6 -0
- langflow/frontend/assets/book-headphones-B2zkY9Z7.js +6 -0
- langflow/frontend/assets/book-heart-It9-uerK.js +6 -0
- langflow/frontend/assets/book-image-DRMgOETi.js +6 -0
- langflow/frontend/assets/book-key-D6RB8Jaf.js +6 -0
- langflow/frontend/assets/book-lock-CdSmnfj5.js +6 -0
- langflow/frontend/assets/book-marked-BJTsIHuI.js +6 -0
- langflow/frontend/assets/book-minus-DIdW21hG.js +6 -0
- langflow/frontend/assets/book-open-check-Cmd7RCy_.js +6 -0
- langflow/frontend/assets/book-open-text-BQBTUcDm.js +6 -0
- langflow/frontend/assets/book-open-w2J4hx8i.js +6 -0
- langflow/frontend/assets/book-plus-CVmpY9XL.js +6 -0
- langflow/frontend/assets/book-s903kjMP.js +6 -0
- langflow/frontend/assets/book-text-CMfGOy7y.js +6 -0
- langflow/frontend/assets/book-type-fBZzsbKB.js +6 -0
- langflow/frontend/assets/book-up-2-CeIRzFoi.js +6 -0
- langflow/frontend/assets/book-up-CXffOzj8.js +6 -0
- langflow/frontend/assets/book-user-BljzoHZE.js +6 -0
- langflow/frontend/assets/book-x-Db9rpOdZ.js +6 -0
- langflow/frontend/assets/bookmark-check-BbMePmTe.js +6 -0
- langflow/frontend/assets/bookmark-minus-BuHvNSL6.js +6 -0
- langflow/frontend/assets/bookmark-plus-DklqPXGN.js +6 -0
- langflow/frontend/assets/bookmark-ufnXuBIB.js +6 -0
- langflow/frontend/assets/bookmark-x-CFGYn7mb.js +6 -0
- langflow/frontend/assets/boom-box-DONtubT5.js +6 -0
- langflow/frontend/assets/bot-Cg_1KznH.js +6 -0
- langflow/frontend/assets/bot-message-square-RL8XqoPg.js +6 -0
- langflow/frontend/assets/bot-off-CqkL2c56.js +6 -0
- langflow/frontend/assets/bow-arrow-_JSJv62K.js +6 -0
- langflow/frontend/assets/box-B5cDYcGc.js +6 -0
- langflow/frontend/assets/boxes-Bm1sXmfv.js +6 -0
- langflow/frontend/assets/braces-DMyxvRhr.js +6 -0
- langflow/frontend/assets/brackets-CCge3LzV.js +6 -0
- langflow/frontend/assets/brain-circuit-hBYDQnw4.js +6 -0
- langflow/frontend/assets/brain-cog-CbZSslGZ.js +6 -0
- langflow/frontend/assets/brain-vVytO4xb.js +6 -0
- langflow/frontend/assets/brick-wall-BWjMZIEz.js +6 -0
- langflow/frontend/assets/brick-wall-fire-DsEF-Pof.js +6 -0
- langflow/frontend/assets/briefcase-CgC-hbtJ.js +6 -0
- langflow/frontend/assets/briefcase-business-C3tO_6x0.js +6 -0
- langflow/frontend/assets/briefcase-conveyor-belt-Rlyvg5IZ.js +6 -0
- langflow/frontend/assets/briefcase-medical-AB8b8fdx.js +6 -0
- langflow/frontend/assets/bring-to-front-CNSHW6Bx.js +6 -0
- langflow/frontend/assets/brush-Bqd58MDD.js +6 -0
- langflow/frontend/assets/bubbles-B_vux_LS.js +6 -0
- langflow/frontend/assets/bug-DJQP3BVJ.js +6 -0
- langflow/frontend/assets/bug-off-DV7P7Xnw.js +6 -0
- langflow/frontend/assets/bug-play-DQNP5iJ1.js +6 -0
- langflow/frontend/assets/building-2-BJw7QBVF.js +6 -0
- langflow/frontend/assets/building-BBJRKpGi.js +6 -0
- langflow/frontend/assets/bus-front-DavC92gA.js +6 -0
- langflow/frontend/assets/bus-kKfQDL1M.js +6 -0
- langflow/frontend/assets/cable-DonRDEXS.js +6 -0
- langflow/frontend/assets/cable-car-DV_gTDcp.js +6 -0
- langflow/frontend/assets/cake-Dr2hNSUF.js +6 -0
- langflow/frontend/assets/cake-slice-CgHjCjli.js +6 -0
- langflow/frontend/assets/calculator-BjVmsI37.js +6 -0
- langflow/frontend/assets/calendar-1-6ujDQR_Z.js +6 -0
- langflow/frontend/assets/calendar-DNqEUBMv.js +6 -0
- langflow/frontend/assets/calendar-arrow-down-CrAKWodj.js +6 -0
- langflow/frontend/assets/calendar-arrow-up-C6Z79eok.js +6 -0
- langflow/frontend/assets/calendar-check-2-DhcdEFss.js +6 -0
- langflow/frontend/assets/calendar-check-CrGC-rRX.js +6 -0
- langflow/frontend/assets/calendar-clock-P3xD_q8U.js +6 -0
- langflow/frontend/assets/calendar-cog-BdcCW0qo.js +6 -0
- langflow/frontend/assets/calendar-days-B4zlIQsv.js +6 -0
- langflow/frontend/assets/calendar-fold-CfeuOEDv.js +6 -0
- langflow/frontend/assets/calendar-heart-CxeeSHHR.js +6 -0
- langflow/frontend/assets/calendar-minus-2-XjzHqkuP.js +6 -0
- langflow/frontend/assets/calendar-minus-CkjvuHBy.js +6 -0
- langflow/frontend/assets/calendar-off-V3fkVboK.js +6 -0
- langflow/frontend/assets/calendar-plus-2-CleUHMhQ.js +6 -0
- langflow/frontend/assets/calendar-plus-5OVcVzc4.js +6 -0
- langflow/frontend/assets/calendar-range-Cr8SDrjB.js +6 -0
- langflow/frontend/assets/calendar-search-BHXp7QU6.js +6 -0
- langflow/frontend/assets/calendar-sync-RLw9zLXn.js +6 -0
- langflow/frontend/assets/calendar-x-2-DvNV0C0T.js +6 -0
- langflow/frontend/assets/calendar-x-CWB7KY6X.js +6 -0
- langflow/frontend/assets/camera-CY_U8tTL.js +6 -0
- langflow/frontend/assets/camera-off-BWowL1Yo.js +6 -0
- langflow/frontend/assets/candy-cane-Du4Khx8S.js +6 -0
- langflow/frontend/assets/candy-off-B8idNXA4.js +6 -0
- langflow/frontend/assets/candy-rhT1TalQ.js +6 -0
- langflow/frontend/assets/cannabis-BNzK8faq.js +6 -0
- langflow/frontend/assets/captions-9ToWE0Ee.js +6 -0
- langflow/frontend/assets/captions-off-BGLV3fiT.js +6 -0
- langflow/frontend/assets/car-DypTrC0P.js +6 -0
- langflow/frontend/assets/car-front-z2TjAcSN.js +6 -0
- langflow/frontend/assets/car-taxi-front-BgyC_1qP.js +6 -0
- langflow/frontend/assets/caravan-BsFQdmZA.js +6 -0
- langflow/frontend/assets/carrot-CY37S7Sv.js +6 -0
- langflow/frontend/assets/case-lower-Dy00uYzz.js +6 -0
- langflow/frontend/assets/case-sensitive-CTrawTwQ.js +6 -0
- langflow/frontend/assets/case-upper-17PJcaUf.js +6 -0
- langflow/frontend/assets/cassette-tape-NZjWKYi_.js +6 -0
- langflow/frontend/assets/cast-BUwizMyH.js +6 -0
- langflow/frontend/assets/castle-BEBOSMDL.js +6 -0
- langflow/frontend/assets/cat-BvF6Ys-H.js +6 -0
- langflow/frontend/assets/cctv-BsfVEigM.js +6 -0
- langflow/frontend/assets/chart-area--bgheyBp.js +6 -0
- langflow/frontend/assets/chart-bar-BzAmmlnj.js +6 -0
- langflow/frontend/assets/chart-bar-big-CMiRFK2d.js +6 -0
- langflow/frontend/assets/chart-bar-decreasing-oJFK9TQz.js +6 -0
- langflow/frontend/assets/chart-bar-increasing-BriuIanv.js +6 -0
- langflow/frontend/assets/chart-bar-stacked-CTsnVp3D.js +6 -0
- langflow/frontend/assets/chart-candlestick-BWmPFnBt.js +6 -0
- langflow/frontend/assets/chart-column-big-DVLr3I8b.js +6 -0
- langflow/frontend/assets/chart-column-decreasing-DJAdq-NQ.js +6 -0
- langflow/frontend/assets/chart-column-iL8B-Xp1.js +6 -0
- langflow/frontend/assets/chart-column-increasing-Eo-BXUvF.js +6 -0
- langflow/frontend/assets/chart-column-stacked-gWYVe1uk.js +6 -0
- langflow/frontend/assets/chart-gantt-B11Nnm9d.js +6 -0
- langflow/frontend/assets/chart-line-CFKboL8b.js +6 -0
- langflow/frontend/assets/chart-network-AAOioTxz.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-DvKHQxcr.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-decreasing-BrcRh0PY.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-increasing-CHvH540P.js +6 -0
- langflow/frontend/assets/chart-no-axes-combined-BaP4NOIo.js +6 -0
- langflow/frontend/assets/chart-no-axes-gantt-Co4uYoxk.js +6 -0
- langflow/frontend/assets/chart-pie-CsF8I2YO.js +6 -0
- langflow/frontend/assets/chart-scatter-D0AOqWjy.js +6 -0
- langflow/frontend/assets/chart-spline-BOUBs4P3.js +6 -0
- langflow/frontend/assets/check-check-Cz2KEOAv.js +6 -0
- langflow/frontend/assets/chef-hat-dSjVy3JX.js +6 -0
- langflow/frontend/assets/cherry-DdONSfGT.js +6 -0
- langflow/frontend/assets/chevron-first---5aK1WI.js +6 -0
- langflow/frontend/assets/chevron-last-DbGq014S.js +6 -0
- langflow/frontend/assets/chevron-left-C3MGdI2D.js +6 -0
- langflow/frontend/assets/chevron-right-DQ6HxO6i.js +6 -0
- langflow/frontend/assets/chevrons-down-CzLIp89t.js +6 -0
- langflow/frontend/assets/chevrons-down-up-B0-pLP0e.js +6 -0
- langflow/frontend/assets/chevrons-left-BPadN_fV.js +6 -0
- langflow/frontend/assets/chevrons-left-right-C82aHS-s.js +6 -0
- langflow/frontend/assets/chevrons-left-right-ellipsis-DlitL5EY.js +6 -0
- langflow/frontend/assets/chevrons-right-JQuVBXh_.js +6 -0
- langflow/frontend/assets/chevrons-right-left-JJCWnJMV.js +6 -0
- langflow/frontend/assets/chevrons-up-DbRDQpjq.js +6 -0
- langflow/frontend/assets/chrome-GfIJ724p.js +6 -0
- langflow/frontend/assets/church-N1katSm3.js +6 -0
- langflow/frontend/assets/cigarette-C3cV6E9R.js +6 -0
- langflow/frontend/assets/cigarette-off-WwVVtitM.js +6 -0
- langflow/frontend/assets/circle-alert-D-tQFJ64.js +6 -0
- langflow/frontend/assets/circle-arrow-down-DfS7zNpe.js +6 -0
- langflow/frontend/assets/circle-arrow-left-C151HfsU.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-left-3BlaccB2.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-right-B8fMd_Kp.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-left-9HXBu3in.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-right-CO7ImzkK.js +6 -0
- langflow/frontend/assets/circle-arrow-right-TfP3EUSO.js +6 -0
- langflow/frontend/assets/circle-arrow-up-B2bf1GAj.js +6 -0
- langflow/frontend/assets/circle-check-BSoaN_Jw.js +6 -0
- langflow/frontend/assets/circle-check-big-D2QDmT3Z.js +6 -0
- langflow/frontend/assets/circle-chevron-down-D7Ioi1uU.js +6 -0
- langflow/frontend/assets/circle-chevron-left-0rNkolhn.js +6 -0
- langflow/frontend/assets/circle-chevron-right-30CCReDY.js +6 -0
- langflow/frontend/assets/circle-chevron-up-Dlz7QpCx.js +6 -0
- langflow/frontend/assets/circle-dashed-CEyPrKG2.js +6 -0
- langflow/frontend/assets/circle-divide-j-5nlB2t.js +6 -0
- langflow/frontend/assets/circle-dollar-sign-CM-Tpyue.js +6 -0
- langflow/frontend/assets/circle-dot-CKltElad.js +6 -0
- langflow/frontend/assets/circle-dot-dashed-CIZRUqPD.js +6 -0
- langflow/frontend/assets/circle-ellipsis-LGOA78S4.js +6 -0
- langflow/frontend/assets/circle-equal-CVUFllZw.js +6 -0
- langflow/frontend/assets/circle-fading-arrow-up-Bbz7x_Jv.js +6 -0
- langflow/frontend/assets/circle-fading-plus-CjW5lgQL.js +6 -0
- langflow/frontend/assets/circle-gauge-CJE1ehcX.js +6 -0
- langflow/frontend/assets/circle-help-BLltOB9C.js +6 -0
- langflow/frontend/assets/circle-minus-DlMsn6vQ.js +6 -0
- langflow/frontend/assets/circle-off-z0TPD3Ac.js +6 -0
- langflow/frontend/assets/circle-parking-D-WW7ajO.js +6 -0
- langflow/frontend/assets/circle-parking-off-DcZsM_rz.js +6 -0
- langflow/frontend/assets/circle-pause-PkpgOT0z.js +6 -0
- langflow/frontend/assets/circle-percent-DdX_pZTZ.js +6 -0
- langflow/frontend/assets/circle-play-Cv27KJOF.js +6 -0
- langflow/frontend/assets/circle-plus-B3r5jk7V.js +6 -0
- langflow/frontend/assets/circle-power-DnwnjSrg.js +6 -0
- langflow/frontend/assets/circle-slash-2-CalLMn57.js +6 -0
- langflow/frontend/assets/circle-slash-C-Wl8Lfn.js +6 -0
- langflow/frontend/assets/circle-small-Dmlz6WNP.js +6 -0
- langflow/frontend/assets/circle-stop-5NJ2jgIC.js +6 -0
- langflow/frontend/assets/circle-user-Dsr7V67d.js +6 -0
- langflow/frontend/assets/circle-user-round-D9IofOwk.js +6 -0
- langflow/frontend/assets/circuit-board-D5UUEf57.js +6 -0
- langflow/frontend/assets/citrus-cURPvdcz.js +6 -0
- langflow/frontend/assets/clapperboard-CrDQuUye.js +6 -0
- langflow/frontend/assets/clipboard-CzyyOKoh.js +6 -0
- langflow/frontend/assets/clipboard-check-CEKyttaA.js +6 -0
- langflow/frontend/assets/clipboard-copy-CxoVmo2y.js +6 -0
- langflow/frontend/assets/clipboard-list-y_eeNu85.js +6 -0
- langflow/frontend/assets/clipboard-minus-Bwi2d1Zx.js +6 -0
- langflow/frontend/assets/clipboard-paste-alUYeRB2.js +6 -0
- langflow/frontend/assets/clipboard-pen-DHihGA3A.js +6 -0
- langflow/frontend/assets/clipboard-pen-line-BAzvt45z.js +6 -0
- langflow/frontend/assets/clipboard-plus-Bn2Oeu_G.js +6 -0
- langflow/frontend/assets/clipboard-type-DcONeWOR.js +6 -0
- langflow/frontend/assets/clipboard-x-B8PQDk6y.js +6 -0
- langflow/frontend/assets/clock-1-DIof1DeS.js +6 -0
- langflow/frontend/assets/clock-10-DFnh90m_.js +6 -0
- langflow/frontend/assets/clock-11-WBQwbpDG.js +6 -0
- langflow/frontend/assets/clock-12-DojUgJLb.js +6 -0
- langflow/frontend/assets/clock-2-DnSp2p_1.js +6 -0
- langflow/frontend/assets/clock-3-BuBOFtU9.js +6 -0
- langflow/frontend/assets/clock-4-BZjo_0iD.js +6 -0
- langflow/frontend/assets/clock-5-CvQtFL8V.js +6 -0
- langflow/frontend/assets/clock-6-DQjmQCIl.js +6 -0
- langflow/frontend/assets/clock-7-Br7mwGze.js +6 -0
- langflow/frontend/assets/clock-8-CVjZnGgA.js +6 -0
- langflow/frontend/assets/clock-9-C76AAEbW.js +6 -0
- langflow/frontend/assets/clock-B80gSqmq.js +6 -0
- langflow/frontend/assets/clock-alert-XAlGq_qy.js +6 -0
- langflow/frontend/assets/clock-arrow-down-BLdNhzs4.js +6 -0
- langflow/frontend/assets/clock-arrow-up-B5f-Csln.js +6 -0
- langflow/frontend/assets/clock-fading-CfB60kGp.js +6 -0
- langflow/frontend/assets/cloud-DPPnfOF0.js +6 -0
- langflow/frontend/assets/cloud-alert-DzkbN4b6.js +6 -0
- langflow/frontend/assets/cloud-cog-CmgScGdU.js +6 -0
- langflow/frontend/assets/cloud-download-CB-I-An9.js +6 -0
- langflow/frontend/assets/cloud-drizzle-ieiU9Xdo.js +6 -0
- langflow/frontend/assets/cloud-fog-C7eoZbbh.js +6 -0
- langflow/frontend/assets/cloud-hail-BoYs1MwF.js +6 -0
- langflow/frontend/assets/cloud-lightning-CszSVgb5.js +6 -0
- langflow/frontend/assets/cloud-moon-B5vXcUBt.js +6 -0
- langflow/frontend/assets/cloud-moon-rain-BBvsvEkx.js +6 -0
- langflow/frontend/assets/cloud-off-tp5eIStH.js +6 -0
- langflow/frontend/assets/cloud-rain-BXvQgl-Q.js +6 -0
- langflow/frontend/assets/cloud-rain-wind-ySJ4eopl.js +6 -0
- langflow/frontend/assets/cloud-snow-BMuuwBGt.js +6 -0
- langflow/frontend/assets/cloud-sun-DXZ4n1DG.js +6 -0
- langflow/frontend/assets/cloud-sun-rain-OzDLyJ_6.js +6 -0
- langflow/frontend/assets/cloud-upload-CAtJ4fDb.js +6 -0
- langflow/frontend/assets/cloudy-BElisnNb.js +6 -0
- langflow/frontend/assets/clover-DNL5OCOW.js +6 -0
- langflow/frontend/assets/club-XRtKhBnw.js +6 -0
- langflow/frontend/assets/code-xml-CQWnwSrZ.js +6 -0
- langflow/frontend/assets/codepen-BIcWOro7.js +6 -0
- langflow/frontend/assets/codesandbox-DZGHtPEE.js +6 -0
- langflow/frontend/assets/coffee-fjkYOSIY.js +6 -0
- langflow/frontend/assets/cog-9Gv-br-9.js +6 -0
- langflow/frontend/assets/coins-BSKbMEgQ.js +6 -0
- langflow/frontend/assets/columns-2-CPaJiBKw.js +6 -0
- langflow/frontend/assets/columns-3-BO8Yp8Y3.js +6 -0
- langflow/frontend/assets/columns-3-cog-B1JOkIga.js +6 -0
- langflow/frontend/assets/columns-4-B0PT9o9a.js +6 -0
- langflow/frontend/assets/combine-BoDHgBne.js +6 -0
- langflow/frontend/assets/command-CIvpaKGU.js +6 -0
- langflow/frontend/assets/compass-DIKeSGfE.js +6 -0
- langflow/frontend/assets/component-DzArdfuJ.js +6 -0
- langflow/frontend/assets/computer-DL5yZQ_-.js +6 -0
- langflow/frontend/assets/concierge-bell-LiCNRBsY.js +6 -0
- langflow/frontend/assets/cone-CvuaKIDp.js +6 -0
- langflow/frontend/assets/construction-BDuigiay.js +6 -0
- langflow/frontend/assets/contact-Dqo04yN8.js +6 -0
- langflow/frontend/assets/contact-round-DjipTyNs.js +6 -0
- langflow/frontend/assets/container-BnqEjqzl.js +6 -0
- langflow/frontend/assets/contrast-DdKgvAlF.js +6 -0
- langflow/frontend/assets/cookie-CikaJNly.js +6 -0
- langflow/frontend/assets/cooking-pot-SgUupa8u.js +6 -0
- langflow/frontend/assets/copy-BRCFfkyk.js +6 -0
- langflow/frontend/assets/copy-check-EZUzM4dw.js +6 -0
- langflow/frontend/assets/copy-minus-kiKXLtm9.js +6 -0
- langflow/frontend/assets/copy-plus-tDF_STRg.js +6 -0
- langflow/frontend/assets/copy-slash-C7BZgAbZ.js +6 -0
- langflow/frontend/assets/copy-x-BCDDl5RP.js +6 -0
- langflow/frontend/assets/copyleft-PKkRvgYK.js +6 -0
- langflow/frontend/assets/copyright-Cuyxk0BZ.js +6 -0
- langflow/frontend/assets/corner-down-left-D5uXLhtf.js +6 -0
- langflow/frontend/assets/corner-down-right-DJdYQkvj.js +6 -0
- langflow/frontend/assets/corner-left-down-C0h42FSP.js +6 -0
- langflow/frontend/assets/corner-left-up-CAZgC9rR.js +6 -0
- langflow/frontend/assets/corner-right-down-B8a6kLuE.js +6 -0
- langflow/frontend/assets/corner-right-up-C7WZZrlV.js +6 -0
- langflow/frontend/assets/corner-up-left-Ce1Y7wsV.js +6 -0
- langflow/frontend/assets/corner-up-right-CGWue0j_.js +6 -0
- langflow/frontend/assets/cpu-BnQvcBKS.js +6 -0
- langflow/frontend/assets/creative-commons-7vR955gQ.js +6 -0
- langflow/frontend/assets/credit-card-BizECBY6.js +6 -0
- langflow/frontend/assets/croissant-Ck0vrZMz.js +6 -0
- langflow/frontend/assets/crop-NS8RYCcf.js +6 -0
- langflow/frontend/assets/cross-_Bgpzlyp.js +6 -0
- langflow/frontend/assets/crosshair-D-VVYD0t.js +6 -0
- langflow/frontend/assets/crown-J8P6exEF.js +6 -0
- langflow/frontend/assets/cuboid-Ca51gYgF.js +6 -0
- langflow/frontend/assets/cup-soda-Pzz0kDM8.js +6 -0
- langflow/frontend/assets/currency-BFsz4XVv.js +6 -0
- langflow/frontend/assets/cylinder-CFY7Pdt8.js +6 -0
- langflow/frontend/assets/dam-LiObVq5J.js +6 -0
- langflow/frontend/assets/database-backup-bhUO8ZV3.js +6 -0
- langflow/frontend/assets/database-hW5hB6Iz.js +6 -0
- langflow/frontend/assets/database-zap-C9w9d2UR.js +6 -0
- langflow/frontend/assets/decimals-arrow-left-oFCwYRLC.js +6 -0
- langflow/frontend/assets/decimals-arrow-right-CabTzl51.js +6 -0
- langflow/frontend/assets/delete-CemLY1s_.js +6 -0
- langflow/frontend/assets/dessert-BgrmmPKX.js +6 -0
- langflow/frontend/assets/diameter-BKPfSZkz.js +6 -0
- langflow/frontend/assets/diamond-CfvJQWsf.js +6 -0
- langflow/frontend/assets/diamond-minus-zVz_POQI.js +6 -0
- langflow/frontend/assets/diamond-percent-DAIeWslt.js +6 -0
- langflow/frontend/assets/diamond-plus-3oN_xa6W.js +6 -0
- langflow/frontend/assets/dice-1-FLEq3pxn.js +6 -0
- langflow/frontend/assets/dice-2-qNjz7osh.js +6 -0
- langflow/frontend/assets/dice-3-lJl_UKIb.js +6 -0
- langflow/frontend/assets/dice-4-DEkZTQRX.js +6 -0
- langflow/frontend/assets/dice-5-3yMtKoto.js +6 -0
- langflow/frontend/assets/dice-6-BZzAweyC.js +6 -0
- langflow/frontend/assets/dices-CzXCu1ap.js +6 -0
- langflow/frontend/assets/diff-Jr3Gm3-8.js +6 -0
- langflow/frontend/assets/disc-2-BhP14L8O.js +6 -0
- langflow/frontend/assets/disc-3-CITF7SGF.js +6 -0
- langflow/frontend/assets/disc-Bm7D48wS.js +6 -0
- langflow/frontend/assets/disc-album-OjtX7C4N.js +6 -0
- langflow/frontend/assets/divide-DjAomsdf.js +6 -0
- langflow/frontend/assets/dna-D4112UWC.js +6 -0
- langflow/frontend/assets/dna-off-VKypIk_S.js +6 -0
- langflow/frontend/assets/dock-DjH-GOe6.js +6 -0
- langflow/frontend/assets/dog-D9VyBDcW.js +6 -0
- langflow/frontend/assets/dollar-sign-CpVoLzev.js +6 -0
- langflow/frontend/assets/donut-bCw448xX.js +6 -0
- langflow/frontend/assets/door-closed-D78hlXtV.js +6 -0
- langflow/frontend/assets/door-open-ichNx4rW.js +6 -0
- langflow/frontend/assets/dot-0lVNjC0a.js +6 -0
- langflow/frontend/assets/download-DxbK5FDT.js +6 -0
- langflow/frontend/assets/drafting-compass-DuJ3vSP_.js +6 -0
- langflow/frontend/assets/drama-TZxn_d0S.js +6 -0
- langflow/frontend/assets/dribbble-t_nXLi1f.js +6 -0
- langflow/frontend/assets/drill-B0LUKN2w.js +6 -0
- langflow/frontend/assets/droplet-l8xy5KIg.js +6 -0
- langflow/frontend/assets/droplet-off-eL0m4ACi.js +6 -0
- langflow/frontend/assets/droplets-CJurU20Z.js +6 -0
- langflow/frontend/assets/drum-DNZAJJtm.js +6 -0
- langflow/frontend/assets/drumstick-B7YkqlV0.js +6 -0
- langflow/frontend/assets/dumbbell-wZbbH-lp.js +6 -0
- langflow/frontend/assets/ear-BcG_zVcX.js +6 -0
- langflow/frontend/assets/ear-off-DaGMbf-6.js +6 -0
- langflow/frontend/assets/earth--vs2GyRT.js +6 -0
- langflow/frontend/assets/earth-lock-3FU34q4R.js +6 -0
- langflow/frontend/assets/eclipse-C0yt1TbD.js +6 -0
- langflow/frontend/assets/egg-BuhX_6yy.js +6 -0
- langflow/frontend/assets/egg-fried-FZY5sNFf.js +6 -0
- langflow/frontend/assets/egg-off-bU1O4DsM.js +6 -0
- langflow/frontend/assets/ellipsis-vehktWvC.js +6 -0
- langflow/frontend/assets/ellipsis-vertical-DTo2CmTc.js +6 -0
- langflow/frontend/assets/equal-H8QZy_RQ.js +6 -0
- langflow/frontend/assets/equal-approximately-DlBWf4eR.js +6 -0
- langflow/frontend/assets/equal-not-DamyFJ5C.js +6 -0
- langflow/frontend/assets/eraser-DV9kOu_a.js +6 -0
- langflow/frontend/assets/ethernet-port-q58WH8eZ.js +6 -0
- langflow/frontend/assets/euro-DJHnTLOh.js +6 -0
- langflow/frontend/assets/expand-Cz9si0Yq.js +6 -0
- langflow/frontend/assets/eye--CUPWDOy.js +6 -0
- langflow/frontend/assets/eye-closed-NrWlH_L2.js +6 -0
- langflow/frontend/assets/eye-off-Cz1K8u1F.js +6 -0
- langflow/frontend/assets/facebook-rm85Wyw-.js +6 -0
- langflow/frontend/assets/factory-rCaSugV4.js +6 -0
- langflow/frontend/assets/fan-DRoU5UDH.js +6 -0
- langflow/frontend/assets/fast-forward-C0PcI8l7.js +6 -0
- langflow/frontend/assets/feather-BcTzUaqF.js +6 -0
- langflow/frontend/assets/fence-Bj2glkAa.js +6 -0
- langflow/frontend/assets/ferris-wheel-B1x-XnHn.js +6 -0
- langflow/frontend/assets/figma-CzN2D9Mu.js +6 -0
- langflow/frontend/assets/file-3n0IBvvG.js +6 -0
- langflow/frontend/assets/file-archive-CyYc0cZ_.js +6 -0
- langflow/frontend/assets/file-audio-2-DjowYdGo.js +6 -0
- langflow/frontend/assets/file-audio-Bpf7OXOe.js +6 -0
- langflow/frontend/assets/file-axis-3d-qBa9U_nz.js +6 -0
- langflow/frontend/assets/file-badge-2-B7FyPETI.js +6 -0
- langflow/frontend/assets/file-badge-C6pN0qW2.js +6 -0
- langflow/frontend/assets/file-box-B6YtgpSx.js +6 -0
- langflow/frontend/assets/file-chart-column-CBE0rjrA.js +6 -0
- langflow/frontend/assets/file-chart-column-increasing-De0kNL9M.js +6 -0
- langflow/frontend/assets/file-chart-line-4_F9YufG.js +6 -0
- langflow/frontend/assets/file-chart-pie-C6EmjY36.js +6 -0
- langflow/frontend/assets/file-check-2-Cnb7O4Ah.js +6 -0
- langflow/frontend/assets/file-check-SuZXAzaO.js +6 -0
- langflow/frontend/assets/file-clock-Cj7Ig6Nn.js +6 -0
- langflow/frontend/assets/file-code-2-C5pwFdJt.js +6 -0
- langflow/frontend/assets/file-code-BIBfnJKW.js +6 -0
- langflow/frontend/assets/file-cog-0CzuWCgv.js +6 -0
- langflow/frontend/assets/file-diff-VznByTKW.js +6 -0
- langflow/frontend/assets/file-digit-s0gF2aS-.js +6 -0
- langflow/frontend/assets/file-down-xNz4yrJ0.js +6 -0
- langflow/frontend/assets/file-heart-3gkfsTLZ.js +6 -0
- langflow/frontend/assets/file-image-CovgeJRn.js +6 -0
- langflow/frontend/assets/file-input-jiR1Yhdx.js +6 -0
- langflow/frontend/assets/file-json-2-BNlXB79f.js +6 -0
- langflow/frontend/assets/file-json-DuX_ZFV3.js +6 -0
- langflow/frontend/assets/file-key-2-DJXWSrTN.js +6 -0
- langflow/frontend/assets/file-key-CdETqoP2.js +6 -0
- langflow/frontend/assets/file-lock-2-DFk-EtRo.js +6 -0
- langflow/frontend/assets/file-lock-CnLQADS0.js +6 -0
- langflow/frontend/assets/file-minus-2-BAzMy2uH.js +6 -0
- langflow/frontend/assets/file-minus-CPW18fgT.js +6 -0
- langflow/frontend/assets/file-music-70YSqOe4.js +6 -0
- langflow/frontend/assets/file-output-C9SlBsRs.js +6 -0
- langflow/frontend/assets/file-pen-BijoeiQV.js +6 -0
- langflow/frontend/assets/file-pen-line-C9Uu9fYX.js +6 -0
- langflow/frontend/assets/file-plus-2-Cehv13sJ.js +6 -0
- langflow/frontend/assets/file-plus-BSd_J1pk.js +6 -0
- langflow/frontend/assets/file-question-1YFcQtMb.js +6 -0
- langflow/frontend/assets/file-scan-DCRG-Ipe.js +6 -0
- langflow/frontend/assets/file-search-2-BplMFLwN.js +6 -0
- langflow/frontend/assets/file-search-BfH2gUx2.js +6 -0
- langflow/frontend/assets/file-sliders-CSJnxQIx.js +6 -0
- langflow/frontend/assets/file-spreadsheet-CGIe4o-I.js +6 -0
- langflow/frontend/assets/file-stack-AXVMgfc3.js +6 -0
- langflow/frontend/assets/file-symlink-DBkf3fYN.js +6 -0
- langflow/frontend/assets/file-terminal-DCzemrD8.js +6 -0
- langflow/frontend/assets/file-text-Cg3PUK3D.js +6 -0
- langflow/frontend/assets/file-type-2-BUEr9FHW.js +6 -0
- langflow/frontend/assets/file-type-3V8e83xA.js +6 -0
- langflow/frontend/assets/file-up-8_tP6mHs.js +6 -0
- langflow/frontend/assets/file-user-zn6N5SID.js +6 -0
- langflow/frontend/assets/file-video-2-DF-d7mM8.js +6 -0
- langflow/frontend/assets/file-video-CJRSZU1W.js +6 -0
- langflow/frontend/assets/file-volume-2-O4QAfrfb.js +6 -0
- langflow/frontend/assets/file-volume-CkU36_Ji.js +6 -0
- langflow/frontend/assets/file-warning-BJAkADrY.js +6 -0
- langflow/frontend/assets/file-x-2-bWCi-Ghq.js +6 -0
- langflow/frontend/assets/file-x-WAcbr9Eq.js +6 -0
- langflow/frontend/assets/files-BngwYw9i.js +6 -0
- langflow/frontend/assets/film-D31R4j6r.js +6 -0
- langflow/frontend/assets/fingerprint-CnjRKKy7.js +6 -0
- langflow/frontend/assets/fire-extinguisher-CCFIOJf0.js +6 -0
- langflow/frontend/assets/fish-BcElPTHO.js +6 -0
- langflow/frontend/assets/fish-off-DtvpixWG.js +6 -0
- langflow/frontend/assets/fish-symbol-fYjeGJZY.js +6 -0
- langflow/frontend/assets/flag-26cYnn5a.js +6 -0
- langflow/frontend/assets/flag-off-U-uK-itC.js +6 -0
- langflow/frontend/assets/flag-triangle-left-Cal1inIY.js +6 -0
- langflow/frontend/assets/flag-triangle-right-Co6Z-akF.js +6 -0
- langflow/frontend/assets/flame-CsvoAqkS.js +6 -0
- langflow/frontend/assets/flame-kindling-BdDnSsRv.js +6 -0
- langflow/frontend/assets/flashlight-CajMkjTE.js +6 -0
- langflow/frontend/assets/flashlight-off-DnwbFWMz.js +6 -0
- langflow/frontend/assets/flask-conical-DZOdD_sD.js +6 -0
- langflow/frontend/assets/flask-conical-off-BIzLItqn.js +6 -0
- langflow/frontend/assets/flask-round-DchoXIy_.js +6 -0
- langflow/frontend/assets/flip-horizontal-2-M_VCbSvO.js +6 -0
- langflow/frontend/assets/flip-horizontal-CVCabMAm.js +6 -0
- langflow/frontend/assets/flip-vertical-2-B3VVXCpf.js +6 -0
- langflow/frontend/assets/flip-vertical-DDdLmSPC.js +6 -0
- langflow/frontend/assets/flower-2-CMDqYTd6.js +6 -0
- langflow/frontend/assets/flower-C5vYHBGp.js +6 -0
- langflow/frontend/assets/focus-45hWVQ8r.js +6 -0
- langflow/frontend/assets/fold-horizontal-C_OFqQ9G.js +6 -0
- langflow/frontend/assets/fold-vertical-DNoKywYJ.js +6 -0
- langflow/frontend/assets/folder-BrU9XmSA.js +6 -0
- langflow/frontend/assets/folder-archive-DMA8DisW.js +6 -0
- langflow/frontend/assets/folder-check-CbzuQVKd.js +6 -0
- langflow/frontend/assets/folder-clock-BUcu-A6Y.js +6 -0
- langflow/frontend/assets/folder-closed-CnhyMViY.js +6 -0
- langflow/frontend/assets/folder-code-pqO2y44j.js +6 -0
- langflow/frontend/assets/folder-cog-B5YA1wC8.js +6 -0
- langflow/frontend/assets/folder-dot-BqtxG81F.js +6 -0
- langflow/frontend/assets/folder-down-DJJe5I5w.js +6 -0
- langflow/frontend/assets/folder-git-2-lyc9TrU3.js +6 -0
- langflow/frontend/assets/folder-git-CujYieQL.js +6 -0
- langflow/frontend/assets/folder-heart-BI2qclNw.js +6 -0
- langflow/frontend/assets/folder-input-B6Cbqe45.js +6 -0
- langflow/frontend/assets/folder-kanban-Cbt-gmNa.js +6 -0
- langflow/frontend/assets/folder-key-CrDWwNTT.js +6 -0
- langflow/frontend/assets/folder-lock-reMrsCZ8.js +6 -0
- langflow/frontend/assets/folder-minus-3N9VL41V.js +6 -0
- langflow/frontend/assets/folder-open-CTWg7zQC.js +6 -0
- langflow/frontend/assets/folder-open-dot-elwJagt5.js +6 -0
- langflow/frontend/assets/folder-output-CAAsNqxv.js +6 -0
- langflow/frontend/assets/folder-pen-Su6JrWM3.js +6 -0
- langflow/frontend/assets/folder-plus-CX9QW_Zh.js +6 -0
- langflow/frontend/assets/folder-root-DVY9n14V.js +6 -0
- langflow/frontend/assets/folder-search-2-BUBbfgCW.js +6 -0
- langflow/frontend/assets/folder-search-BARYql5S.js +6 -0
- langflow/frontend/assets/folder-symlink-JIYXDayC.js +6 -0
- langflow/frontend/assets/folder-sync-o8CFcKsQ.js +6 -0
- langflow/frontend/assets/folder-tree-E-1sK87m.js +6 -0
- langflow/frontend/assets/folder-up-CT1oXy2N.js +6 -0
- langflow/frontend/assets/folder-x-C21GU8HS.js +6 -0
- langflow/frontend/assets/folders-DVesHJj0.js +6 -0
- langflow/frontend/assets/footprints-B5bScwpB.js +6 -0
- langflow/frontend/assets/forklift-CGWpZ3fa.js +6 -0
- langflow/frontend/assets/forward-CIs94FR-.js +6 -0
- langflow/frontend/assets/frame-BvCirDCM.js +6 -0
- langflow/frontend/assets/framer-BbmF0AD3.js +6 -0
- langflow/frontend/assets/frown-CJOzzBVk.js +6 -0
- langflow/frontend/assets/fuel-9UKCA9pZ.js +6 -0
- langflow/frontend/assets/fullscreen-BtBph5jk.js +6 -0
- langflow/frontend/assets/funnel-CXv8clz5.js +6 -0
- langflow/frontend/assets/funnel-plus-CTc5mCf1.js +6 -0
- langflow/frontend/assets/funnel-x-KJ840hOZ.js +6 -0
- langflow/frontend/assets/gallery-horizontal-GoMU4S6c.js +6 -0
- langflow/frontend/assets/gallery-horizontal-end-pprYdbhe.js +6 -0
- langflow/frontend/assets/gallery-thumbnails-DpkjWjmg.js +6 -0
- langflow/frontend/assets/gallery-vertical-BMtygEiY.js +6 -0
- langflow/frontend/assets/gallery-vertical-end-CGOph9Wh.js +6 -0
- langflow/frontend/assets/gamepad-2-BkC77EYK.js +6 -0
- langflow/frontend/assets/gamepad-B5xd60k8.js +6 -0
- langflow/frontend/assets/gauge-Dmwu5cTE.js +6 -0
- langflow/frontend/assets/gavel-Bov0L3v4.js +6 -0
- langflow/frontend/assets/gem-uBBi9-H8.js +6 -0
- langflow/frontend/assets/ghost-B4Wxw4Zu.js +6 -0
- langflow/frontend/assets/gift-04JeuqXE.js +6 -0
- langflow/frontend/assets/git-branch-Be4dkCi8.js +6 -0
- langflow/frontend/assets/git-branch-plus-Ds0fbKbJ.js +6 -0
- langflow/frontend/assets/git-commit-horizontal-DDs-jiFS.js +6 -0
- langflow/frontend/assets/git-commit-vertical-BPc0MSFZ.js +6 -0
- langflow/frontend/assets/git-compare-Db0Qqopj.js +6 -0
- langflow/frontend/assets/git-compare-arrows-CETzlVgE.js +6 -0
- langflow/frontend/assets/git-fork-BBykjfBo.js +6 -0
- langflow/frontend/assets/git-graph-D6T6nSTD.js +6 -0
- langflow/frontend/assets/git-merge-DjF3awmW.js +6 -0
- langflow/frontend/assets/git-pull-request-arrow-BQBNfDk_.js +6 -0
- langflow/frontend/assets/git-pull-request-closed-_iDgHj6J.js +6 -0
- langflow/frontend/assets/git-pull-request-create-DgbNvBfN.js +6 -0
- langflow/frontend/assets/git-pull-request-create-arrow-GSxAn4VN.js +6 -0
- langflow/frontend/assets/git-pull-request-draft-Dxid2Jh_.js +6 -0
- langflow/frontend/assets/git-pull-request-p9tbZ8Al.js +6 -0
- langflow/frontend/assets/github-C2V40dBR.js +6 -0
- langflow/frontend/assets/gitlab-Bk-Dx4YP.js +6 -0
- langflow/frontend/assets/glass-water-BojiA-Qp.js +6 -0
- langflow/frontend/assets/glasses-CkHz86KU.js +6 -0
- langflow/frontend/assets/globe-Db8WBQUA.js +6 -0
- langflow/frontend/assets/globe-lock-CWKkVdQ6.js +6 -0
- langflow/frontend/assets/goal-DXf5qQ9I.js +6 -0
- langflow/frontend/assets/grab-kkGfO69w.js +6 -0
- langflow/frontend/assets/graduation-cap-C1CZBb0P.js +6 -0
- langflow/frontend/assets/grape-CpGlpw1W.js +6 -0
- langflow/frontend/assets/grid-2x2-DVB6nakx.js +6 -0
- langflow/frontend/assets/grid-2x2-check-BMy83Dzz.js +6 -0
- langflow/frontend/assets/grid-2x2-plus-CHHRZ87O.js +6 -0
- langflow/frontend/assets/grid-2x2-x-DA6eQKp9.js +6 -0
- langflow/frontend/assets/grid-3x3-CcyxC1cp.js +6 -0
- langflow/frontend/assets/grip-C3sRpow3.js +6 -0
- langflow/frontend/assets/grip-horizontal-C_pRtjty.js +6 -0
- langflow/frontend/assets/grip-vertical-CRl2bxjU.js +6 -0
- langflow/frontend/assets/group-BMqyJDq3.js +6 -0
- langflow/frontend/assets/guitar-CezOhgc8.js +6 -0
- langflow/frontend/assets/ham-eC3DkQ1Z.js +6 -0
- langflow/frontend/assets/hammer-DSY6aeq3.js +6 -0
- langflow/frontend/assets/hand-CW9GedFu.js +6 -0
- langflow/frontend/assets/hand-coins-BBgw6FTC.js +6 -0
- langflow/frontend/assets/hand-heart-pfiepg24.js +6 -0
- langflow/frontend/assets/hand-helping-DvAtJAtv.js +6 -0
- langflow/frontend/assets/hand-metal-DkFEZEs8.js +6 -0
- langflow/frontend/assets/hand-platter-DHdR-L9y.js +6 -0
- langflow/frontend/assets/handshake-B4uOFixf.js +6 -0
- langflow/frontend/assets/hard-drive-DBNwwCgj.js +6 -0
- langflow/frontend/assets/hard-drive-download-BH2Tg9at.js +6 -0
- langflow/frontend/assets/hard-drive-upload-B0mpJRAY.js +6 -0
- langflow/frontend/assets/hard-hat-keaxdEU1.js +6 -0
- langflow/frontend/assets/hash-BUAtYO2l.js +6 -0
- langflow/frontend/assets/haze-_JL8zCIw.js +6 -0
- langflow/frontend/assets/hdmi-port-D733KaPx.js +6 -0
- langflow/frontend/assets/heading-1-B3fHQTXl.js +6 -0
- langflow/frontend/assets/heading-2-DqqqQfNz.js +6 -0
- langflow/frontend/assets/heading-3-CapNpcZf.js +6 -0
- langflow/frontend/assets/heading-4-D9Yh8okc.js +6 -0
- langflow/frontend/assets/heading-5-ZDWmzsfJ.js +6 -0
- langflow/frontend/assets/heading-6-BuValzmr.js +6 -0
- langflow/frontend/assets/heading-DoXiCRR4.js +6 -0
- langflow/frontend/assets/headphone-off-DLn55EAb.js +6 -0
- langflow/frontend/assets/headphones-CsdyojYa.js +6 -0
- langflow/frontend/assets/headset-CtEAqjw3.js +6 -0
- langflow/frontend/assets/heart-DNat5C-a.js +6 -0
- langflow/frontend/assets/heart-crack-Dp6f3cgl.js +6 -0
- langflow/frontend/assets/heart-handshake-Chc3QGAx.js +6 -0
- langflow/frontend/assets/heart-minus-Cn4vRIKf.js +6 -0
- langflow/frontend/assets/heart-off-CC5wI9I6.js +6 -0
- langflow/frontend/assets/heart-plus-k1KG2RJU.js +6 -0
- langflow/frontend/assets/heart-pulse-D5nS3m1Y.js +6 -0
- langflow/frontend/assets/heater-zyg35JFy.js +6 -0
- langflow/frontend/assets/hexagon-B5tN_XFs.js +6 -0
- langflow/frontend/assets/highlighter-TFJ1-ocm.js +6 -0
- langflow/frontend/assets/history-Blyp9-y-.js +6 -0
- langflow/frontend/assets/hop-Dod-gtw2.js +6 -0
- langflow/frontend/assets/hop-off-CCBhMN1Y.js +6 -0
- langflow/frontend/assets/hospital-CEmbf52n.js +6 -0
- langflow/frontend/assets/hotel-CqzrJTUl.js +6 -0
- langflow/frontend/assets/hourglass-CD9fytmM.js +6 -0
- langflow/frontend/assets/house-C75M43g8.js +6 -0
- langflow/frontend/assets/house-plug-CKVodGd-.js +6 -0
- langflow/frontend/assets/house-plus-BO2oQtc_.js +6 -0
- langflow/frontend/assets/house-wifi-DeCHMZda.js +6 -0
- langflow/frontend/assets/ice-cream-bowl-D8nR3TJ-.js +6 -0
- langflow/frontend/assets/ice-cream-cone-DORZ7p0n.js +6 -0
- langflow/frontend/assets/id-card-CB-DzKna.js +6 -0
- langflow/frontend/assets/image-DShfuCRY.js +6 -0
- langflow/frontend/assets/image-down-BIsTEvKN.js +6 -0
- langflow/frontend/assets/image-minus-ClzX5aKq.js +6 -0
- langflow/frontend/assets/image-off-8ZsgJJ3U.js +6 -0
- langflow/frontend/assets/image-play-DbBc0tyw.js +6 -0
- langflow/frontend/assets/image-plus-DGYmBZBi.js +6 -0
- langflow/frontend/assets/image-up-ISekKySy.js +6 -0
- langflow/frontend/assets/image-upscale-NJoe3C3d.js +6 -0
- langflow/frontend/assets/images-BWR5tEe0.js +6 -0
- langflow/frontend/assets/import-DHsoc-DL.js +6 -0
- langflow/frontend/assets/inbox-B4JFGvOt.js +6 -0
- langflow/frontend/assets/indent-decrease-ieRLqhPc.js +6 -0
- langflow/frontend/assets/indent-increase-BARr_Ziz.js +6 -0
- langflow/frontend/assets/index-3kjHwD2D.js +1 -0
- langflow/frontend/assets/index-4NTOZbn0.js +1 -0
- langflow/frontend/assets/index-4rIih4gK.js +1 -0
- langflow/frontend/assets/index-8d1fNsQk.js +1 -0
- langflow/frontend/assets/index-8s5hqXm6.js +1 -0
- langflow/frontend/assets/index-AgyH1gmh.js +1 -0
- langflow/frontend/assets/index-B-5McqFs.js +1 -0
- langflow/frontend/assets/index-B0su-SKA.js +1 -0
- langflow/frontend/assets/index-B1WdMeNb.js +1 -0
- langflow/frontend/assets/index-B1dHV5_O.js +7325 -0
- langflow/frontend/assets/index-B2ueGrC-.js +1 -0
- langflow/frontend/assets/index-B3p2CB1H.js +1 -0
- langflow/frontend/assets/index-B434esu6.js +1 -0
- langflow/frontend/assets/index-B4OMh26b.js +1 -0
- langflow/frontend/assets/index-B4OjRlLf.js +1 -0
- langflow/frontend/assets/index-B4Ug9a-m.js +1 -0
- langflow/frontend/assets/index-B7C1dWS3.js +1 -0
- langflow/frontend/assets/index-B8Hve92Z.js +1 -0
- langflow/frontend/assets/index-B9OjDu_3.js +1 -0
- langflow/frontend/assets/index-B9pBN6V3.js +1 -0
- langflow/frontend/assets/index-BAG6xiau.js +1 -0
- langflow/frontend/assets/index-BBkx3Kx_.js +1 -0
- langflow/frontend/assets/index-BE_koYL9.js +1 -0
- langflow/frontend/assets/index-BF8OvoAA.js +1 -0
- langflow/frontend/assets/index-BFJIgI-v.js +1 -0
- langflow/frontend/assets/index-BJOV6NbQ.js +1 -0
- langflow/frontend/assets/index-BKACmU6f.js +1 -0
- langflow/frontend/assets/index-BKphvYfG.js +1 -0
- langflow/frontend/assets/index-BLP5By74.js +1 -0
- langflow/frontend/assets/index-BOL9OJrc.js +1 -0
- langflow/frontend/assets/index-BPf4151O.js +1 -0
- langflow/frontend/assets/index-BSNWjIfz.js +1 -0
- langflow/frontend/assets/index-BSf80Tsf.js +1 -0
- langflow/frontend/assets/index-BTUMSBAW.js +1 -0
- langflow/frontend/assets/index-BVXi8wJO.js +1 -0
- langflow/frontend/assets/index-BYhmrOIs.js +1 -0
- langflow/frontend/assets/index-B_vFyMMz.js +1 -0
- langflow/frontend/assets/index-BbeyGV0r.js +1 -0
- langflow/frontend/assets/index-BcVLzDa5.js +1 -0
- langflow/frontend/assets/index-Bdm1XMzq.js +1 -0
- langflow/frontend/assets/index-BdnphyGs.js +185 -0
- langflow/frontend/assets/index-Bewxs3-F.js +1 -0
- langflow/frontend/assets/index-BjzraYJi.js +1 -0
- langflow/frontend/assets/index-BlmpZaKz.js +1 -0
- langflow/frontend/assets/index-BneFBsNy.js +1 -0
- langflow/frontend/assets/index-BpEltzCK.js +108 -0
- langflow/frontend/assets/index-Bq7T_xzv.js +1 -0
- langflow/frontend/assets/index-BqXR5ula.js +1 -0
- langflow/frontend/assets/index-BsGZnrLT.js +1 -0
- langflow/frontend/assets/index-Bu6z9U1U.js +1 -0
- langflow/frontend/assets/index-BwJ6YXAb.js +1 -0
- langflow/frontend/assets/index-BxfBPIPB.js +1 -0
- langflow/frontend/assets/index-C1J60eX8.js +1 -0
- langflow/frontend/assets/index-C2_i3MhD.js +767 -0
- langflow/frontend/assets/index-C2kLghM9.js +1 -0
- langflow/frontend/assets/index-C3veTNC_.js +13 -0
- langflow/frontend/assets/index-C6Kmr7W2.js +1 -0
- langflow/frontend/assets/index-C6P4Rq67.js +1 -0
- langflow/frontend/assets/index-C7qrALtO.js +1 -0
- langflow/frontend/assets/index-C8sSDSVz.js +1 -0
- langflow/frontend/assets/index-C9KfRZVj.js +1 -0
- langflow/frontend/assets/index-CBVPWIH2.js +1 -0
- langflow/frontend/assets/index-CCOeNYl7.js +1 -0
- langflow/frontend/assets/index-CFIuKsBT.js +1 -0
- langflow/frontend/assets/index-CFUG4gU2.js +1 -0
- langflow/frontend/assets/index-CG5VoUki.js +1 -0
- langflow/frontend/assets/index-CGaZwDth.js +1 -0
- langflow/frontend/assets/index-CH095txF.js +1 -0
- langflow/frontend/assets/index-CHkPVBsf.js +1 -0
- langflow/frontend/assets/index-CIB5kfqI.js +1 -0
- langflow/frontend/assets/index-COw8XKPE.js +1 -0
- langflow/frontend/assets/index-CPacLJrS.js +1 -0
- langflow/frontend/assets/index-CTh4SZ7G.js +1 -0
- langflow/frontend/assets/index-CU9G_cYD.js +1 -0
- langflow/frontend/assets/index-CUlw-t2B.js +1 -0
- langflow/frontend/assets/index-CVQ9rpQr.js +1 -0
- langflow/frontend/assets/index-CWGLY1uh.js +1 -0
- langflow/frontend/assets/index-CWI7Cezi.js +1 -0
- langflow/frontend/assets/index-CWMbK_Vj.js +205 -0
- langflow/frontend/assets/index-CYeWHN-6.js +1 -0
- langflow/frontend/assets/index-CZ0m64xu.js +14 -0
- langflow/frontend/assets/index-CZHXx5dD.js +1 -0
- langflow/frontend/assets/index-CaGhYefQ.js +1 -0
- langflow/frontend/assets/index-Ccx3wk8O.js +381 -0
- langflow/frontend/assets/index-Ccxl_5MP.js +1 -0
- langflow/frontend/assets/index-Cek_glta.js +1 -0
- langflow/frontend/assets/index-Cfqd2cc8.js +1 -0
- langflow/frontend/assets/index-Cgam4Cz8.js +1 -0
- langflow/frontend/assets/index-ChaiN9AY.js +1 -0
- langflow/frontend/assets/index-ChthUH8p.css +1 -0
- langflow/frontend/assets/index-CjDLsSYQ.js +1 -0
- langflow/frontend/assets/index-Clm5wj-Y.js +1 -0
- langflow/frontend/assets/index-Cq7JDM-q.js +1 -0
- langflow/frontend/assets/index-CrdEE-lq.js +2 -0
- langflow/frontend/assets/index-Cs7agVr5.js +1 -0
- langflow/frontend/assets/index-CsjOUjoS.js +1 -0
- langflow/frontend/assets/index-CsjvcOpq.js +1 -0
- langflow/frontend/assets/index-Cu6HQhJd.js +1 -0
- langflow/frontend/assets/index-CwpBg-R1.js +1 -0
- langflow/frontend/assets/index-CxLt4nim.js +1 -0
- langflow/frontend/assets/index-CxhtvesI.js +1 -0
- langflow/frontend/assets/index-CxnkYQAe.js +1 -0
- langflow/frontend/assets/index-CyuNeUMX.js +1 -0
- langflow/frontend/assets/index-D-oAJFO5.js +1 -0
- langflow/frontend/assets/index-D0jXV7iT.js +1 -0
- langflow/frontend/assets/index-D3worPc-.js +1 -0
- langflow/frontend/assets/index-D54JuRm-.js +1 -0
- langflow/frontend/assets/index-D5lgMhr-.js +1 -0
- langflow/frontend/assets/index-D68HnLZn.js +1 -0
- langflow/frontend/assets/index-D6nDn1nP.js +1 -0
- langflow/frontend/assets/index-D7BvuMYy.js +1 -0
- langflow/frontend/assets/index-D80bjrOb.js +1 -0
- langflow/frontend/assets/index-DA30Q39T.js +1 -0
- langflow/frontend/assets/index-DAZUREas.js +1 -0
- langflow/frontend/assets/index-DBNtkBO-.js +1 -0
- langflow/frontend/assets/index-DBsU0zLa.js +1 -0
- langflow/frontend/assets/index-DCJBAppt.js +1 -0
- langflow/frontend/assets/index-DDiGevvo.js +1 -0
- langflow/frontend/assets/index-DF45rrUe.js +1 -0
- langflow/frontend/assets/index-DF4csj99.js +1 -0
- langflow/frontend/assets/index-DFoQurvu.js +1 -0
- langflow/frontend/assets/index-DGjaIStG.js +1 -0
- langflow/frontend/assets/index-DH6wlCku.js +1 -0
- langflow/frontend/assets/index-DMK870_-.js +1 -0
- langflow/frontend/assets/index-DM_C-RW7.js +1 -0
- langflow/frontend/assets/index-DNyytWMj.js +1 -0
- langflow/frontend/assets/index-DO4xMPuT.js +1 -0
- langflow/frontend/assets/index-DOTFcV9R.js +1 -0
- langflow/frontend/assets/index-DP20ci4z.js +20 -0
- langflow/frontend/assets/index-DPIO8Vxy.js +1 -0
- langflow/frontend/assets/index-DTu4ezxf.js +1 -0
- langflow/frontend/assets/index-DU6FjuLD.js +1 -0
- langflow/frontend/assets/index-DWKIr2CP.js +1 -0
- langflow/frontend/assets/index-DWeutquG.js +1 -0
- langflow/frontend/assets/index-DWm6pJR3.js +1 -0
- langflow/frontend/assets/index-DWyJcdQB.js +1 -0
- langflow/frontend/assets/index-DXBy-b13.js +281 -0
- langflow/frontend/assets/index-DXC4yLuM.js +1 -0
- langflow/frontend/assets/index-DXr_88Fu.js +1 -0
- langflow/frontend/assets/index-DYc2Bg6K.js +1 -0
- langflow/frontend/assets/index-D_JGVc-m.js +1 -0
- langflow/frontend/assets/index-Db5IIUwK.js +399 -0
- langflow/frontend/assets/index-Dc3XZdmZ.js +1 -0
- langflow/frontend/assets/index-Dc_gFXxg.js +1 -0
- langflow/frontend/assets/index-DhZYXY6K.js +1 -0
- langflow/frontend/assets/index-DiQHneff.js +1 -0
- langflow/frontend/assets/index-DixkEYLR.js +1 -0
- langflow/frontend/assets/index-DlJ7F4WS.js +1 -0
- langflow/frontend/assets/index-DnCUM5_N.js +1 -0
- langflow/frontend/assets/index-DnuyrFe7.js +1 -0
- langflow/frontend/assets/index-DqxWdMcF.js +1 -0
- langflow/frontend/assets/index-DyLS4GqX.js +1 -0
- langflow/frontend/assets/index-E5c3kRX9.js +1 -0
- langflow/frontend/assets/index-FX1CB_yt.js +1 -0
- langflow/frontend/assets/index-HMn4IKSr.js +1 -0
- langflow/frontend/assets/index-HlNxrPwo.js +1 -0
- langflow/frontend/assets/index-Ju5fUzjm.js +1 -0
- langflow/frontend/assets/index-K0tpK0-O.js +1 -0
- langflow/frontend/assets/index-K_muym4x.js +127 -0
- langflow/frontend/assets/index-MmS6L4Sp.js +1 -0
- langflow/frontend/assets/index-NCyuCCa9.js +1 -0
- langflow/frontend/assets/index-NI9uMMtA.js +1 -0
- langflow/frontend/assets/index-NW1Y0YL4.js +1 -0
- langflow/frontend/assets/index-NcpbcDEe.js +1 -0
- langflow/frontend/assets/index-P9sCTuSC.js +1 -0
- langflow/frontend/assets/index-PS4f-FY8.js +1 -0
- langflow/frontend/assets/index-Reo68MKz.js +1 -0
- langflow/frontend/assets/index-UGVf9YO1.js +495 -0
- langflow/frontend/assets/index-Wb3NnTE2.js +1 -0
- langflow/frontend/assets/index-XHTNnOrl.js +1 -0
- langflow/frontend/assets/index-XzRxdCev.js +1 -0
- langflow/frontend/assets/index-YNLGjhAO.js +1 -0
- langflow/frontend/assets/index-YniMPiL0.js +1 -0
- langflow/frontend/assets/index-b2Qr-FmS.js +1 -0
- langflow/frontend/assets/index-bEawoxhe.js +1 -0
- langflow/frontend/assets/index-eQlxjikB.js +1 -0
- langflow/frontend/assets/index-jEc5wRpO.js +1 -0
- langflow/frontend/assets/index-lKKDK7Z6.js +1 -0
- langflow/frontend/assets/index-lU5mYN5y.js +1 -0
- langflow/frontend/assets/index-r63usPNV.js +21 -0
- langflow/frontend/assets/index-rDmcGmKY.js +1 -0
- langflow/frontend/assets/index-unjOiAcw.js +1 -0
- langflow/frontend/assets/index-x7u1eAIy.js +1 -0
- langflow/frontend/assets/index-xLZHah5A.js +1 -0
- langflow/frontend/assets/index-yMvnjnNu.js +1 -0
- langflow/frontend/assets/index-zqZUJT3i.js +7 -0
- langflow/frontend/assets/indian-rupee-4fSbrYDV.js +6 -0
- langflow/frontend/assets/infinity-DA26i8G_.js +6 -0
- langflow/frontend/assets/info-4ADJstLQ.js +6 -0
- langflow/frontend/assets/inspection-panel-B0LDSVOZ.js +6 -0
- langflow/frontend/assets/instagram-BFmgirX1.js +6 -0
- langflow/frontend/assets/italic-BVSdEYyD.js +6 -0
- langflow/frontend/assets/iteration-ccw-B3CBDSe8.js +6 -0
- langflow/frontend/assets/iteration-cw-C6XUMPgb.js +6 -0
- langflow/frontend/assets/japanese-yen-DwR9ifkJ.js +6 -0
- langflow/frontend/assets/joystick-9-gSIoRe.js +6 -0
- langflow/frontend/assets/kanban-CfuMN4lu.js +6 -0
- langflow/frontend/assets/key-C1ui4BQi.js +6 -0
- langflow/frontend/assets/key-round-C7jAb5S3.js +6 -0
- langflow/frontend/assets/key-square-Bi0zNqO6.js +6 -0
- langflow/frontend/assets/keyboard-cRWCksd6.js +6 -0
- langflow/frontend/assets/keyboard-music-Bcu5Da2f.js +6 -0
- langflow/frontend/assets/keyboard-off-D3mLEjS1.js +6 -0
- langflow/frontend/assets/lamp-B6h4BJMl.js +6 -0
- langflow/frontend/assets/lamp-ceiling-BfQjwa0E.js +6 -0
- langflow/frontend/assets/lamp-desk-ByxNvpzn.js +6 -0
- langflow/frontend/assets/lamp-floor-DgAi2Ofp.js +6 -0
- langflow/frontend/assets/lamp-wall-down-BZQ2Q3aY.js +6 -0
- langflow/frontend/assets/lamp-wall-up-c8ZQE9me.js +6 -0
- langflow/frontend/assets/land-plot-B9NvW8aJ.js +6 -0
- langflow/frontend/assets/landmark-BUTPSy5r.js +6 -0
- langflow/frontend/assets/languages-BlXLUa6z.js +6 -0
- langflow/frontend/assets/laptop-CTfN0DER.js +6 -0
- langflow/frontend/assets/laptop-minimal-Vi197XOT.js +6 -0
- langflow/frontend/assets/laptop-minimal-check-2fRcUvc3.js +6 -0
- langflow/frontend/assets/lasso-DJFIByoT.js +6 -0
- langflow/frontend/assets/lasso-select-oz5KTzoI.js +6 -0
- langflow/frontend/assets/laugh-SUTJi6-F.js +6 -0
- langflow/frontend/assets/layers-2-DzajJUC_.js +6 -0
- langflow/frontend/assets/layers-BDXY2MBp.js +6 -0
- langflow/frontend/assets/layout-dashboard-Cqyasn-n.js +6 -0
- langflow/frontend/assets/layout-grid-B6iXOBWp.js +6 -0
- langflow/frontend/assets/layout-list-CySIE_-v.js +6 -0
- langflow/frontend/assets/layout-panel-left-mi2gQ5Ht.js +6 -0
- langflow/frontend/assets/layout-panel-top-CGB9Q0ML.js +6 -0
- langflow/frontend/assets/layout-template-Cm8qlQ9r.js +6 -0
- langflow/frontend/assets/lazyIconImports-DMsqUgIN.js +2 -0
- langflow/frontend/assets/leaf-BiA7YfjI.js +6 -0
- langflow/frontend/assets/leafy-green-4xpCwMP-.js +6 -0
- langflow/frontend/assets/lectern-CarK-4HT.js +6 -0
- langflow/frontend/assets/letter-text-DAyo0Kww.js +6 -0
- langflow/frontend/assets/library-BV17_62I.js +6 -0
- langflow/frontend/assets/library-big-DYsADe_C.js +6 -0
- langflow/frontend/assets/life-buoy-36fvzDJY.js +6 -0
- langflow/frontend/assets/ligature-DBekfaTo.js +6 -0
- langflow/frontend/assets/lightbulb-DjU8VWqC.js +6 -0
- langflow/frontend/assets/lightbulb-off-DQM4wPX3.js +6 -0
- langflow/frontend/assets/link-2-C6CH9QN6.js +6 -0
- langflow/frontend/assets/link-2-off-CLJKErlh.js +6 -0
- langflow/frontend/assets/link-NtrTmVud.js +6 -0
- langflow/frontend/assets/linkedin-YvB46eQY.js +6 -0
- langflow/frontend/assets/list-W5hQgkGz.js +6 -0
- langflow/frontend/assets/list-check-BQKSjRYc.js +6 -0
- langflow/frontend/assets/list-checks-kFPXC_Ai.js +6 -0
- langflow/frontend/assets/list-collapse-DZH44ZKh.js +6 -0
- langflow/frontend/assets/list-end-sfMYB-7Q.js +6 -0
- langflow/frontend/assets/list-filter-BYWm8wW-.js +6 -0
- langflow/frontend/assets/list-filter-plus-CRL2c9dL.js +6 -0
- langflow/frontend/assets/list-minus-CG7FqbqI.js +6 -0
- langflow/frontend/assets/list-music-BKixk_HR.js +6 -0
- langflow/frontend/assets/list-ordered-BSs5bxM1.js +6 -0
- langflow/frontend/assets/list-plus-B4uJYpdG.js +6 -0
- langflow/frontend/assets/list-restart-D8-CN1Jt.js +6 -0
- langflow/frontend/assets/list-start-CPjqb5BB.js +6 -0
- langflow/frontend/assets/list-todo-XDlJiYa1.js +6 -0
- langflow/frontend/assets/list-tree-BusDA0Kw.js +6 -0
- langflow/frontend/assets/list-video-DZ3vkT8W.js +6 -0
- langflow/frontend/assets/list-x-CoT9NxTB.js +6 -0
- langflow/frontend/assets/loader-IQX7Dc_B.js +6 -0
- langflow/frontend/assets/loader-circle-iVz2OKRv.js +6 -0
- langflow/frontend/assets/loader-pinwheel-BHGlVpEa.js +6 -0
- langflow/frontend/assets/locate-JF5-SWsi.js +6 -0
- langflow/frontend/assets/locate-fixed-DunbldiG.js +6 -0
- langflow/frontend/assets/locate-off-D0GIHNwK.js +6 -0
- langflow/frontend/assets/location-edit-CWO4bJlx.js +6 -0
- langflow/frontend/assets/lock-Bvx3SoDj.js +6 -0
- langflow/frontend/assets/lock-keyhole-DnQ0Ouv_.js +6 -0
- langflow/frontend/assets/lock-keyhole-open-D-BWejJy.js +6 -0
- langflow/frontend/assets/lock-open-ClQFjaR3.js +6 -0
- langflow/frontend/assets/log-in-BG2cBEpB.js +6 -0
- langflow/frontend/assets/log-out-CuFLleiD.js +6 -0
- langflow/frontend/assets/logs-CIo_BVSO.js +6 -0
- langflow/frontend/assets/lollipop-DSXtJ5w1.js +6 -0
- langflow/frontend/assets/luggage-Bfvxz_wD.js +6 -0
- langflow/frontend/assets/magnet-L4ivJIWh.js +6 -0
- langflow/frontend/assets/mail-check-DvzUj2m_.js +6 -0
- langflow/frontend/assets/mail-fy8mqvmX.js +6 -0
- langflow/frontend/assets/mail-minus-BccestgR.js +6 -0
- langflow/frontend/assets/mail-open-iveqj_HD.js +6 -0
- langflow/frontend/assets/mail-plus-9gxaOZOa.js +6 -0
- langflow/frontend/assets/mail-question-dLEZ5muB.js +6 -0
- langflow/frontend/assets/mail-search-BrMrcmRI.js +6 -0
- langflow/frontend/assets/mail-warning-Dj0PuilH.js +6 -0
- langflow/frontend/assets/mail-x-B-2XKrfy.js +6 -0
- langflow/frontend/assets/mailbox-zEFzqsPK.js +6 -0
- langflow/frontend/assets/mails-BO9qR7D6.js +6 -0
- langflow/frontend/assets/map-CUbVvZRX.js +6 -0
- langflow/frontend/assets/map-pin-BMH_nxrD.js +6 -0
- langflow/frontend/assets/map-pin-check-BWmayBCH.js +6 -0
- langflow/frontend/assets/map-pin-check-inside-DtL9D2LC.js +6 -0
- langflow/frontend/assets/map-pin-house-Df9GaT_p.js +6 -0
- langflow/frontend/assets/map-pin-minus-B0ZSkSc8.js +6 -0
- langflow/frontend/assets/map-pin-minus-inside-BAUVMame.js +6 -0
- langflow/frontend/assets/map-pin-off-CyEv9Z-u.js +6 -0
- langflow/frontend/assets/map-pin-plus-BztMK62z.js +6 -0
- langflow/frontend/assets/map-pin-plus-inside-Dyn-GLrL.js +6 -0
- langflow/frontend/assets/map-pin-x-DmvWWYkJ.js +6 -0
- langflow/frontend/assets/map-pin-x-inside-DIZy7LBj.js +6 -0
- langflow/frontend/assets/map-pinned-CCMFRCM-.js +6 -0
- langflow/frontend/assets/map-plus-CWADUI_B.js +6 -0
- langflow/frontend/assets/mars-DDRR-3cl.js +6 -0
- langflow/frontend/assets/mars-stroke-CrtF2PNv.js +6 -0
- langflow/frontend/assets/martini-CgcTAmi9.js +6 -0
- langflow/frontend/assets/maximize-2-B2oS6ah1.js +6 -0
- langflow/frontend/assets/maximize-NBy8hceu.js +6 -0
- langflow/frontend/assets/medal-CZXdrQYD.js +6 -0
- langflow/frontend/assets/megaphone-CYBLJShX.js +6 -0
- langflow/frontend/assets/megaphone-off-CTp_E8kg.js +6 -0
- langflow/frontend/assets/meh-DLSW20mC.js +6 -0
- langflow/frontend/assets/memory-stick-BQ_YV0Lb.js +6 -0
- langflow/frontend/assets/menu-DXgBBwl3.js +6 -0
- langflow/frontend/assets/merge-D5HFtQt1.js +6 -0
- langflow/frontend/assets/message-circle-C0U5IXDu.js +6 -0
- langflow/frontend/assets/message-circle-code-DBFa-EJo.js +6 -0
- langflow/frontend/assets/message-circle-dashed-BsGsPCPJ.js +6 -0
- langflow/frontend/assets/message-circle-heart-Dz1IYjPx.js +6 -0
- langflow/frontend/assets/message-circle-more-C-kmJ2N5.js +6 -0
- langflow/frontend/assets/message-circle-off-DvLSHbaz.js +6 -0
- langflow/frontend/assets/message-circle-plus-BNFhPsL9.js +6 -0
- langflow/frontend/assets/message-circle-question-DHI7mZ9N.js +6 -0
- langflow/frontend/assets/message-circle-reply-Bf_05asn.js +6 -0
- langflow/frontend/assets/message-circle-warning-BFkLWG3r.js +6 -0
- langflow/frontend/assets/message-circle-x-jA4OUoxM.js +6 -0
- langflow/frontend/assets/message-square-DpiUilGH.js +6 -0
- langflow/frontend/assets/message-square-code-DY9IoqMF.js +6 -0
- langflow/frontend/assets/message-square-dashed-xq1Ce5bP.js +6 -0
- langflow/frontend/assets/message-square-diff-Dl0lRGxB.js +6 -0
- langflow/frontend/assets/message-square-dot-Txv-4xu6.js +6 -0
- langflow/frontend/assets/message-square-heart-uXFX4vSa.js +6 -0
- langflow/frontend/assets/message-square-lock-STUBQJGX.js +6 -0
- langflow/frontend/assets/message-square-more-DSzRY-tZ.js +6 -0
- langflow/frontend/assets/message-square-off-CxDkvVoH.js +6 -0
- langflow/frontend/assets/message-square-plus-BPzWrXrf.js +6 -0
- langflow/frontend/assets/message-square-quote-Do8eN-DU.js +6 -0
- langflow/frontend/assets/message-square-reply-CEz_IJZJ.js +6 -0
- langflow/frontend/assets/message-square-share-Dptqhql9.js +6 -0
- langflow/frontend/assets/message-square-text-BRjzPAmj.js +6 -0
- langflow/frontend/assets/message-square-warning-C2J7WqCo.js +6 -0
- langflow/frontend/assets/message-square-x-DztsHKzD.js +6 -0
- langflow/frontend/assets/messages-square-DyhEaZLh.js +6 -0
- langflow/frontend/assets/mic-BMphlVxy.js +6 -0
- langflow/frontend/assets/mic-off-Cx0aBhjQ.js +6 -0
- langflow/frontend/assets/mic-vocal-Bdi_522n.js +6 -0
- langflow/frontend/assets/microchip-BV7MHGEr.js +6 -0
- langflow/frontend/assets/microscope-C_1Wd8mF.js +6 -0
- langflow/frontend/assets/microwave-Olqju3jR.js +6 -0
- langflow/frontend/assets/milestone-BlnlBBGZ.js +6 -0
- langflow/frontend/assets/milk-CspK010e.js +6 -0
- langflow/frontend/assets/milk-off-5mywa1WO.js +6 -0
- langflow/frontend/assets/minimize-2-CZKXCEE5.js +6 -0
- langflow/frontend/assets/minimize-D4ri3I-O.js +6 -0
- langflow/frontend/assets/monitor-CpW1OTl1.js +6 -0
- langflow/frontend/assets/monitor-check-BzNJyNQr.js +6 -0
- langflow/frontend/assets/monitor-cog-H4BipZNf.js +6 -0
- langflow/frontend/assets/monitor-dot-CBzud_f_.js +6 -0
- langflow/frontend/assets/monitor-down-CQH7EAuk.js +6 -0
- langflow/frontend/assets/monitor-off-CtaImJPl.js +6 -0
- langflow/frontend/assets/monitor-pause-CWdoeqeU.js +6 -0
- langflow/frontend/assets/monitor-play-CK_keYz4.js +6 -0
- langflow/frontend/assets/monitor-smartphone-Cfr7dwr9.js +6 -0
- langflow/frontend/assets/monitor-speaker-DXDaWq_P.js +6 -0
- langflow/frontend/assets/monitor-stop-Dl_rj5rq.js +6 -0
- langflow/frontend/assets/monitor-up-D8pDUWc7.js +6 -0
- langflow/frontend/assets/monitor-x-BZc6oAiQ.js +6 -0
- langflow/frontend/assets/moon-B0DKZtsI.js +6 -0
- langflow/frontend/assets/moon-star-Ctzfdoxd.js +6 -0
- langflow/frontend/assets/mountain-BViS9p8e.js +6 -0
- langflow/frontend/assets/mountain-snow-wrBUUJaS.js +6 -0
- langflow/frontend/assets/mouse-PsIapY6t.js +6 -0
- langflow/frontend/assets/mouse-off-DmtFywS0.js +6 -0
- langflow/frontend/assets/mouse-pointer-2-DDfsMPQa.js +6 -0
- langflow/frontend/assets/mouse-pointer-Do0tKM3t.js +6 -0
- langflow/frontend/assets/mouse-pointer-ban-BfBspUl7.js +6 -0
- langflow/frontend/assets/mouse-pointer-click-DB8PFQzb.js +6 -0
- langflow/frontend/assets/move-3d-DBBeUqFS.js +6 -0
- langflow/frontend/assets/move-VyMcvkTk.js +6 -0
- langflow/frontend/assets/move-diagonal-2-BhWD96KG.js +6 -0
- langflow/frontend/assets/move-diagonal-BJdvR0CS.js +6 -0
- langflow/frontend/assets/move-down-Dq_gEbV7.js +6 -0
- langflow/frontend/assets/move-down-left-xdF4s739.js +6 -0
- langflow/frontend/assets/move-down-right-DMkY1XsE.js +6 -0
- langflow/frontend/assets/move-horizontal-BNALBDje.js +6 -0
- langflow/frontend/assets/move-left-BHg6tKv_.js +6 -0
- langflow/frontend/assets/move-right-7rbwrcph.js +6 -0
- langflow/frontend/assets/move-up-EaIXqh5m.js +6 -0
- langflow/frontend/assets/move-up-left-Ce4voyz6.js +6 -0
- langflow/frontend/assets/move-up-right-CK37GX1n.js +6 -0
- langflow/frontend/assets/move-vertical-B3o_4xoH.js +6 -0
- langflow/frontend/assets/music-2-BOO1PMRD.js +6 -0
- langflow/frontend/assets/music-3-Dkk-yrSn.js +6 -0
- langflow/frontend/assets/music-4--cIp8FZ0.js +6 -0
- langflow/frontend/assets/music-EVxCAcrl.js +6 -0
- langflow/frontend/assets/navigation-2-DkfR1nHO.js +6 -0
- langflow/frontend/assets/navigation-2-off-BxIfCNZW.js +6 -0
- langflow/frontend/assets/navigation-D34hZzWn.js +6 -0
- langflow/frontend/assets/navigation-off-bapL0Auq.js +6 -0
- langflow/frontend/assets/network-CTpT9b8B.js +6 -0
- langflow/frontend/assets/newspaper-CYHhE4Ry.js +6 -0
- langflow/frontend/assets/nfc-BVrV22we.js +6 -0
- langflow/frontend/assets/non-binary-DhWaP0RD.js +6 -0
- langflow/frontend/assets/notebook-BPqfy22s.js +6 -0
- langflow/frontend/assets/notebook-pen-D6UW3rR7.js +6 -0
- langflow/frontend/assets/notebook-tabs-kraWwpQc.js +6 -0
- langflow/frontend/assets/notebook-text-BKAT_zeE.js +6 -0
- langflow/frontend/assets/notepad-text-dashed-DX3qGwQr.js +6 -0
- langflow/frontend/assets/notepad-text-uPo8I4gT.js +6 -0
- langflow/frontend/assets/nut-a43ayKGn.js +6 -0
- langflow/frontend/assets/nut-off-_KaZEvp1.js +6 -0
- langflow/frontend/assets/octagon-CfeCEl8m.js +6 -0
- langflow/frontend/assets/octagon-alert-B591BFYW.js +6 -0
- langflow/frontend/assets/octagon-minus-Cibuifse.js +6 -0
- langflow/frontend/assets/octagon-pause-DiuvavjA.js +6 -0
- langflow/frontend/assets/octagon-x-Bwo7bBuk.js +6 -0
- langflow/frontend/assets/omega-DogRsFlx.js +6 -0
- langflow/frontend/assets/option-B9PU2MxQ.js +6 -0
- langflow/frontend/assets/orbit-B23TQq2X.js +6 -0
- langflow/frontend/assets/origami-Dgjr3JK7.js +6 -0
- langflow/frontend/assets/package-2-DQUctyug.js +6 -0
- langflow/frontend/assets/package-D4aV6o9Q.js +6 -0
- langflow/frontend/assets/package-check-CliAaNz9.js +6 -0
- langflow/frontend/assets/package-minus-BrGngZ1w.js +6 -0
- langflow/frontend/assets/package-open-C9AI5Gih.js +6 -0
- langflow/frontend/assets/package-plus-CY7O3mnf.js +6 -0
- langflow/frontend/assets/package-search-SsaVIIPY.js +6 -0
- langflow/frontend/assets/package-x-CzDSGhA5.js +6 -0
- langflow/frontend/assets/paint-bucket-Dx-MC7e8.js +6 -0
- langflow/frontend/assets/paint-roller-CJHtzC5e.js +6 -0
- langflow/frontend/assets/paintbrush-v0__6gPo.js +6 -0
- langflow/frontend/assets/paintbrush-vertical-C-gwfiNX.js +6 -0
- langflow/frontend/assets/palette-MM5p4eDL.js +6 -0
- langflow/frontend/assets/panel-bottom-CQuhxizZ.js +6 -0
- langflow/frontend/assets/panel-bottom-close-DloXnNAI.js +6 -0
- langflow/frontend/assets/panel-bottom-dashed-CkVeNrAB.js +6 -0
- langflow/frontend/assets/panel-bottom-open-C8GPV34d.js +6 -0
- langflow/frontend/assets/panel-left-close-Bh4zag9X.js +6 -0
- langflow/frontend/assets/panel-left-dashed-D5b2eUEQ.js +6 -0
- langflow/frontend/assets/panel-left-open-DN9UQb6d.js +6 -0
- langflow/frontend/assets/panel-right-BTPOWp5w.js +6 -0
- langflow/frontend/assets/panel-right-close-C7X7BKFr.js +6 -0
- langflow/frontend/assets/panel-right-dashed-C_oxI-6j.js +6 -0
- langflow/frontend/assets/panel-right-open-CpgdiC77.js +6 -0
- langflow/frontend/assets/panel-top-C6eTHX5H.js +6 -0
- langflow/frontend/assets/panel-top-close-BsX-Qzit.js +6 -0
- langflow/frontend/assets/panel-top-dashed-C6LhkRsT.js +6 -0
- langflow/frontend/assets/panel-top-open-DgP2YMdr.js +6 -0
- langflow/frontend/assets/panels-left-bottom-C_x8X8W1.js +6 -0
- langflow/frontend/assets/panels-right-bottom-DRsuG8Sl.js +6 -0
- langflow/frontend/assets/panels-top-left-35GOU8Hn.js +6 -0
- langflow/frontend/assets/paperclip-VO67wXpV.js +6 -0
- langflow/frontend/assets/parentheses-Eu2QBq2K.js +6 -0
- langflow/frontend/assets/parking-meter-lsVKB8wA.js +6 -0
- langflow/frontend/assets/party-popper-J7vwI_zq.js +6 -0
- langflow/frontend/assets/pause-BusDB24s.js +6 -0
- langflow/frontend/assets/paw-print-B89u-8QZ.js +6 -0
- langflow/frontend/assets/pc-case-BLQxaPjS.js +6 -0
- langflow/frontend/assets/pen-l2_kktK6.js +6 -0
- langflow/frontend/assets/pen-line-9uKooto2.js +6 -0
- langflow/frontend/assets/pen-off-BbeCyRxl.js +6 -0
- langflow/frontend/assets/pen-tool-bqGAgkYb.js +6 -0
- langflow/frontend/assets/pencil-Bo6UyJ7Y.js +6 -0
- langflow/frontend/assets/pencil-line-CJnQklTi.js +6 -0
- langflow/frontend/assets/pencil-off-CBpxW5Ma.js +6 -0
- langflow/frontend/assets/pencil-ruler-BIQD6H9e.js +6 -0
- langflow/frontend/assets/pentagon-ClSmG8GA.js +6 -0
- langflow/frontend/assets/percent-BHcTwEaH.js +6 -0
- langflow/frontend/assets/person-standing-DuUJ_-ps.js +6 -0
- langflow/frontend/assets/philippine-peso-B2BiQ-yt.js +6 -0
- langflow/frontend/assets/phone-CsX06G1j.js +6 -0
- langflow/frontend/assets/phone-call-luq1AzWF.js +6 -0
- langflow/frontend/assets/phone-forwarded-MYqiG71p.js +6 -0
- langflow/frontend/assets/phone-incoming-COPnhK0j.js +6 -0
- langflow/frontend/assets/phone-missed-BQY8vFIQ.js +6 -0
- langflow/frontend/assets/phone-off-DGApfm9n.js +6 -0
- langflow/frontend/assets/phone-outgoing-BoBfFWAk.js +6 -0
- langflow/frontend/assets/pi-K5HKvsrF.js +6 -0
- langflow/frontend/assets/piano-B2o_2jSp.js +6 -0
- langflow/frontend/assets/pickaxe-CQJPI40N.js +6 -0
- langflow/frontend/assets/picture-in-picture-2-C20NinnL.js +6 -0
- langflow/frontend/assets/picture-in-picture-DxqIlPUB.js +6 -0
- langflow/frontend/assets/piggy-bank-BTuPaCwQ.js +6 -0
- langflow/frontend/assets/pilcrow-DL6bvfFN.js +6 -0
- langflow/frontend/assets/pilcrow-left-BCCiRC2n.js +6 -0
- langflow/frontend/assets/pilcrow-right-BCK_9uqB.js +6 -0
- langflow/frontend/assets/pill-CHrDphfi.js +6 -0
- langflow/frontend/assets/pill-bottle-Cbwd6Hra.js +6 -0
- langflow/frontend/assets/pin-B-ye03R2.js +6 -0
- langflow/frontend/assets/pin-off-qqKn0wzV.js +6 -0
- langflow/frontend/assets/pipette-CngJkTo1.js +6 -0
- langflow/frontend/assets/pizza-DYK-ktFR.js +6 -0
- langflow/frontend/assets/plane-BPB844mb.js +6 -0
- langflow/frontend/assets/plane-landing-DTrnqMTp.js +6 -0
- langflow/frontend/assets/plane-takeoff-CqR1IfGj.js +6 -0
- langflow/frontend/assets/play-Cp3QJ_F7.js +6 -0
- langflow/frontend/assets/plug-2-BmB2Ezi0.js +6 -0
- langflow/frontend/assets/plug-CUbxznNc.js +6 -0
- langflow/frontend/assets/plug-zap-CzmqzMbn.js +6 -0
- langflow/frontend/assets/pocket-CxvlSIhT.js +6 -0
- langflow/frontend/assets/pocket-knife-MhVc893l.js +6 -0
- langflow/frontend/assets/podcast-D1ES0mNi.js +6 -0
- langflow/frontend/assets/pointer-DQTc3F6S.js +6 -0
- langflow/frontend/assets/pointer-off-CPsIGD9X.js +6 -0
- langflow/frontend/assets/popcorn-CjnSHuk2.js +6 -0
- langflow/frontend/assets/popsicle-CCgunO-1.js +6 -0
- langflow/frontend/assets/pound-sterling-9IqZ3-7A.js +6 -0
- langflow/frontend/assets/power-Dk9gEwUZ.js +6 -0
- langflow/frontend/assets/power-off-DZOPmnnb.js +6 -0
- langflow/frontend/assets/presentation-BoO48CZD.js +6 -0
- langflow/frontend/assets/printer-DE1kIG3v.js +6 -0
- langflow/frontend/assets/printer-check-DGu9e8EP.js +6 -0
- langflow/frontend/assets/projector-Bbj1ERqF.js +6 -0
- langflow/frontend/assets/proportions-DzrXbXng.js +6 -0
- langflow/frontend/assets/puzzle-DZf8J31T.js +6 -0
- langflow/frontend/assets/pyramid-Ha0yMtTs.js +6 -0
- langflow/frontend/assets/qr-code-CB9LNbX7.js +6 -0
- langflow/frontend/assets/quote-DVBb6Hsl.js +6 -0
- langflow/frontend/assets/rabbit-Cox310Rm.js +6 -0
- langflow/frontend/assets/radar-CkdxQsrC.js +6 -0
- langflow/frontend/assets/radiation-BUzUxI1M.js +6 -0
- langflow/frontend/assets/radical-DxmE9MB5.js +6 -0
- langflow/frontend/assets/radio-CzSPPBn9.js +6 -0
- langflow/frontend/assets/radio-receiver-BRhTHlOb.js +6 -0
- langflow/frontend/assets/radio-tower-C997aa7V.js +6 -0
- langflow/frontend/assets/radius-eNFNZ63f.js +6 -0
- langflow/frontend/assets/rail-symbol-BVhThAj5.js +6 -0
- langflow/frontend/assets/rainbow-C1W1S3nC.js +6 -0
- langflow/frontend/assets/rat-ovkOiVnr.js +6 -0
- langflow/frontend/assets/ratio-83gKfUqs.js +6 -0
- langflow/frontend/assets/receipt-BPfxYL-t.js +6 -0
- langflow/frontend/assets/receipt-cent-C2DMMgCI.js +6 -0
- langflow/frontend/assets/receipt-euro-BcN4QbJj.js +6 -0
- langflow/frontend/assets/receipt-indian-rupee-D__WBKSW.js +6 -0
- langflow/frontend/assets/receipt-japanese-yen-jY-kFDhG.js +6 -0
- langflow/frontend/assets/receipt-pound-sterling-C69ujw66.js +6 -0
- langflow/frontend/assets/receipt-russian-ruble-BuuslGer.js +6 -0
- langflow/frontend/assets/receipt-swiss-franc-DuV-uqzy.js +6 -0
- langflow/frontend/assets/receipt-text-Du4xCTqt.js +6 -0
- langflow/frontend/assets/rectangle-ellipsis-BOUqQoUO.js +6 -0
- langflow/frontend/assets/rectangle-goggles-BDaB683R.js +6 -0
- langflow/frontend/assets/rectangle-horizontal-B_WJ55fb.js +6 -0
- langflow/frontend/assets/rectangle-vertical-CjbhsdeD.js +6 -0
- langflow/frontend/assets/recycle-GZSGoXX3.js +6 -0
- langflow/frontend/assets/redo-2-Gc9v-qBE.js +6 -0
- langflow/frontend/assets/redo-BYIe0CPd.js +6 -0
- langflow/frontend/assets/redo-dot-Cm0UHIi_.js +6 -0
- langflow/frontend/assets/refresh-ccw-C2_4FKrs.js +6 -0
- langflow/frontend/assets/refresh-ccw-dot-m_-sg93l.js +6 -0
- langflow/frontend/assets/refresh-cw-BP2IjkBO.js +6 -0
- langflow/frontend/assets/refresh-cw-off-BOWIMnEP.js +6 -0
- langflow/frontend/assets/refrigerator-iiEh6xZ_.js +6 -0
- langflow/frontend/assets/regex-yEbM7YcM.js +6 -0
- langflow/frontend/assets/remove-formatting-DwzyXCBq.js +6 -0
- langflow/frontend/assets/repeat-1-C-6TATVV.js +6 -0
- langflow/frontend/assets/repeat-2-CrFZ_bv1.js +6 -0
- langflow/frontend/assets/repeat-CsiwjVzu.js +6 -0
- langflow/frontend/assets/replace-CVpmHNfX.js +6 -0
- langflow/frontend/assets/replace-all-CNdkMojg.js +6 -0
- langflow/frontend/assets/reply-YcG5rCQU.js +6 -0
- langflow/frontend/assets/reply-all-0w8UksGr.js +6 -0
- langflow/frontend/assets/rewind-DEfapzMC.js +6 -0
- langflow/frontend/assets/ribbon-BUuLd3r4.js +6 -0
- langflow/frontend/assets/rocket-BjWWFljK.js +6 -0
- langflow/frontend/assets/rocking-chair-BW_ml7Vx.js +6 -0
- langflow/frontend/assets/roller-coaster-CApTQcMi.js +6 -0
- langflow/frontend/assets/rotate-3d-DhlFDya7.js +6 -0
- langflow/frontend/assets/rotate-ccw-BPg0KNoe.js +6 -0
- langflow/frontend/assets/rotate-ccw-key-BBDFaGGC.js +6 -0
- langflow/frontend/assets/rotate-ccw-square-kMZ6JZqh.js +6 -0
- langflow/frontend/assets/rotate-cw-Dg0Bi7wU.js +6 -0
- langflow/frontend/assets/rotate-cw-square-Brw3P8Fv.js +6 -0
- langflow/frontend/assets/route-Cboni9wr.js +6 -0
- langflow/frontend/assets/route-off-DRb5fMPZ.js +6 -0
- langflow/frontend/assets/router-BnGfWIs_.js +6 -0
- langflow/frontend/assets/rows-2-DVNk29RC.js +6 -0
- langflow/frontend/assets/rows-3-Cjq2fSdq.js +6 -0
- langflow/frontend/assets/rows-4-DLd-ui9H.js +6 -0
- langflow/frontend/assets/rss-DR8uKj95.js +6 -0
- langflow/frontend/assets/ruler-DuSS_6es.js +6 -0
- langflow/frontend/assets/ruler-dimension-line-D-c4w7ui.js +6 -0
- langflow/frontend/assets/russian-ruble-CIMKvBdL.js +6 -0
- langflow/frontend/assets/sailboat-DuZxCgAg.js +6 -0
- langflow/frontend/assets/salad-CUxE9Wfx.js +6 -0
- langflow/frontend/assets/sandwich-C_QPPEMb.js +6 -0
- langflow/frontend/assets/satellite-BhPkKs5D.js +6 -0
- langflow/frontend/assets/satellite-dish-VvVZqN0g.js +6 -0
- langflow/frontend/assets/saudi-riyal-BdoVPYpx.js +6 -0
- langflow/frontend/assets/save-RznIOHB5.js +6 -0
- langflow/frontend/assets/save-all--YjhWMXz.js +6 -0
- langflow/frontend/assets/save-off-B1Vo-jhg.js +6 -0
- langflow/frontend/assets/scale-3d-F6xrXXmi.js +6 -0
- langflow/frontend/assets/scale-CPgxtK1b.js +6 -0
- langflow/frontend/assets/scaling-DIbcACJv.js +6 -0
- langflow/frontend/assets/scan-C7JXlL0d.js +6 -0
- langflow/frontend/assets/scan-barcode-B0W8Un2U.js +6 -0
- langflow/frontend/assets/scan-eye-DXdKxvsw.js +6 -0
- langflow/frontend/assets/scan-face-DW631WZ9.js +6 -0
- langflow/frontend/assets/scan-heart-COwOTEjW.js +6 -0
- langflow/frontend/assets/scan-line-D481Rxdq.js +6 -0
- langflow/frontend/assets/scan-qr-code-DmbjRJ1U.js +6 -0
- langflow/frontend/assets/scan-search-BziKw1su.js +6 -0
- langflow/frontend/assets/scan-text-DJsKb04Q.js +6 -0
- langflow/frontend/assets/school-CpOhILRy.js +6 -0
- langflow/frontend/assets/scissors-MWboott0.js +6 -0
- langflow/frontend/assets/scissors-line-dashed-CUK-_-Oz.js +6 -0
- langflow/frontend/assets/screen-share-CFjmXGMz.js +6 -0
- langflow/frontend/assets/screen-share-off-STG55MM3.js +6 -0
- langflow/frontend/assets/scroll-B5MlIDdW.js +6 -0
- langflow/frontend/assets/scroll-text-GIMKjBRu.js +6 -0
- langflow/frontend/assets/search-check-CZyFYIdK.js +6 -0
- langflow/frontend/assets/search-code-Dg4zHaFb.js +6 -0
- langflow/frontend/assets/search-slash-BjRsDKXv.js +6 -0
- langflow/frontend/assets/search-x-D-kCVQQk.js +6 -0
- langflow/frontend/assets/section-ClN-TU0Q.js +6 -0
- langflow/frontend/assets/send-SHeAfeUw.js +6 -0
- langflow/frontend/assets/send-horizontal-FYUBqedk.js +6 -0
- langflow/frontend/assets/send-to-back-CYrYXSrg.js +6 -0
- langflow/frontend/assets/separator-horizontal-CZTHq-UI.js +6 -0
- langflow/frontend/assets/separator-vertical-BM-FPRKM.js +6 -0
- langflow/frontend/assets/server-B0n31k_F.js +6 -0
- langflow/frontend/assets/server-cog-BRcRuTMm.js +6 -0
- langflow/frontend/assets/server-crash-DKRpd_BL.js +6 -0
- langflow/frontend/assets/server-off--2u05yh1.js +6 -0
- langflow/frontend/assets/settings-2-CjdZg6fF.js +6 -0
- langflow/frontend/assets/settings-D2TQc3dl.js +6 -0
- langflow/frontend/assets/shapes-B2_IEIQ3.js +6 -0
- langflow/frontend/assets/share-2-C9_OANjr.js +6 -0
- langflow/frontend/assets/share-BlhQ6LtJ.js +6 -0
- langflow/frontend/assets/sheet-DMfeb2F2.js +6 -0
- langflow/frontend/assets/shell-By_SFnU2.js +6 -0
- langflow/frontend/assets/shield-alert-BW7uVik2.js +6 -0
- langflow/frontend/assets/shield-ban-CfcKG5DF.js +6 -0
- langflow/frontend/assets/shield-check-i-UrLLlt.js +6 -0
- langflow/frontend/assets/shield-ellipsis-PKnOIvX9.js +6 -0
- langflow/frontend/assets/shield-half-bW2Vrpuc.js +6 -0
- langflow/frontend/assets/shield-minus-DpVGPqPH.js +6 -0
- langflow/frontend/assets/shield-off-DGGoTxis.js +6 -0
- langflow/frontend/assets/shield-plus-BJ2WO8mZ.js +6 -0
- langflow/frontend/assets/shield-question-C8BLJ7BE.js +6 -0
- langflow/frontend/assets/shield-rYbb91Vy.js +6 -0
- langflow/frontend/assets/shield-user-Dy5gpVsN.js +6 -0
- langflow/frontend/assets/shield-x-Clit98Zv.js +6 -0
- langflow/frontend/assets/ship-Bpflwxp2.js +6 -0
- langflow/frontend/assets/ship-wheel-CLMP_wPK.js +6 -0
- langflow/frontend/assets/shirt-CyOo9uLy.js +6 -0
- langflow/frontend/assets/shopping-bag-G7b8OI76.js +6 -0
- langflow/frontend/assets/shopping-basket-DknuaPyF.js +6 -0
- langflow/frontend/assets/shopping-cart-BXzXILa_.js +6 -0
- langflow/frontend/assets/shovel-COp-eElj.js +6 -0
- langflow/frontend/assets/shower-head-BY4lvHzG.js +6 -0
- langflow/frontend/assets/shredder-19s9Ntkw.js +6 -0
- langflow/frontend/assets/shrimp-BPDrvID9.js +6 -0
- langflow/frontend/assets/shrink-Bu6tGCD1.js +6 -0
- langflow/frontend/assets/shrub-DiZ6DTqw.js +6 -0
- langflow/frontend/assets/shuffle-DZgGdZNn.js +6 -0
- langflow/frontend/assets/sigma-vEmoNXGS.js +6 -0
- langflow/frontend/assets/signal-C3F-1ww1.js +6 -0
- langflow/frontend/assets/signal-high-CsePmxDM.js +6 -0
- langflow/frontend/assets/signal-low-0uAfVpA4.js +6 -0
- langflow/frontend/assets/signal-medium-BgIiKUO6.js +6 -0
- langflow/frontend/assets/signal-zero-DPxaIvSy.js +6 -0
- langflow/frontend/assets/signature-CVKoUZsN.js +6 -0
- langflow/frontend/assets/signpost-CiZRVNRr.js +6 -0
- langflow/frontend/assets/signpost-big-EsDGzZr3.js +6 -0
- langflow/frontend/assets/siren-D1vCsFhl.js +6 -0
- langflow/frontend/assets/skip-back-BEI03V92.js +6 -0
- langflow/frontend/assets/skip-forward-Cj8uAYwt.js +6 -0
- langflow/frontend/assets/skull-CVyIFxRU.js +6 -0
- langflow/frontend/assets/slack-12PDuFhM.js +6 -0
- langflow/frontend/assets/slash-CfRYkApX.js +6 -0
- langflow/frontend/assets/slice-BZNB3ffC.js +6 -0
- langflow/frontend/assets/sliders-horizontal-D8DBoJKI.js +6 -0
- langflow/frontend/assets/sliders-vertical-BOjA3Zef.js +6 -0
- langflow/frontend/assets/smartphone-DYtrGChd.js +6 -0
- langflow/frontend/assets/smartphone-charging-3CyRwWaM.js +6 -0
- langflow/frontend/assets/smartphone-nfc-DfJJVwX0.js +6 -0
- langflow/frontend/assets/smile-D0wSoLP3.js +6 -0
- langflow/frontend/assets/smile-plus-DyFKhTp4.js +6 -0
- langflow/frontend/assets/snail-CFzyOaHl.js +6 -0
- langflow/frontend/assets/snowflake-sYmV4qro.js +6 -0
- langflow/frontend/assets/sofa-DaBJOICG.js +6 -0
- langflow/frontend/assets/soup-D0GpC3eS.js +6 -0
- langflow/frontend/assets/space-CgMFhB58.js +6 -0
- langflow/frontend/assets/spade-BJEMneUg.js +6 -0
- langflow/frontend/assets/sparkle-CDDM9Mvp.js +6 -0
- langflow/frontend/assets/sparkles-6ZpfST88.js +6 -0
- langflow/frontend/assets/speaker-xEKSOtP6.js +6 -0
- langflow/frontend/assets/speech-D6rV1YBo.js +6 -0
- langflow/frontend/assets/spell-check-2-DkiUYnlC.js +6 -0
- langflow/frontend/assets/spell-check-mWkzb0hY.js +6 -0
- langflow/frontend/assets/spline-pointer-BGpYY33b.js +6 -0
- langflow/frontend/assets/spline-qk0n1xGT.js +6 -0
- langflow/frontend/assets/split-DQ0HWxE7.js +6 -0
- langflow/frontend/assets/spray-can-PQZ9Slxg.js +6 -0
- langflow/frontend/assets/sprout-DKyKicZ7.js +6 -0
- langflow/frontend/assets/square-COGTsI8x.js +6 -0
- langflow/frontend/assets/square-activity-5a4kZpLZ.js +6 -0
- langflow/frontend/assets/square-arrow-down-Dr4lD3vg.js +6 -0
- langflow/frontend/assets/square-arrow-down-left-BHxHDavZ.js +6 -0
- langflow/frontend/assets/square-arrow-down-right-D0xa4G4o.js +6 -0
- langflow/frontend/assets/square-arrow-left-B41wFphu.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-left-CyJCyRxO.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-right-VWsB2Wiz.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-left-BD-c-KMe.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-right-Ch4l-xs_.js +6 -0
- langflow/frontend/assets/square-arrow-right-C6lrGHU7.js +6 -0
- langflow/frontend/assets/square-arrow-up-BGzWCsSj.js +6 -0
- langflow/frontend/assets/square-arrow-up-left-btrT4kn3.js +6 -0
- langflow/frontend/assets/square-arrow-up-right-CDWOOBbN.js +6 -0
- langflow/frontend/assets/square-asterisk-DNgdo6OY.js +6 -0
- langflow/frontend/assets/square-bottom-dashed-scissors-CZrmyL7e.js +6 -0
- langflow/frontend/assets/square-chart-gantt-BDkJ3E1D.js +6 -0
- langflow/frontend/assets/square-check-BqIOK6Ab.js +6 -0
- langflow/frontend/assets/square-check-big-DjEAJtoz.js +6 -0
- langflow/frontend/assets/square-chevron-down-Bq-k9lTf.js +6 -0
- langflow/frontend/assets/square-chevron-left-oV2uM-SF.js +6 -0
- langflow/frontend/assets/square-chevron-right-Doe8jZbo.js +6 -0
- langflow/frontend/assets/square-chevron-up-XdzNH_3s.js +6 -0
- langflow/frontend/assets/square-code-DwvCm6fb.js +6 -0
- langflow/frontend/assets/square-dashed-CL-_qgiv.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-BmfE1MGK.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-code-DBss2v5V.js +6 -0
- langflow/frontend/assets/square-dashed-kanban-D6ju10-F.js +6 -0
- langflow/frontend/assets/square-dashed-mouse-pointer-BrwJbu-G.js +6 -0
- langflow/frontend/assets/square-divide-YY8N42Jf.js +6 -0
- langflow/frontend/assets/square-dot-B5_GKJRL.js +6 -0
- langflow/frontend/assets/square-equal-zch9rHvS.js +6 -0
- langflow/frontend/assets/square-function-Z4EThuTc.js +6 -0
- langflow/frontend/assets/square-kanban-C-5b0FKu.js +6 -0
- langflow/frontend/assets/square-library-wPxf-yZ2.js +6 -0
- langflow/frontend/assets/square-m-D-5ma8YI.js +6 -0
- langflow/frontend/assets/square-menu-C2t3DccI.js +6 -0
- langflow/frontend/assets/square-minus-BN3DrYgN.js +6 -0
- langflow/frontend/assets/square-mouse-pointer-BFPN-xdq.js +6 -0
- langflow/frontend/assets/square-parking-nu0-t68t.js +6 -0
- langflow/frontend/assets/square-parking-off-DlPBcadV.js +6 -0
- langflow/frontend/assets/square-pen-D02pSZoE.js +6 -0
- langflow/frontend/assets/square-percent-0sCOjMZ_.js +6 -0
- langflow/frontend/assets/square-pi-D5ZS3Uih.js +6 -0
- langflow/frontend/assets/square-pilcrow-BCSYMRjs.js +6 -0
- langflow/frontend/assets/square-play-BrkfgQgj.js +6 -0
- langflow/frontend/assets/square-plus-91rz2jKn.js +6 -0
- langflow/frontend/assets/square-power-DnjqgqeC.js +6 -0
- langflow/frontend/assets/square-radical-DuuzX4G0.js +6 -0
- langflow/frontend/assets/square-round-corner-j2bHv73k.js +6 -0
- langflow/frontend/assets/square-scissors-BGfacUEm.js +6 -0
- langflow/frontend/assets/square-sigma-BiVD0DL5.js +6 -0
- langflow/frontend/assets/square-slash-B55YstEL.js +6 -0
- langflow/frontend/assets/square-split-horizontal-sE7tstvl.js +6 -0
- langflow/frontend/assets/square-split-vertical-Esj9xTRs.js +6 -0
- langflow/frontend/assets/square-square-Dk4X4qmr.js +6 -0
- langflow/frontend/assets/square-stack-DoVH68Nq.js +6 -0
- langflow/frontend/assets/square-terminal-CZBBAsdg.js +6 -0
- langflow/frontend/assets/square-user-Cgcxtq_R.js +6 -0
- langflow/frontend/assets/square-user-round-AWo-KHmb.js +6 -0
- langflow/frontend/assets/square-x-BWdQM5AZ.js +6 -0
- langflow/frontend/assets/squares-exclude-BIiCCBh0.js +6 -0
- langflow/frontend/assets/squares-intersect-C5Tyyi_a.js +6 -0
- langflow/frontend/assets/squares-subtract-DD2NEZVQ.js +6 -0
- langflow/frontend/assets/squares-unite-BG6_jEwU.js +6 -0
- langflow/frontend/assets/squircle-B1zm5QdS.js +6 -0
- langflow/frontend/assets/squirrel-lKZyLhE0.js +6 -0
- langflow/frontend/assets/stamp-CQqm0jCW.js +6 -0
- langflow/frontend/assets/star-BK9xhe6u.js +6 -0
- langflow/frontend/assets/star-half-DG7pue3a.js +6 -0
- langflow/frontend/assets/star-off-DJl3DKSX.js +6 -0
- langflow/frontend/assets/step-back-DbvOtJbI.js +6 -0
- langflow/frontend/assets/step-forward-C5YtDnCh.js +6 -0
- langflow/frontend/assets/stethoscope-BTvRZCN2.js +6 -0
- langflow/frontend/assets/sticker-CU1ot_uP.js +6 -0
- langflow/frontend/assets/sticky-note-BQQtF_iU.js +6 -0
- langflow/frontend/assets/store-BfjpaPQN.js +6 -0
- langflow/frontend/assets/stretch-horizontal-BUQe_BB_.js +6 -0
- langflow/frontend/assets/stretch-vertical-BppfqNW0.js +6 -0
- langflow/frontend/assets/strikethrough-Dex4VLep.js +6 -0
- langflow/frontend/assets/subscript-BtJYGjQv.js +6 -0
- langflow/frontend/assets/sun-CyqXgJxL.js +6 -0
- langflow/frontend/assets/sun-dim-Ch_Z-Eq7.js +6 -0
- langflow/frontend/assets/sun-medium-IvN46B2C.js +6 -0
- langflow/frontend/assets/sun-moon-23iYX-Uf.js +6 -0
- langflow/frontend/assets/sun-snow-D_BikbQl.js +6 -0
- langflow/frontend/assets/sunrise-BqdAczWn.js +6 -0
- langflow/frontend/assets/sunset-AoqWGN2X.js +6 -0
- langflow/frontend/assets/superscript-D8Nbn0uC.js +6 -0
- langflow/frontend/assets/swatch-book-DNEBmqOo.js +6 -0
- langflow/frontend/assets/swiss-franc-B8rrJmYF.js +6 -0
- langflow/frontend/assets/switch-camera-BxWYt2WR.js +6 -0
- langflow/frontend/assets/sword-CVvdb2Ao.js +6 -0
- langflow/frontend/assets/swords-tT84a_zE.js +6 -0
- langflow/frontend/assets/syringe-SLK7lUXG.js +6 -0
- langflow/frontend/assets/table-2-BSqQwp6e.js +6 -0
- langflow/frontend/assets/table-CYYuDj3e.js +6 -0
- langflow/frontend/assets/table-cells-merge-CLjzInAt.js +6 -0
- langflow/frontend/assets/table-cells-split-CAORdUaB.js +6 -0
- langflow/frontend/assets/table-columns-split-0WHdqc_r.js +6 -0
- langflow/frontend/assets/table-of-contents-BB1pjqx6.js +6 -0
- langflow/frontend/assets/table-properties-BOHB3wQq.js +6 -0
- langflow/frontend/assets/table-rows-split-BVGWWDYd.js +6 -0
- langflow/frontend/assets/tablet-JcWvr2aG.js +6 -0
- langflow/frontend/assets/tablet-smartphone-CckwKrNi.js +6 -0
- langflow/frontend/assets/tablets-D30L1qiW.js +6 -0
- langflow/frontend/assets/tag-Dymo1z11.js +6 -0
- langflow/frontend/assets/tags-U4GdtTAl.js +6 -0
- langflow/frontend/assets/tally-1-BvhAtC20.js +6 -0
- langflow/frontend/assets/tally-2-BkQoNQpq.js +6 -0
- langflow/frontend/assets/tally-3-DhKas0z9.js +6 -0
- langflow/frontend/assets/tally-4-Cr68NXo1.js +6 -0
- langflow/frontend/assets/tally-5-eaM-imqi.js +6 -0
- langflow/frontend/assets/tangent-BSjeK_Hu.js +6 -0
- langflow/frontend/assets/target-Dq-T8du-.js +6 -0
- langflow/frontend/assets/telescope-64s6HxRX.js +6 -0
- langflow/frontend/assets/tent-Dh2zTJDP.js +6 -0
- langflow/frontend/assets/tent-tree-B7SPDzP7.js +6 -0
- langflow/frontend/assets/terminal-BgcwbXEe.js +6 -0
- langflow/frontend/assets/test-tube-C8waaxTx.js +6 -0
- langflow/frontend/assets/test-tube-diagonal-_SCJutYF.js +6 -0
- langflow/frontend/assets/test-tubes-DfB6PDCY.js +6 -0
- langflow/frontend/assets/text-DE61yhDk.js +6 -0
- langflow/frontend/assets/text-cursor-C8cir0Mj.js +6 -0
- langflow/frontend/assets/text-cursor-input-CnfufF44.js +6 -0
- langflow/frontend/assets/text-quote-eX4L34JO.js +6 -0
- langflow/frontend/assets/text-search-Duhk-EFD.js +6 -0
- langflow/frontend/assets/text-select-Cvq1WEcF.js +6 -0
- langflow/frontend/assets/theater-DogJ2_UW.js +6 -0
- langflow/frontend/assets/thermometer-BnkN3l7m.js +6 -0
- langflow/frontend/assets/thermometer-snowflake-bGFHZuSE.js +6 -0
- langflow/frontend/assets/thermometer-sun-C1dZA3R8.js +6 -0
- langflow/frontend/assets/thumbs-down-MESCrdZK.js +6 -0
- langflow/frontend/assets/thumbs-up-BjAZ6RuW.js +6 -0
- langflow/frontend/assets/ticket-a55j3Pc_.js +6 -0
- langflow/frontend/assets/ticket-check-BTEVafOv.js +6 -0
- langflow/frontend/assets/ticket-minus-BQg5pyf-.js +6 -0
- langflow/frontend/assets/ticket-percent-Rh5Y-ZPs.js +6 -0
- langflow/frontend/assets/ticket-plus-CPGLUSih.js +6 -0
- langflow/frontend/assets/ticket-slash-B99SHnmV.js +6 -0
- langflow/frontend/assets/ticket-x-CXAnwfdc.js +6 -0
- langflow/frontend/assets/tickets-DKFB1KMN.js +6 -0
- langflow/frontend/assets/tickets-plane-g-4n2bLV.js +6 -0
- langflow/frontend/assets/timer-7Teex06n.js +6 -0
- langflow/frontend/assets/timer-off-DXaiCxD8.js +6 -0
- langflow/frontend/assets/timer-reset-BtkIHHea.js +6 -0
- langflow/frontend/assets/toggle-left-B-5cKNc_.js +6 -0
- langflow/frontend/assets/toggle-right-hxHvOoqS.js +6 -0
- langflow/frontend/assets/toilet-BZRQhowa.js +6 -0
- langflow/frontend/assets/tornado-BdD-oAKI.js +6 -0
- langflow/frontend/assets/torus-B5lplQBI.js +6 -0
- langflow/frontend/assets/touchpad-Bdr9redj.js +6 -0
- langflow/frontend/assets/touchpad-off-nGdcPVyd.js +6 -0
- langflow/frontend/assets/tower-control-u8iiHJoC.js +6 -0
- langflow/frontend/assets/toy-brick-DAd34dB5.js +6 -0
- langflow/frontend/assets/tractor-BHdRvLsA.js +6 -0
- langflow/frontend/assets/traffic-cone-BMdu7VC6.js +6 -0
- langflow/frontend/assets/train-front-DQ7SMCqr.js +6 -0
- langflow/frontend/assets/train-front-tunnel-BeQJyk1H.js +6 -0
- langflow/frontend/assets/train-track-C4JIDbYd.js +6 -0
- langflow/frontend/assets/tram-front-CQNmQ5Zh.js +6 -0
- langflow/frontend/assets/transgender-hh1Srieq.js +6 -0
- langflow/frontend/assets/trash-Dzqs11YH.js +6 -0
- langflow/frontend/assets/tree-deciduous-6SM2uKnP.js +6 -0
- langflow/frontend/assets/tree-palm-ZeJf6STB.js +6 -0
- langflow/frontend/assets/tree-pine-DixLv80_.js +6 -0
- langflow/frontend/assets/trees-A_kLBMK3.js +6 -0
- langflow/frontend/assets/trello-9IZmXKSl.js +6 -0
- langflow/frontend/assets/trending-down-2kjfhQ7j.js +6 -0
- langflow/frontend/assets/trending-up-BuzuJBcR.js +6 -0
- langflow/frontend/assets/trending-up-down-BOAO9tDL.js +6 -0
- langflow/frontend/assets/triangle-D1ujrvD3.js +6 -0
- langflow/frontend/assets/triangle-alert-BKW_pPKN.js +6 -0
- langflow/frontend/assets/triangle-dashed-BdziAI4N.js +6 -0
- langflow/frontend/assets/triangle-right-CcO8kR8s.js +6 -0
- langflow/frontend/assets/trophy-CdiND_7_.js +6 -0
- langflow/frontend/assets/truck-B4CY3iXx.js +6 -0
- langflow/frontend/assets/truck-electric-DGeC9fI_.js +6 -0
- langflow/frontend/assets/turtle-DtdABcsz.js +6 -0
- langflow/frontend/assets/tv-Bs8J7CeM.js +6 -0
- langflow/frontend/assets/tv-minimal-SpunU1Q5.js +6 -0
- langflow/frontend/assets/tv-minimal-play-DMF2dpbC.js +6 -0
- langflow/frontend/assets/twitch-Mi6pLoHM.js +6 -0
- langflow/frontend/assets/twitter-U3kqpcrC.js +6 -0
- langflow/frontend/assets/type-CXMCV82V.js +6 -0
- langflow/frontend/assets/type-outline-U542XBsO.js +6 -0
- langflow/frontend/assets/umbrella-DO7pS5DU.js +6 -0
- langflow/frontend/assets/umbrella-off-9Q1ubodM.js +6 -0
- langflow/frontend/assets/underline-BWiYNixc.js +6 -0
- langflow/frontend/assets/undo-2-epqHMXVJ.js +6 -0
- langflow/frontend/assets/undo-DQB1phNl.js +6 -0
- langflow/frontend/assets/undo-dot-DHiqV5vm.js +6 -0
- langflow/frontend/assets/unfold-horizontal-B_odx1z3.js +6 -0
- langflow/frontend/assets/unfold-vertical-CmxPxHoI.js +6 -0
- langflow/frontend/assets/ungroup-CUMDCbp9.js +6 -0
- langflow/frontend/assets/university-CzMJ55Jz.js +6 -0
- langflow/frontend/assets/unlink-2-Ll64c42z.js +6 -0
- langflow/frontend/assets/unlink-j7HAs14S.js +6 -0
- langflow/frontend/assets/unplug-DU7eYe3O.js +6 -0
- langflow/frontend/assets/upload-DS6i6_rl.js +6 -0
- langflow/frontend/assets/usb-BTYPLrsB.js +6 -0
- langflow/frontend/assets/use-post-add-user-B7EM_RzP.js +1 -0
- langflow/frontend/assets/user-BneABkDD.js +6 -0
- langflow/frontend/assets/user-check-DLecleG8.js +6 -0
- langflow/frontend/assets/user-cog-CT0avrGD.js +6 -0
- langflow/frontend/assets/user-lock-B4beAKHO.js +6 -0
- langflow/frontend/assets/user-minus-BQCURONX.js +6 -0
- langflow/frontend/assets/user-pen-DZOsXple.js +6 -0
- langflow/frontend/assets/user-plus-D3KYDV65.js +6 -0
- langflow/frontend/assets/user-round-DXvB-sis.js +6 -0
- langflow/frontend/assets/user-round-check-B1lLFiuL.js +6 -0
- langflow/frontend/assets/user-round-cog-zqQYHDkK.js +6 -0
- langflow/frontend/assets/user-round-minus-BbuKmBAZ.js +6 -0
- langflow/frontend/assets/user-round-pen-DZJLcBqx.js +6 -0
- langflow/frontend/assets/user-round-plus-By43ju0B.js +6 -0
- langflow/frontend/assets/user-round-search-B20qkio0.js +6 -0
- langflow/frontend/assets/user-round-x-D28MS4Pw.js +6 -0
- langflow/frontend/assets/user-search-CVUTxJR-.js +6 -0
- langflow/frontend/assets/user-x-D9XMF9c8.js +6 -0
- langflow/frontend/assets/users-DbOZgm_i.js +6 -0
- langflow/frontend/assets/users-round-Du1k5OAW.js +6 -0
- langflow/frontend/assets/utensils-DFYRDzD4.js +6 -0
- langflow/frontend/assets/utensils-crossed-BhF-COe0.js +6 -0
- langflow/frontend/assets/utility-pole-BZRIiBme.js +6 -0
- langflow/frontend/assets/variable-DyScEKue.js +6 -0
- langflow/frontend/assets/vault-Dy2MtKrI.js +6 -0
- langflow/frontend/assets/vegan-PZWKn2MP.js +6 -0
- langflow/frontend/assets/venetian-mask-BUTB7zZ9.js +6 -0
- langflow/frontend/assets/venus-Kosx-afl.js +6 -0
- langflow/frontend/assets/venus-and-mars-5qflpTn2.js +6 -0
- langflow/frontend/assets/vibrate-6KJwlc-Q.js +6 -0
- langflow/frontend/assets/vibrate-off-B90YN_7_.js +6 -0
- langflow/frontend/assets/video-DbGR4C7Q.js +6 -0
- langflow/frontend/assets/video-off-CvvHrVzs.js +6 -0
- langflow/frontend/assets/videotape-BaHy3MU2.js +6 -0
- langflow/frontend/assets/view-Bl6PG773.js +6 -0
- langflow/frontend/assets/voicemail-CPcERSuM.js +6 -0
- langflow/frontend/assets/volleyball-Dg2YbTMV.js +6 -0
- langflow/frontend/assets/volume-1-rCDA2h69.js +6 -0
- langflow/frontend/assets/volume-2-DVy26qOz.js +6 -0
- langflow/frontend/assets/volume-4h1lDqFQ.js +6 -0
- langflow/frontend/assets/volume-off-ebHDfqPm.js +6 -0
- langflow/frontend/assets/volume-x-xl16BegK.js +6 -0
- langflow/frontend/assets/vote-Btz6ltdj.js +6 -0
- langflow/frontend/assets/wallet-CWkbghie.js +6 -0
- langflow/frontend/assets/wallet-cards-Be0aUV3K.js +6 -0
- langflow/frontend/assets/wallet-minimal-ubWqPhfu.js +6 -0
- langflow/frontend/assets/wallpaper-GRXz-gOc.js +6 -0
- langflow/frontend/assets/wand-ButKR_i3.js +6 -0
- langflow/frontend/assets/wand-sparkles-CKKYYi1r.js +6 -0
- langflow/frontend/assets/warehouse-D4qgMLDu.js +6 -0
- langflow/frontend/assets/washing-machine-CvkGrWJj.js +6 -0
- langflow/frontend/assets/watch-gV-BR051.js +6 -0
- langflow/frontend/assets/waves-BxKdlE3z.js +6 -0
- langflow/frontend/assets/waves-ladder-DJX2FT5i.js +6 -0
- langflow/frontend/assets/waypoints-DmFben9T.js +6 -0
- langflow/frontend/assets/webcam-CYnv9CAq.js +6 -0
- langflow/frontend/assets/webhook-DwhPe9gN.js +6 -0
- langflow/frontend/assets/webhook-off-CT6h_X-Z.js +6 -0
- langflow/frontend/assets/weight-C6EgLVYP.js +6 -0
- langflow/frontend/assets/wheat-fRKNp1gp.js +6 -0
- langflow/frontend/assets/wheat-off-BT8xL0kc.js +6 -0
- langflow/frontend/assets/whole-word-xDqtO1YF.js +6 -0
- langflow/frontend/assets/wifi-high-BQ94Cwyy.js +6 -0
- langflow/frontend/assets/wifi-low-DHEqlIdi.js +6 -0
- langflow/frontend/assets/wifi-off-Dv5Cdbiq.js +6 -0
- langflow/frontend/assets/wifi-pen-D0sHLjps.js +6 -0
- langflow/frontend/assets/wifi-xLsXYWSG.js +6 -0
- langflow/frontend/assets/wifi-zero-DNICrLfQ.js +6 -0
- langflow/frontend/assets/wind-DwtbgEmu.js +6 -0
- langflow/frontend/assets/wind-arrow-down-BC7kKHBk.js +6 -0
- langflow/frontend/assets/wine-CAkr0pTP.js +6 -0
- langflow/frontend/assets/wine-off-Dk5Ks8OK.js +6 -0
- langflow/frontend/assets/workflow-CSuhzeIo.js +6 -0
- langflow/frontend/assets/worm-CI9B708J.js +6 -0
- langflow/frontend/assets/wrap-text-DqcMvmc5.js +6 -0
- langflow/frontend/assets/wrench-B3EDeBlc.js +6 -0
- langflow/frontend/assets/youtube-BZ4y-6zB.js +6 -0
- langflow/frontend/assets/zap-DJv4ut-Z.js +6 -0
- langflow/frontend/assets/zap-off-Bks9j3m4.js +6 -0
- langflow/frontend/assets/zoom-in-DMstXS7Y.js +6 -0
- langflow/frontend/assets/zoom-out-Bz_hFrEG.js +6 -0
- langflow/frontend/index.html +2 -2
- langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +3 -3
- langflow/initial_setup/starter_projects/Basic Prompting.json +1 -1
- langflow/initial_setup/starter_projects/Blog Writer.json +1 -1
- langflow/initial_setup/starter_projects/Custom Component Generator.json +1 -1
- langflow/initial_setup/starter_projects/Document Q&A.json +1 -1
- langflow/initial_setup/starter_projects/Financial Report Parser.json +45 -10
- langflow/initial_setup/starter_projects/Hybrid Search RAG.json +46 -11
- langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +46 -11
- langflow/initial_setup/starter_projects/Instagram Copywriter.json +35 -322
- langflow/initial_setup/starter_projects/Invoice Summarizer.json +33 -320
- langflow/initial_setup/starter_projects/Market Research.json +78 -330
- langflow/initial_setup/starter_projects/Meeting Summary.json +2 -2
- langflow/initial_setup/starter_projects/Memory Chatbot.json +1 -1
- langflow/initial_setup/starter_projects/News Aggregator.json +33 -320
- langflow/initial_setup/starter_projects/Nvidia Remix.json +45 -417
- langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +33 -320
- langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +46 -11
- langflow/initial_setup/starter_projects/Price Deal Finder.json +33 -320
- langflow/initial_setup/starter_projects/Research Agent.json +35 -322
- langflow/initial_setup/starter_projects/Research Translation Loop.json +1 -1
- langflow/initial_setup/starter_projects/SEO Keyword Generator.json +1 -1
- langflow/initial_setup/starter_projects/SaaS Pricing.json +33 -320
- langflow/initial_setup/starter_projects/Search agent.json +33 -320
- langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +117 -978
- langflow/initial_setup/starter_projects/Simple Agent.json +33 -320
- langflow/initial_setup/starter_projects/Social Media Agent.json +33 -320
- langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +3 -3
- langflow/initial_setup/starter_projects/Travel Planning Agents.json +101 -962
- langflow/initial_setup/starter_projects/Twitter Thread Generator.json +1 -1
- langflow/initial_setup/starter_projects/Vector Store RAG.json +1 -1
- langflow/initial_setup/starter_projects/Youtube Analysis.json +57 -324
- langflow/inputs/__init__.py +2 -0
- langflow/inputs/inputs.py +2 -0
- langflow/processing/process.py +7 -3
- langflow/services/database/models/variable/model.py +1 -2
- langflow/services/variable/base.py +43 -1
- langflow/services/variable/kubernetes.py +65 -1
- langflow/services/variable/service.py +119 -15
- langflow_base_nightly-1.7.0.dev40.dist-info/METADATA +99 -0
- langflow_base_nightly-1.7.0.dev40.dist-info/RECORD +2280 -0
- langflow/base/models/openai_constants.py +0 -7
- langflow/frontend/assets/SlackIcon-DxeiF11S.js +0 -1
- langflow/frontend/assets/Wikipedia-CL057I0S.js +0 -1
- langflow/frontend/assets/Wolfram-Y47vX2rm.js +0 -1
- langflow/frontend/assets/a-arrow-down-DBh7LmeN.js +0 -6
- langflow/frontend/assets/a-arrow-up-B2eX2b8O.js +0 -6
- langflow/frontend/assets/a-large-small-D71NS_iy.js +0 -6
- langflow/frontend/assets/accessibility-DejBYKIW.js +0 -6
- langflow/frontend/assets/activity-CBhxWrMS.js +0 -6
- langflow/frontend/assets/air-vent-Bije1W2Q.js +0 -6
- langflow/frontend/assets/airplay-C5-lPX0O.js +0 -6
- langflow/frontend/assets/alarm-clock-CGfG-USV.js +0 -6
- langflow/frontend/assets/alarm-clock-check-BM4PTWEv.js +0 -6
- langflow/frontend/assets/alarm-clock-minus-B9rwzGwU.js +0 -6
- langflow/frontend/assets/alarm-clock-off-CLSxhrlq.js +0 -6
- langflow/frontend/assets/alarm-clock-plus-CLXdmxkI.js +0 -6
- langflow/frontend/assets/alarm-smoke-BlJtr7Z3.js +0 -6
- langflow/frontend/assets/album-DoYJ3V06.js +0 -6
- langflow/frontend/assets/align-center-C2HHGvzP.js +0 -6
- langflow/frontend/assets/align-center-horizontal-DeG4x0PQ.js +0 -6
- langflow/frontend/assets/align-center-vertical-Df0IJka2.js +0 -6
- langflow/frontend/assets/align-end-horizontal-BOdJ4Ttg.js +0 -6
- langflow/frontend/assets/align-end-vertical-ClyoN3h1.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-center-CFbJUuMS.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-end-BLYD4D6D.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-start-B6m_uTg9.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-center-Ds5Je_LT.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-end-BMJ38us6.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-start-DpXqI56J.js +0 -6
- langflow/frontend/assets/align-horizontal-space-around-3E3L-HGf.js +0 -6
- langflow/frontend/assets/align-horizontal-space-between-C_Ffde9E.js +0 -6
- langflow/frontend/assets/align-justify-hsCZmlA4.js +0 -6
- langflow/frontend/assets/align-left-BbEmnOsJ.js +0 -6
- langflow/frontend/assets/align-right-nxpfT04G.js +0 -6
- langflow/frontend/assets/align-start-horizontal-S4fef6va.js +0 -6
- langflow/frontend/assets/align-start-vertical-rHMRcqan.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-center-Ojt_8EW6.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-end-DJovMEVR.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-start-CCQz6usf.js +0 -6
- langflow/frontend/assets/align-vertical-justify-center-DgCfsVdt.js +0 -6
- langflow/frontend/assets/align-vertical-justify-end-402CJ8G5.js +0 -6
- langflow/frontend/assets/align-vertical-justify-start-7PSLlmlS.js +0 -6
- langflow/frontend/assets/align-vertical-space-around-BJTBy73m.js +0 -6
- langflow/frontend/assets/align-vertical-space-between-DN6Wohqm.js +0 -6
- langflow/frontend/assets/ambulance-Czh1qVns.js +0 -6
- langflow/frontend/assets/ampersand-X2fAuSDg.js +0 -6
- langflow/frontend/assets/ampersands-C54WvK0C.js +0 -6
- langflow/frontend/assets/amphora-DjPF4sK2.js +0 -6
- langflow/frontend/assets/anchor-sUIvYc3m.js +0 -6
- langflow/frontend/assets/angry-BNwCM4ZE.js +0 -6
- langflow/frontend/assets/annoyed-CtiQ5OxF.js +0 -6
- langflow/frontend/assets/antenna-D8fo-ZGm.js +0 -6
- langflow/frontend/assets/anvil-DY5rjtl8.js +0 -6
- langflow/frontend/assets/aperture-Bdlz8QP6.js +0 -6
- langflow/frontend/assets/app-window-0117De3i.js +0 -6
- langflow/frontend/assets/app-window-mac-bCYlgHaE.js +0 -6
- langflow/frontend/assets/apple-CzKnQMQh.js +0 -6
- langflow/frontend/assets/archive-B_2Wouil.js +0 -6
- langflow/frontend/assets/archive-restore-BkrRxkyA.js +0 -6
- langflow/frontend/assets/archive-x-C8lt_i2G.js +0 -6
- langflow/frontend/assets/armchair-Cyl6HafZ.js +0 -6
- langflow/frontend/assets/arrow-big-down-2M-KplbC.js +0 -6
- langflow/frontend/assets/arrow-big-down-dash-BI23IxbO.js +0 -6
- langflow/frontend/assets/arrow-big-left-SZRqVBg4.js +0 -6
- langflow/frontend/assets/arrow-big-left-dash-DbufjKSL.js +0 -6
- langflow/frontend/assets/arrow-big-right-6tuR-Vgz.js +0 -6
- langflow/frontend/assets/arrow-big-right-dash-DK3qRXWr.js +0 -6
- langflow/frontend/assets/arrow-big-up-CrGi99gh.js +0 -6
- langflow/frontend/assets/arrow-big-up-dash-hpXiTPqM.js +0 -6
- langflow/frontend/assets/arrow-down-0-1-B3hd-6CC.js +0 -6
- langflow/frontend/assets/arrow-down-1-0-BDKBZ144.js +0 -6
- langflow/frontend/assets/arrow-down-JFp-p3S5.js +0 -6
- langflow/frontend/assets/arrow-down-a-z-DQsyQ7g8.js +0 -6
- langflow/frontend/assets/arrow-down-from-line-D4KY_4CE.js +0 -6
- langflow/frontend/assets/arrow-down-left-DRzxz0QB.js +0 -6
- langflow/frontend/assets/arrow-down-narrow-wide-wQLpH6NB.js +0 -6
- langflow/frontend/assets/arrow-down-right-CPuxcr08.js +0 -6
- langflow/frontend/assets/arrow-down-to-dot-C69LacFY.js +0 -6
- langflow/frontend/assets/arrow-down-to-line-CSpWbosA.js +0 -6
- langflow/frontend/assets/arrow-down-up-BcxjZam7.js +0 -6
- langflow/frontend/assets/arrow-down-wide-narrow-D3BSb915.js +0 -6
- langflow/frontend/assets/arrow-down-z-a-D6XKU4U-.js +0 -6
- langflow/frontend/assets/arrow-left-dQ06o7IA.js +0 -6
- langflow/frontend/assets/arrow-left-from-line-CCFQM55O.js +0 -6
- langflow/frontend/assets/arrow-left-right-B7Ukf5wF.js +0 -6
- langflow/frontend/assets/arrow-left-to-line-CFilt37J.js +0 -6
- langflow/frontend/assets/arrow-right-WBWOrvaZ.js +0 -6
- langflow/frontend/assets/arrow-right-from-line-Bg898FB7.js +0 -6
- langflow/frontend/assets/arrow-right-left-Cff_QITA.js +0 -6
- langflow/frontend/assets/arrow-right-to-line-DcqaW91t.js +0 -6
- langflow/frontend/assets/arrow-up-0-1-Dc7LJPYu.js +0 -6
- langflow/frontend/assets/arrow-up-1-0-BiszJGRE.js +0 -6
- langflow/frontend/assets/arrow-up-DG_Otqiz.js +0 -6
- langflow/frontend/assets/arrow-up-a-z-DP6tRQRG.js +0 -6
- langflow/frontend/assets/arrow-up-down-DolNTKdS.js +0 -6
- langflow/frontend/assets/arrow-up-from-dot-Drl_9HMj.js +0 -6
- langflow/frontend/assets/arrow-up-from-line-BrAPikcJ.js +0 -6
- langflow/frontend/assets/arrow-up-left-BZRzxQzy.js +0 -6
- langflow/frontend/assets/arrow-up-narrow-wide-CkVf9bNB.js +0 -6
- langflow/frontend/assets/arrow-up-right-B-BSr1Ws.js +0 -6
- langflow/frontend/assets/arrow-up-to-line-D6smTEWb.js +0 -6
- langflow/frontend/assets/arrow-up-wide-narrow-D3Dtq4mr.js +0 -6
- langflow/frontend/assets/arrow-up-z-a-JFNLMZlz.js +0 -6
- langflow/frontend/assets/arrows-up-from-line-B3LglwuY.js +0 -6
- langflow/frontend/assets/asterisk-sevDYo6o.js +0 -6
- langflow/frontend/assets/at-sign-GgDMd0Qi.js +0 -6
- langflow/frontend/assets/atom-CEtdvvGt.js +0 -6
- langflow/frontend/assets/audio-lines-D_miCqSc.js +0 -6
- langflow/frontend/assets/audio-waveform-BjuqZ7Jn.js +0 -6
- langflow/frontend/assets/award-DUrNffCa.js +0 -6
- langflow/frontend/assets/axe-D7V3R7d5.js +0 -6
- langflow/frontend/assets/axis-3d-eTTKwZlH.js +0 -6
- langflow/frontend/assets/baby-DRM3Lrnw.js +0 -6
- langflow/frontend/assets/backpack-KJicz1GR.js +0 -6
- langflow/frontend/assets/badge-B04CV2If.js +0 -6
- langflow/frontend/assets/badge-alert-CWDtQON7.js +0 -6
- langflow/frontend/assets/badge-cent-CFJhhI4B.js +0 -6
- langflow/frontend/assets/badge-check-BHUu7qv9.js +0 -6
- langflow/frontend/assets/badge-dollar-sign-lBC5KbUG.js +0 -6
- langflow/frontend/assets/badge-euro-5tgZxT7W.js +0 -6
- langflow/frontend/assets/badge-help-B_EoyAYN.js +0 -6
- langflow/frontend/assets/badge-indian-rupee-DE1D2o4o.js +0 -6
- langflow/frontend/assets/badge-info-CWIT59a4.js +0 -6
- langflow/frontend/assets/badge-japanese-yen-Scx7KEaI.js +0 -6
- langflow/frontend/assets/badge-minus-BcDPaheO.js +0 -6
- langflow/frontend/assets/badge-percent-CGGUFyO7.js +0 -6
- langflow/frontend/assets/badge-plus-CqxweG81.js +0 -6
- langflow/frontend/assets/badge-pound-sterling-5dExV2Ao.js +0 -6
- langflow/frontend/assets/badge-russian-ruble-BvUOH5Hp.js +0 -6
- langflow/frontend/assets/badge-swiss-franc-CMFn1IiB.js +0 -6
- langflow/frontend/assets/badge-x-mcPiqmVQ.js +0 -6
- langflow/frontend/assets/baggage-claim-BsVAdNXY.js +0 -6
- langflow/frontend/assets/ban-Dt_l00UL.js +0 -6
- langflow/frontend/assets/banana-DHpAUj_8.js +0 -6
- langflow/frontend/assets/bandage-CelKh6dq.js +0 -6
- langflow/frontend/assets/banknote-D0jPJCpJ.js +0 -6
- langflow/frontend/assets/banknote-arrow-down-Cs48fyIr.js +0 -6
- langflow/frontend/assets/banknote-arrow-up-BzDx0B1W.js +0 -6
- langflow/frontend/assets/banknote-x-DjVFGOIV.js +0 -6
- langflow/frontend/assets/barcode-D6iou9vT.js +0 -6
- langflow/frontend/assets/baseline-CKaJz7Oi.js +0 -6
- langflow/frontend/assets/bath--y_1FlCk.js +0 -6
- langflow/frontend/assets/battery-CneZ6QoF.js +0 -6
- langflow/frontend/assets/battery-charging-DNJEqXsD.js +0 -6
- langflow/frontend/assets/battery-full-DQSLo0Jt.js +0 -6
- langflow/frontend/assets/battery-low-PmiZgiTy.js +0 -6
- langflow/frontend/assets/battery-medium-yyTqXWk5.js +0 -6
- langflow/frontend/assets/battery-plus-_0AGfo5z.js +0 -6
- langflow/frontend/assets/battery-warning-CUjuiWjD.js +0 -6
- langflow/frontend/assets/beaker-D61PIkBZ.js +0 -6
- langflow/frontend/assets/bean-BK7oI0zG.js +0 -6
- langflow/frontend/assets/bean-off-CvR7yfVA.js +0 -6
- langflow/frontend/assets/bed-BVVXzPew.js +0 -6
- langflow/frontend/assets/bed-double-BZFjLTrO.js +0 -6
- langflow/frontend/assets/bed-single-C2V5A3B3.js +0 -6
- langflow/frontend/assets/beef-BgZjy9fG.js +0 -6
- langflow/frontend/assets/beer-IVi5Xzv3.js +0 -6
- langflow/frontend/assets/beer-off-DSnsKDMt.js +0 -6
- langflow/frontend/assets/bell-dot-BrHcQMbP.js +0 -6
- langflow/frontend/assets/bell-electric-DJqDFOL3.js +0 -6
- langflow/frontend/assets/bell-lEreP7tR.js +0 -6
- langflow/frontend/assets/bell-minus-QYIBJi4f.js +0 -6
- langflow/frontend/assets/bell-off-BKed9yfd.js +0 -6
- langflow/frontend/assets/bell-plus-0dv9TTmG.js +0 -6
- langflow/frontend/assets/bell-ring-DNObKcuJ.js +0 -6
- langflow/frontend/assets/between-horizontal-end-Zv7kNZb0.js +0 -6
- langflow/frontend/assets/between-horizontal-start-DvlaWccq.js +0 -6
- langflow/frontend/assets/between-vertical-end-3CPT19eY.js +0 -6
- langflow/frontend/assets/between-vertical-start-BX3SDYB7.js +0 -6
- langflow/frontend/assets/biceps-flexed-BVJynZxJ.js +0 -6
- langflow/frontend/assets/bike-CUtRPWU_.js +0 -6
- langflow/frontend/assets/binary-BquvG9dk.js +0 -6
- langflow/frontend/assets/binoculars-BlocDK2N.js +0 -6
- langflow/frontend/assets/biohazard-DWytM12v.js +0 -6
- langflow/frontend/assets/bird-DNWq1I0H.js +0 -6
- langflow/frontend/assets/bitcoin-CVDwYKa6.js +0 -6
- langflow/frontend/assets/blend-BbKg0NUx.js +0 -6
- langflow/frontend/assets/blinds-Ckwq8Uva.js +0 -6
- langflow/frontend/assets/blocks-CYvsIeks.js +0 -6
- langflow/frontend/assets/bluetooth-BSoEcnra.js +0 -6
- langflow/frontend/assets/bluetooth-connected-CmjVk1AC.js +0 -6
- langflow/frontend/assets/bluetooth-off-CwtdjnVK.js +0 -6
- langflow/frontend/assets/bluetooth-searching-B4suRAtZ.js +0 -6
- langflow/frontend/assets/bold-3b-m9bcR.js +0 -6
- langflow/frontend/assets/bolt-DseVhxF9.js +0 -6
- langflow/frontend/assets/bomb-DCNXfxZT.js +0 -6
- langflow/frontend/assets/bone-CV1F6zJn.js +0 -6
- langflow/frontend/assets/book-Dbpa-Uja.js +0 -6
- langflow/frontend/assets/book-a-D3rJnD0B.js +0 -6
- langflow/frontend/assets/book-audio-iLfnN4kU.js +0 -6
- langflow/frontend/assets/book-check-COJQ2YZW.js +0 -6
- langflow/frontend/assets/book-copy-cMcoTR1n.js +0 -6
- langflow/frontend/assets/book-dashed-MbJNs-GH.js +0 -6
- langflow/frontend/assets/book-down-ByJv0nL3.js +0 -6
- langflow/frontend/assets/book-headphones-BxzTRFn2.js +0 -6
- langflow/frontend/assets/book-heart-BVqK7mch.js +0 -6
- langflow/frontend/assets/book-image-CiaDapH3.js +0 -6
- langflow/frontend/assets/book-key-p6_sj_yG.js +0 -6
- langflow/frontend/assets/book-lock-BjPqHEtm.js +0 -6
- langflow/frontend/assets/book-marked-CAQjzueS.js +0 -6
- langflow/frontend/assets/book-minus-DOH9QvBv.js +0 -6
- langflow/frontend/assets/book-open-CGNIbHU5.js +0 -6
- langflow/frontend/assets/book-open-check-DjqtVpmN.js +0 -6
- langflow/frontend/assets/book-open-text-DDVbYVrG.js +0 -6
- langflow/frontend/assets/book-plus-Da7NQxFB.js +0 -6
- langflow/frontend/assets/book-text--zDqhxv1.js +0 -6
- langflow/frontend/assets/book-type-BJdg9Dv3.js +0 -6
- langflow/frontend/assets/book-up-2-B-VfBNjB.js +0 -6
- langflow/frontend/assets/book-up-D8OW_6CJ.js +0 -6
- langflow/frontend/assets/book-user-DLPYmG82.js +0 -6
- langflow/frontend/assets/book-x-CCFp35D2.js +0 -6
- langflow/frontend/assets/bookmark-GayDp0Km.js +0 -6
- langflow/frontend/assets/bookmark-check-qfKxf_Z5.js +0 -6
- langflow/frontend/assets/bookmark-minus-DWxJ7Uhc.js +0 -6
- langflow/frontend/assets/bookmark-plus-Dn2wr_Vg.js +0 -6
- langflow/frontend/assets/bookmark-x-DNgOunxy.js +0 -6
- langflow/frontend/assets/boom-box-CI_jDZQZ.js +0 -6
- langflow/frontend/assets/bot-eSVt6O4U.js +0 -6
- langflow/frontend/assets/bot-message-square-CHa9u5rX.js +0 -6
- langflow/frontend/assets/bot-off-ClWedJIK.js +0 -6
- langflow/frontend/assets/bow-arrow-SyP9Xf_a.js +0 -6
- langflow/frontend/assets/box-Bcpi3mTE.js +0 -6
- langflow/frontend/assets/boxes-B-NM4ZKS.js +0 -6
- langflow/frontend/assets/braces-BZEXL4yO.js +0 -6
- langflow/frontend/assets/brackets-BeRhNvjJ.js +0 -6
- langflow/frontend/assets/brain-ToU322mx.js +0 -6
- langflow/frontend/assets/brain-circuit-BzQpON5C.js +0 -6
- langflow/frontend/assets/brain-cog-DWnVOQlI.js +0 -6
- langflow/frontend/assets/brick-wall-DBt5Pfjd.js +0 -6
- langflow/frontend/assets/brick-wall-fire-CEUCF0DO.js +0 -6
- langflow/frontend/assets/briefcase-ArmzhwWE.js +0 -6
- langflow/frontend/assets/briefcase-business-D8gzg7vI.js +0 -6
- langflow/frontend/assets/briefcase-conveyor-belt-DgFnRtz0.js +0 -6
- langflow/frontend/assets/briefcase-medical--LAkZWpv.js +0 -6
- langflow/frontend/assets/bring-to-front-BhDeBA39.js +0 -6
- langflow/frontend/assets/brush-wYLsr8Z5.js +0 -6
- langflow/frontend/assets/bubbles-BhhYsOC8.js +0 -6
- langflow/frontend/assets/bug-off-DGukWOJC.js +0 -6
- langflow/frontend/assets/bug-play-vpJzzMxP.js +0 -6
- langflow/frontend/assets/bug-sEPkFdM5.js +0 -6
- langflow/frontend/assets/building-2-CxtFQSVr.js +0 -6
- langflow/frontend/assets/building-tSbGypyK.js +0 -6
- langflow/frontend/assets/bus-CBGFh_Wa.js +0 -6
- langflow/frontend/assets/bus-front-Cc7wLuGB.js +0 -6
- langflow/frontend/assets/cable-GWMeNbG0.js +0 -6
- langflow/frontend/assets/cable-car-D8Fr-RTi.js +0 -6
- langflow/frontend/assets/cake-DXEAzGY6.js +0 -6
- langflow/frontend/assets/cake-slice-Dpd_J2iJ.js +0 -6
- langflow/frontend/assets/calculator-BqhLwtkt.js +0 -6
- langflow/frontend/assets/calendar-1-qyzx_ULy.js +0 -6
- langflow/frontend/assets/calendar-CJ9Sn6MB.js +0 -6
- langflow/frontend/assets/calendar-arrow-down-DavEH0OJ.js +0 -6
- langflow/frontend/assets/calendar-arrow-up-CBA0JH15.js +0 -6
- langflow/frontend/assets/calendar-check-2-Cn_UrmzU.js +0 -6
- langflow/frontend/assets/calendar-check-RmS0twh1.js +0 -6
- langflow/frontend/assets/calendar-clock-D6A-187P.js +0 -6
- langflow/frontend/assets/calendar-cog-DI_B_as-.js +0 -6
- langflow/frontend/assets/calendar-days-4u7HGS4T.js +0 -6
- langflow/frontend/assets/calendar-fold-DSdeBROE.js +0 -6
- langflow/frontend/assets/calendar-heart-CVkqtUJC.js +0 -6
- langflow/frontend/assets/calendar-minus-2-BHy6uySS.js +0 -6
- langflow/frontend/assets/calendar-minus-B6T7Ea3Y.js +0 -6
- langflow/frontend/assets/calendar-off-HCiaBW0i.js +0 -6
- langflow/frontend/assets/calendar-plus-2-DNhMnVIi.js +0 -6
- langflow/frontend/assets/calendar-plus-ConfP0hr.js +0 -6
- langflow/frontend/assets/calendar-range-CIBsJZoE.js +0 -6
- langflow/frontend/assets/calendar-search-C0HrZV_1.js +0 -6
- langflow/frontend/assets/calendar-sync-hdj75m4L.js +0 -6
- langflow/frontend/assets/calendar-x-2-D1UOpi0W.js +0 -6
- langflow/frontend/assets/calendar-x-CIpboE2N.js +0 -6
- langflow/frontend/assets/camera-BPS1DieH.js +0 -6
- langflow/frontend/assets/camera-off-DIBjn2H3.js +0 -6
- langflow/frontend/assets/candy-DEpluBs6.js +0 -6
- langflow/frontend/assets/candy-cane-CkjpFwxh.js +0 -6
- langflow/frontend/assets/candy-off-B6hum46I.js +0 -6
- langflow/frontend/assets/cannabis-CtVONHEV.js +0 -6
- langflow/frontend/assets/captions-DANKSwfC.js +0 -6
- langflow/frontend/assets/captions-off-DeoLvfo9.js +0 -6
- langflow/frontend/assets/car-9HLei4Hv.js +0 -6
- langflow/frontend/assets/car-front-J6Noie-j.js +0 -6
- langflow/frontend/assets/car-taxi-front-RA2hKhiR.js +0 -6
- langflow/frontend/assets/caravan-CkjBjdtg.js +0 -6
- langflow/frontend/assets/carrot-ulrd_6LN.js +0 -6
- langflow/frontend/assets/case-lower-Br0J7a4d.js +0 -6
- langflow/frontend/assets/case-sensitive-C8shX4E7.js +0 -6
- langflow/frontend/assets/case-upper-CafHl48-.js +0 -6
- langflow/frontend/assets/cassette-tape-BK8iVOWF.js +0 -6
- langflow/frontend/assets/cast-Bh325kjl.js +0 -6
- langflow/frontend/assets/castle-CmoR-s34.js +0 -6
- langflow/frontend/assets/cat-DPpAOdfV.js +0 -6
- langflow/frontend/assets/cctv-BL_zGX-s.js +0 -6
- langflow/frontend/assets/chart-area-C995Oxw6.js +0 -6
- langflow/frontend/assets/chart-bar-DQMfOU3_.js +0 -6
- langflow/frontend/assets/chart-bar-big-CFl6XgUV.js +0 -6
- langflow/frontend/assets/chart-bar-decreasing-NxIyFK_2.js +0 -6
- langflow/frontend/assets/chart-bar-increasing-RZUxx8mo.js +0 -6
- langflow/frontend/assets/chart-bar-stacked-iETEe4fL.js +0 -6
- langflow/frontend/assets/chart-candlestick-5l7ThDln.js +0 -6
- langflow/frontend/assets/chart-column--iDrRodw.js +0 -6
- langflow/frontend/assets/chart-column-big-CU_-RivP.js +0 -6
- langflow/frontend/assets/chart-column-decreasing-DPi_v84E.js +0 -6
- langflow/frontend/assets/chart-column-increasing-BP5gUkNW.js +0 -6
- langflow/frontend/assets/chart-column-stacked-DKitm9Ti.js +0 -6
- langflow/frontend/assets/chart-gantt-Cley4rkj.js +0 -6
- langflow/frontend/assets/chart-line-tZWw8u2J.js +0 -6
- langflow/frontend/assets/chart-network-C2UDaMfO.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-C6TFmrQ5.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-decreasing-VKhllkqJ.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-increasing-B5v_BWEJ.js +0 -6
- langflow/frontend/assets/chart-no-axes-combined-j-mhlpWV.js +0 -6
- langflow/frontend/assets/chart-no-axes-gantt-CEB5mb_u.js +0 -6
- langflow/frontend/assets/chart-pie-n6Q0JPNW.js +0 -6
- langflow/frontend/assets/chart-scatter-DyPYUY56.js +0 -6
- langflow/frontend/assets/chart-spline-XKh58KNN.js +0 -6
- langflow/frontend/assets/check-check-BNN6_0Rj.js +0 -6
- langflow/frontend/assets/chef-hat-D4Co1ZWw.js +0 -6
- langflow/frontend/assets/cherry-Cjx7gkiP.js +0 -6
- langflow/frontend/assets/chevron-first-B3ylKLbi.js +0 -6
- langflow/frontend/assets/chevron-last-CiAN9zi-.js +0 -6
- langflow/frontend/assets/chevron-left-RheViS6J.js +0 -6
- langflow/frontend/assets/chevron-right-CXgGJffD.js +0 -6
- langflow/frontend/assets/chevrons-down-CdpR5KE1.js +0 -6
- langflow/frontend/assets/chevrons-down-up-CXJk1S3G.js +0 -6
- langflow/frontend/assets/chevrons-left-BUKDVdX5.js +0 -6
- langflow/frontend/assets/chevrons-left-right-DUDu6_fC.js +0 -6
- langflow/frontend/assets/chevrons-left-right-ellipsis-BRzu4LVI.js +0 -6
- langflow/frontend/assets/chevrons-right-CfwBOT7g.js +0 -6
- langflow/frontend/assets/chevrons-right-left-BKSopM-I.js +0 -6
- langflow/frontend/assets/chevrons-up-qt_DNVzo.js +0 -6
- langflow/frontend/assets/chrome-L2I8b0lG.js +0 -6
- langflow/frontend/assets/church-CYjkjBDT.js +0 -6
- langflow/frontend/assets/cigarette-Br5Jo_9m.js +0 -6
- langflow/frontend/assets/cigarette-off-B_T_RXW9.js +0 -6
- langflow/frontend/assets/circle-alert-DBHQcwdU.js +0 -6
- langflow/frontend/assets/circle-arrow-down-Clp-eZ_M.js +0 -6
- langflow/frontend/assets/circle-arrow-left-B4pKnhTM.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-left-DZPNH7R0.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-right-Bgpg74k1.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-left-BCr--TqD.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-right-D_e_XSe_.js +0 -6
- langflow/frontend/assets/circle-arrow-right-gDS4F2j0.js +0 -6
- langflow/frontend/assets/circle-arrow-up-D2dsOQ1V.js +0 -6
- langflow/frontend/assets/circle-check-D4R2ePtI.js +0 -6
- langflow/frontend/assets/circle-check-big-DPW3GukQ.js +0 -6
- langflow/frontend/assets/circle-chevron-down-BAjqeojN.js +0 -6
- langflow/frontend/assets/circle-chevron-left-BKKBAjLY.js +0 -6
- langflow/frontend/assets/circle-chevron-right-zx9M3hgY.js +0 -6
- langflow/frontend/assets/circle-chevron-up-DgW85RH9.js +0 -6
- langflow/frontend/assets/circle-dashed-BPi4XXtX.js +0 -6
- langflow/frontend/assets/circle-divide-CUTOrvoi.js +0 -6
- langflow/frontend/assets/circle-dollar-sign-Dx0Ok9AW.js +0 -6
- langflow/frontend/assets/circle-dot-BRifmIFm.js +0 -6
- langflow/frontend/assets/circle-dot-dashed-tFv9ialF.js +0 -6
- langflow/frontend/assets/circle-ellipsis-CXr9Q1_w.js +0 -6
- langflow/frontend/assets/circle-equal-CqXnZaYI.js +0 -6
- langflow/frontend/assets/circle-fading-arrow-up-DJ4q-J-u.js +0 -6
- langflow/frontend/assets/circle-fading-plus-CXb1gwJP.js +0 -6
- langflow/frontend/assets/circle-gauge-BykIpOw7.js +0 -6
- langflow/frontend/assets/circle-help-C5j5avQw.js +0 -6
- langflow/frontend/assets/circle-minus-Cvti7R36.js +0 -6
- langflow/frontend/assets/circle-off-D72mS0CU.js +0 -6
- langflow/frontend/assets/circle-parking-C5QTGouB.js +0 -6
- langflow/frontend/assets/circle-parking-off-DDnlUAva.js +0 -6
- langflow/frontend/assets/circle-pause-Cxy5TZFL.js +0 -6
- langflow/frontend/assets/circle-percent-Bl4mJ5-3.js +0 -6
- langflow/frontend/assets/circle-play-D_kHv4yw.js +0 -6
- langflow/frontend/assets/circle-plus-DfDc9bpc.js +0 -6
- langflow/frontend/assets/circle-power-CZXirOP-.js +0 -6
- langflow/frontend/assets/circle-slash-2-B5KbC7c4.js +0 -6
- langflow/frontend/assets/circle-slash-BkbbQ-s5.js +0 -6
- langflow/frontend/assets/circle-small-BIQk-8XN.js +0 -6
- langflow/frontend/assets/circle-stop-rs1ivDwh.js +0 -6
- langflow/frontend/assets/circle-user-BkDNFXEn.js +0 -6
- langflow/frontend/assets/circle-user-round-BmpCPcb2.js +0 -6
- langflow/frontend/assets/circuit-board-BSnA2Mxj.js +0 -6
- langflow/frontend/assets/citrus-BvBmHu1u.js +0 -6
- langflow/frontend/assets/clapperboard-CBuB68Fv.js +0 -6
- langflow/frontend/assets/clipboard-CN7kKJ-W.js +0 -6
- langflow/frontend/assets/clipboard-check-CKUFxVfD.js +0 -6
- langflow/frontend/assets/clipboard-copy-Doeuc8kJ.js +0 -6
- langflow/frontend/assets/clipboard-list-BhEJa9ly.js +0 -6
- langflow/frontend/assets/clipboard-minus-CLvEQm-W.js +0 -6
- langflow/frontend/assets/clipboard-paste-CyjU5x_c.js +0 -6
- langflow/frontend/assets/clipboard-pen-CoQd_4ri.js +0 -6
- langflow/frontend/assets/clipboard-pen-line-CwtDCC8c.js +0 -6
- langflow/frontend/assets/clipboard-plus-lvo3b6Oa.js +0 -6
- langflow/frontend/assets/clipboard-type-DlYvzPAQ.js +0 -6
- langflow/frontend/assets/clipboard-x-k0IkREXF.js +0 -6
- langflow/frontend/assets/clock-1-CinDfcOX.js +0 -6
- langflow/frontend/assets/clock-10-DVs3JYkZ.js +0 -6
- langflow/frontend/assets/clock-11-BbZVIuWr.js +0 -6
- langflow/frontend/assets/clock-12-D-e6SqkT.js +0 -6
- langflow/frontend/assets/clock-2-CeL_3C3H.js +0 -6
- langflow/frontend/assets/clock-3-CqTpHzLg.js +0 -6
- langflow/frontend/assets/clock-4-VADvb-9S.js +0 -6
- langflow/frontend/assets/clock-5-Dg17OyXW.js +0 -6
- langflow/frontend/assets/clock-6-DWERqLSb.js +0 -6
- langflow/frontend/assets/clock-7-xUF63Kv8.js +0 -6
- langflow/frontend/assets/clock-8-C7FsZSds.js +0 -6
- langflow/frontend/assets/clock-9-BwgUJ5D6.js +0 -6
- langflow/frontend/assets/clock-Ds7cVIMY.js +0 -6
- langflow/frontend/assets/clock-alert-DpjLLgJ4.js +0 -6
- langflow/frontend/assets/clock-arrow-down-JgLY4dKZ.js +0 -6
- langflow/frontend/assets/clock-arrow-up-Bdk3oQko.js +0 -6
- langflow/frontend/assets/clock-fading-CAW_lm7C.js +0 -6
- langflow/frontend/assets/cloud-COLHF0R0.js +0 -6
- langflow/frontend/assets/cloud-alert-BCxJcePw.js +0 -6
- langflow/frontend/assets/cloud-cog-BOmJ2kHd.js +0 -6
- langflow/frontend/assets/cloud-download-fJpElRQy.js +0 -6
- langflow/frontend/assets/cloud-drizzle-BU3N-FNI.js +0 -6
- langflow/frontend/assets/cloud-fog-IrRpfTSL.js +0 -6
- langflow/frontend/assets/cloud-hail-D0-eeFxy.js +0 -6
- langflow/frontend/assets/cloud-lightning-DEbEITa7.js +0 -6
- langflow/frontend/assets/cloud-moon-Det1nP8s.js +0 -6
- langflow/frontend/assets/cloud-moon-rain-BRp6Gktk.js +0 -6
- langflow/frontend/assets/cloud-off-Dwxm5Chr.js +0 -6
- langflow/frontend/assets/cloud-rain-DTmNA2S-.js +0 -6
- langflow/frontend/assets/cloud-rain-wind-C9nt0mNU.js +0 -6
- langflow/frontend/assets/cloud-snow-C2fJZAfK.js +0 -6
- langflow/frontend/assets/cloud-sun-DMcS2wwe.js +0 -6
- langflow/frontend/assets/cloud-sun-rain-CuxdqZXf.js +0 -6
- langflow/frontend/assets/cloud-upload-C8zRGatr.js +0 -6
- langflow/frontend/assets/cloudy-zj9N0UAm.js +0 -6
- langflow/frontend/assets/clover-vNTa8bPv.js +0 -6
- langflow/frontend/assets/club-B1DebGu_.js +0 -6
- langflow/frontend/assets/code-xml-B77K_T-U.js +0 -6
- langflow/frontend/assets/codepen-pYuswNsI.js +0 -6
- langflow/frontend/assets/codesandbox-he0WP9c8.js +0 -6
- langflow/frontend/assets/coffee-_8X9Hmmc.js +0 -6
- langflow/frontend/assets/cog-GmKO9BDX.js +0 -6
- langflow/frontend/assets/coins-CmGo4o5A.js +0 -6
- langflow/frontend/assets/columns-2-CpwX7P3Q.js +0 -6
- langflow/frontend/assets/columns-3-7w0vKLGq.js +0 -6
- langflow/frontend/assets/columns-3-cog-C7esZg6z.js +0 -6
- langflow/frontend/assets/columns-4-TcGhh_CN.js +0 -6
- langflow/frontend/assets/combine-DLeIcxn6.js +0 -6
- langflow/frontend/assets/command-IqVufxp8.js +0 -6
- langflow/frontend/assets/compass-tqd8C9Qw.js +0 -6
- langflow/frontend/assets/component-BZt8Y-N8.js +0 -6
- langflow/frontend/assets/computer-CU_wH9Xc.js +0 -6
- langflow/frontend/assets/concierge-bell-CnptsCh4.js +0 -6
- langflow/frontend/assets/cone-C5FM4OlP.js +0 -6
- langflow/frontend/assets/construction-BH3g1alp.js +0 -6
- langflow/frontend/assets/contact-B1nhHtZ2.js +0 -6
- langflow/frontend/assets/contact-round-DXu8A8Zt.js +0 -6
- langflow/frontend/assets/container-CWz-b31Z.js +0 -6
- langflow/frontend/assets/contrast-BghDfdG9.js +0 -6
- langflow/frontend/assets/cookie-BJ3x64mD.js +0 -6
- langflow/frontend/assets/cooking-pot-CnsQVH0H.js +0 -6
- langflow/frontend/assets/copy-Bnv-E_ya.js +0 -6
- langflow/frontend/assets/copy-check-D_OuVBTf.js +0 -6
- langflow/frontend/assets/copy-minus-DiKtnzCV.js +0 -6
- langflow/frontend/assets/copy-plus-B7ma9OPS.js +0 -6
- langflow/frontend/assets/copy-slash-Bh59Ixl3.js +0 -6
- langflow/frontend/assets/copy-x-D0TowW2w.js +0 -6
- langflow/frontend/assets/copyleft-DwKthBuT.js +0 -6
- langflow/frontend/assets/copyright-Dn8XexoW.js +0 -6
- langflow/frontend/assets/corner-down-left-CzISeIKO.js +0 -6
- langflow/frontend/assets/corner-down-right-CVg0G7Zq.js +0 -6
- langflow/frontend/assets/corner-left-down-DCwWVggN.js +0 -6
- langflow/frontend/assets/corner-left-up-bGS3BgJA.js +0 -6
- langflow/frontend/assets/corner-right-down-Dqb4vBfA.js +0 -6
- langflow/frontend/assets/corner-right-up-DQcxPBkH.js +0 -6
- langflow/frontend/assets/corner-up-left-B5pLhzlm.js +0 -6
- langflow/frontend/assets/corner-up-right-CLN-Zb3p.js +0 -6
- langflow/frontend/assets/cpu-DMdDhhag.js +0 -6
- langflow/frontend/assets/creative-commons-DxSIDsi8.js +0 -6
- langflow/frontend/assets/credit-card-C0RboWFF.js +0 -6
- langflow/frontend/assets/croissant-CYWgwKDX.js +0 -6
- langflow/frontend/assets/crop-B_CSDNJK.js +0 -6
- langflow/frontend/assets/cross-z5YJ1HcN.js +0 -6
- langflow/frontend/assets/crosshair-FfzvO5yr.js +0 -6
- langflow/frontend/assets/crown-J5rlh_K5.js +0 -6
- langflow/frontend/assets/cuboid-DRv1dr3_.js +0 -6
- langflow/frontend/assets/cup-soda-m1DBv4nF.js +0 -6
- langflow/frontend/assets/currency-UeO0ErYb.js +0 -6
- langflow/frontend/assets/cylinder-olSWvA15.js +0 -6
- langflow/frontend/assets/dam-D5nWNN0m.js +0 -6
- langflow/frontend/assets/database-DJaC9ErT.js +0 -6
- langflow/frontend/assets/database-backup-BP7Ma08L.js +0 -6
- langflow/frontend/assets/database-zap-DtMyqsqb.js +0 -6
- langflow/frontend/assets/decimals-arrow-left-RclWcXTj.js +0 -6
- langflow/frontend/assets/decimals-arrow-right-DFhPveyN.js +0 -6
- langflow/frontend/assets/delete-BOomWok4.js +0 -6
- langflow/frontend/assets/dessert-CQbU57JM.js +0 -6
- langflow/frontend/assets/diameter-Cbta8bFs.js +0 -6
- langflow/frontend/assets/diamond-fWtfwEYx.js +0 -6
- langflow/frontend/assets/diamond-minus-b8-Fh7yx.js +0 -6
- langflow/frontend/assets/diamond-percent-IxOyPwfT.js +0 -6
- langflow/frontend/assets/diamond-plus-8WEyzjaT.js +0 -6
- langflow/frontend/assets/dice-1-Cf8dp9Q1.js +0 -6
- langflow/frontend/assets/dice-2-BbEjysmM.js +0 -6
- langflow/frontend/assets/dice-3-6NjBaVtN.js +0 -6
- langflow/frontend/assets/dice-4-CKq5LPne.js +0 -6
- langflow/frontend/assets/dice-5-DW74Prob.js +0 -6
- langflow/frontend/assets/dice-6-lumlllS_.js +0 -6
- langflow/frontend/assets/dices-B4C1Ad5d.js +0 -6
- langflow/frontend/assets/diff-BenjDhyP.js +0 -6
- langflow/frontend/assets/disc-2-B0peU-h3.js +0 -6
- langflow/frontend/assets/disc-3-DH7ApUrP.js +0 -6
- langflow/frontend/assets/disc-DjbzbUmM.js +0 -6
- langflow/frontend/assets/disc-album-Dh6wVX48.js +0 -6
- langflow/frontend/assets/divide-Di88Eupj.js +0 -6
- langflow/frontend/assets/dna-DwpRkjtd.js +0 -6
- langflow/frontend/assets/dna-off-CM-Y2kHH.js +0 -6
- langflow/frontend/assets/dock-DA7I6Imn.js +0 -6
- langflow/frontend/assets/dog-BozbvxDT.js +0 -6
- langflow/frontend/assets/dollar-sign-CJD_z_LB.js +0 -6
- langflow/frontend/assets/donut-D-buVWQX.js +0 -6
- langflow/frontend/assets/door-closed-D2mUeVod.js +0 -6
- langflow/frontend/assets/door-open-CiTXcXeR.js +0 -6
- langflow/frontend/assets/dot-CL0wcBdx.js +0 -6
- langflow/frontend/assets/download-DJAxHLCY.js +0 -6
- langflow/frontend/assets/drafting-compass-Cc8e7dbj.js +0 -6
- langflow/frontend/assets/drama-CZ_jVDex.js +0 -6
- langflow/frontend/assets/dribbble-D_nmj25K.js +0 -6
- langflow/frontend/assets/drill-Dj174wvi.js +0 -6
- langflow/frontend/assets/droplet-j6b8rfzj.js +0 -6
- langflow/frontend/assets/droplet-off-LX6_ToL8.js +0 -6
- langflow/frontend/assets/droplets-C57Y8lOL.js +0 -6
- langflow/frontend/assets/drum-QNuN_J_Y.js +0 -6
- langflow/frontend/assets/drumstick-nK04791Q.js +0 -6
- langflow/frontend/assets/dumbbell-DvVT1xEb.js +0 -6
- langflow/frontend/assets/ear-CMBKcKhb.js +0 -6
- langflow/frontend/assets/ear-off-C4UjfmDG.js +0 -6
- langflow/frontend/assets/earth-DCjK9NkZ.js +0 -6
- langflow/frontend/assets/earth-lock-Cv1PQMus.js +0 -6
- langflow/frontend/assets/eclipse-DZuJPv8F.js +0 -6
- langflow/frontend/assets/egg-CsuoI-ED.js +0 -6
- langflow/frontend/assets/egg-fried--spBHwvj.js +0 -6
- langflow/frontend/assets/egg-off-D5djUixs.js +0 -6
- langflow/frontend/assets/ellipsis-D787OK1E.js +0 -6
- langflow/frontend/assets/ellipsis-vertical-bJtCGC-X.js +0 -6
- langflow/frontend/assets/equal-CjC85R-P.js +0 -6
- langflow/frontend/assets/equal-approximately-DRGnjO4E.js +0 -6
- langflow/frontend/assets/equal-not-DrZUOA_Y.js +0 -6
- langflow/frontend/assets/eraser-CHxgEsj6.js +0 -6
- langflow/frontend/assets/ethernet-port-CHU3CU9z.js +0 -6
- langflow/frontend/assets/euro-BnKyqv4x.js +0 -6
- langflow/frontend/assets/expand-RPUfPFXL.js +0 -6
- langflow/frontend/assets/eye-DQEZk31D.js +0 -6
- langflow/frontend/assets/eye-closed-DvSUrwe2.js +0 -6
- langflow/frontend/assets/eye-off-Bjxpl-YA.js +0 -6
- langflow/frontend/assets/facebook-C0qUaD1y.js +0 -6
- langflow/frontend/assets/factory-WIkBqxDe.js +0 -6
- langflow/frontend/assets/fan-C8Hg5MS1.js +0 -6
- langflow/frontend/assets/fast-forward-CwjCF7r4.js +0 -6
- langflow/frontend/assets/feather-BhHKpyAP.js +0 -6
- langflow/frontend/assets/fence-C8Eryww9.js +0 -6
- langflow/frontend/assets/ferris-wheel-C9J8fDvl.js +0 -6
- langflow/frontend/assets/figma-CPGEhgNV.js +0 -6
- langflow/frontend/assets/file-B1TMCQq7.js +0 -6
- langflow/frontend/assets/file-archive-Gkz2d9vl.js +0 -6
- langflow/frontend/assets/file-audio-2-CDpUBOu3.js +0 -6
- langflow/frontend/assets/file-audio-DDf2SM9o.js +0 -6
- langflow/frontend/assets/file-axis-3d-CUWQIi2f.js +0 -6
- langflow/frontend/assets/file-badge-2-DP9f4i34.js +0 -6
- langflow/frontend/assets/file-badge-hddZRjOV.js +0 -6
- langflow/frontend/assets/file-box-CYR3w5Ed.js +0 -6
- langflow/frontend/assets/file-chart-column-BQQXJFO9.js +0 -6
- langflow/frontend/assets/file-chart-column-increasing-CmluxvJp.js +0 -6
- langflow/frontend/assets/file-chart-line-CaAvlWuz.js +0 -6
- langflow/frontend/assets/file-chart-pie-Bjf2AMwU.js +0 -6
- langflow/frontend/assets/file-check-2-v-WSLQsU.js +0 -6
- langflow/frontend/assets/file-check-BhUK7hHz.js +0 -6
- langflow/frontend/assets/file-clock-BDJVblWy.js +0 -6
- langflow/frontend/assets/file-code-2-C3sqhDwo.js +0 -6
- langflow/frontend/assets/file-code-hBjOuLH3.js +0 -6
- langflow/frontend/assets/file-cog-C3N74DiE.js +0 -6
- langflow/frontend/assets/file-diff-DUDa5NaP.js +0 -6
- langflow/frontend/assets/file-digit-6CR13LCb.js +0 -6
- langflow/frontend/assets/file-down-DhuCA4zb.js +0 -6
- langflow/frontend/assets/file-heart-CAJkZyNd.js +0 -6
- langflow/frontend/assets/file-image-BmxdfHOS.js +0 -6
- langflow/frontend/assets/file-input-CXEhlr3W.js +0 -6
- langflow/frontend/assets/file-json-2-BA7lSgdU.js +0 -6
- langflow/frontend/assets/file-json-z0ZtPu_t.js +0 -6
- langflow/frontend/assets/file-key-2-CDnvlou1.js +0 -6
- langflow/frontend/assets/file-key-B5IVJp3F.js +0 -6
- langflow/frontend/assets/file-lock-2-xQdX_umY.js +0 -6
- langflow/frontend/assets/file-lock-CmnMJWi4.js +0 -6
- langflow/frontend/assets/file-minus-2-B2AFAt6o.js +0 -6
- langflow/frontend/assets/file-minus-a2OEyZVz.js +0 -6
- langflow/frontend/assets/file-music-sqlgRIZe.js +0 -6
- langflow/frontend/assets/file-output-CvOxWf72.js +0 -6
- langflow/frontend/assets/file-pen-Rj8XZuJg.js +0 -6
- langflow/frontend/assets/file-pen-line-DhwIe0uX.js +0 -6
- langflow/frontend/assets/file-plus-2-BSuWP0p0.js +0 -6
- langflow/frontend/assets/file-plus-DSswv4zF.js +0 -6
- langflow/frontend/assets/file-question-RmjggO-g.js +0 -6
- langflow/frontend/assets/file-scan-DRnbhlsX.js +0 -6
- langflow/frontend/assets/file-search-2-DHcGFRnU.js +0 -6
- langflow/frontend/assets/file-search-_iYU1mOT.js +0 -6
- langflow/frontend/assets/file-sliders-DBg9UN8w.js +0 -6
- langflow/frontend/assets/file-spreadsheet-CEcQq8ed.js +0 -6
- langflow/frontend/assets/file-stack-hZmSIdel.js +0 -6
- langflow/frontend/assets/file-symlink-DxmAsy0z.js +0 -6
- langflow/frontend/assets/file-terminal-BPPnpDjB.js +0 -6
- langflow/frontend/assets/file-text-BaQvl1vW.js +0 -6
- langflow/frontend/assets/file-type-2-e9nAaxvW.js +0 -6
- langflow/frontend/assets/file-type-BTDeDhNx.js +0 -6
- langflow/frontend/assets/file-up-IG_95vVB.js +0 -6
- langflow/frontend/assets/file-user-mogo1jxG.js +0 -6
- langflow/frontend/assets/file-video-2-CfuG2Lpu.js +0 -6
- langflow/frontend/assets/file-video-DdP7ZynD.js +0 -6
- langflow/frontend/assets/file-volume-2-CqutiwF-.js +0 -6
- langflow/frontend/assets/file-volume-Ch2DQVu_.js +0 -6
- langflow/frontend/assets/file-warning-DxMGAAgD.js +0 -6
- langflow/frontend/assets/file-x-2-CSzo8PWS.js +0 -6
- langflow/frontend/assets/file-x-D-5MzBdA.js +0 -6
- langflow/frontend/assets/files-D5oKDyo2.js +0 -6
- langflow/frontend/assets/film-KAOKMhnG.js +0 -6
- langflow/frontend/assets/fingerprint-CWMJjMfR.js +0 -6
- langflow/frontend/assets/fire-extinguisher-rH9nJWdL.js +0 -6
- langflow/frontend/assets/fish-SJPZntLZ.js +0 -6
- langflow/frontend/assets/fish-off-m6yiMH-J.js +0 -6
- langflow/frontend/assets/fish-symbol-DlN3KLxn.js +0 -6
- langflow/frontend/assets/flag-CgQiQ4L2.js +0 -6
- langflow/frontend/assets/flag-off-ssjQYhVD.js +0 -6
- langflow/frontend/assets/flag-triangle-left-BnDvhvS1.js +0 -6
- langflow/frontend/assets/flag-triangle-right-DrRjVCQO.js +0 -6
- langflow/frontend/assets/flame-kindling-D3bCCM0k.js +0 -6
- langflow/frontend/assets/flame-vxuWzg79.js +0 -6
- langflow/frontend/assets/flashlight-DXY4p7BC.js +0 -6
- langflow/frontend/assets/flashlight-off-CFIat-ui.js +0 -6
- langflow/frontend/assets/flask-conical-off-C2pMYXNO.js +0 -6
- langflow/frontend/assets/flask-conical-qeuVeaUV.js +0 -6
- langflow/frontend/assets/flask-round-mg0G5Zis.js +0 -6
- langflow/frontend/assets/flip-horizontal-2-DeuwfpO3.js +0 -6
- langflow/frontend/assets/flip-horizontal-BkHPjX7j.js +0 -6
- langflow/frontend/assets/flip-vertical-2-B6tcGvJJ.js +0 -6
- langflow/frontend/assets/flip-vertical-BrJ5sFRj.js +0 -6
- langflow/frontend/assets/flower-2-DjdcFdRK.js +0 -6
- langflow/frontend/assets/flower-DIgt5_lo.js +0 -6
- langflow/frontend/assets/focus-IziXQi2j.js +0 -6
- langflow/frontend/assets/fold-horizontal-rRM0hxGv.js +0 -6
- langflow/frontend/assets/fold-vertical-DoB3xfdL.js +0 -6
- langflow/frontend/assets/folder-DJf-kIpw.js +0 -6
- langflow/frontend/assets/folder-archive-TVE-mQql.js +0 -6
- langflow/frontend/assets/folder-check-B7NLv5e4.js +0 -6
- langflow/frontend/assets/folder-clock-CBQw2o8u.js +0 -6
- langflow/frontend/assets/folder-closed-BTQjwIh1.js +0 -6
- langflow/frontend/assets/folder-code-BH5w6EKl.js +0 -6
- langflow/frontend/assets/folder-cog-B-f0XsQy.js +0 -6
- langflow/frontend/assets/folder-dot-dYHd_iIm.js +0 -6
- langflow/frontend/assets/folder-down-Cm1iBv0j.js +0 -6
- langflow/frontend/assets/folder-git-2-3IwS_2lb.js +0 -6
- langflow/frontend/assets/folder-git-BEFrv2ty.js +0 -6
- langflow/frontend/assets/folder-heart-DS4W7K4g.js +0 -6
- langflow/frontend/assets/folder-input-Dizp4rBH.js +0 -6
- langflow/frontend/assets/folder-kanban-BSLv0fcQ.js +0 -6
- langflow/frontend/assets/folder-key-DLdbI_De.js +0 -6
- langflow/frontend/assets/folder-lock--savdJeR.js +0 -6
- langflow/frontend/assets/folder-minus-D6Shx1-z.js +0 -6
- langflow/frontend/assets/folder-open-B3hcE9q9.js +0 -6
- langflow/frontend/assets/folder-open-dot-CP2YtSAe.js +0 -6
- langflow/frontend/assets/folder-output-BAzpBIdP.js +0 -6
- langflow/frontend/assets/folder-pen-CAU0htoW.js +0 -6
- langflow/frontend/assets/folder-plus-B0SchJ5k.js +0 -6
- langflow/frontend/assets/folder-root-C2IZ_ZkF.js +0 -6
- langflow/frontend/assets/folder-search-2-DkC3u0u9.js +0 -6
- langflow/frontend/assets/folder-search-DkBM6coH.js +0 -6
- langflow/frontend/assets/folder-symlink-D3BbBXV-.js +0 -6
- langflow/frontend/assets/folder-sync-wrpHF5bu.js +0 -6
- langflow/frontend/assets/folder-tree-C0DUAJcc.js +0 -6
- langflow/frontend/assets/folder-up-gvf1DRx2.js +0 -6
- langflow/frontend/assets/folder-x-szEaKpBc.js +0 -6
- langflow/frontend/assets/folders-DY55X7MD.js +0 -6
- langflow/frontend/assets/footprints-BQWIcDMd.js +0 -6
- langflow/frontend/assets/forklift-COLXhpER.js +0 -6
- langflow/frontend/assets/forward-CrUgayej.js +0 -6
- langflow/frontend/assets/frame-CY5W0jC5.js +0 -6
- langflow/frontend/assets/framer-CEhtw71R.js +0 -6
- langflow/frontend/assets/frown-suOQpZpQ.js +0 -6
- langflow/frontend/assets/fuel-PDUpHGTU.js +0 -6
- langflow/frontend/assets/fullscreen-DzxwumhI.js +0 -6
- langflow/frontend/assets/funnel-4uXu1rUt.js +0 -6
- langflow/frontend/assets/funnel-plus-CVA4DInU.js +0 -6
- langflow/frontend/assets/funnel-x-Lqh6HQHA.js +0 -6
- langflow/frontend/assets/gallery-horizontal-C4PA9Azu.js +0 -6
- langflow/frontend/assets/gallery-horizontal-end-DgBr-iBr.js +0 -6
- langflow/frontend/assets/gallery-thumbnails-DdKFI83F.js +0 -6
- langflow/frontend/assets/gallery-vertical-BShvR0Mt.js +0 -6
- langflow/frontend/assets/gallery-vertical-end-lBPtCroK.js +0 -6
- langflow/frontend/assets/gamepad-2-BdhKTHRL.js +0 -6
- langflow/frontend/assets/gamepad-B_O767Pi.js +0 -6
- langflow/frontend/assets/gauge-S5gY8CL_.js +0 -6
- langflow/frontend/assets/gavel-BELVX2U7.js +0 -6
- langflow/frontend/assets/gem-NlWHzVP8.js +0 -6
- langflow/frontend/assets/ghost-BEpFJGdL.js +0 -6
- langflow/frontend/assets/gift-U9yHXros.js +0 -6
- langflow/frontend/assets/git-branch-BYbm4mzH.js +0 -6
- langflow/frontend/assets/git-branch-plus-DtQxQOd8.js +0 -6
- langflow/frontend/assets/git-commit-horizontal-DT9dkrfG.js +0 -6
- langflow/frontend/assets/git-commit-vertical-BC_NBNvg.js +0 -6
- langflow/frontend/assets/git-compare-CN_WgIps.js +0 -6
- langflow/frontend/assets/git-compare-arrows-D-F_Uxqj.js +0 -6
- langflow/frontend/assets/git-fork-Dt_eK6XL.js +0 -6
- langflow/frontend/assets/git-graph-BT67x77M.js +0 -6
- langflow/frontend/assets/git-merge-CNhvMLtl.js +0 -6
- langflow/frontend/assets/git-pull-request-CTikO1Lj.js +0 -6
- langflow/frontend/assets/git-pull-request-arrow-BZDXzFw-.js +0 -6
- langflow/frontend/assets/git-pull-request-closed-Duuw-tno.js +0 -6
- langflow/frontend/assets/git-pull-request-create-C2W7fedt.js +0 -6
- langflow/frontend/assets/git-pull-request-create-arrow-DwuXUPPE.js +0 -6
- langflow/frontend/assets/git-pull-request-draft-JUPTJBqc.js +0 -6
- langflow/frontend/assets/github-BSeb8I9e.js +0 -6
- langflow/frontend/assets/gitlab-ConXcJWJ.js +0 -6
- langflow/frontend/assets/glass-water-Bvf18iuh.js +0 -6
- langflow/frontend/assets/glasses-BeiKKX5r.js +0 -6
- langflow/frontend/assets/globe-B42EdvUr.js +0 -6
- langflow/frontend/assets/globe-lock-dkmTX-sh.js +0 -6
- langflow/frontend/assets/goal-BeXveO-3.js +0 -6
- langflow/frontend/assets/grab-BLs0jQon.js +0 -6
- langflow/frontend/assets/graduation-cap-CUn_DxQ_.js +0 -6
- langflow/frontend/assets/grape-C2KaH8gU.js +0 -6
- langflow/frontend/assets/grid-2x2-C3nVPaII.js +0 -6
- langflow/frontend/assets/grid-2x2-check-Cvr9knvg.js +0 -6
- langflow/frontend/assets/grid-2x2-plus-Ckdcc96Y.js +0 -6
- langflow/frontend/assets/grid-2x2-x-BMQSsaSE.js +0 -6
- langflow/frontend/assets/grid-3x3-BjYKt-_O.js +0 -6
- langflow/frontend/assets/grip-CZ085X_W.js +0 -6
- langflow/frontend/assets/grip-horizontal-Y3NmvBFT.js +0 -6
- langflow/frontend/assets/grip-vertical-B59p2u11.js +0 -6
- langflow/frontend/assets/group-DdPMzqVI.js +0 -6
- langflow/frontend/assets/guitar-DQ7x86FX.js +0 -6
- langflow/frontend/assets/ham-6f3kXdqf.js +0 -6
- langflow/frontend/assets/hammer-B2_p1_fC.js +0 -6
- langflow/frontend/assets/hand-BbCqitxB.js +0 -6
- langflow/frontend/assets/hand-coins-Dgz1etza.js +0 -6
- langflow/frontend/assets/hand-heart-BID2sKBu.js +0 -6
- langflow/frontend/assets/hand-helping-BOkMrsVe.js +0 -6
- langflow/frontend/assets/hand-metal-D-GVXTrf.js +0 -6
- langflow/frontend/assets/hand-platter-Dg1bz__b.js +0 -6
- langflow/frontend/assets/handshake-DlQL_wxY.js +0 -6
- langflow/frontend/assets/hard-drive-BPgtBe00.js +0 -6
- langflow/frontend/assets/hard-drive-download-CNHAeFg-.js +0 -6
- langflow/frontend/assets/hard-drive-upload-i3wjY1_o.js +0 -6
- langflow/frontend/assets/hard-hat-DNb0v-3h.js +0 -6
- langflow/frontend/assets/hash-DsD4g6oN.js +0 -6
- langflow/frontend/assets/haze-BP2TP8MM.js +0 -6
- langflow/frontend/assets/hdmi-port-DTmhhB2G.js +0 -6
- langflow/frontend/assets/heading-1-BVcDSi5E.js +0 -6
- langflow/frontend/assets/heading-2-CeiJZqhQ.js +0 -6
- langflow/frontend/assets/heading-3-m2OM67gz.js +0 -6
- langflow/frontend/assets/heading-4-DNknO4Bp.js +0 -6
- langflow/frontend/assets/heading-5-D3heTetS.js +0 -6
- langflow/frontend/assets/heading-6-CM-UO3Bs.js +0 -6
- langflow/frontend/assets/heading-JJt6R8xE.js +0 -6
- langflow/frontend/assets/headphone-off-CXowa7_x.js +0 -6
- langflow/frontend/assets/headphones-BUXqccDP.js +0 -6
- langflow/frontend/assets/headset-bMzSarpm.js +0 -6
- langflow/frontend/assets/heart-Bmt9fYs6.js +0 -6
- langflow/frontend/assets/heart-crack-CAYemD8u.js +0 -6
- langflow/frontend/assets/heart-handshake-Dhcf5-3Y.js +0 -6
- langflow/frontend/assets/heart-minus-DcqARxpE.js +0 -6
- langflow/frontend/assets/heart-off-Clcu0Mpd.js +0 -6
- langflow/frontend/assets/heart-plus-DB-Wl3oW.js +0 -6
- langflow/frontend/assets/heart-pulse-d06qZHKp.js +0 -6
- langflow/frontend/assets/heater-542sNqst.js +0 -6
- langflow/frontend/assets/hexagon-CUGRShr9.js +0 -6
- langflow/frontend/assets/highlighter-Jl4viTI6.js +0 -6
- langflow/frontend/assets/history-B5GVxYJY.js +0 -6
- langflow/frontend/assets/hop-BKkLEzjI.js +0 -6
- langflow/frontend/assets/hop-off-CDTiL-ei.js +0 -6
- langflow/frontend/assets/hospital-B9rcr2ws.js +0 -6
- langflow/frontend/assets/hotel-fzU9ScaP.js +0 -6
- langflow/frontend/assets/hourglass-Df3oo_TW.js +0 -6
- langflow/frontend/assets/house-CEARqOdS.js +0 -6
- langflow/frontend/assets/house-plug-DNgJV6-Y.js +0 -6
- langflow/frontend/assets/house-plus-CPUoPJjK.js +0 -6
- langflow/frontend/assets/house-wifi-BRPUuAmJ.js +0 -6
- langflow/frontend/assets/ice-cream-bowl-BlUbZ4XN.js +0 -6
- langflow/frontend/assets/ice-cream-cone-Du4-djqA.js +0 -6
- langflow/frontend/assets/id-card-Bpg0Cav-.js +0 -6
- langflow/frontend/assets/image-D9Ukq8qF.js +0 -6
- langflow/frontend/assets/image-down-BvUIk1t6.js +0 -6
- langflow/frontend/assets/image-minus-DV4mn4f8.js +0 -6
- langflow/frontend/assets/image-off-Xte6-uZu.js +0 -6
- langflow/frontend/assets/image-play-BOQx_NsS.js +0 -6
- langflow/frontend/assets/image-plus-R8NojlfI.js +0 -6
- langflow/frontend/assets/image-up-13p2JyRG.js +0 -6
- langflow/frontend/assets/image-upscale-BCUXrYGW.js +0 -6
- langflow/frontend/assets/images-kRLBeAue.js +0 -6
- langflow/frontend/assets/import-BGWDkYJx.js +0 -6
- langflow/frontend/assets/inbox-DYqtp0ox.js +0 -6
- langflow/frontend/assets/indent-decrease-Cj8lr_U7.js +0 -6
- langflow/frontend/assets/indent-increase-C5_175ZN.js +0 -6
- langflow/frontend/assets/index-13Zoxzau.js +0 -1
- langflow/frontend/assets/index-2YMfJOO9.js +0 -1
- langflow/frontend/assets/index-2eM8vO_1.js +0 -1
- langflow/frontend/assets/index-3QvNfsNU.js +0 -1
- langflow/frontend/assets/index-8u6aKtXg.js +0 -1
- langflow/frontend/assets/index-8yC068Iv.js +0 -1
- langflow/frontend/assets/index-B0awTqqA.js +0 -1
- langflow/frontend/assets/index-B0cKUHO8.js +0 -1
- langflow/frontend/assets/index-B3RFMxT4.js +0 -1
- langflow/frontend/assets/index-B6-sqx2X.js +0 -1
- langflow/frontend/assets/index-B7KOcBzN.js +0 -1
- langflow/frontend/assets/index-B8ibz5hD.js +0 -1
- langflow/frontend/assets/index-B9A6jOQb.js +0 -1
- langflow/frontend/assets/index-BAGp2bya.js +0 -1
- langflow/frontend/assets/index-BAl_AzRL.js +0 -1
- langflow/frontend/assets/index-BBgD30VE.js +0 -1
- langflow/frontend/assets/index-BDlfTCYJ.js +0 -1
- langflow/frontend/assets/index-BEl-OOS0.js +0 -1
- langflow/frontend/assets/index-BFuvzLil.js +0 -1
- langflow/frontend/assets/index-BGRq8GJv.js +0 -1
- langflow/frontend/assets/index-BHnC351X.js +0 -1
- langflow/frontend/assets/index-BIEgG0ul.js +0 -1
- langflow/frontend/assets/index-BLtkDnaL.css +0 -1
- langflow/frontend/assets/index-BNenYBjs.js +0 -1
- langflow/frontend/assets/index-BNq7uHms.js +0 -1
- langflow/frontend/assets/index-BOjy0CSm.js +0 -1
- langflow/frontend/assets/index-BRCmp6Oh.js +0 -1
- langflow/frontend/assets/index-BSqEs9t3.js +0 -1
- langflow/frontend/assets/index-BUaHG4bV.js +0 -1
- langflow/frontend/assets/index-BVUScOdp.js +0 -1
- langflow/frontend/assets/index-BWSLLhBG.js +0 -1
- langflow/frontend/assets/index-BWzys5Ay.js +0 -205
- langflow/frontend/assets/index-BYQbwYlG.js +0 -1
- langflow/frontend/assets/index-BZ9uH2EJ.js +0 -1
- langflow/frontend/assets/index-B_7P7sEd.js +0 -1
- langflow/frontend/assets/index-B_JHg8Sk.js +0 -13
- langflow/frontend/assets/index-B_JSt491.js +0 -1
- langflow/frontend/assets/index-Ba1dNWA_.js +0 -1
- langflow/frontend/assets/index-Bb1wQDOw.js +0 -127
- langflow/frontend/assets/index-BbPlJYBb.js +0 -1
- langflow/frontend/assets/index-BblsE5ia.js +0 -1
- langflow/frontend/assets/index-BfocII0q.js +0 -1
- langflow/frontend/assets/index-Bgj0vE6c.js +0 -1
- langflow/frontend/assets/index-Bi_jQlqa.js +0 -1
- langflow/frontend/assets/index-Bj4iOyxK.js +0 -1
- langflow/frontend/assets/index-BjG5uWvH.js +0 -1
- langflow/frontend/assets/index-BkXxgTei.js +0 -1
- langflow/frontend/assets/index-BolOOsCp.js +0 -1
- langflow/frontend/assets/index-Bp-ms0PK.js +0 -1
- langflow/frontend/assets/index-Bqv37pOh.js +0 -1
- langflow/frontend/assets/index-BslwGWYB.js +0 -1
- langflow/frontend/assets/index-BssfzxG_.js +0 -1
- langflow/frontend/assets/index-BtPFrYYI.js +0 -1
- langflow/frontend/assets/index-C-RQmcwa.js +0 -1
- langflow/frontend/assets/index-C-ftkZ_l.js +0 -1
- langflow/frontend/assets/index-C13FitId.js +0 -1
- langflow/frontend/assets/index-C1s7CWMo.js +0 -108
- langflow/frontend/assets/index-C23jtRJn.js +0 -1
- langflow/frontend/assets/index-C355Z4EH.js +0 -1
- langflow/frontend/assets/index-C3Oh3vba.js +0 -1
- langflow/frontend/assets/index-C3bbZCwL.js +0 -1
- langflow/frontend/assets/index-C7F922c1.js +0 -1
- langflow/frontend/assets/index-C7QSsrvO.js +0 -1
- langflow/frontend/assets/index-C95OWZZc.js +0 -1
- langflow/frontend/assets/index-C9gVXdCS.js +0 -1
- langflow/frontend/assets/index-CAEEzMHo.js +0 -495
- langflow/frontend/assets/index-CBAfSWes.js +0 -1
- langflow/frontend/assets/index-CCX51czF.js +0 -1
- langflow/frontend/assets/index-CDBtGipg.js +0 -1
- langflow/frontend/assets/index-CEqbV9aW.js +0 -1
- langflow/frontend/assets/index-CG45SIG8.js +0 -1
- langflow/frontend/assets/index-CJZsr-fn.js +0 -1
- langflow/frontend/assets/index-CLqP4ThV.js +0 -1
- langflow/frontend/assets/index-CML0f0w4.js +0 -281
- langflow/frontend/assets/index-CNm6A6BM.js +0 -185
- langflow/frontend/assets/index-CO_jLIgI.js +0 -1
- langflow/frontend/assets/index-CRtzdAeu.js +0 -1
- langflow/frontend/assets/index-CS3Ngw83.js +0 -1
- langflow/frontend/assets/index-CTdC4lzt.js +0 -1
- langflow/frontend/assets/index-CTvkPi7K.js +0 -1
- langflow/frontend/assets/index-CU71A7YK.js +0 -1
- langflow/frontend/assets/index-CUD8QZLu.js +0 -1
- langflow/frontend/assets/index-CUzVk5As.js +0 -1
- langflow/frontend/assets/index-CVIYh5_p.js +0 -1
- langflow/frontend/assets/index-CWaWp_Le.js +0 -1
- langflow/frontend/assets/index-CX1TURzi.js +0 -20
- langflow/frontend/assets/index-CXGNUmlu.js +0 -1
- langflow/frontend/assets/index-CYoBMsTw.js +0 -1
- langflow/frontend/assets/index-CYzZkuJS.js +0 -1
- langflow/frontend/assets/index-CZ9UunKI.js +0 -1
- langflow/frontend/assets/index-C_7L2FMd.js +0 -399
- langflow/frontend/assets/index-C_lmeAGO.js +0 -1
- langflow/frontend/assets/index-Ca_qLqOH.js +0 -1
- langflow/frontend/assets/index-Cauz08_3.js +0 -1
- langflow/frontend/assets/index-CbZNwtS6.js +0 -1
- langflow/frontend/assets/index-Cd8oScAT.js +0 -1
- langflow/frontend/assets/index-Ce0gZhoH.js +0 -1
- langflow/frontend/assets/index-CfGiJBXr.js +0 -1
- langflow/frontend/assets/index-CfmrQMPR.js +0 -1
- langflow/frontend/assets/index-CgB19o0o.js +0 -1
- langflow/frontend/assets/index-CgF60jG5.js +0 -767
- langflow/frontend/assets/index-Ch4Ib2yi.js +0 -1
- langflow/frontend/assets/index-Chja5J5w.js +0 -1
- langflow/frontend/assets/index-Ci89-uPP.js +0 -1
- langflow/frontend/assets/index-Cij7mB1m.js +0 -1
- langflow/frontend/assets/index-Cip3CnxH.js +0 -1
- langflow/frontend/assets/index-ClFTrXZ8.js +0 -1
- langflow/frontend/assets/index-CnnkmUAF.js +0 -1
- langflow/frontend/assets/index-CoOe4v4a.js +0 -1
- langflow/frontend/assets/index-Cp5zqFeU.js +0 -1
- langflow/frontend/assets/index-Cp7QGwHe.js +0 -1
- langflow/frontend/assets/index-CsKpt96d.js +0 -21
- langflow/frontend/assets/index-Ct42xKTH.js +0 -1
- langflow/frontend/assets/index-CtAdB3RY.js +0 -1
- langflow/frontend/assets/index-CtJkBI21.js +0 -1
- langflow/frontend/assets/index-CwJ4yyjb.js +0 -1
- langflow/frontend/assets/index-CwVenOEP.js +0 -1
- langflow/frontend/assets/index-CxN5wJRu.js +0 -1
- langflow/frontend/assets/index-CyEcCmD1.js +0 -1
- langflow/frontend/assets/index-CyMdXWsx.js +0 -1
- langflow/frontend/assets/index-CyaqTQFh.js +0 -1
- langflow/frontend/assets/index-CzDoTQpR.js +0 -1
- langflow/frontend/assets/index-CzsMJ6Tk.js +0 -1
- langflow/frontend/assets/index-D0BV6pYe.js +0 -1
- langflow/frontend/assets/index-D0WUX5nc.js +0 -1
- langflow/frontend/assets/index-D1mWbUSj.js +0 -1
- langflow/frontend/assets/index-D2E6EWX6.js +0 -1
- langflow/frontend/assets/index-D5VxUdyH.js +0 -1
- langflow/frontend/assets/index-D6wnim8h.js +0 -1
- langflow/frontend/assets/index-DAZlpEsn.js +0 -1
- langflow/frontend/assets/index-DER2phOk.js +0 -1
- langflow/frontend/assets/index-DHwszsy_.js +0 -1
- langflow/frontend/assets/index-DIlf-UcK.js +0 -1
- langflow/frontend/assets/index-DJpmWZ8W.js +0 -1
- langflow/frontend/assets/index-DNlwCArs.js +0 -1
- langflow/frontend/assets/index-DS0zJxcJ.js +0 -1
- langflow/frontend/assets/index-DS8M_eNa.js +0 -1
- langflow/frontend/assets/index-DS_YcLKm.js +0 -1
- langflow/frontend/assets/index-DUxZ9sGb.js +0 -1
- langflow/frontend/assets/index-DW8b83iR.js +0 -1
- langflow/frontend/assets/index-DWOHEjbo.js +0 -1
- langflow/frontend/assets/index-DXdfsLsS.js +0 -1
- langflow/frontend/assets/index-DYgxrIRb.js +0 -1
- langflow/frontend/assets/index-DYo11wRx.js +0 -1
- langflow/frontend/assets/index-DcdYpXR7.js +0 -1
- langflow/frontend/assets/index-DeDDojCx.js +0 -1
- langflow/frontend/assets/index-DlxH0T7N.js +0 -1
- langflow/frontend/assets/index-DopCCHg1.js +0 -1
- langflow/frontend/assets/index-DsCyojdY.js +0 -1
- langflow/frontend/assets/index-Du1dTies.js +0 -1
- langflow/frontend/assets/index-DvQFd0fy.js +0 -1
- langflow/frontend/assets/index-DyqDlc4f.js +0 -1
- langflow/frontend/assets/index-FA5vt2_f.js +0 -1
- langflow/frontend/assets/index-FcQSIPAt.js +0 -1
- langflow/frontend/assets/index-G1YA_n78.js +0 -1
- langflow/frontend/assets/index-HfWWGGaG.js +0 -1
- langflow/frontend/assets/index-LsncXH1g.js +0 -1
- langflow/frontend/assets/index-MJURXou6.js +0 -1
- langflow/frontend/assets/index-MqcmMzAn.js +0 -1
- langflow/frontend/assets/index-OQM9QNyk.js +0 -1
- langflow/frontend/assets/index-QDCZLeI9.js +0 -1
- langflow/frontend/assets/index-S1qYDQ8G.js +0 -1
- langflow/frontend/assets/index-S7Rj3EPW.js +0 -1
- langflow/frontend/assets/index-TgWuwOJE.js +0 -1
- langflow/frontend/assets/index-YEyD4xA9.js +0 -1
- langflow/frontend/assets/index-YxUE82M7.js +0 -1
- langflow/frontend/assets/index-ZzxioQaX.js +0 -1
- langflow/frontend/assets/index-g2fAdVrS.js +0 -1
- langflow/frontend/assets/index-g_3RyeJ6.js +0 -1
- langflow/frontend/assets/index-iDSR0kJw.js +0 -1
- langflow/frontend/assets/index-kUdJ68dS.js +0 -7
- langflow/frontend/assets/index-lfWR3tut.js +0 -1
- langflow/frontend/assets/index-m14nOorE.js +0 -1
- langflow/frontend/assets/index-mK71J8fG.js +0 -1
- langflow/frontend/assets/index-mbMtLzSx.js +0 -7322
- langflow/frontend/assets/index-n0JQvrKh.js +0 -381
- langflow/frontend/assets/index-o0QSKLWN.js +0 -1
- langflow/frontend/assets/index-oTA3vzYD.js +0 -1
- langflow/frontend/assets/index-ogSlMmAD.js +0 -1
- langflow/frontend/assets/index-q6t1dndo.js +0 -1
- langflow/frontend/assets/index-xi5FCBF4.js +0 -2
- langflow/frontend/assets/index-yGkmYyDe.js +0 -1
- langflow/frontend/assets/index-yMoZ4cpa.js +0 -1
- langflow/frontend/assets/index-zGPB8voY.js +0 -1
- langflow/frontend/assets/indian-rupee-zJgOcLlR.js +0 -6
- langflow/frontend/assets/infinity-CvHj69bZ.js +0 -6
- langflow/frontend/assets/info-B-7KceRp.js +0 -6
- langflow/frontend/assets/inspection-panel-B-qqDQOn.js +0 -6
- langflow/frontend/assets/instagram-BXNi4Q3J.js +0 -6
- langflow/frontend/assets/italic-BF8slRrC.js +0 -6
- langflow/frontend/assets/iteration-ccw-BZ5c9OlZ.js +0 -6
- langflow/frontend/assets/iteration-cw-BS4XZXeO.js +0 -6
- langflow/frontend/assets/japanese-yen-DkRlagmh.js +0 -6
- langflow/frontend/assets/joystick-Co46lfJr.js +0 -6
- langflow/frontend/assets/kanban-DsXGVhmQ.js +0 -6
- langflow/frontend/assets/key-BZJIF1Tn.js +0 -6
- langflow/frontend/assets/key-round-C0PdOpFy.js +0 -6
- langflow/frontend/assets/key-square-Dsqy49WD.js +0 -6
- langflow/frontend/assets/keyboard-CNdrfG4M.js +0 -6
- langflow/frontend/assets/keyboard-music-CLM7d_Oh.js +0 -6
- langflow/frontend/assets/keyboard-off-7mcbANH6.js +0 -6
- langflow/frontend/assets/lamp-CbtQDMmM.js +0 -6
- langflow/frontend/assets/lamp-ceiling-C9Ixf3cT.js +0 -6
- langflow/frontend/assets/lamp-desk-QJm7TEwE.js +0 -6
- langflow/frontend/assets/lamp-floor-A97jfL-w.js +0 -6
- langflow/frontend/assets/lamp-wall-down-9Bb-cEg7.js +0 -6
- langflow/frontend/assets/lamp-wall-up-mTabuHtc.js +0 -6
- langflow/frontend/assets/land-plot-Df890GI2.js +0 -6
- langflow/frontend/assets/landmark-Dn_hcjHd.js +0 -6
- langflow/frontend/assets/languages-DFZD0QaT.js +0 -6
- langflow/frontend/assets/laptop-BsQGVR1I.js +0 -6
- langflow/frontend/assets/laptop-minimal-Bfh4C2GF.js +0 -6
- langflow/frontend/assets/laptop-minimal-check-D88HdUd3.js +0 -6
- langflow/frontend/assets/lasso-CHCr-Q6-.js +0 -6
- langflow/frontend/assets/lasso-select-WhWIk2m8.js +0 -6
- langflow/frontend/assets/laugh-B6DjKjHK.js +0 -6
- langflow/frontend/assets/layers-2-tpnDdg6M.js +0 -6
- langflow/frontend/assets/layers-bvstOshc.js +0 -6
- langflow/frontend/assets/layout-dashboard-5gRuygC1.js +0 -6
- langflow/frontend/assets/layout-grid-NKDqqMJN.js +0 -6
- langflow/frontend/assets/layout-list-CxX_BCTH.js +0 -6
- langflow/frontend/assets/layout-panel-left-D-TpgqW9.js +0 -6
- langflow/frontend/assets/layout-panel-top-Ccb4Utts.js +0 -6
- langflow/frontend/assets/layout-template-DsVgfWw5.js +0 -6
- langflow/frontend/assets/lazyIconImports-jYcYgZUq.js +0 -2
- langflow/frontend/assets/leaf-D8kusSQj.js +0 -6
- langflow/frontend/assets/leafy-green-B4ktdJgT.js +0 -6
- langflow/frontend/assets/lectern-vEn0Wbe4.js +0 -6
- langflow/frontend/assets/letter-text-CQ9S23a3.js +0 -6
- langflow/frontend/assets/library-BQNCezsr.js +0 -6
- langflow/frontend/assets/library-big-Bj3MGz0g.js +0 -6
- langflow/frontend/assets/life-buoy-C6FYqe22.js +0 -6
- langflow/frontend/assets/ligature-CE7B61Pu.js +0 -6
- langflow/frontend/assets/lightbulb-CEw1rI_9.js +0 -6
- langflow/frontend/assets/lightbulb-off-D-riwFpV.js +0 -6
- langflow/frontend/assets/link-2-C5VJPZHp.js +0 -6
- langflow/frontend/assets/link-2-off-fJGa_97b.js +0 -6
- langflow/frontend/assets/link-DN4GBilj.js +0 -6
- langflow/frontend/assets/linkedin-M2Tn8aeM.js +0 -6
- langflow/frontend/assets/list-check-hokUTD0j.js +0 -6
- langflow/frontend/assets/list-checks-t2B2mzs1.js +0 -6
- langflow/frontend/assets/list-collapse-D4_BL4A8.js +0 -6
- langflow/frontend/assets/list-end-CGaajUXD.js +0 -6
- langflow/frontend/assets/list-f8QmLbF-.js +0 -6
- langflow/frontend/assets/list-filter-CayB_9LJ.js +0 -6
- langflow/frontend/assets/list-filter-plus-COuo04Bq.js +0 -6
- langflow/frontend/assets/list-minus-Cs4HCaHv.js +0 -6
- langflow/frontend/assets/list-music-CX9HFuvz.js +0 -6
- langflow/frontend/assets/list-ordered-DkSX7Rnm.js +0 -6
- langflow/frontend/assets/list-plus-CVerU0Mb.js +0 -6
- langflow/frontend/assets/list-restart-BxApb3y3.js +0 -6
- langflow/frontend/assets/list-start-DqNS40mb.js +0 -6
- langflow/frontend/assets/list-todo-CJK4_fyE.js +0 -6
- langflow/frontend/assets/list-tree-CX8sFdAG.js +0 -6
- langflow/frontend/assets/list-video-DfFCwmtY.js +0 -6
- langflow/frontend/assets/list-x-BptaFsAa.js +0 -6
- langflow/frontend/assets/loader-CRSFunYW.js +0 -6
- langflow/frontend/assets/loader-circle-0LkUtuiB.js +0 -6
- langflow/frontend/assets/loader-pinwheel-DLHH0rfD.js +0 -6
- langflow/frontend/assets/locate-DD5VbapP.js +0 -6
- langflow/frontend/assets/locate-fixed-B_SEz1p1.js +0 -6
- langflow/frontend/assets/locate-off-CWKW4dme.js +0 -6
- langflow/frontend/assets/location-edit-BpcKMwVP.js +0 -6
- langflow/frontend/assets/lock-D7vOuFMx.js +0 -6
- langflow/frontend/assets/lock-keyhole-CsTzGP7N.js +0 -6
- langflow/frontend/assets/lock-keyhole-open-eNTqtYO7.js +0 -6
- langflow/frontend/assets/lock-open-DaT1TwPu.js +0 -6
- langflow/frontend/assets/log-in-CaGW87bb.js +0 -6
- langflow/frontend/assets/log-out-Don196Ow.js +0 -6
- langflow/frontend/assets/logs-LFCx9RB_.js +0 -6
- langflow/frontend/assets/lollipop-COKRhh7t.js +0 -6
- langflow/frontend/assets/luggage-DyrDd6fd.js +0 -6
- langflow/frontend/assets/magnet-B0a-sDJx.js +0 -6
- langflow/frontend/assets/mail-XvAnaTY5.js +0 -6
- langflow/frontend/assets/mail-check-DcGd2a0s.js +0 -6
- langflow/frontend/assets/mail-minus-5bENyY3v.js +0 -6
- langflow/frontend/assets/mail-open-ug2t-Vv3.js +0 -6
- langflow/frontend/assets/mail-plus-CcB3ROKv.js +0 -6
- langflow/frontend/assets/mail-question-OKq-XTi1.js +0 -6
- langflow/frontend/assets/mail-search-IJou4MLI.js +0 -6
- langflow/frontend/assets/mail-warning-K9EnhQSg.js +0 -6
- langflow/frontend/assets/mail-x-FSWI9Fnh.js +0 -6
- langflow/frontend/assets/mailbox-BeLDP2Xk.js +0 -6
- langflow/frontend/assets/mails-znGn5KH4.js +0 -6
- langflow/frontend/assets/map-pin-CdTN4uMO.js +0 -6
- langflow/frontend/assets/map-pin-check-D--L7E5O.js +0 -6
- langflow/frontend/assets/map-pin-check-inside-xOyNBlKX.js +0 -6
- langflow/frontend/assets/map-pin-house-BsfQnX5U.js +0 -6
- langflow/frontend/assets/map-pin-minus-DbGNmAqz.js +0 -6
- langflow/frontend/assets/map-pin-minus-inside-C2bo7x40.js +0 -6
- langflow/frontend/assets/map-pin-off-Bg5tjKyo.js +0 -6
- langflow/frontend/assets/map-pin-plus-BMp-VnQU.js +0 -6
- langflow/frontend/assets/map-pin-plus-inside-VfL2v9_X.js +0 -6
- langflow/frontend/assets/map-pin-x-WzpN4WMZ.js +0 -6
- langflow/frontend/assets/map-pin-x-inside-lbeeobIE.js +0 -6
- langflow/frontend/assets/map-pinned-DegJgpJO.js +0 -6
- langflow/frontend/assets/map-plus-B81ZQJ-u.js +0 -6
- langflow/frontend/assets/map-t3zI6Ezo.js +0 -6
- langflow/frontend/assets/mars-Dp-PcrSW.js +0 -6
- langflow/frontend/assets/mars-stroke-DQxw9rVE.js +0 -6
- langflow/frontend/assets/martini-B4rQn1UE.js +0 -6
- langflow/frontend/assets/maximize-2-D1jufgFj.js +0 -6
- langflow/frontend/assets/maximize-CNXWWTwP.js +0 -6
- langflow/frontend/assets/medal-DfcqecF9.js +0 -6
- langflow/frontend/assets/megaphone-ClOQ6pv2.js +0 -6
- langflow/frontend/assets/megaphone-off-C288cqYu.js +0 -6
- langflow/frontend/assets/meh-BAJYzNJ3.js +0 -6
- langflow/frontend/assets/memory-stick-cY6X5E0y.js +0 -6
- langflow/frontend/assets/menu-CeKeZCCn.js +0 -6
- langflow/frontend/assets/merge--PPwvYbV.js +0 -6
- langflow/frontend/assets/message-circle-code-BmSmfrvp.js +0 -6
- langflow/frontend/assets/message-circle-dashed-CIJFvzOR.js +0 -6
- langflow/frontend/assets/message-circle-heart-M4l7Lq2g.js +0 -6
- langflow/frontend/assets/message-circle-iIdjiaM4.js +0 -6
- langflow/frontend/assets/message-circle-more-Dpg5LAF-.js +0 -6
- langflow/frontend/assets/message-circle-off-CHsgIDiw.js +0 -6
- langflow/frontend/assets/message-circle-plus-77D8kuTb.js +0 -6
- langflow/frontend/assets/message-circle-question-CXuvhmVI.js +0 -6
- langflow/frontend/assets/message-circle-reply-B6wk4uSS.js +0 -6
- langflow/frontend/assets/message-circle-warning-DAZlTuzX.js +0 -6
- langflow/frontend/assets/message-circle-x-DNWIiylq.js +0 -6
- langflow/frontend/assets/message-square-DZD7THfY.js +0 -6
- langflow/frontend/assets/message-square-code-B_lhrlz1.js +0 -6
- langflow/frontend/assets/message-square-dashed-C14pkxzA.js +0 -6
- langflow/frontend/assets/message-square-diff-BQ4Q4uOS.js +0 -6
- langflow/frontend/assets/message-square-dot-BBGGmSCH.js +0 -6
- langflow/frontend/assets/message-square-heart-C_GNBsKZ.js +0 -6
- langflow/frontend/assets/message-square-lock-DmFTamDZ.js +0 -6
- langflow/frontend/assets/message-square-more-CGM5cxQL.js +0 -6
- langflow/frontend/assets/message-square-off-Dw32KmRA.js +0 -6
- langflow/frontend/assets/message-square-plus-BSO9POxX.js +0 -6
- langflow/frontend/assets/message-square-quote-Drf4R-vX.js +0 -6
- langflow/frontend/assets/message-square-reply-Dm5bdHd-.js +0 -6
- langflow/frontend/assets/message-square-share-DgoItwHq.js +0 -6
- langflow/frontend/assets/message-square-text-CJnYTNkV.js +0 -6
- langflow/frontend/assets/message-square-warning-5DzAM4m5.js +0 -6
- langflow/frontend/assets/message-square-x-Ja82L-Lg.js +0 -6
- langflow/frontend/assets/messages-square-BulGT2lX.js +0 -6
- langflow/frontend/assets/mic-3vdGrfQZ.js +0 -6
- langflow/frontend/assets/mic-off-BEdTNPnB.js +0 -6
- langflow/frontend/assets/mic-vocal-CtfHfAwv.js +0 -6
- langflow/frontend/assets/microchip-CmlTNL96.js +0 -6
- langflow/frontend/assets/microscope-C5J4I9OP.js +0 -6
- langflow/frontend/assets/microwave-B3NU1aov.js +0 -6
- langflow/frontend/assets/milestone-DjAZ2oFU.js +0 -6
- langflow/frontend/assets/milk-ChDct91d.js +0 -6
- langflow/frontend/assets/milk-off-B22LvqkH.js +0 -6
- langflow/frontend/assets/minimize-2-ewvzYPNd.js +0 -6
- langflow/frontend/assets/minimize-C0Y0-58O.js +0 -6
- langflow/frontend/assets/monitor-DDOQRbHw.js +0 -6
- langflow/frontend/assets/monitor-check-CxUebj9S.js +0 -6
- langflow/frontend/assets/monitor-cog-YF13OORq.js +0 -6
- langflow/frontend/assets/monitor-dot-Cc82F286.js +0 -6
- langflow/frontend/assets/monitor-down-CtqEhtU5.js +0 -6
- langflow/frontend/assets/monitor-off-Bw7Ty3-I.js +0 -6
- langflow/frontend/assets/monitor-pause-Dg89MSxJ.js +0 -6
- langflow/frontend/assets/monitor-play-D506SCSi.js +0 -6
- langflow/frontend/assets/monitor-smartphone-DU54faq2.js +0 -6
- langflow/frontend/assets/monitor-speaker-EZfx0r9O.js +0 -6
- langflow/frontend/assets/monitor-stop-BRgMxgFF.js +0 -6
- langflow/frontend/assets/monitor-up-CDxhd4R5.js +0 -6
- langflow/frontend/assets/monitor-x-CdYRDl5w.js +0 -6
- langflow/frontend/assets/moon-hVZiHztG.js +0 -6
- langflow/frontend/assets/moon-star-CxGlaBYE.js +0 -6
- langflow/frontend/assets/mountain-DIHUnzV7.js +0 -6
- langflow/frontend/assets/mountain-snow-CV5KEfto.js +0 -6
- langflow/frontend/assets/mouse-D5IxaWj4.js +0 -6
- langflow/frontend/assets/mouse-off-BP-8VuEF.js +0 -6
- langflow/frontend/assets/mouse-pointer-2-DPNU0AlS.js +0 -6
- langflow/frontend/assets/mouse-pointer-DTV0Lt-u.js +0 -6
- langflow/frontend/assets/mouse-pointer-ban-8tzGIPhn.js +0 -6
- langflow/frontend/assets/mouse-pointer-click-Dfdzt1J4.js +0 -6
- langflow/frontend/assets/move-3d-DpyjEzLl.js +0 -6
- langflow/frontend/assets/move-CKOyzdP1.js +0 -6
- langflow/frontend/assets/move-diagonal-2-tiBVBFsk.js +0 -6
- langflow/frontend/assets/move-diagonal-dIJnF1uB.js +0 -6
- langflow/frontend/assets/move-down-bxp1hUKY.js +0 -6
- langflow/frontend/assets/move-down-left-9RfE88vO.js +0 -6
- langflow/frontend/assets/move-down-right-pNxyVuYx.js +0 -6
- langflow/frontend/assets/move-horizontal-BR3j8GvG.js +0 -6
- langflow/frontend/assets/move-left-B_JTbBvp.js +0 -6
- langflow/frontend/assets/move-right-Cnc0MMHM.js +0 -6
- langflow/frontend/assets/move-up-C5xXA1sr.js +0 -6
- langflow/frontend/assets/move-up-left-CCrMYqp2.js +0 -6
- langflow/frontend/assets/move-up-right-CV6MlpIA.js +0 -6
- langflow/frontend/assets/move-vertical-CVvn0VvO.js +0 -6
- langflow/frontend/assets/music-2-C8zticfA.js +0 -6
- langflow/frontend/assets/music-3-9GbaJYhH.js +0 -6
- langflow/frontend/assets/music-4-Ce_sMfg6.js +0 -6
- langflow/frontend/assets/music-BLkfznVn.js +0 -6
- langflow/frontend/assets/navigation-2-DCAE9iyE.js +0 -6
- langflow/frontend/assets/navigation-2-off-zyubRS6s.js +0 -6
- langflow/frontend/assets/navigation-Ccdse-fC.js +0 -6
- langflow/frontend/assets/navigation-off-BmhPvLwJ.js +0 -6
- langflow/frontend/assets/network-BzeEXHLI.js +0 -6
- langflow/frontend/assets/newspaper-DiBxbO8j.js +0 -6
- langflow/frontend/assets/nfc-BdvWoCYb.js +0 -6
- langflow/frontend/assets/non-binary-pY9-4hjY.js +0 -6
- langflow/frontend/assets/notebook-Dpqn-n-l.js +0 -6
- langflow/frontend/assets/notebook-pen-CWFzSs7K.js +0 -6
- langflow/frontend/assets/notebook-tabs-p4B0fwNZ.js +0 -6
- langflow/frontend/assets/notebook-text-DmWmNbDF.js +0 -6
- langflow/frontend/assets/notepad-text-B0sn1sgX.js +0 -6
- langflow/frontend/assets/notepad-text-dashed-DJ0HLb26.js +0 -6
- langflow/frontend/assets/nut-DlyZy_ec.js +0 -6
- langflow/frontend/assets/nut-off-CzKhPbb9.js +0 -6
- langflow/frontend/assets/octagon-DOllS3E2.js +0 -6
- langflow/frontend/assets/octagon-alert-md8Oao7u.js +0 -6
- langflow/frontend/assets/octagon-minus-Cc_gHYtC.js +0 -6
- langflow/frontend/assets/octagon-pause-C7MUZYuh.js +0 -6
- langflow/frontend/assets/octagon-x-BQYO8GMn.js +0 -6
- langflow/frontend/assets/omega-CU1MpvJU.js +0 -6
- langflow/frontend/assets/option-C5Rg07Sl.js +0 -6
- langflow/frontend/assets/orbit-B3ocM8-d.js +0 -6
- langflow/frontend/assets/origami-JzHXL6Dk.js +0 -6
- langflow/frontend/assets/package-2-DO44AWHc.js +0 -6
- langflow/frontend/assets/package-CwrFrAMu.js +0 -6
- langflow/frontend/assets/package-check-BRxPtA5p.js +0 -6
- langflow/frontend/assets/package-minus-YFaS6BaX.js +0 -6
- langflow/frontend/assets/package-open-FnJmHpJv.js +0 -6
- langflow/frontend/assets/package-plus-CAjmdTne.js +0 -6
- langflow/frontend/assets/package-search-CdBJetKl.js +0 -6
- langflow/frontend/assets/package-x-BLKjO2eq.js +0 -6
- langflow/frontend/assets/paint-bucket-DoOTrFVu.js +0 -6
- langflow/frontend/assets/paint-roller-Cb2MSctw.js +0 -6
- langflow/frontend/assets/paintbrush-dnz2OAMR.js +0 -6
- langflow/frontend/assets/paintbrush-vertical-C5UrMLvF.js +0 -6
- langflow/frontend/assets/palette-BxqFp5t2.js +0 -6
- langflow/frontend/assets/panel-bottom-close-ncnmJhg8.js +0 -6
- langflow/frontend/assets/panel-bottom-dashed-UdmaCgY7.js +0 -6
- langflow/frontend/assets/panel-bottom-eTZmuraY.js +0 -6
- langflow/frontend/assets/panel-bottom-open-Dbs_WqhR.js +0 -6
- langflow/frontend/assets/panel-left-close-DV4DR3ie.js +0 -6
- langflow/frontend/assets/panel-left-dashed-C1sCc2jK.js +0 -6
- langflow/frontend/assets/panel-left-open-BQnsccxM.js +0 -6
- langflow/frontend/assets/panel-right-BFuTI62x.js +0 -6
- langflow/frontend/assets/panel-right-close-bod1-jOq.js +0 -6
- langflow/frontend/assets/panel-right-dashed-MxJPl1lQ.js +0 -6
- langflow/frontend/assets/panel-right-open-CDgnWaIW.js +0 -6
- langflow/frontend/assets/panel-top-CenicwIv.js +0 -6
- langflow/frontend/assets/panel-top-close-Cq2nC7LP.js +0 -6
- langflow/frontend/assets/panel-top-dashed-CzMSCT2o.js +0 -6
- langflow/frontend/assets/panel-top-open-fg5kvR48.js +0 -6
- langflow/frontend/assets/panels-left-bottom-T5CveQA4.js +0 -6
- langflow/frontend/assets/panels-right-bottom-acfqz5Hm.js +0 -6
- langflow/frontend/assets/panels-top-left-BeWxDQBs.js +0 -6
- langflow/frontend/assets/paperclip-D2MRSHHN.js +0 -6
- langflow/frontend/assets/parentheses-CQmWAgPc.js +0 -6
- langflow/frontend/assets/parking-meter-ib6v0j9a.js +0 -6
- langflow/frontend/assets/party-popper-CBwSjWoy.js +0 -6
- langflow/frontend/assets/pause-4ik9vRpz.js +0 -6
- langflow/frontend/assets/paw-print-Bi51_Rdl.js +0 -6
- langflow/frontend/assets/pc-case-Dd2iFvhG.js +0 -6
- langflow/frontend/assets/pen-BsVMrYOM.js +0 -6
- langflow/frontend/assets/pen-line-CfSYJk5k.js +0 -6
- langflow/frontend/assets/pen-off-DmI4mxKO.js +0 -6
- langflow/frontend/assets/pen-tool-DpN5IQqK.js +0 -6
- langflow/frontend/assets/pencil-CnvSqq9E.js +0 -6
- langflow/frontend/assets/pencil-line-Cv2Q45K5.js +0 -6
- langflow/frontend/assets/pencil-off-C49fCIW7.js +0 -6
- langflow/frontend/assets/pencil-ruler-DAeg2bdi.js +0 -6
- langflow/frontend/assets/pentagon-D_2Fd2hP.js +0 -6
- langflow/frontend/assets/percent-CxnPPS9D.js +0 -6
- langflow/frontend/assets/person-standing-BmeKuCs0.js +0 -6
- langflow/frontend/assets/philippine-peso-BUadQ7aL.js +0 -6
- langflow/frontend/assets/phone-Dc0-XP1y.js +0 -6
- langflow/frontend/assets/phone-call-C1VXoEvz.js +0 -6
- langflow/frontend/assets/phone-forwarded-CItqQhbm.js +0 -6
- langflow/frontend/assets/phone-incoming-DvtXIK_d.js +0 -6
- langflow/frontend/assets/phone-missed-BSgT0ES_.js +0 -6
- langflow/frontend/assets/phone-off-BLfKEnqS.js +0 -6
- langflow/frontend/assets/phone-outgoing-CB9jO0wi.js +0 -6
- langflow/frontend/assets/pi-D8lV65pI.js +0 -6
- langflow/frontend/assets/piano-ym7-VfOd.js +0 -6
- langflow/frontend/assets/pickaxe-xGhSTRIS.js +0 -6
- langflow/frontend/assets/picture-in-picture-2-DYP4WRm-.js +0 -6
- langflow/frontend/assets/picture-in-picture-Dq9rZO4x.js +0 -6
- langflow/frontend/assets/piggy-bank-BCCB1R4A.js +0 -6
- langflow/frontend/assets/pilcrow-CU7Rv-8i.js +0 -6
- langflow/frontend/assets/pilcrow-left-BIfybUyH.js +0 -6
- langflow/frontend/assets/pilcrow-right-DvZgqqvx.js +0 -6
- langflow/frontend/assets/pill-CaKp9nyY.js +0 -6
- langflow/frontend/assets/pill-bottle-CBf4Z-OM.js +0 -6
- langflow/frontend/assets/pin-BeZjDACi.js +0 -6
- langflow/frontend/assets/pin-off-TSQkgKaQ.js +0 -6
- langflow/frontend/assets/pipette-CI5r7aID.js +0 -6
- langflow/frontend/assets/pizza-DIdkWDbC.js +0 -6
- langflow/frontend/assets/plane-DasyaaeG.js +0 -6
- langflow/frontend/assets/plane-landing-DY8EBUup.js +0 -6
- langflow/frontend/assets/plane-takeoff-DWRMHcUu.js +0 -6
- langflow/frontend/assets/play-BHvJZ-tK.js +0 -6
- langflow/frontend/assets/plug-2-DYFrpJRx.js +0 -6
- langflow/frontend/assets/plug-D74j5l8U.js +0 -6
- langflow/frontend/assets/plug-zap-PX9X-ieh.js +0 -6
- langflow/frontend/assets/pocket-BuhWmNdN.js +0 -6
- langflow/frontend/assets/pocket-knife-8QhaEEq2.js +0 -6
- langflow/frontend/assets/podcast-Ds4Zox1G.js +0 -6
- langflow/frontend/assets/pointer-BQ50bTCS.js +0 -6
- langflow/frontend/assets/pointer-off-C7_83iBT.js +0 -6
- langflow/frontend/assets/popcorn-wzvIrx8u.js +0 -6
- langflow/frontend/assets/popsicle-MwkE2Aee.js +0 -6
- langflow/frontend/assets/pound-sterling-Bn-sGQ1C.js +0 -6
- langflow/frontend/assets/power-BMEfl_mV.js +0 -6
- langflow/frontend/assets/power-off-Cy6CcHqh.js +0 -6
- langflow/frontend/assets/presentation-FcvaTax4.js +0 -6
- langflow/frontend/assets/printer-C_9Hzhe-.js +0 -6
- langflow/frontend/assets/printer-check-D9LFftoB.js +0 -6
- langflow/frontend/assets/projector-ByOYTWy6.js +0 -6
- langflow/frontend/assets/proportions-DZ1pcxxR.js +0 -6
- langflow/frontend/assets/puzzle-Cb7C_lxv.js +0 -6
- langflow/frontend/assets/pyramid-DGX6Ikl-.js +0 -6
- langflow/frontend/assets/qr-code-CYlOb1Hm.js +0 -6
- langflow/frontend/assets/quote-BpeCXW04.js +0 -6
- langflow/frontend/assets/rabbit-Dy4wj8w9.js +0 -6
- langflow/frontend/assets/radar-Cqq2P4fW.js +0 -6
- langflow/frontend/assets/radiation-TavajO3t.js +0 -6
- langflow/frontend/assets/radical-CNj7CXiI.js +0 -6
- langflow/frontend/assets/radio-B1SQYPzL.js +0 -6
- langflow/frontend/assets/radio-receiver-BpKzb-rN.js +0 -6
- langflow/frontend/assets/radio-tower-Civ7am11.js +0 -6
- langflow/frontend/assets/radius-DelXvZFb.js +0 -6
- langflow/frontend/assets/rail-symbol-B6EGzEUL.js +0 -6
- langflow/frontend/assets/rainbow-Mum3y2K8.js +0 -6
- langflow/frontend/assets/rat-BQkQBdtC.js +0 -6
- langflow/frontend/assets/ratio-B0hNnb8h.js +0 -6
- langflow/frontend/assets/receipt-NheD0Ao7.js +0 -6
- langflow/frontend/assets/receipt-cent-8DaAbSV_.js +0 -6
- langflow/frontend/assets/receipt-euro-c2YO7kB0.js +0 -6
- langflow/frontend/assets/receipt-indian-rupee-BsgzYTIw.js +0 -6
- langflow/frontend/assets/receipt-japanese-yen-BP4fBfYx.js +0 -6
- langflow/frontend/assets/receipt-pound-sterling-CUtyAkvm.js +0 -6
- langflow/frontend/assets/receipt-russian-ruble-Wlih9_yF.js +0 -6
- langflow/frontend/assets/receipt-swiss-franc-DWJOU2sF.js +0 -6
- langflow/frontend/assets/receipt-text-WlDOUmGq.js +0 -6
- langflow/frontend/assets/rectangle-ellipsis-DrWCArBe.js +0 -6
- langflow/frontend/assets/rectangle-goggles-Byxj78Cj.js +0 -6
- langflow/frontend/assets/rectangle-horizontal-B3mv0dAV.js +0 -6
- langflow/frontend/assets/rectangle-vertical-lqaaALf_.js +0 -6
- langflow/frontend/assets/recycle-aeVxe9ox.js +0 -6
- langflow/frontend/assets/redo-2-BkHbS3Ol.js +0 -6
- langflow/frontend/assets/redo-C_26RijB.js +0 -6
- langflow/frontend/assets/redo-dot-BeGXpkFE.js +0 -6
- langflow/frontend/assets/refresh-ccw-BF4urLmN.js +0 -6
- langflow/frontend/assets/refresh-ccw-dot-CqhgyLBB.js +0 -6
- langflow/frontend/assets/refresh-cw-92xD8szx.js +0 -6
- langflow/frontend/assets/refresh-cw-off-CcODXuaZ.js +0 -6
- langflow/frontend/assets/refrigerator-D1WV19AY.js +0 -6
- langflow/frontend/assets/regex-CEhziw9j.js +0 -6
- langflow/frontend/assets/remove-formatting-CrWZY5zo.js +0 -6
- langflow/frontend/assets/repeat-1-DoopLbsZ.js +0 -6
- langflow/frontend/assets/repeat-2-CmM6Xe4n.js +0 -6
- langflow/frontend/assets/repeat-CBnSNzwD.js +0 -6
- langflow/frontend/assets/replace-DIjMhOu3.js +0 -6
- langflow/frontend/assets/replace-all-DRH83F7a.js +0 -6
- langflow/frontend/assets/reply-B4mXB-Wv.js +0 -6
- langflow/frontend/assets/reply-all-ChQ85rpD.js +0 -6
- langflow/frontend/assets/rewind-DX7H_a9y.js +0 -6
- langflow/frontend/assets/ribbon-gu8wh58M.js +0 -6
- langflow/frontend/assets/rocket-DLR5-Yxm.js +0 -6
- langflow/frontend/assets/rocking-chair-BT25Twcp.js +0 -6
- langflow/frontend/assets/roller-coaster-CW4P8ueW.js +0 -6
- langflow/frontend/assets/rotate-3d-DllU6r2A.js +0 -6
- langflow/frontend/assets/rotate-ccw-DJKy3x_z.js +0 -6
- langflow/frontend/assets/rotate-ccw-key-C6dpwRcQ.js +0 -6
- langflow/frontend/assets/rotate-ccw-square-DGIgmdjQ.js +0 -6
- langflow/frontend/assets/rotate-cw-CuOYYnRd.js +0 -6
- langflow/frontend/assets/rotate-cw-square-DExBGsLt.js +0 -6
- langflow/frontend/assets/route-BuYQuGvp.js +0 -6
- langflow/frontend/assets/route-off-CQaPgX8f.js +0 -6
- langflow/frontend/assets/router-DSykRBBM.js +0 -6
- langflow/frontend/assets/rows-2-BvK7htUX.js +0 -6
- langflow/frontend/assets/rows-3-B4dmLbIf.js +0 -6
- langflow/frontend/assets/rows-4-izngHmxQ.js +0 -6
- langflow/frontend/assets/rss-BUuvJaxP.js +0 -6
- langflow/frontend/assets/ruler-CUrLlh8A.js +0 -6
- langflow/frontend/assets/ruler-dimension-line-Ib8nUefi.js +0 -6
- langflow/frontend/assets/russian-ruble-vEWDBqfj.js +0 -6
- langflow/frontend/assets/sailboat-BHW70xlU.js +0 -6
- langflow/frontend/assets/salad-CshAsVBT.js +0 -6
- langflow/frontend/assets/sandwich-DcbdAEEq.js +0 -6
- langflow/frontend/assets/satellite-CfVgkpZy.js +0 -6
- langflow/frontend/assets/satellite-dish-yH0GJkPf.js +0 -6
- langflow/frontend/assets/saudi-riyal-D5aH3cXo.js +0 -6
- langflow/frontend/assets/save-CtvXsL6M.js +0 -6
- langflow/frontend/assets/save-all-Dmog_kSn.js +0 -6
- langflow/frontend/assets/save-off-BEi0Jd7s.js +0 -6
- langflow/frontend/assets/scale-3d-DUxdspRp.js +0 -6
- langflow/frontend/assets/scale-D58nk3AP.js +0 -6
- langflow/frontend/assets/scaling-DaZsBNp5.js +0 -6
- langflow/frontend/assets/scan-CvM3oDXH.js +0 -6
- langflow/frontend/assets/scan-barcode-C_nBCUzn.js +0 -6
- langflow/frontend/assets/scan-eye-BKW4Xqqi.js +0 -6
- langflow/frontend/assets/scan-face-DeFh5a4D.js +0 -6
- langflow/frontend/assets/scan-heart-DY3uqm29.js +0 -6
- langflow/frontend/assets/scan-line-BCvKraXq.js +0 -6
- langflow/frontend/assets/scan-qr-code-YkxbT531.js +0 -6
- langflow/frontend/assets/scan-search-BNvPOaGn.js +0 -6
- langflow/frontend/assets/scan-text-rGK4NP72.js +0 -6
- langflow/frontend/assets/school-etj3P8BW.js +0 -6
- langflow/frontend/assets/scissors-CX4bEm4e.js +0 -6
- langflow/frontend/assets/scissors-line-dashed-CZ32xsQz.js +0 -6
- langflow/frontend/assets/screen-share-DUmcrUWR.js +0 -6
- langflow/frontend/assets/screen-share-off-DLTixjT7.js +0 -6
- langflow/frontend/assets/scroll-DFumuDXh.js +0 -6
- langflow/frontend/assets/scroll-text-1CUpG1NV.js +0 -6
- langflow/frontend/assets/search-check-c21LgDct.js +0 -6
- langflow/frontend/assets/search-code-CGzVNaMf.js +0 -6
- langflow/frontend/assets/search-slash-BLQ1zmHQ.js +0 -6
- langflow/frontend/assets/search-x-DjZCUKUJ.js +0 -6
- langflow/frontend/assets/section-xm9xMjek.js +0 -6
- langflow/frontend/assets/send-BHelvKY_.js +0 -6
- langflow/frontend/assets/send-horizontal-wy-Qzi2A.js +0 -6
- langflow/frontend/assets/send-to-back-DVRpXzLe.js +0 -6
- langflow/frontend/assets/separator-horizontal-DO8ekX7H.js +0 -6
- langflow/frontend/assets/separator-vertical-BCHM8Wyi.js +0 -6
- langflow/frontend/assets/server-cog--68U9lLF.js +0 -6
- langflow/frontend/assets/server-crash-BaQMAnKA.js +0 -6
- langflow/frontend/assets/server-dwFSj7D0.js +0 -6
- langflow/frontend/assets/server-off-BXtT97Nv.js +0 -6
- langflow/frontend/assets/settings-2-eEtVHl6k.js +0 -6
- langflow/frontend/assets/settings-jwYcmQvx.js +0 -6
- langflow/frontend/assets/shapes-D1HxbBPB.js +0 -6
- langflow/frontend/assets/share-2-CNVWHA5X.js +0 -6
- langflow/frontend/assets/share-_Ss_O_jS.js +0 -6
- langflow/frontend/assets/sheet-MEH0l2Ny.js +0 -6
- langflow/frontend/assets/shell-C8mdjaAA.js +0 -6
- langflow/frontend/assets/shield-Bufhr6Q2.js +0 -6
- langflow/frontend/assets/shield-alert-BQPlyrOK.js +0 -6
- langflow/frontend/assets/shield-ban-B88Z73tF.js +0 -6
- langflow/frontend/assets/shield-check-nhhnEDqb.js +0 -6
- langflow/frontend/assets/shield-ellipsis-BB6VWr4x.js +0 -6
- langflow/frontend/assets/shield-half-eLHWev2O.js +0 -6
- langflow/frontend/assets/shield-minus-CL_xkTJ7.js +0 -6
- langflow/frontend/assets/shield-off-DhzzXg--.js +0 -6
- langflow/frontend/assets/shield-plus-BF4xQJUC.js +0 -6
- langflow/frontend/assets/shield-question-zJhYxmUP.js +0 -6
- langflow/frontend/assets/shield-user-DDteWWIP.js +0 -6
- langflow/frontend/assets/shield-x-Bm3s2HiU.js +0 -6
- langflow/frontend/assets/ship-B_g_km-p.js +0 -6
- langflow/frontend/assets/ship-wheel-DnLTel39.js +0 -6
- langflow/frontend/assets/shirt-CiyOZV3M.js +0 -6
- langflow/frontend/assets/shopping-bag-CAr5PPfq.js +0 -6
- langflow/frontend/assets/shopping-basket-BZfeOXa8.js +0 -6
- langflow/frontend/assets/shopping-cart-Zq3eXsD2.js +0 -6
- langflow/frontend/assets/shovel-CasOPdTj.js +0 -6
- langflow/frontend/assets/shower-head-O9YDKQWC.js +0 -6
- langflow/frontend/assets/shredder-JZE1u-vD.js +0 -6
- langflow/frontend/assets/shrimp-L_AF8TRX.js +0 -6
- langflow/frontend/assets/shrink-Dt2ya0tf.js +0 -6
- langflow/frontend/assets/shrub-BSrl1hBI.js +0 -6
- langflow/frontend/assets/shuffle-DE9sRcfW.js +0 -6
- langflow/frontend/assets/sigma-ZZ_ZLube.js +0 -6
- langflow/frontend/assets/signal-BQ2QYa9H.js +0 -6
- langflow/frontend/assets/signal-high-C-jFYN1Z.js +0 -6
- langflow/frontend/assets/signal-low-BRaWc0NI.js +0 -6
- langflow/frontend/assets/signal-medium-DjJWv463.js +0 -6
- langflow/frontend/assets/signal-zero-D6y8ETIN.js +0 -6
- langflow/frontend/assets/signature-CuWsQQh-.js +0 -6
- langflow/frontend/assets/signpost-Cx4YXYKD.js +0 -6
- langflow/frontend/assets/signpost-big-CL_aHuNJ.js +0 -6
- langflow/frontend/assets/siren-CtCi-8ad.js +0 -6
- langflow/frontend/assets/skip-back--whDhpwj.js +0 -6
- langflow/frontend/assets/skip-forward-B9Hg6t4g.js +0 -6
- langflow/frontend/assets/skull-PQgjtsF0.js +0 -6
- langflow/frontend/assets/slack-BWRzy8-p.js +0 -6
- langflow/frontend/assets/slash-BEfBn9_V.js +0 -6
- langflow/frontend/assets/slice-CxQNkK0K.js +0 -6
- langflow/frontend/assets/sliders-horizontal-BEI8Gtum.js +0 -6
- langflow/frontend/assets/sliders-vertical-D2TlIu3E.js +0 -6
- langflow/frontend/assets/smartphone-DLpNZv2_.js +0 -6
- langflow/frontend/assets/smartphone-charging-jDUjQVuW.js +0 -6
- langflow/frontend/assets/smartphone-nfc-Cq83AszU.js +0 -6
- langflow/frontend/assets/smile-DKjVIgOp.js +0 -6
- langflow/frontend/assets/smile-plus-1IsKgG2X.js +0 -6
- langflow/frontend/assets/snail-DC8tQ4-g.js +0 -6
- langflow/frontend/assets/snowflake-CP8A7Nxu.js +0 -6
- langflow/frontend/assets/sofa-D2KnnvJl.js +0 -6
- langflow/frontend/assets/soup-BTKzUjpe.js +0 -6
- langflow/frontend/assets/space-VkR5jeU4.js +0 -6
- langflow/frontend/assets/spade-BW0kGNh3.js +0 -6
- langflow/frontend/assets/sparkle-K8qo8h3I.js +0 -6
- langflow/frontend/assets/sparkles-DTjfFniJ.js +0 -6
- langflow/frontend/assets/speaker-CRtL_E0x.js +0 -6
- langflow/frontend/assets/speech-BeB3sEp6.js +0 -6
- langflow/frontend/assets/spell-check-2-BDBt2H-d.js +0 -6
- langflow/frontend/assets/spell-check-DU3zIsvq.js +0 -6
- langflow/frontend/assets/spline-gs-J2kwo.js +0 -6
- langflow/frontend/assets/spline-pointer-CSzNxuiA.js +0 -6
- langflow/frontend/assets/split-BmR8fHnr.js +0 -6
- langflow/frontend/assets/spray-can-CrxDKZ--.js +0 -6
- langflow/frontend/assets/sprout-ca131VKi.js +0 -6
- langflow/frontend/assets/square-DzZwRfMN.js +0 -6
- langflow/frontend/assets/square-activity-Cfp0ukpr.js +0 -6
- langflow/frontend/assets/square-arrow-down-C1aZu0lU.js +0 -6
- langflow/frontend/assets/square-arrow-down-left-MPNOcAv_.js +0 -6
- langflow/frontend/assets/square-arrow-down-right-CBYggFOh.js +0 -6
- langflow/frontend/assets/square-arrow-left-CWFMHl8M.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-left-Cmvg3FIf.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-right-PgvOFxoY.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-left-C6K5lRCv.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-right-BXvVF3cD.js +0 -6
- langflow/frontend/assets/square-arrow-right-DrkASAmw.js +0 -6
- langflow/frontend/assets/square-arrow-up-Bjd9Tbol.js +0 -6
- langflow/frontend/assets/square-arrow-up-left-BL-LB113.js +0 -6
- langflow/frontend/assets/square-arrow-up-right-pZ0V5jyg.js +0 -6
- langflow/frontend/assets/square-asterisk-B_plChlc.js +0 -6
- langflow/frontend/assets/square-bottom-dashed-scissors-DXBaRY1E.js +0 -6
- langflow/frontend/assets/square-chart-gantt-32rgZyX9.js +0 -6
- langflow/frontend/assets/square-check-3_0Ldgr6.js +0 -6
- langflow/frontend/assets/square-check-big-D81Cxzf5.js +0 -6
- langflow/frontend/assets/square-chevron-down-Cj6V2eY9.js +0 -6
- langflow/frontend/assets/square-chevron-left-BsywNms_.js +0 -6
- langflow/frontend/assets/square-chevron-right-DvTaw9DJ.js +0 -6
- langflow/frontend/assets/square-chevron-up-DpIZqmdv.js +0 -6
- langflow/frontend/assets/square-code-BeB8Fj2Y.js +0 -6
- langflow/frontend/assets/square-dashed-DX3GQ9F3.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-WTuQCeLI.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-code-Bp2-lk5t.js +0 -6
- langflow/frontend/assets/square-dashed-kanban-C_uZCArJ.js +0 -6
- langflow/frontend/assets/square-dashed-mouse-pointer-BZRXTDhM.js +0 -6
- langflow/frontend/assets/square-divide-DSVGoj9G.js +0 -6
- langflow/frontend/assets/square-dot-CXa5DhFh.js +0 -6
- langflow/frontend/assets/square-equal-BqWlOTEn.js +0 -6
- langflow/frontend/assets/square-function-D284HdUu.js +0 -6
- langflow/frontend/assets/square-kanban-DUOvQnUH.js +0 -6
- langflow/frontend/assets/square-library-DDXw44wI.js +0 -6
- langflow/frontend/assets/square-m-BF_TQ9Cf.js +0 -6
- langflow/frontend/assets/square-menu-B-dB2eM6.js +0 -6
- langflow/frontend/assets/square-minus-HfnCHWdD.js +0 -6
- langflow/frontend/assets/square-mouse-pointer-Dt-RWrXN.js +0 -6
- langflow/frontend/assets/square-parking-BvrIdmig.js +0 -6
- langflow/frontend/assets/square-parking-off-8FVQFwCx.js +0 -6
- langflow/frontend/assets/square-pen-CLnMBjnx.js +0 -6
- langflow/frontend/assets/square-percent-CdTlqfp3.js +0 -6
- langflow/frontend/assets/square-pi-CsvibBVl.js +0 -6
- langflow/frontend/assets/square-pilcrow-pS5Ul-bK.js +0 -6
- langflow/frontend/assets/square-play-DI134_AO.js +0 -6
- langflow/frontend/assets/square-plus-D4UcrriC.js +0 -6
- langflow/frontend/assets/square-power-BcftUNEC.js +0 -6
- langflow/frontend/assets/square-radical-D1Qj2mLw.js +0 -6
- langflow/frontend/assets/square-round-corner-uTJh6kyi.js +0 -6
- langflow/frontend/assets/square-scissors-DZWmZQt3.js +0 -6
- langflow/frontend/assets/square-sigma-D30LygvT.js +0 -6
- langflow/frontend/assets/square-slash-GLHug1Bf.js +0 -6
- langflow/frontend/assets/square-split-horizontal-CVQOp8wE.js +0 -6
- langflow/frontend/assets/square-split-vertical-C0jBnjl6.js +0 -6
- langflow/frontend/assets/square-square-BqSqlkC1.js +0 -6
- langflow/frontend/assets/square-stack-9Y2YO8T1.js +0 -6
- langflow/frontend/assets/square-terminal-DiUYFcJv.js +0 -6
- langflow/frontend/assets/square-user-BAUZZsCx.js +0 -6
- langflow/frontend/assets/square-user-round-Bzx1c4LE.js +0 -6
- langflow/frontend/assets/square-x-C_y-SDM1.js +0 -6
- langflow/frontend/assets/squares-exclude-BO9MBffP.js +0 -6
- langflow/frontend/assets/squares-intersect-Br9MQtTg.js +0 -6
- langflow/frontend/assets/squares-subtract-psRhckWt.js +0 -6
- langflow/frontend/assets/squares-unite-DyOgW2Vx.js +0 -6
- langflow/frontend/assets/squircle-BW0qUEDC.js +0 -6
- langflow/frontend/assets/squirrel-B1PCZcX7.js +0 -6
- langflow/frontend/assets/stamp-DwQmPbPr.js +0 -6
- langflow/frontend/assets/star-fFP8t_7q.js +0 -6
- langflow/frontend/assets/star-half-BpzaPZ-q.js +0 -6
- langflow/frontend/assets/star-off-BvshgrKR.js +0 -6
- langflow/frontend/assets/step-back-BY-Bsa9s.js +0 -6
- langflow/frontend/assets/step-forward-CIIzpXm5.js +0 -6
- langflow/frontend/assets/stethoscope-DAEc3st8.js +0 -6
- langflow/frontend/assets/sticker-BMHaQMId.js +0 -6
- langflow/frontend/assets/sticky-note-DDileyAQ.js +0 -6
- langflow/frontend/assets/store-DfBKA6fi.js +0 -6
- langflow/frontend/assets/stretch-horizontal-jQFmuGYU.js +0 -6
- langflow/frontend/assets/stretch-vertical-Byei0NbT.js +0 -6
- langflow/frontend/assets/strikethrough-A4fL3iV4.js +0 -6
- langflow/frontend/assets/subscript-DK_SS4pt.js +0 -6
- langflow/frontend/assets/sun-4fd6LvWs.js +0 -6
- langflow/frontend/assets/sun-dim-HhMydcHP.js +0 -6
- langflow/frontend/assets/sun-medium-DjxBBoh2.js +0 -6
- langflow/frontend/assets/sun-moon-BWpyhr-3.js +0 -6
- langflow/frontend/assets/sun-snow-BeLTEmYc.js +0 -6
- langflow/frontend/assets/sunrise-CX8TqGnP.js +0 -6
- langflow/frontend/assets/sunset-BpC3NXGb.js +0 -6
- langflow/frontend/assets/superscript-D9RddX1l.js +0 -6
- langflow/frontend/assets/swatch-book-DJ8i0JWb.js +0 -6
- langflow/frontend/assets/swiss-franc-SW-LCYYq.js +0 -6
- langflow/frontend/assets/switch-camera-CjruoEXV.js +0 -6
- langflow/frontend/assets/sword-DmrZIU8a.js +0 -6
- langflow/frontend/assets/swords-DEcGiJG7.js +0 -6
- langflow/frontend/assets/syringe-CDVMo3E1.js +0 -6
- langflow/frontend/assets/table-2-vNkNX7y9.js +0 -6
- langflow/frontend/assets/table-BDb0iTH8.js +0 -6
- langflow/frontend/assets/table-cells-merge-tBicSBqx.js +0 -6
- langflow/frontend/assets/table-cells-split-k0pm8r-z.js +0 -6
- langflow/frontend/assets/table-columns-split-Dov8Wc3R.js +0 -6
- langflow/frontend/assets/table-of-contents-DeqJlN_X.js +0 -6
- langflow/frontend/assets/table-properties-Cp0ivTQn.js +0 -6
- langflow/frontend/assets/table-rows-split-D2EEPbX-.js +0 -6
- langflow/frontend/assets/tablet-CtXXR51w.js +0 -6
- langflow/frontend/assets/tablet-smartphone-CHjkzAcr.js +0 -6
- langflow/frontend/assets/tablets-BGkOgo0p.js +0 -6
- langflow/frontend/assets/tag-C88BOFe6.js +0 -6
- langflow/frontend/assets/tags-7TOEs5rh.js +0 -6
- langflow/frontend/assets/tally-1-CMskgLGB.js +0 -6
- langflow/frontend/assets/tally-2-DaIOVDfb.js +0 -6
- langflow/frontend/assets/tally-3-BbvkFqwf.js +0 -6
- langflow/frontend/assets/tally-4-Cq0tWGV0.js +0 -6
- langflow/frontend/assets/tally-5-u8pBx1l9.js +0 -6
- langflow/frontend/assets/tangent-C_v48U-g.js +0 -6
- langflow/frontend/assets/target-CB2HrkPb.js +0 -6
- langflow/frontend/assets/telescope-Dm2PswZ7.js +0 -6
- langflow/frontend/assets/tent-DCbJTRn2.js +0 -6
- langflow/frontend/assets/tent-tree-dBK1jEo4.js +0 -6
- langflow/frontend/assets/terminal-pOIul2oS.js +0 -6
- langflow/frontend/assets/test-tube-BVXifMPd.js +0 -6
- langflow/frontend/assets/test-tube-diagonal-Cc6H-LMb.js +0 -6
- langflow/frontend/assets/test-tubes-Bd1XLhNz.js +0 -6
- langflow/frontend/assets/text-CF6hsYkQ.js +0 -6
- langflow/frontend/assets/text-cursor-DgrUmcwn.js +0 -6
- langflow/frontend/assets/text-cursor-input-BRBxmm3_.js +0 -6
- langflow/frontend/assets/text-quote-Ck3bSo7l.js +0 -6
- langflow/frontend/assets/text-search-Q8TrkYhl.js +0 -6
- langflow/frontend/assets/text-select-Ccuj1wh7.js +0 -6
- langflow/frontend/assets/theater-DQ_LLEiM.js +0 -6
- langflow/frontend/assets/thermometer-7vrUwdxo.js +0 -6
- langflow/frontend/assets/thermometer-snowflake-C0meu6Q5.js +0 -6
- langflow/frontend/assets/thermometer-sun-D73Y0MEA.js +0 -6
- langflow/frontend/assets/thumbs-down-CtLO2jHG.js +0 -6
- langflow/frontend/assets/thumbs-up-C3Td1jRD.js +0 -6
- langflow/frontend/assets/ticket-B-_7V3ku.js +0 -6
- langflow/frontend/assets/ticket-check-CDTR_0Xo.js +0 -6
- langflow/frontend/assets/ticket-minus-DU-f7iPB.js +0 -6
- langflow/frontend/assets/ticket-percent-Bmf_L17_.js +0 -6
- langflow/frontend/assets/ticket-plus-zywecdfp.js +0 -6
- langflow/frontend/assets/ticket-slash-DYRDEJ3N.js +0 -6
- langflow/frontend/assets/ticket-x-CaQznpCb.js +0 -6
- langflow/frontend/assets/tickets-D-cpkNHE.js +0 -6
- langflow/frontend/assets/tickets-plane-DbKB6xam.js +0 -6
- langflow/frontend/assets/timer-C5amVrwm.js +0 -6
- langflow/frontend/assets/timer-off-BPyCq6IB.js +0 -6
- langflow/frontend/assets/timer-reset-D5TcpPAv.js +0 -6
- langflow/frontend/assets/toggle-left-D98XWh2D.js +0 -6
- langflow/frontend/assets/toggle-right-KRKjuPT_.js +0 -6
- langflow/frontend/assets/toilet-YWNlUSw0.js +0 -6
- langflow/frontend/assets/tornado-BhCM1F4n.js +0 -6
- langflow/frontend/assets/torus-BLq85o-3.js +0 -6
- langflow/frontend/assets/touchpad-CLplDfXD.js +0 -6
- langflow/frontend/assets/touchpad-off-TJIdK87T.js +0 -6
- langflow/frontend/assets/tower-control-Dlwjcxoj.js +0 -6
- langflow/frontend/assets/toy-brick-CXqEbnyo.js +0 -6
- langflow/frontend/assets/tractor-D6b52dj_.js +0 -6
- langflow/frontend/assets/traffic-cone-BEmASxIw.js +0 -6
- langflow/frontend/assets/train-front-Cc7j-mZK.js +0 -6
- langflow/frontend/assets/train-front-tunnel-19z4RXsT.js +0 -6
- langflow/frontend/assets/train-track-CAAfEbqV.js +0 -6
- langflow/frontend/assets/tram-front-BUg3imga.js +0 -6
- langflow/frontend/assets/transgender-BA_FSj-u.js +0 -6
- langflow/frontend/assets/trash-2OeKKrxP.js +0 -6
- langflow/frontend/assets/tree-deciduous-DAI28UoR.js +0 -6
- langflow/frontend/assets/tree-palm-ByDsq_iJ.js +0 -6
- langflow/frontend/assets/tree-pine-BoPibGar.js +0 -6
- langflow/frontend/assets/trees-DHxVjS2D.js +0 -6
- langflow/frontend/assets/trello-DC9xQlgy.js +0 -6
- langflow/frontend/assets/trending-down-fnwk1gYn.js +0 -6
- langflow/frontend/assets/trending-up-BiFprBoY.js +0 -6
- langflow/frontend/assets/trending-up-down-tL00exws.js +0 -6
- langflow/frontend/assets/triangle-alert-CUgkF9bT.js +0 -6
- langflow/frontend/assets/triangle-dashed-CCl-Ou-q.js +0 -6
- langflow/frontend/assets/triangle-right-HXK9dggf.js +0 -6
- langflow/frontend/assets/triangle-wWFGnoXq.js +0 -6
- langflow/frontend/assets/trophy-B4r9FOcN.js +0 -6
- langflow/frontend/assets/truck-BIqbPrdA.js +0 -6
- langflow/frontend/assets/truck-electric-BNLEjUHH.js +0 -6
- langflow/frontend/assets/turtle-CLYisEUb.js +0 -6
- langflow/frontend/assets/tv-DE1XLcDO.js +0 -6
- langflow/frontend/assets/tv-minimal-CkGt4oeG.js +0 -6
- langflow/frontend/assets/tv-minimal-play-C4QNBnnM.js +0 -6
- langflow/frontend/assets/twitch-4zpjzKnn.js +0 -6
- langflow/frontend/assets/twitter-DtjE68Po.js +0 -6
- langflow/frontend/assets/type-D3fPDZEV.js +0 -6
- langflow/frontend/assets/type-outline-Cb1ZJZxR.js +0 -6
- langflow/frontend/assets/umbrella-jyxnt8Uh.js +0 -6
- langflow/frontend/assets/umbrella-off-Dcj1kxHM.js +0 -6
- langflow/frontend/assets/underline-CTJUoQ5A.js +0 -6
- langflow/frontend/assets/undo-2-D6pABNuv.js +0 -6
- langflow/frontend/assets/undo-CW0Ru-vR.js +0 -6
- langflow/frontend/assets/undo-dot-D5TUrOm8.js +0 -6
- langflow/frontend/assets/unfold-horizontal-Cyi9PjqF.js +0 -6
- langflow/frontend/assets/unfold-vertical-Bw4jY5BU.js +0 -6
- langflow/frontend/assets/ungroup-Dg1Nxn55.js +0 -6
- langflow/frontend/assets/university-Cpja84hz.js +0 -6
- langflow/frontend/assets/unlink-2-CfeUGqaL.js +0 -6
- langflow/frontend/assets/unlink-CRsYGeiQ.js +0 -6
- langflow/frontend/assets/unplug-kArckE87.js +0 -6
- langflow/frontend/assets/upload-C0z1tMv3.js +0 -6
- langflow/frontend/assets/usb-pK0x_msM.js +0 -6
- langflow/frontend/assets/use-post-add-user-CTfvdDgm.js +0 -1
- langflow/frontend/assets/user-CYb6I--K.js +0 -6
- langflow/frontend/assets/user-check-DN8PVcKH.js +0 -6
- langflow/frontend/assets/user-cog-BfAoVBIQ.js +0 -6
- langflow/frontend/assets/user-lock-CN7zPQp1.js +0 -6
- langflow/frontend/assets/user-minus-CLA5rUgw.js +0 -6
- langflow/frontend/assets/user-pen-Cqeh6kZs.js +0 -6
- langflow/frontend/assets/user-plus-DEvzlwVk.js +0 -6
- langflow/frontend/assets/user-round-C5iZ0qgG.js +0 -6
- langflow/frontend/assets/user-round-check-BH6wPJr_.js +0 -6
- langflow/frontend/assets/user-round-cog-CmDgAgBT.js +0 -6
- langflow/frontend/assets/user-round-minus-Dzs93aa6.js +0 -6
- langflow/frontend/assets/user-round-pen-jFl6zE5l.js +0 -6
- langflow/frontend/assets/user-round-plus-B5kF24c0.js +0 -6
- langflow/frontend/assets/user-round-search-Ufud_H7Y.js +0 -6
- langflow/frontend/assets/user-round-x-DemWmMk-.js +0 -6
- langflow/frontend/assets/user-search-DyqY3Z4p.js +0 -6
- langflow/frontend/assets/user-x-xWe2LSq5.js +0 -6
- langflow/frontend/assets/users-CIF2XMyV.js +0 -6
- langflow/frontend/assets/users-round-CLF1tj52.js +0 -6
- langflow/frontend/assets/utensils-BNRwEKXS.js +0 -6
- langflow/frontend/assets/utensils-crossed-tx85c0By.js +0 -6
- langflow/frontend/assets/utility-pole-DaA7pMEn.js +0 -6
- langflow/frontend/assets/variable-Bk9JiMUE.js +0 -6
- langflow/frontend/assets/vault-CWh3Z9NS.js +0 -6
- langflow/frontend/assets/vegan-DA9rwDh2.js +0 -6
- langflow/frontend/assets/venetian-mask-D1mUQEf8.js +0 -6
- langflow/frontend/assets/venus-BhPEaBFw.js +0 -6
- langflow/frontend/assets/venus-and-mars-7wCgnbVZ.js +0 -6
- langflow/frontend/assets/vibrate-Bf4kWHhY.js +0 -6
- langflow/frontend/assets/vibrate-off-DVkA2Blb.js +0 -6
- langflow/frontend/assets/video-BWErFYI_.js +0 -6
- langflow/frontend/assets/video-off-CCKPb-AI.js +0 -6
- langflow/frontend/assets/videotape-BCw1JQVM.js +0 -6
- langflow/frontend/assets/view-DqsSMcxt.js +0 -6
- langflow/frontend/assets/voicemail-D2G5-58w.js +0 -6
- langflow/frontend/assets/volleyball-BahQ9nyT.js +0 -6
- langflow/frontend/assets/volume-1-Cy4QFQfu.js +0 -6
- langflow/frontend/assets/volume-2-T_S9aJt9.js +0 -6
- langflow/frontend/assets/volume-DhmwFLZM.js +0 -6
- langflow/frontend/assets/volume-off-CHG2yHRE.js +0 -6
- langflow/frontend/assets/volume-x-CMkcbeRe.js +0 -6
- langflow/frontend/assets/vote-CgdG8REW.js +0 -6
- langflow/frontend/assets/wallet-CgCQyNuC.js +0 -6
- langflow/frontend/assets/wallet-cards-fAcGhH4Y.js +0 -6
- langflow/frontend/assets/wallet-minimal-BNVD81ho.js +0 -6
- langflow/frontend/assets/wallpaper-znA5Uz2A.js +0 -6
- langflow/frontend/assets/wand-aEWmHs_4.js +0 -6
- langflow/frontend/assets/wand-sparkles-DDxUZvPE.js +0 -6
- langflow/frontend/assets/warehouse-yPUPZYQm.js +0 -6
- langflow/frontend/assets/washing-machine-DidsRoGX.js +0 -6
- langflow/frontend/assets/watch-CYZ_ICBe.js +0 -6
- langflow/frontend/assets/waves-BKd3_mCd.js +0 -6
- langflow/frontend/assets/waves-ladder-BvRkpGLO.js +0 -6
- langflow/frontend/assets/waypoints-K6NXLstp.js +0 -6
- langflow/frontend/assets/webcam-CLPXO_mE.js +0 -6
- langflow/frontend/assets/webhook-DUc3CJ6T.js +0 -6
- langflow/frontend/assets/webhook-off-DZgAywhC.js +0 -6
- langflow/frontend/assets/weight-GSWIcGSY.js +0 -6
- langflow/frontend/assets/wheat-Cz6eOCnV.js +0 -6
- langflow/frontend/assets/wheat-off-EjilPRfB.js +0 -6
- langflow/frontend/assets/whole-word-D2sASkSi.js +0 -6
- langflow/frontend/assets/wifi-PcQXXyHp.js +0 -6
- langflow/frontend/assets/wifi-high-CngcsB2O.js +0 -6
- langflow/frontend/assets/wifi-low-C5_B2LFd.js +0 -6
- langflow/frontend/assets/wifi-off-Doon60lY.js +0 -6
- langflow/frontend/assets/wifi-pen-CXUcIzeE.js +0 -6
- langflow/frontend/assets/wifi-zero-jr0jJZb9.js +0 -6
- langflow/frontend/assets/wind-77C2ub3B.js +0 -6
- langflow/frontend/assets/wind-arrow-down-CkKGxyqD.js +0 -6
- langflow/frontend/assets/wine-DSpVTz3i.js +0 -6
- langflow/frontend/assets/wine-off-DVaivXhq.js +0 -6
- langflow/frontend/assets/workflow-Dd00LJqw.js +0 -6
- langflow/frontend/assets/worm-B8umq2e7.js +0 -6
- langflow/frontend/assets/wrap-text-DXDAFdFQ.js +0 -6
- langflow/frontend/assets/wrench-DPKXsb9A.js +0 -6
- langflow/frontend/assets/youtube-DLP7NXOq.js +0 -6
- langflow/frontend/assets/zap-DM63C_Ti.js +0 -6
- langflow/frontend/assets/zap-off-BUNzQm5k.js +0 -6
- langflow/frontend/assets/zoom-in-pTV2KHhw.js +0 -6
- langflow/frontend/assets/zoom-out-BOhst0SA.js +0 -6
- langflow/utils/mcp_cleanup.py +0 -125
- langflow_base_nightly-1.7.0.dev34.dist-info/METADATA +0 -99
- langflow_base_nightly-1.7.0.dev34.dist-info/RECORD +0 -2278
- {langflow_base_nightly-1.7.0.dev34.dist-info → langflow_base_nightly-1.7.0.dev40.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-1.7.0.dev34.dist-info → langflow_base_nightly-1.7.0.dev40.dist-info}/entry_points.txt +0 -0
|
@@ -1268,7 +1268,7 @@
|
|
|
1268
1268
|
"show": true,
|
|
1269
1269
|
"title_case": false,
|
|
1270
1270
|
"type": "code",
|
|
1271
|
-
"value": "from typing import Any\n\nimport requests\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_ibm import ChatWatsonx\nfrom langchain_ollama import ChatOllama\nfrom langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom lfx.base.models.anthropic_constants import ANTHROPIC_MODELS\nfrom lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS\nfrom lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed\nfrom lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.model_utils import get_ollama_models, is_valid_ollama_url\nfrom lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, MessageTextInput, StrInput\nfrom lfx.io import DropdownInput, MessageInput, MultilineInput, SecretStrInput, SliderInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.utils.util import transform_localhost_url\n\n# IBM watsonx.ai constants\nIBM_WATSONX_DEFAULT_MODELS = [\"ibm/granite-3-2b-instruct\", \"ibm/granite-3-8b-instruct\", \"ibm/granite-13b-instruct-v2\"]\nIBM_WATSONX_URLS = [\n \"https://us-south.ml.cloud.ibm.com\",\n \"https://eu-de.ml.cloud.ibm.com\",\n \"https://eu-gb.ml.cloud.ibm.com\",\n \"https://au-syd.ml.cloud.ibm.com\",\n \"https://jp-tok.ml.cloud.ibm.com\",\n \"https://ca-tor.ml.cloud.ibm.com\",\n]\n\n# Ollama API constants\nHTTP_STATUS_OK = 200\nJSON_MODELS_KEY = \"models\"\nJSON_NAME_KEY = \"name\"\nJSON_CAPABILITIES_KEY = \"capabilities\"\nDESIRED_CAPABILITY = \"completion\"\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n @staticmethod\n def fetch_ibm_models(base_url: str) -> list[str]:\n \"\"\"Fetch available models from the watsonx.ai API.\"\"\"\n try:\n endpoint = f\"{base_url}/ml/v1/foundation_model_specs\"\n params = {\"version\": \"2024-09-16\", \"filters\": \"function_text_chat,!lifecycle_withdrawn\"}\n response = requests.get(endpoint, params=params, timeout=10)\n response.raise_for_status()\n data = response.json()\n models = [model[\"model_id\"] for model in data.get(\"resources\", [])]\n return sorted(models)\n except Exception: # noqa: BLE001\n logger.exception(\"Error fetching IBM watsonx models. Using default models.\")\n return IBM_WATSONX_DEFAULT_MODELS\n\n inputs = [\n DropdownInput(\n name=\"provider\",\n display_name=\"Model Provider\",\n options=[\"OpenAI\", \"Anthropic\", \"Google\", \"IBM watsonx.ai\", \"Ollama\"],\n value=\"OpenAI\",\n info=\"Select the model provider\",\n real_time_refresh=True,\n options_metadata=[\n {\"icon\": \"OpenAI\"},\n {\"icon\": \"Anthropic\"},\n {\"icon\": \"GoogleGenerativeAI\"},\n {\"icon\": \"WatsonxAI\"},\n {\"icon\": \"Ollama\"},\n ],\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n options=OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES,\n value=OPENAI_CHAT_MODEL_NAMES[0],\n info=\"Select the model to use\",\n real_time_refresh=True,\n refresh_button=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageTextInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n provider = self.provider\n model_name = self.model_name\n temperature = self.temperature\n stream = self.stream\n\n if provider == \"OpenAI\":\n if not self.api_key:\n msg = \"OpenAI API key is required when using OpenAI provider\"\n raise ValueError(msg)\n\n if model_name in OPENAI_REASONING_MODEL_NAMES:\n # reasoning models do not support temperature (yet)\n temperature = None\n\n return ChatOpenAI(\n model_name=model_name,\n temperature=temperature,\n streaming=stream,\n openai_api_key=self.api_key,\n )\n if provider == \"Anthropic\":\n if not self.api_key:\n msg = \"Anthropic API key is required when using Anthropic provider\"\n raise ValueError(msg)\n return ChatAnthropic(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n anthropic_api_key=self.api_key,\n )\n if provider == \"Google\":\n if not self.api_key:\n msg = \"Google API key is required when using Google provider\"\n raise ValueError(msg)\n return ChatGoogleGenerativeAIFixed(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n google_api_key=self.api_key,\n )\n if provider == \"IBM watsonx.ai\":\n if not self.api_key:\n msg = \"IBM API key is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.base_url_ibm_watsonx:\n msg = \"IBM watsonx API Endpoint is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.project_id:\n msg = \"IBM watsonx Project ID is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n return ChatWatsonx(\n apikey=SecretStr(self.api_key).get_secret_value(),\n url=self.base_url_ibm_watsonx,\n project_id=self.project_id,\n model_id=model_name,\n params={\n \"temperature\": temperature,\n },\n streaming=stream,\n )\n if provider == \"Ollama\":\n if not self.ollama_base_url:\n msg = \"Ollama API URL is required when using Ollama provider\"\n raise ValueError(msg)\n if not model_name:\n msg = \"Model name is required when using Ollama provider\"\n raise ValueError(msg)\n\n transformed_base_url = transform_localhost_url(self.ollama_base_url)\n\n # Check if URL contains /v1 suffix (OpenAI-compatible mode)\n if transformed_base_url and transformed_base_url.rstrip(\"/\").endswith(\"/v1\"):\n # Strip /v1 suffix and log warning\n transformed_base_url = transformed_base_url.rstrip(\"/\").removesuffix(\"/v1\")\n logger.warning(\n \"Detected '/v1' suffix in base URL. The Ollama component uses the native Ollama API, \"\n \"not the OpenAI-compatible API. The '/v1' suffix has been automatically removed. \"\n \"If you want to use the OpenAI-compatible API, please use the OpenAI component instead. \"\n \"Learn more at https://docs.ollama.com/openai#openai-compatibility\"\n )\n\n return ChatOllama(\n base_url=transformed_base_url,\n model=model_name,\n temperature=temperature,\n )\n msg = f\"Unknown provider: {provider}\"\n raise ValueError(msg)\n\n async def update_build_config(\n self, build_config: dotdict, field_value: Any, field_name: str | None = None\n ) -> dotdict:\n if field_name == \"provider\":\n if field_value == \"OpenAI\":\n build_config[\"model_name\"][\"options\"] = OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES\n build_config[\"model_name\"][\"value\"] = OPENAI_CHAT_MODEL_NAMES[0]\n build_config[\"api_key\"][\"display_name\"] = \"OpenAI API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Anthropic\":\n build_config[\"model_name\"][\"options\"] = ANTHROPIC_MODELS\n build_config[\"model_name\"][\"value\"] = ANTHROPIC_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Anthropic API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Google\":\n build_config[\"model_name\"][\"options\"] = GOOGLE_GENERATIVE_AI_MODELS\n build_config[\"model_name\"][\"value\"] = GOOGLE_GENERATIVE_AI_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Google API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"IBM watsonx.ai\":\n build_config[\"model_name\"][\"options\"] = IBM_WATSONX_DEFAULT_MODELS\n build_config[\"model_name\"][\"value\"] = IBM_WATSONX_DEFAULT_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"IBM API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = True\n build_config[\"project_id\"][\"show\"] = True\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Ollama\":\n # Fetch Ollama models from the API\n build_config[\"api_key\"][\"show\"] = False\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = True\n\n # Try multiple sources to get the URL (in order of preference):\n # 1. Instance attribute (already resolved from global/db)\n # 2. Build config value (may be a global variable reference)\n # 3. Default value\n ollama_url = getattr(self, \"ollama_base_url\", None)\n if not ollama_url:\n config_value = build_config[\"ollama_base_url\"].get(\"value\", DEFAULT_OLLAMA_URL)\n # If config_value looks like a variable name (all caps with underscores), use default\n is_variable_ref = (\n config_value\n and isinstance(config_value, str)\n and config_value.isupper()\n and \"_\" in config_value\n )\n if is_variable_ref:\n await logger.adebug(\n f\"Config value appears to be a variable reference: {config_value}, using default\"\n )\n ollama_url = DEFAULT_OLLAMA_URL\n else:\n ollama_url = config_value\n\n await logger.adebug(f\"Fetching Ollama models for provider switch. URL: {ollama_url}\")\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n except ValueError:\n await logger.awarning(\"Failed to fetch Ollama models. Setting empty options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {ollama_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif (\n field_name == \"base_url_ibm_watsonx\"\n and field_value\n and hasattr(self, \"provider\")\n and self.provider == \"IBM watsonx.ai\"\n ):\n # Fetch IBM models when base_url changes\n try:\n models = self.fetch_ibm_models(base_url=field_value)\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else IBM_WATSONX_DEFAULT_MODELS[0]\n info_message = f\"Updated model options: {len(models)} models found in {field_value}\"\n logger.info(info_message)\n except Exception: # noqa: BLE001\n logger.exception(\"Error updating IBM model options.\")\n elif field_name == \"ollama_base_url\":\n # Fetch Ollama models when ollama_base_url changes\n # Use the field_value directly since this is triggered when the field changes\n logger.debug(\n f\"Fetching Ollama models from updated URL: {build_config['ollama_base_url']} \\\n and value {self.ollama_base_url}\",\n )\n await logger.adebug(f\"Fetching Ollama models from updated URL: {self.ollama_base_url}\")\n if await is_valid_ollama_url(url=self.ollama_base_url):\n try:\n models = await get_ollama_models(\n base_url_value=self.ollama_base_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n info_message = f\"Updated model options: {len(models)} models found in {self.ollama_base_url}\"\n await logger.ainfo(info_message)\n except ValueError:\n await logger.awarning(\"Error updating Ollama model options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {self.ollama_base_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif field_name == \"model_name\":\n # Refresh Ollama models when model_name field is accessed\n if hasattr(self, \"provider\") and self.provider == \"Ollama\":\n ollama_url = getattr(self, \"ollama_base_url\", DEFAULT_OLLAMA_URL)\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n except ValueError:\n await logger.awarning(\"Failed to refresh Ollama models.\")\n build_config[\"model_name\"][\"options\"] = []\n else:\n build_config[\"model_name\"][\"options\"] = []\n\n # Hide system_message for o1 models - currently unsupported\n if field_value and field_value.startswith(\"o1\") and hasattr(self, \"provider\") and self.provider == \"OpenAI\":\n if \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = False\n elif \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = True\n return build_config\n"
|
|
1271
|
+
"value": "from lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.base.models.watsonx_constants import IBM_WATSONX_URLS\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, StrInput\nfrom lfx.io import MessageInput, ModelInput, MultilineInput, SecretStrInput, SliderInput\n\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n return get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n temperature=self.temperature,\n stream=self.stream,\n )\n\n def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):\n \"\"\"Dynamically update build config with user-filtered model options.\"\"\"\n return update_model_options_in_build_config(\n component=self,\n build_config=build_config,\n cache_key_prefix=\"language_model_options\",\n get_options_func=get_language_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n"
|
|
1272
1272
|
},
|
|
1273
1273
|
"input_value": {
|
|
1274
1274
|
"_input_type": "MessageInput",
|
|
@@ -1590,7 +1590,7 @@
|
|
|
1590
1590
|
"show": true,
|
|
1591
1591
|
"title_case": false,
|
|
1592
1592
|
"type": "code",
|
|
1593
|
-
"value": "from typing import Any\n\nimport requests\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_ibm import ChatWatsonx\nfrom langchain_ollama import ChatOllama\nfrom langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom lfx.base.models.anthropic_constants import ANTHROPIC_MODELS\nfrom lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS\nfrom lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed\nfrom lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.model_utils import get_ollama_models, is_valid_ollama_url\nfrom lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, MessageTextInput, StrInput\nfrom lfx.io import DropdownInput, MessageInput, MultilineInput, SecretStrInput, SliderInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.utils.util import transform_localhost_url\n\n# IBM watsonx.ai constants\nIBM_WATSONX_DEFAULT_MODELS = [\"ibm/granite-3-2b-instruct\", \"ibm/granite-3-8b-instruct\", \"ibm/granite-13b-instruct-v2\"]\nIBM_WATSONX_URLS = [\n \"https://us-south.ml.cloud.ibm.com\",\n \"https://eu-de.ml.cloud.ibm.com\",\n \"https://eu-gb.ml.cloud.ibm.com\",\n \"https://au-syd.ml.cloud.ibm.com\",\n \"https://jp-tok.ml.cloud.ibm.com\",\n \"https://ca-tor.ml.cloud.ibm.com\",\n]\n\n# Ollama API constants\nHTTP_STATUS_OK = 200\nJSON_MODELS_KEY = \"models\"\nJSON_NAME_KEY = \"name\"\nJSON_CAPABILITIES_KEY = \"capabilities\"\nDESIRED_CAPABILITY = \"completion\"\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n @staticmethod\n def fetch_ibm_models(base_url: str) -> list[str]:\n \"\"\"Fetch available models from the watsonx.ai API.\"\"\"\n try:\n endpoint = f\"{base_url}/ml/v1/foundation_model_specs\"\n params = {\"version\": \"2024-09-16\", \"filters\": \"function_text_chat,!lifecycle_withdrawn\"}\n response = requests.get(endpoint, params=params, timeout=10)\n response.raise_for_status()\n data = response.json()\n models = [model[\"model_id\"] for model in data.get(\"resources\", [])]\n return sorted(models)\n except Exception: # noqa: BLE001\n logger.exception(\"Error fetching IBM watsonx models. Using default models.\")\n return IBM_WATSONX_DEFAULT_MODELS\n\n inputs = [\n DropdownInput(\n name=\"provider\",\n display_name=\"Model Provider\",\n options=[\"OpenAI\", \"Anthropic\", \"Google\", \"IBM watsonx.ai\", \"Ollama\"],\n value=\"OpenAI\",\n info=\"Select the model provider\",\n real_time_refresh=True,\n options_metadata=[\n {\"icon\": \"OpenAI\"},\n {\"icon\": \"Anthropic\"},\n {\"icon\": \"GoogleGenerativeAI\"},\n {\"icon\": \"WatsonxAI\"},\n {\"icon\": \"Ollama\"},\n ],\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n options=OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES,\n value=OPENAI_CHAT_MODEL_NAMES[0],\n info=\"Select the model to use\",\n real_time_refresh=True,\n refresh_button=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageTextInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n provider = self.provider\n model_name = self.model_name\n temperature = self.temperature\n stream = self.stream\n\n if provider == \"OpenAI\":\n if not self.api_key:\n msg = \"OpenAI API key is required when using OpenAI provider\"\n raise ValueError(msg)\n\n if model_name in OPENAI_REASONING_MODEL_NAMES:\n # reasoning models do not support temperature (yet)\n temperature = None\n\n return ChatOpenAI(\n model_name=model_name,\n temperature=temperature,\n streaming=stream,\n openai_api_key=self.api_key,\n )\n if provider == \"Anthropic\":\n if not self.api_key:\n msg = \"Anthropic API key is required when using Anthropic provider\"\n raise ValueError(msg)\n return ChatAnthropic(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n anthropic_api_key=self.api_key,\n )\n if provider == \"Google\":\n if not self.api_key:\n msg = \"Google API key is required when using Google provider\"\n raise ValueError(msg)\n return ChatGoogleGenerativeAIFixed(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n google_api_key=self.api_key,\n )\n if provider == \"IBM watsonx.ai\":\n if not self.api_key:\n msg = \"IBM API key is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.base_url_ibm_watsonx:\n msg = \"IBM watsonx API Endpoint is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.project_id:\n msg = \"IBM watsonx Project ID is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n return ChatWatsonx(\n apikey=SecretStr(self.api_key).get_secret_value(),\n url=self.base_url_ibm_watsonx,\n project_id=self.project_id,\n model_id=model_name,\n params={\n \"temperature\": temperature,\n },\n streaming=stream,\n )\n if provider == \"Ollama\":\n if not self.ollama_base_url:\n msg = \"Ollama API URL is required when using Ollama provider\"\n raise ValueError(msg)\n if not model_name:\n msg = \"Model name is required when using Ollama provider\"\n raise ValueError(msg)\n\n transformed_base_url = transform_localhost_url(self.ollama_base_url)\n\n # Check if URL contains /v1 suffix (OpenAI-compatible mode)\n if transformed_base_url and transformed_base_url.rstrip(\"/\").endswith(\"/v1\"):\n # Strip /v1 suffix and log warning\n transformed_base_url = transformed_base_url.rstrip(\"/\").removesuffix(\"/v1\")\n logger.warning(\n \"Detected '/v1' suffix in base URL. The Ollama component uses the native Ollama API, \"\n \"not the OpenAI-compatible API. The '/v1' suffix has been automatically removed. \"\n \"If you want to use the OpenAI-compatible API, please use the OpenAI component instead. \"\n \"Learn more at https://docs.ollama.com/openai#openai-compatibility\"\n )\n\n return ChatOllama(\n base_url=transformed_base_url,\n model=model_name,\n temperature=temperature,\n )\n msg = f\"Unknown provider: {provider}\"\n raise ValueError(msg)\n\n async def update_build_config(\n self, build_config: dotdict, field_value: Any, field_name: str | None = None\n ) -> dotdict:\n if field_name == \"provider\":\n if field_value == \"OpenAI\":\n build_config[\"model_name\"][\"options\"] = OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES\n build_config[\"model_name\"][\"value\"] = OPENAI_CHAT_MODEL_NAMES[0]\n build_config[\"api_key\"][\"display_name\"] = \"OpenAI API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Anthropic\":\n build_config[\"model_name\"][\"options\"] = ANTHROPIC_MODELS\n build_config[\"model_name\"][\"value\"] = ANTHROPIC_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Anthropic API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Google\":\n build_config[\"model_name\"][\"options\"] = GOOGLE_GENERATIVE_AI_MODELS\n build_config[\"model_name\"][\"value\"] = GOOGLE_GENERATIVE_AI_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Google API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"IBM watsonx.ai\":\n build_config[\"model_name\"][\"options\"] = IBM_WATSONX_DEFAULT_MODELS\n build_config[\"model_name\"][\"value\"] = IBM_WATSONX_DEFAULT_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"IBM API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = True\n build_config[\"project_id\"][\"show\"] = True\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Ollama\":\n # Fetch Ollama models from the API\n build_config[\"api_key\"][\"show\"] = False\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = True\n\n # Try multiple sources to get the URL (in order of preference):\n # 1. Instance attribute (already resolved from global/db)\n # 2. Build config value (may be a global variable reference)\n # 3. Default value\n ollama_url = getattr(self, \"ollama_base_url\", None)\n if not ollama_url:\n config_value = build_config[\"ollama_base_url\"].get(\"value\", DEFAULT_OLLAMA_URL)\n # If config_value looks like a variable name (all caps with underscores), use default\n is_variable_ref = (\n config_value\n and isinstance(config_value, str)\n and config_value.isupper()\n and \"_\" in config_value\n )\n if is_variable_ref:\n await logger.adebug(\n f\"Config value appears to be a variable reference: {config_value}, using default\"\n )\n ollama_url = DEFAULT_OLLAMA_URL\n else:\n ollama_url = config_value\n\n await logger.adebug(f\"Fetching Ollama models for provider switch. URL: {ollama_url}\")\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n except ValueError:\n await logger.awarning(\"Failed to fetch Ollama models. Setting empty options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {ollama_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif (\n field_name == \"base_url_ibm_watsonx\"\n and field_value\n and hasattr(self, \"provider\")\n and self.provider == \"IBM watsonx.ai\"\n ):\n # Fetch IBM models when base_url changes\n try:\n models = self.fetch_ibm_models(base_url=field_value)\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else IBM_WATSONX_DEFAULT_MODELS[0]\n info_message = f\"Updated model options: {len(models)} models found in {field_value}\"\n logger.info(info_message)\n except Exception: # noqa: BLE001\n logger.exception(\"Error updating IBM model options.\")\n elif field_name == \"ollama_base_url\":\n # Fetch Ollama models when ollama_base_url changes\n # Use the field_value directly since this is triggered when the field changes\n logger.debug(\n f\"Fetching Ollama models from updated URL: {build_config['ollama_base_url']} \\\n and value {self.ollama_base_url}\",\n )\n await logger.adebug(f\"Fetching Ollama models from updated URL: {self.ollama_base_url}\")\n if await is_valid_ollama_url(url=self.ollama_base_url):\n try:\n models = await get_ollama_models(\n base_url_value=self.ollama_base_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n info_message = f\"Updated model options: {len(models)} models found in {self.ollama_base_url}\"\n await logger.ainfo(info_message)\n except ValueError:\n await logger.awarning(\"Error updating Ollama model options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {self.ollama_base_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif field_name == \"model_name\":\n # Refresh Ollama models when model_name field is accessed\n if hasattr(self, \"provider\") and self.provider == \"Ollama\":\n ollama_url = getattr(self, \"ollama_base_url\", DEFAULT_OLLAMA_URL)\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n except ValueError:\n await logger.awarning(\"Failed to refresh Ollama models.\")\n build_config[\"model_name\"][\"options\"] = []\n else:\n build_config[\"model_name\"][\"options\"] = []\n\n # Hide system_message for o1 models - currently unsupported\n if field_value and field_value.startswith(\"o1\") and hasattr(self, \"provider\") and self.provider == \"OpenAI\":\n if \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = False\n elif \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = True\n return build_config\n"
|
|
1593
|
+
"value": "from lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.base.models.watsonx_constants import IBM_WATSONX_URLS\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, StrInput\nfrom lfx.io import MessageInput, ModelInput, MultilineInput, SecretStrInput, SliderInput\n\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n return get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n temperature=self.temperature,\n stream=self.stream,\n )\n\n def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):\n \"\"\"Dynamically update build config with user-filtered model options.\"\"\"\n return update_model_options_in_build_config(\n component=self,\n build_config=build_config,\n cache_key_prefix=\"language_model_options\",\n get_options_func=get_language_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n"
|
|
1594
1594
|
},
|
|
1595
1595
|
"input_value": {
|
|
1596
1596
|
"_input_type": "MessageInput",
|
|
@@ -1911,7 +1911,7 @@
|
|
|
1911
1911
|
"show": true,
|
|
1912
1912
|
"title_case": false,
|
|
1913
1913
|
"type": "code",
|
|
1914
|
-
"value": "from typing import Any\n\nimport requests\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_ibm import ChatWatsonx\nfrom langchain_ollama import ChatOllama\nfrom langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom lfx.base.models.anthropic_constants import ANTHROPIC_MODELS\nfrom lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS\nfrom lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed\nfrom lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.model_utils import get_ollama_models, is_valid_ollama_url\nfrom lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, MessageTextInput, StrInput\nfrom lfx.io import DropdownInput, MessageInput, MultilineInput, SecretStrInput, SliderInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.utils.util import transform_localhost_url\n\n# IBM watsonx.ai constants\nIBM_WATSONX_DEFAULT_MODELS = [\"ibm/granite-3-2b-instruct\", \"ibm/granite-3-8b-instruct\", \"ibm/granite-13b-instruct-v2\"]\nIBM_WATSONX_URLS = [\n \"https://us-south.ml.cloud.ibm.com\",\n \"https://eu-de.ml.cloud.ibm.com\",\n \"https://eu-gb.ml.cloud.ibm.com\",\n \"https://au-syd.ml.cloud.ibm.com\",\n \"https://jp-tok.ml.cloud.ibm.com\",\n \"https://ca-tor.ml.cloud.ibm.com\",\n]\n\n# Ollama API constants\nHTTP_STATUS_OK = 200\nJSON_MODELS_KEY = \"models\"\nJSON_NAME_KEY = \"name\"\nJSON_CAPABILITIES_KEY = \"capabilities\"\nDESIRED_CAPABILITY = \"completion\"\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n @staticmethod\n def fetch_ibm_models(base_url: str) -> list[str]:\n \"\"\"Fetch available models from the watsonx.ai API.\"\"\"\n try:\n endpoint = f\"{base_url}/ml/v1/foundation_model_specs\"\n params = {\"version\": \"2024-09-16\", \"filters\": \"function_text_chat,!lifecycle_withdrawn\"}\n response = requests.get(endpoint, params=params, timeout=10)\n response.raise_for_status()\n data = response.json()\n models = [model[\"model_id\"] for model in data.get(\"resources\", [])]\n return sorted(models)\n except Exception: # noqa: BLE001\n logger.exception(\"Error fetching IBM watsonx models. Using default models.\")\n return IBM_WATSONX_DEFAULT_MODELS\n\n inputs = [\n DropdownInput(\n name=\"provider\",\n display_name=\"Model Provider\",\n options=[\"OpenAI\", \"Anthropic\", \"Google\", \"IBM watsonx.ai\", \"Ollama\"],\n value=\"OpenAI\",\n info=\"Select the model provider\",\n real_time_refresh=True,\n options_metadata=[\n {\"icon\": \"OpenAI\"},\n {\"icon\": \"Anthropic\"},\n {\"icon\": \"GoogleGenerativeAI\"},\n {\"icon\": \"WatsonxAI\"},\n {\"icon\": \"Ollama\"},\n ],\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n options=OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES,\n value=OPENAI_CHAT_MODEL_NAMES[0],\n info=\"Select the model to use\",\n real_time_refresh=True,\n refresh_button=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageTextInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n provider = self.provider\n model_name = self.model_name\n temperature = self.temperature\n stream = self.stream\n\n if provider == \"OpenAI\":\n if not self.api_key:\n msg = \"OpenAI API key is required when using OpenAI provider\"\n raise ValueError(msg)\n\n if model_name in OPENAI_REASONING_MODEL_NAMES:\n # reasoning models do not support temperature (yet)\n temperature = None\n\n return ChatOpenAI(\n model_name=model_name,\n temperature=temperature,\n streaming=stream,\n openai_api_key=self.api_key,\n )\n if provider == \"Anthropic\":\n if not self.api_key:\n msg = \"Anthropic API key is required when using Anthropic provider\"\n raise ValueError(msg)\n return ChatAnthropic(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n anthropic_api_key=self.api_key,\n )\n if provider == \"Google\":\n if not self.api_key:\n msg = \"Google API key is required when using Google provider\"\n raise ValueError(msg)\n return ChatGoogleGenerativeAIFixed(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n google_api_key=self.api_key,\n )\n if provider == \"IBM watsonx.ai\":\n if not self.api_key:\n msg = \"IBM API key is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.base_url_ibm_watsonx:\n msg = \"IBM watsonx API Endpoint is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.project_id:\n msg = \"IBM watsonx Project ID is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n return ChatWatsonx(\n apikey=SecretStr(self.api_key).get_secret_value(),\n url=self.base_url_ibm_watsonx,\n project_id=self.project_id,\n model_id=model_name,\n params={\n \"temperature\": temperature,\n },\n streaming=stream,\n )\n if provider == \"Ollama\":\n if not self.ollama_base_url:\n msg = \"Ollama API URL is required when using Ollama provider\"\n raise ValueError(msg)\n if not model_name:\n msg = \"Model name is required when using Ollama provider\"\n raise ValueError(msg)\n\n transformed_base_url = transform_localhost_url(self.ollama_base_url)\n\n # Check if URL contains /v1 suffix (OpenAI-compatible mode)\n if transformed_base_url and transformed_base_url.rstrip(\"/\").endswith(\"/v1\"):\n # Strip /v1 suffix and log warning\n transformed_base_url = transformed_base_url.rstrip(\"/\").removesuffix(\"/v1\")\n logger.warning(\n \"Detected '/v1' suffix in base URL. The Ollama component uses the native Ollama API, \"\n \"not the OpenAI-compatible API. The '/v1' suffix has been automatically removed. \"\n \"If you want to use the OpenAI-compatible API, please use the OpenAI component instead. \"\n \"Learn more at https://docs.ollama.com/openai#openai-compatibility\"\n )\n\n return ChatOllama(\n base_url=transformed_base_url,\n model=model_name,\n temperature=temperature,\n )\n msg = f\"Unknown provider: {provider}\"\n raise ValueError(msg)\n\n async def update_build_config(\n self, build_config: dotdict, field_value: Any, field_name: str | None = None\n ) -> dotdict:\n if field_name == \"provider\":\n if field_value == \"OpenAI\":\n build_config[\"model_name\"][\"options\"] = OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES\n build_config[\"model_name\"][\"value\"] = OPENAI_CHAT_MODEL_NAMES[0]\n build_config[\"api_key\"][\"display_name\"] = \"OpenAI API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Anthropic\":\n build_config[\"model_name\"][\"options\"] = ANTHROPIC_MODELS\n build_config[\"model_name\"][\"value\"] = ANTHROPIC_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Anthropic API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Google\":\n build_config[\"model_name\"][\"options\"] = GOOGLE_GENERATIVE_AI_MODELS\n build_config[\"model_name\"][\"value\"] = GOOGLE_GENERATIVE_AI_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Google API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"IBM watsonx.ai\":\n build_config[\"model_name\"][\"options\"] = IBM_WATSONX_DEFAULT_MODELS\n build_config[\"model_name\"][\"value\"] = IBM_WATSONX_DEFAULT_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"IBM API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = True\n build_config[\"project_id\"][\"show\"] = True\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Ollama\":\n # Fetch Ollama models from the API\n build_config[\"api_key\"][\"show\"] = False\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = True\n\n # Try multiple sources to get the URL (in order of preference):\n # 1. Instance attribute (already resolved from global/db)\n # 2. Build config value (may be a global variable reference)\n # 3. Default value\n ollama_url = getattr(self, \"ollama_base_url\", None)\n if not ollama_url:\n config_value = build_config[\"ollama_base_url\"].get(\"value\", DEFAULT_OLLAMA_URL)\n # If config_value looks like a variable name (all caps with underscores), use default\n is_variable_ref = (\n config_value\n and isinstance(config_value, str)\n and config_value.isupper()\n and \"_\" in config_value\n )\n if is_variable_ref:\n await logger.adebug(\n f\"Config value appears to be a variable reference: {config_value}, using default\"\n )\n ollama_url = DEFAULT_OLLAMA_URL\n else:\n ollama_url = config_value\n\n await logger.adebug(f\"Fetching Ollama models for provider switch. URL: {ollama_url}\")\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n except ValueError:\n await logger.awarning(\"Failed to fetch Ollama models. Setting empty options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {ollama_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif (\n field_name == \"base_url_ibm_watsonx\"\n and field_value\n and hasattr(self, \"provider\")\n and self.provider == \"IBM watsonx.ai\"\n ):\n # Fetch IBM models when base_url changes\n try:\n models = self.fetch_ibm_models(base_url=field_value)\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else IBM_WATSONX_DEFAULT_MODELS[0]\n info_message = f\"Updated model options: {len(models)} models found in {field_value}\"\n logger.info(info_message)\n except Exception: # noqa: BLE001\n logger.exception(\"Error updating IBM model options.\")\n elif field_name == \"ollama_base_url\":\n # Fetch Ollama models when ollama_base_url changes\n # Use the field_value directly since this is triggered when the field changes\n logger.debug(\n f\"Fetching Ollama models from updated URL: {build_config['ollama_base_url']} \\\n and value {self.ollama_base_url}\",\n )\n await logger.adebug(f\"Fetching Ollama models from updated URL: {self.ollama_base_url}\")\n if await is_valid_ollama_url(url=self.ollama_base_url):\n try:\n models = await get_ollama_models(\n base_url_value=self.ollama_base_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n info_message = f\"Updated model options: {len(models)} models found in {self.ollama_base_url}\"\n await logger.ainfo(info_message)\n except ValueError:\n await logger.awarning(\"Error updating Ollama model options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {self.ollama_base_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif field_name == \"model_name\":\n # Refresh Ollama models when model_name field is accessed\n if hasattr(self, \"provider\") and self.provider == \"Ollama\":\n ollama_url = getattr(self, \"ollama_base_url\", DEFAULT_OLLAMA_URL)\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n except ValueError:\n await logger.awarning(\"Failed to refresh Ollama models.\")\n build_config[\"model_name\"][\"options\"] = []\n else:\n build_config[\"model_name\"][\"options\"] = []\n\n # Hide system_message for o1 models - currently unsupported\n if field_value and field_value.startswith(\"o1\") and hasattr(self, \"provider\") and self.provider == \"OpenAI\":\n if \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = False\n elif \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = True\n return build_config\n"
|
|
1914
|
+
"value": "from lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.base.models.watsonx_constants import IBM_WATSONX_URLS\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, StrInput\nfrom lfx.io import MessageInput, ModelInput, MultilineInput, SecretStrInput, SliderInput\n\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n return get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n temperature=self.temperature,\n stream=self.stream,\n )\n\n def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):\n \"\"\"Dynamically update build config with user-filtered model options.\"\"\"\n return update_model_options_in_build_config(\n component=self,\n build_config=build_config,\n cache_key_prefix=\"language_model_options\",\n get_options_func=get_language_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n"
|
|
1915
1915
|
},
|
|
1916
1916
|
"input_value": {
|
|
1917
1917
|
"_input_type": "MessageInput",
|
|
@@ -961,7 +961,7 @@
|
|
|
961
961
|
"show": true,
|
|
962
962
|
"title_case": false,
|
|
963
963
|
"type": "code",
|
|
964
|
-
"value": "from typing import Any\n\nimport requests\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_ibm import ChatWatsonx\nfrom langchain_ollama import ChatOllama\nfrom langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom lfx.base.models.anthropic_constants import ANTHROPIC_MODELS\nfrom lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS\nfrom lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed\nfrom lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.model_utils import get_ollama_models, is_valid_ollama_url\nfrom lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, MessageTextInput, StrInput\nfrom lfx.io import DropdownInput, MessageInput, MultilineInput, SecretStrInput, SliderInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.utils.util import transform_localhost_url\n\n# IBM watsonx.ai constants\nIBM_WATSONX_DEFAULT_MODELS = [\"ibm/granite-3-2b-instruct\", \"ibm/granite-3-8b-instruct\", \"ibm/granite-13b-instruct-v2\"]\nIBM_WATSONX_URLS = [\n \"https://us-south.ml.cloud.ibm.com\",\n \"https://eu-de.ml.cloud.ibm.com\",\n \"https://eu-gb.ml.cloud.ibm.com\",\n \"https://au-syd.ml.cloud.ibm.com\",\n \"https://jp-tok.ml.cloud.ibm.com\",\n \"https://ca-tor.ml.cloud.ibm.com\",\n]\n\n# Ollama API constants\nHTTP_STATUS_OK = 200\nJSON_MODELS_KEY = \"models\"\nJSON_NAME_KEY = \"name\"\nJSON_CAPABILITIES_KEY = \"capabilities\"\nDESIRED_CAPABILITY = \"completion\"\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n @staticmethod\n def fetch_ibm_models(base_url: str) -> list[str]:\n \"\"\"Fetch available models from the watsonx.ai API.\"\"\"\n try:\n endpoint = f\"{base_url}/ml/v1/foundation_model_specs\"\n params = {\"version\": \"2024-09-16\", \"filters\": \"function_text_chat,!lifecycle_withdrawn\"}\n response = requests.get(endpoint, params=params, timeout=10)\n response.raise_for_status()\n data = response.json()\n models = [model[\"model_id\"] for model in data.get(\"resources\", [])]\n return sorted(models)\n except Exception: # noqa: BLE001\n logger.exception(\"Error fetching IBM watsonx models. Using default models.\")\n return IBM_WATSONX_DEFAULT_MODELS\n\n inputs = [\n DropdownInput(\n name=\"provider\",\n display_name=\"Model Provider\",\n options=[\"OpenAI\", \"Anthropic\", \"Google\", \"IBM watsonx.ai\", \"Ollama\"],\n value=\"OpenAI\",\n info=\"Select the model provider\",\n real_time_refresh=True,\n options_metadata=[\n {\"icon\": \"OpenAI\"},\n {\"icon\": \"Anthropic\"},\n {\"icon\": \"GoogleGenerativeAI\"},\n {\"icon\": \"WatsonxAI\"},\n {\"icon\": \"Ollama\"},\n ],\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n options=OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES,\n value=OPENAI_CHAT_MODEL_NAMES[0],\n info=\"Select the model to use\",\n real_time_refresh=True,\n refresh_button=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageTextInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n provider = self.provider\n model_name = self.model_name\n temperature = self.temperature\n stream = self.stream\n\n if provider == \"OpenAI\":\n if not self.api_key:\n msg = \"OpenAI API key is required when using OpenAI provider\"\n raise ValueError(msg)\n\n if model_name in OPENAI_REASONING_MODEL_NAMES:\n # reasoning models do not support temperature (yet)\n temperature = None\n\n return ChatOpenAI(\n model_name=model_name,\n temperature=temperature,\n streaming=stream,\n openai_api_key=self.api_key,\n )\n if provider == \"Anthropic\":\n if not self.api_key:\n msg = \"Anthropic API key is required when using Anthropic provider\"\n raise ValueError(msg)\n return ChatAnthropic(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n anthropic_api_key=self.api_key,\n )\n if provider == \"Google\":\n if not self.api_key:\n msg = \"Google API key is required when using Google provider\"\n raise ValueError(msg)\n return ChatGoogleGenerativeAIFixed(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n google_api_key=self.api_key,\n )\n if provider == \"IBM watsonx.ai\":\n if not self.api_key:\n msg = \"IBM API key is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.base_url_ibm_watsonx:\n msg = \"IBM watsonx API Endpoint is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.project_id:\n msg = \"IBM watsonx Project ID is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n return ChatWatsonx(\n apikey=SecretStr(self.api_key).get_secret_value(),\n url=self.base_url_ibm_watsonx,\n project_id=self.project_id,\n model_id=model_name,\n params={\n \"temperature\": temperature,\n },\n streaming=stream,\n )\n if provider == \"Ollama\":\n if not self.ollama_base_url:\n msg = \"Ollama API URL is required when using Ollama provider\"\n raise ValueError(msg)\n if not model_name:\n msg = \"Model name is required when using Ollama provider\"\n raise ValueError(msg)\n\n transformed_base_url = transform_localhost_url(self.ollama_base_url)\n\n # Check if URL contains /v1 suffix (OpenAI-compatible mode)\n if transformed_base_url and transformed_base_url.rstrip(\"/\").endswith(\"/v1\"):\n # Strip /v1 suffix and log warning\n transformed_base_url = transformed_base_url.rstrip(\"/\").removesuffix(\"/v1\")\n logger.warning(\n \"Detected '/v1' suffix in base URL. The Ollama component uses the native Ollama API, \"\n \"not the OpenAI-compatible API. The '/v1' suffix has been automatically removed. \"\n \"If you want to use the OpenAI-compatible API, please use the OpenAI component instead. \"\n \"Learn more at https://docs.ollama.com/openai#openai-compatibility\"\n )\n\n return ChatOllama(\n base_url=transformed_base_url,\n model=model_name,\n temperature=temperature,\n )\n msg = f\"Unknown provider: {provider}\"\n raise ValueError(msg)\n\n async def update_build_config(\n self, build_config: dotdict, field_value: Any, field_name: str | None = None\n ) -> dotdict:\n if field_name == \"provider\":\n if field_value == \"OpenAI\":\n build_config[\"model_name\"][\"options\"] = OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES\n build_config[\"model_name\"][\"value\"] = OPENAI_CHAT_MODEL_NAMES[0]\n build_config[\"api_key\"][\"display_name\"] = \"OpenAI API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Anthropic\":\n build_config[\"model_name\"][\"options\"] = ANTHROPIC_MODELS\n build_config[\"model_name\"][\"value\"] = ANTHROPIC_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Anthropic API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Google\":\n build_config[\"model_name\"][\"options\"] = GOOGLE_GENERATIVE_AI_MODELS\n build_config[\"model_name\"][\"value\"] = GOOGLE_GENERATIVE_AI_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Google API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"IBM watsonx.ai\":\n build_config[\"model_name\"][\"options\"] = IBM_WATSONX_DEFAULT_MODELS\n build_config[\"model_name\"][\"value\"] = IBM_WATSONX_DEFAULT_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"IBM API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = True\n build_config[\"project_id\"][\"show\"] = True\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Ollama\":\n # Fetch Ollama models from the API\n build_config[\"api_key\"][\"show\"] = False\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = True\n\n # Try multiple sources to get the URL (in order of preference):\n # 1. Instance attribute (already resolved from global/db)\n # 2. Build config value (may be a global variable reference)\n # 3. Default value\n ollama_url = getattr(self, \"ollama_base_url\", None)\n if not ollama_url:\n config_value = build_config[\"ollama_base_url\"].get(\"value\", DEFAULT_OLLAMA_URL)\n # If config_value looks like a variable name (all caps with underscores), use default\n is_variable_ref = (\n config_value\n and isinstance(config_value, str)\n and config_value.isupper()\n and \"_\" in config_value\n )\n if is_variable_ref:\n await logger.adebug(\n f\"Config value appears to be a variable reference: {config_value}, using default\"\n )\n ollama_url = DEFAULT_OLLAMA_URL\n else:\n ollama_url = config_value\n\n await logger.adebug(f\"Fetching Ollama models for provider switch. URL: {ollama_url}\")\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n except ValueError:\n await logger.awarning(\"Failed to fetch Ollama models. Setting empty options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {ollama_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif (\n field_name == \"base_url_ibm_watsonx\"\n and field_value\n and hasattr(self, \"provider\")\n and self.provider == \"IBM watsonx.ai\"\n ):\n # Fetch IBM models when base_url changes\n try:\n models = self.fetch_ibm_models(base_url=field_value)\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else IBM_WATSONX_DEFAULT_MODELS[0]\n info_message = f\"Updated model options: {len(models)} models found in {field_value}\"\n logger.info(info_message)\n except Exception: # noqa: BLE001\n logger.exception(\"Error updating IBM model options.\")\n elif field_name == \"ollama_base_url\":\n # Fetch Ollama models when ollama_base_url changes\n # Use the field_value directly since this is triggered when the field changes\n logger.debug(\n f\"Fetching Ollama models from updated URL: {build_config['ollama_base_url']} \\\n and value {self.ollama_base_url}\",\n )\n await logger.adebug(f\"Fetching Ollama models from updated URL: {self.ollama_base_url}\")\n if await is_valid_ollama_url(url=self.ollama_base_url):\n try:\n models = await get_ollama_models(\n base_url_value=self.ollama_base_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n info_message = f\"Updated model options: {len(models)} models found in {self.ollama_base_url}\"\n await logger.ainfo(info_message)\n except ValueError:\n await logger.awarning(\"Error updating Ollama model options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {self.ollama_base_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif field_name == \"model_name\":\n # Refresh Ollama models when model_name field is accessed\n if hasattr(self, \"provider\") and self.provider == \"Ollama\":\n ollama_url = getattr(self, \"ollama_base_url\", DEFAULT_OLLAMA_URL)\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n except ValueError:\n await logger.awarning(\"Failed to refresh Ollama models.\")\n build_config[\"model_name\"][\"options\"] = []\n else:\n build_config[\"model_name\"][\"options\"] = []\n\n # Hide system_message for o1 models - currently unsupported\n if field_value and field_value.startswith(\"o1\") and hasattr(self, \"provider\") and self.provider == \"OpenAI\":\n if \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = False\n elif \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = True\n return build_config\n"
|
|
964
|
+
"value": "from lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.base.models.watsonx_constants import IBM_WATSONX_URLS\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, StrInput\nfrom lfx.io import MessageInput, ModelInput, MultilineInput, SecretStrInput, SliderInput\n\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n return get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n temperature=self.temperature,\n stream=self.stream,\n )\n\n def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):\n \"\"\"Dynamically update build config with user-filtered model options.\"\"\"\n return update_model_options_in_build_config(\n component=self,\n build_config=build_config,\n cache_key_prefix=\"language_model_options\",\n get_options_func=get_language_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n"
|
|
965
965
|
},
|
|
966
966
|
"input_value": {
|
|
967
967
|
"_input_type": "MessageInput",
|
|
@@ -1460,7 +1460,7 @@
|
|
|
1460
1460
|
"show": true,
|
|
1461
1461
|
"title_case": false,
|
|
1462
1462
|
"type": "code",
|
|
1463
|
-
"value": "from typing import Any\n\nimport requests\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_ibm import ChatWatsonx\nfrom langchain_ollama import ChatOllama\nfrom langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom lfx.base.models.anthropic_constants import ANTHROPIC_MODELS\nfrom lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS\nfrom lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed\nfrom lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.model_utils import get_ollama_models, is_valid_ollama_url\nfrom lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, MessageTextInput, StrInput\nfrom lfx.io import DropdownInput, MessageInput, MultilineInput, SecretStrInput, SliderInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.utils.util import transform_localhost_url\n\n# IBM watsonx.ai constants\nIBM_WATSONX_DEFAULT_MODELS = [\"ibm/granite-3-2b-instruct\", \"ibm/granite-3-8b-instruct\", \"ibm/granite-13b-instruct-v2\"]\nIBM_WATSONX_URLS = [\n \"https://us-south.ml.cloud.ibm.com\",\n \"https://eu-de.ml.cloud.ibm.com\",\n \"https://eu-gb.ml.cloud.ibm.com\",\n \"https://au-syd.ml.cloud.ibm.com\",\n \"https://jp-tok.ml.cloud.ibm.com\",\n \"https://ca-tor.ml.cloud.ibm.com\",\n]\n\n# Ollama API constants\nHTTP_STATUS_OK = 200\nJSON_MODELS_KEY = \"models\"\nJSON_NAME_KEY = \"name\"\nJSON_CAPABILITIES_KEY = \"capabilities\"\nDESIRED_CAPABILITY = \"completion\"\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n @staticmethod\n def fetch_ibm_models(base_url: str) -> list[str]:\n \"\"\"Fetch available models from the watsonx.ai API.\"\"\"\n try:\n endpoint = f\"{base_url}/ml/v1/foundation_model_specs\"\n params = {\"version\": \"2024-09-16\", \"filters\": \"function_text_chat,!lifecycle_withdrawn\"}\n response = requests.get(endpoint, params=params, timeout=10)\n response.raise_for_status()\n data = response.json()\n models = [model[\"model_id\"] for model in data.get(\"resources\", [])]\n return sorted(models)\n except Exception: # noqa: BLE001\n logger.exception(\"Error fetching IBM watsonx models. Using default models.\")\n return IBM_WATSONX_DEFAULT_MODELS\n\n inputs = [\n DropdownInput(\n name=\"provider\",\n display_name=\"Model Provider\",\n options=[\"OpenAI\", \"Anthropic\", \"Google\", \"IBM watsonx.ai\", \"Ollama\"],\n value=\"OpenAI\",\n info=\"Select the model provider\",\n real_time_refresh=True,\n options_metadata=[\n {\"icon\": \"OpenAI\"},\n {\"icon\": \"Anthropic\"},\n {\"icon\": \"GoogleGenerativeAI\"},\n {\"icon\": \"WatsonxAI\"},\n {\"icon\": \"Ollama\"},\n ],\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n options=OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES,\n value=OPENAI_CHAT_MODEL_NAMES[0],\n info=\"Select the model to use\",\n real_time_refresh=True,\n refresh_button=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageTextInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n provider = self.provider\n model_name = self.model_name\n temperature = self.temperature\n stream = self.stream\n\n if provider == \"OpenAI\":\n if not self.api_key:\n msg = \"OpenAI API key is required when using OpenAI provider\"\n raise ValueError(msg)\n\n if model_name in OPENAI_REASONING_MODEL_NAMES:\n # reasoning models do not support temperature (yet)\n temperature = None\n\n return ChatOpenAI(\n model_name=model_name,\n temperature=temperature,\n streaming=stream,\n openai_api_key=self.api_key,\n )\n if provider == \"Anthropic\":\n if not self.api_key:\n msg = \"Anthropic API key is required when using Anthropic provider\"\n raise ValueError(msg)\n return ChatAnthropic(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n anthropic_api_key=self.api_key,\n )\n if provider == \"Google\":\n if not self.api_key:\n msg = \"Google API key is required when using Google provider\"\n raise ValueError(msg)\n return ChatGoogleGenerativeAIFixed(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n google_api_key=self.api_key,\n )\n if provider == \"IBM watsonx.ai\":\n if not self.api_key:\n msg = \"IBM API key is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.base_url_ibm_watsonx:\n msg = \"IBM watsonx API Endpoint is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.project_id:\n msg = \"IBM watsonx Project ID is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n return ChatWatsonx(\n apikey=SecretStr(self.api_key).get_secret_value(),\n url=self.base_url_ibm_watsonx,\n project_id=self.project_id,\n model_id=model_name,\n params={\n \"temperature\": temperature,\n },\n streaming=stream,\n )\n if provider == \"Ollama\":\n if not self.ollama_base_url:\n msg = \"Ollama API URL is required when using Ollama provider\"\n raise ValueError(msg)\n if not model_name:\n msg = \"Model name is required when using Ollama provider\"\n raise ValueError(msg)\n\n transformed_base_url = transform_localhost_url(self.ollama_base_url)\n\n # Check if URL contains /v1 suffix (OpenAI-compatible mode)\n if transformed_base_url and transformed_base_url.rstrip(\"/\").endswith(\"/v1\"):\n # Strip /v1 suffix and log warning\n transformed_base_url = transformed_base_url.rstrip(\"/\").removesuffix(\"/v1\")\n logger.warning(\n \"Detected '/v1' suffix in base URL. The Ollama component uses the native Ollama API, \"\n \"not the OpenAI-compatible API. The '/v1' suffix has been automatically removed. \"\n \"If you want to use the OpenAI-compatible API, please use the OpenAI component instead. \"\n \"Learn more at https://docs.ollama.com/openai#openai-compatibility\"\n )\n\n return ChatOllama(\n base_url=transformed_base_url,\n model=model_name,\n temperature=temperature,\n )\n msg = f\"Unknown provider: {provider}\"\n raise ValueError(msg)\n\n async def update_build_config(\n self, build_config: dotdict, field_value: Any, field_name: str | None = None\n ) -> dotdict:\n if field_name == \"provider\":\n if field_value == \"OpenAI\":\n build_config[\"model_name\"][\"options\"] = OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES\n build_config[\"model_name\"][\"value\"] = OPENAI_CHAT_MODEL_NAMES[0]\n build_config[\"api_key\"][\"display_name\"] = \"OpenAI API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Anthropic\":\n build_config[\"model_name\"][\"options\"] = ANTHROPIC_MODELS\n build_config[\"model_name\"][\"value\"] = ANTHROPIC_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Anthropic API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Google\":\n build_config[\"model_name\"][\"options\"] = GOOGLE_GENERATIVE_AI_MODELS\n build_config[\"model_name\"][\"value\"] = GOOGLE_GENERATIVE_AI_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Google API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"IBM watsonx.ai\":\n build_config[\"model_name\"][\"options\"] = IBM_WATSONX_DEFAULT_MODELS\n build_config[\"model_name\"][\"value\"] = IBM_WATSONX_DEFAULT_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"IBM API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = True\n build_config[\"project_id\"][\"show\"] = True\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Ollama\":\n # Fetch Ollama models from the API\n build_config[\"api_key\"][\"show\"] = False\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = True\n\n # Try multiple sources to get the URL (in order of preference):\n # 1. Instance attribute (already resolved from global/db)\n # 2. Build config value (may be a global variable reference)\n # 3. Default value\n ollama_url = getattr(self, \"ollama_base_url\", None)\n if not ollama_url:\n config_value = build_config[\"ollama_base_url\"].get(\"value\", DEFAULT_OLLAMA_URL)\n # If config_value looks like a variable name (all caps with underscores), use default\n is_variable_ref = (\n config_value\n and isinstance(config_value, str)\n and config_value.isupper()\n and \"_\" in config_value\n )\n if is_variable_ref:\n await logger.adebug(\n f\"Config value appears to be a variable reference: {config_value}, using default\"\n )\n ollama_url = DEFAULT_OLLAMA_URL\n else:\n ollama_url = config_value\n\n await logger.adebug(f\"Fetching Ollama models for provider switch. URL: {ollama_url}\")\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n except ValueError:\n await logger.awarning(\"Failed to fetch Ollama models. Setting empty options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {ollama_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif (\n field_name == \"base_url_ibm_watsonx\"\n and field_value\n and hasattr(self, \"provider\")\n and self.provider == \"IBM watsonx.ai\"\n ):\n # Fetch IBM models when base_url changes\n try:\n models = self.fetch_ibm_models(base_url=field_value)\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else IBM_WATSONX_DEFAULT_MODELS[0]\n info_message = f\"Updated model options: {len(models)} models found in {field_value}\"\n logger.info(info_message)\n except Exception: # noqa: BLE001\n logger.exception(\"Error updating IBM model options.\")\n elif field_name == \"ollama_base_url\":\n # Fetch Ollama models when ollama_base_url changes\n # Use the field_value directly since this is triggered when the field changes\n logger.debug(\n f\"Fetching Ollama models from updated URL: {build_config['ollama_base_url']} \\\n and value {self.ollama_base_url}\",\n )\n await logger.adebug(f\"Fetching Ollama models from updated URL: {self.ollama_base_url}\")\n if await is_valid_ollama_url(url=self.ollama_base_url):\n try:\n models = await get_ollama_models(\n base_url_value=self.ollama_base_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n info_message = f\"Updated model options: {len(models)} models found in {self.ollama_base_url}\"\n await logger.ainfo(info_message)\n except ValueError:\n await logger.awarning(\"Error updating Ollama model options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {self.ollama_base_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif field_name == \"model_name\":\n # Refresh Ollama models when model_name field is accessed\n if hasattr(self, \"provider\") and self.provider == \"Ollama\":\n ollama_url = getattr(self, \"ollama_base_url\", DEFAULT_OLLAMA_URL)\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n except ValueError:\n await logger.awarning(\"Failed to refresh Ollama models.\")\n build_config[\"model_name\"][\"options\"] = []\n else:\n build_config[\"model_name\"][\"options\"] = []\n\n # Hide system_message for o1 models - currently unsupported\n if field_value and field_value.startswith(\"o1\") and hasattr(self, \"provider\") and self.provider == \"OpenAI\":\n if \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = False\n elif \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = True\n return build_config\n"
|
|
1463
|
+
"value": "from lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.base.models.watsonx_constants import IBM_WATSONX_URLS\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, StrInput\nfrom lfx.io import MessageInput, ModelInput, MultilineInput, SecretStrInput, SliderInput\n\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n return get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n temperature=self.temperature,\n stream=self.stream,\n )\n\n def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):\n \"\"\"Dynamically update build config with user-filtered model options.\"\"\"\n return update_model_options_in_build_config(\n component=self,\n build_config=build_config,\n cache_key_prefix=\"language_model_options\",\n get_options_func=get_language_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n"
|
|
1464
1464
|
},
|
|
1465
1465
|
"input_value": {
|
|
1466
1466
|
"_input_type": "MessageTextInput",
|
|
@@ -2625,7 +2625,7 @@
|
|
|
2625
2625
|
"show": true,
|
|
2626
2626
|
"title_case": false,
|
|
2627
2627
|
"type": "code",
|
|
2628
|
-
"value": "from typing import Any\n\nimport requests\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_ibm import ChatWatsonx\nfrom langchain_ollama import ChatOllama\nfrom langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom lfx.base.models.anthropic_constants import ANTHROPIC_MODELS\nfrom lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS\nfrom lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed\nfrom lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.model_utils import get_ollama_models, is_valid_ollama_url\nfrom lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, MessageTextInput, StrInput\nfrom lfx.io import DropdownInput, MessageInput, MultilineInput, SecretStrInput, SliderInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.utils.util import transform_localhost_url\n\n# IBM watsonx.ai constants\nIBM_WATSONX_DEFAULT_MODELS = [\"ibm/granite-3-2b-instruct\", \"ibm/granite-3-8b-instruct\", \"ibm/granite-13b-instruct-v2\"]\nIBM_WATSONX_URLS = [\n \"https://us-south.ml.cloud.ibm.com\",\n \"https://eu-de.ml.cloud.ibm.com\",\n \"https://eu-gb.ml.cloud.ibm.com\",\n \"https://au-syd.ml.cloud.ibm.com\",\n \"https://jp-tok.ml.cloud.ibm.com\",\n \"https://ca-tor.ml.cloud.ibm.com\",\n]\n\n# Ollama API constants\nHTTP_STATUS_OK = 200\nJSON_MODELS_KEY = \"models\"\nJSON_NAME_KEY = \"name\"\nJSON_CAPABILITIES_KEY = \"capabilities\"\nDESIRED_CAPABILITY = \"completion\"\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n @staticmethod\n def fetch_ibm_models(base_url: str) -> list[str]:\n \"\"\"Fetch available models from the watsonx.ai API.\"\"\"\n try:\n endpoint = f\"{base_url}/ml/v1/foundation_model_specs\"\n params = {\"version\": \"2024-09-16\", \"filters\": \"function_text_chat,!lifecycle_withdrawn\"}\n response = requests.get(endpoint, params=params, timeout=10)\n response.raise_for_status()\n data = response.json()\n models = [model[\"model_id\"] for model in data.get(\"resources\", [])]\n return sorted(models)\n except Exception: # noqa: BLE001\n logger.exception(\"Error fetching IBM watsonx models. Using default models.\")\n return IBM_WATSONX_DEFAULT_MODELS\n\n inputs = [\n DropdownInput(\n name=\"provider\",\n display_name=\"Model Provider\",\n options=[\"OpenAI\", \"Anthropic\", \"Google\", \"IBM watsonx.ai\", \"Ollama\"],\n value=\"OpenAI\",\n info=\"Select the model provider\",\n real_time_refresh=True,\n options_metadata=[\n {\"icon\": \"OpenAI\"},\n {\"icon\": \"Anthropic\"},\n {\"icon\": \"GoogleGenerativeAI\"},\n {\"icon\": \"WatsonxAI\"},\n {\"icon\": \"Ollama\"},\n ],\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n options=OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES,\n value=OPENAI_CHAT_MODEL_NAMES[0],\n info=\"Select the model to use\",\n real_time_refresh=True,\n refresh_button=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageTextInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n provider = self.provider\n model_name = self.model_name\n temperature = self.temperature\n stream = self.stream\n\n if provider == \"OpenAI\":\n if not self.api_key:\n msg = \"OpenAI API key is required when using OpenAI provider\"\n raise ValueError(msg)\n\n if model_name in OPENAI_REASONING_MODEL_NAMES:\n # reasoning models do not support temperature (yet)\n temperature = None\n\n return ChatOpenAI(\n model_name=model_name,\n temperature=temperature,\n streaming=stream,\n openai_api_key=self.api_key,\n )\n if provider == \"Anthropic\":\n if not self.api_key:\n msg = \"Anthropic API key is required when using Anthropic provider\"\n raise ValueError(msg)\n return ChatAnthropic(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n anthropic_api_key=self.api_key,\n )\n if provider == \"Google\":\n if not self.api_key:\n msg = \"Google API key is required when using Google provider\"\n raise ValueError(msg)\n return ChatGoogleGenerativeAIFixed(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n google_api_key=self.api_key,\n )\n if provider == \"IBM watsonx.ai\":\n if not self.api_key:\n msg = \"IBM API key is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.base_url_ibm_watsonx:\n msg = \"IBM watsonx API Endpoint is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.project_id:\n msg = \"IBM watsonx Project ID is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n return ChatWatsonx(\n apikey=SecretStr(self.api_key).get_secret_value(),\n url=self.base_url_ibm_watsonx,\n project_id=self.project_id,\n model_id=model_name,\n params={\n \"temperature\": temperature,\n },\n streaming=stream,\n )\n if provider == \"Ollama\":\n if not self.ollama_base_url:\n msg = \"Ollama API URL is required when using Ollama provider\"\n raise ValueError(msg)\n if not model_name:\n msg = \"Model name is required when using Ollama provider\"\n raise ValueError(msg)\n\n transformed_base_url = transform_localhost_url(self.ollama_base_url)\n\n # Check if URL contains /v1 suffix (OpenAI-compatible mode)\n if transformed_base_url and transformed_base_url.rstrip(\"/\").endswith(\"/v1\"):\n # Strip /v1 suffix and log warning\n transformed_base_url = transformed_base_url.rstrip(\"/\").removesuffix(\"/v1\")\n logger.warning(\n \"Detected '/v1' suffix in base URL. The Ollama component uses the native Ollama API, \"\n \"not the OpenAI-compatible API. The '/v1' suffix has been automatically removed. \"\n \"If you want to use the OpenAI-compatible API, please use the OpenAI component instead. \"\n \"Learn more at https://docs.ollama.com/openai#openai-compatibility\"\n )\n\n return ChatOllama(\n base_url=transformed_base_url,\n model=model_name,\n temperature=temperature,\n )\n msg = f\"Unknown provider: {provider}\"\n raise ValueError(msg)\n\n async def update_build_config(\n self, build_config: dotdict, field_value: Any, field_name: str | None = None\n ) -> dotdict:\n if field_name == \"provider\":\n if field_value == \"OpenAI\":\n build_config[\"model_name\"][\"options\"] = OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES\n build_config[\"model_name\"][\"value\"] = OPENAI_CHAT_MODEL_NAMES[0]\n build_config[\"api_key\"][\"display_name\"] = \"OpenAI API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Anthropic\":\n build_config[\"model_name\"][\"options\"] = ANTHROPIC_MODELS\n build_config[\"model_name\"][\"value\"] = ANTHROPIC_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Anthropic API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Google\":\n build_config[\"model_name\"][\"options\"] = GOOGLE_GENERATIVE_AI_MODELS\n build_config[\"model_name\"][\"value\"] = GOOGLE_GENERATIVE_AI_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Google API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"IBM watsonx.ai\":\n build_config[\"model_name\"][\"options\"] = IBM_WATSONX_DEFAULT_MODELS\n build_config[\"model_name\"][\"value\"] = IBM_WATSONX_DEFAULT_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"IBM API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = True\n build_config[\"project_id\"][\"show\"] = True\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Ollama\":\n # Fetch Ollama models from the API\n build_config[\"api_key\"][\"show\"] = False\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = True\n\n # Try multiple sources to get the URL (in order of preference):\n # 1. Instance attribute (already resolved from global/db)\n # 2. Build config value (may be a global variable reference)\n # 3. Default value\n ollama_url = getattr(self, \"ollama_base_url\", None)\n if not ollama_url:\n config_value = build_config[\"ollama_base_url\"].get(\"value\", DEFAULT_OLLAMA_URL)\n # If config_value looks like a variable name (all caps with underscores), use default\n is_variable_ref = (\n config_value\n and isinstance(config_value, str)\n and config_value.isupper()\n and \"_\" in config_value\n )\n if is_variable_ref:\n await logger.adebug(\n f\"Config value appears to be a variable reference: {config_value}, using default\"\n )\n ollama_url = DEFAULT_OLLAMA_URL\n else:\n ollama_url = config_value\n\n await logger.adebug(f\"Fetching Ollama models for provider switch. URL: {ollama_url}\")\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n except ValueError:\n await logger.awarning(\"Failed to fetch Ollama models. Setting empty options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {ollama_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif (\n field_name == \"base_url_ibm_watsonx\"\n and field_value\n and hasattr(self, \"provider\")\n and self.provider == \"IBM watsonx.ai\"\n ):\n # Fetch IBM models when base_url changes\n try:\n models = self.fetch_ibm_models(base_url=field_value)\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else IBM_WATSONX_DEFAULT_MODELS[0]\n info_message = f\"Updated model options: {len(models)} models found in {field_value}\"\n logger.info(info_message)\n except Exception: # noqa: BLE001\n logger.exception(\"Error updating IBM model options.\")\n elif field_name == \"ollama_base_url\":\n # Fetch Ollama models when ollama_base_url changes\n # Use the field_value directly since this is triggered when the field changes\n logger.debug(\n f\"Fetching Ollama models from updated URL: {build_config['ollama_base_url']} \\\n and value {self.ollama_base_url}\",\n )\n await logger.adebug(f\"Fetching Ollama models from updated URL: {self.ollama_base_url}\")\n if await is_valid_ollama_url(url=self.ollama_base_url):\n try:\n models = await get_ollama_models(\n base_url_value=self.ollama_base_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n info_message = f\"Updated model options: {len(models)} models found in {self.ollama_base_url}\"\n await logger.ainfo(info_message)\n except ValueError:\n await logger.awarning(\"Error updating Ollama model options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {self.ollama_base_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif field_name == \"model_name\":\n # Refresh Ollama models when model_name field is accessed\n if hasattr(self, \"provider\") and self.provider == \"Ollama\":\n ollama_url = getattr(self, \"ollama_base_url\", DEFAULT_OLLAMA_URL)\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n except ValueError:\n await logger.awarning(\"Failed to refresh Ollama models.\")\n build_config[\"model_name\"][\"options\"] = []\n else:\n build_config[\"model_name\"][\"options\"] = []\n\n # Hide system_message for o1 models - currently unsupported\n if field_value and field_value.startswith(\"o1\") and hasattr(self, \"provider\") and self.provider == \"OpenAI\":\n if \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = False\n elif \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = True\n return build_config\n"
|
|
2628
|
+
"value": "from lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.base.models.watsonx_constants import IBM_WATSONX_URLS\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, StrInput\nfrom lfx.io import MessageInput, ModelInput, MultilineInput, SecretStrInput, SliderInput\n\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n return get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n temperature=self.temperature,\n stream=self.stream,\n )\n\n def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):\n \"\"\"Dynamically update build config with user-filtered model options.\"\"\"\n return update_model_options_in_build_config(\n component=self,\n build_config=build_config,\n cache_key_prefix=\"language_model_options\",\n get_options_func=get_language_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n"
|
|
2629
2629
|
},
|
|
2630
2630
|
"input_value": {
|
|
2631
2631
|
"_input_type": "MessageInput",
|
|
@@ -985,7 +985,7 @@
|
|
|
985
985
|
"show": true,
|
|
986
986
|
"title_case": false,
|
|
987
987
|
"type": "code",
|
|
988
|
-
"value": "from typing import Any\n\nimport requests\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_ibm import ChatWatsonx\nfrom langchain_ollama import ChatOllama\nfrom langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom lfx.base.models.anthropic_constants import ANTHROPIC_MODELS\nfrom lfx.base.models.google_generative_ai_constants import GOOGLE_GENERATIVE_AI_MODELS\nfrom lfx.base.models.google_generative_ai_model import ChatGoogleGenerativeAIFixed\nfrom lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.model_utils import get_ollama_models, is_valid_ollama_url\nfrom lfx.base.models.openai_constants import OPENAI_CHAT_MODEL_NAMES, OPENAI_REASONING_MODEL_NAMES\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, MessageTextInput, StrInput\nfrom lfx.io import DropdownInput, MessageInput, MultilineInput, SecretStrInput, SliderInput\nfrom lfx.log.logger import logger\nfrom lfx.schema.dotdict import dotdict\nfrom lfx.utils.util import transform_localhost_url\n\n# IBM watsonx.ai constants\nIBM_WATSONX_DEFAULT_MODELS = [\"ibm/granite-3-2b-instruct\", \"ibm/granite-3-8b-instruct\", \"ibm/granite-13b-instruct-v2\"]\nIBM_WATSONX_URLS = [\n \"https://us-south.ml.cloud.ibm.com\",\n \"https://eu-de.ml.cloud.ibm.com\",\n \"https://eu-gb.ml.cloud.ibm.com\",\n \"https://au-syd.ml.cloud.ibm.com\",\n \"https://jp-tok.ml.cloud.ibm.com\",\n \"https://ca-tor.ml.cloud.ibm.com\",\n]\n\n# Ollama API constants\nHTTP_STATUS_OK = 200\nJSON_MODELS_KEY = \"models\"\nJSON_NAME_KEY = \"name\"\nJSON_CAPABILITIES_KEY = \"capabilities\"\nDESIRED_CAPABILITY = \"completion\"\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n @staticmethod\n def fetch_ibm_models(base_url: str) -> list[str]:\n \"\"\"Fetch available models from the watsonx.ai API.\"\"\"\n try:\n endpoint = f\"{base_url}/ml/v1/foundation_model_specs\"\n params = {\"version\": \"2024-09-16\", \"filters\": \"function_text_chat,!lifecycle_withdrawn\"}\n response = requests.get(endpoint, params=params, timeout=10)\n response.raise_for_status()\n data = response.json()\n models = [model[\"model_id\"] for model in data.get(\"resources\", [])]\n return sorted(models)\n except Exception: # noqa: BLE001\n logger.exception(\"Error fetching IBM watsonx models. Using default models.\")\n return IBM_WATSONX_DEFAULT_MODELS\n\n inputs = [\n DropdownInput(\n name=\"provider\",\n display_name=\"Model Provider\",\n options=[\"OpenAI\", \"Anthropic\", \"Google\", \"IBM watsonx.ai\", \"Ollama\"],\n value=\"OpenAI\",\n info=\"Select the model provider\",\n real_time_refresh=True,\n options_metadata=[\n {\"icon\": \"OpenAI\"},\n {\"icon\": \"Anthropic\"},\n {\"icon\": \"GoogleGenerativeAI\"},\n {\"icon\": \"WatsonxAI\"},\n {\"icon\": \"Ollama\"},\n ],\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n options=OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES,\n value=OPENAI_CHAT_MODEL_NAMES[0],\n info=\"Select the model to use\",\n real_time_refresh=True,\n refresh_button=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageTextInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n provider = self.provider\n model_name = self.model_name\n temperature = self.temperature\n stream = self.stream\n\n if provider == \"OpenAI\":\n if not self.api_key:\n msg = \"OpenAI API key is required when using OpenAI provider\"\n raise ValueError(msg)\n\n if model_name in OPENAI_REASONING_MODEL_NAMES:\n # reasoning models do not support temperature (yet)\n temperature = None\n\n return ChatOpenAI(\n model_name=model_name,\n temperature=temperature,\n streaming=stream,\n openai_api_key=self.api_key,\n )\n if provider == \"Anthropic\":\n if not self.api_key:\n msg = \"Anthropic API key is required when using Anthropic provider\"\n raise ValueError(msg)\n return ChatAnthropic(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n anthropic_api_key=self.api_key,\n )\n if provider == \"Google\":\n if not self.api_key:\n msg = \"Google API key is required when using Google provider\"\n raise ValueError(msg)\n return ChatGoogleGenerativeAIFixed(\n model=model_name,\n temperature=temperature,\n streaming=stream,\n google_api_key=self.api_key,\n )\n if provider == \"IBM watsonx.ai\":\n if not self.api_key:\n msg = \"IBM API key is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.base_url_ibm_watsonx:\n msg = \"IBM watsonx API Endpoint is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n if not self.project_id:\n msg = \"IBM watsonx Project ID is required when using IBM watsonx.ai provider\"\n raise ValueError(msg)\n return ChatWatsonx(\n apikey=SecretStr(self.api_key).get_secret_value(),\n url=self.base_url_ibm_watsonx,\n project_id=self.project_id,\n model_id=model_name,\n params={\n \"temperature\": temperature,\n },\n streaming=stream,\n )\n if provider == \"Ollama\":\n if not self.ollama_base_url:\n msg = \"Ollama API URL is required when using Ollama provider\"\n raise ValueError(msg)\n if not model_name:\n msg = \"Model name is required when using Ollama provider\"\n raise ValueError(msg)\n\n transformed_base_url = transform_localhost_url(self.ollama_base_url)\n\n # Check if URL contains /v1 suffix (OpenAI-compatible mode)\n if transformed_base_url and transformed_base_url.rstrip(\"/\").endswith(\"/v1\"):\n # Strip /v1 suffix and log warning\n transformed_base_url = transformed_base_url.rstrip(\"/\").removesuffix(\"/v1\")\n logger.warning(\n \"Detected '/v1' suffix in base URL. The Ollama component uses the native Ollama API, \"\n \"not the OpenAI-compatible API. The '/v1' suffix has been automatically removed. \"\n \"If you want to use the OpenAI-compatible API, please use the OpenAI component instead. \"\n \"Learn more at https://docs.ollama.com/openai#openai-compatibility\"\n )\n\n return ChatOllama(\n base_url=transformed_base_url,\n model=model_name,\n temperature=temperature,\n )\n msg = f\"Unknown provider: {provider}\"\n raise ValueError(msg)\n\n async def update_build_config(\n self, build_config: dotdict, field_value: Any, field_name: str | None = None\n ) -> dotdict:\n if field_name == \"provider\":\n if field_value == \"OpenAI\":\n build_config[\"model_name\"][\"options\"] = OPENAI_CHAT_MODEL_NAMES + OPENAI_REASONING_MODEL_NAMES\n build_config[\"model_name\"][\"value\"] = OPENAI_CHAT_MODEL_NAMES[0]\n build_config[\"api_key\"][\"display_name\"] = \"OpenAI API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Anthropic\":\n build_config[\"model_name\"][\"options\"] = ANTHROPIC_MODELS\n build_config[\"model_name\"][\"value\"] = ANTHROPIC_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Anthropic API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Google\":\n build_config[\"model_name\"][\"options\"] = GOOGLE_GENERATIVE_AI_MODELS\n build_config[\"model_name\"][\"value\"] = GOOGLE_GENERATIVE_AI_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"Google API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"IBM watsonx.ai\":\n build_config[\"model_name\"][\"options\"] = IBM_WATSONX_DEFAULT_MODELS\n build_config[\"model_name\"][\"value\"] = IBM_WATSONX_DEFAULT_MODELS[0]\n build_config[\"api_key\"][\"display_name\"] = \"IBM API Key\"\n build_config[\"api_key\"][\"show\"] = True\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = True\n build_config[\"project_id\"][\"show\"] = True\n build_config[\"ollama_base_url\"][\"show\"] = False\n elif field_value == \"Ollama\":\n # Fetch Ollama models from the API\n build_config[\"api_key\"][\"show\"] = False\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = False\n build_config[\"project_id\"][\"show\"] = False\n build_config[\"ollama_base_url\"][\"show\"] = True\n\n # Try multiple sources to get the URL (in order of preference):\n # 1. Instance attribute (already resolved from global/db)\n # 2. Build config value (may be a global variable reference)\n # 3. Default value\n ollama_url = getattr(self, \"ollama_base_url\", None)\n if not ollama_url:\n config_value = build_config[\"ollama_base_url\"].get(\"value\", DEFAULT_OLLAMA_URL)\n # If config_value looks like a variable name (all caps with underscores), use default\n is_variable_ref = (\n config_value\n and isinstance(config_value, str)\n and config_value.isupper()\n and \"_\" in config_value\n )\n if is_variable_ref:\n await logger.adebug(\n f\"Config value appears to be a variable reference: {config_value}, using default\"\n )\n ollama_url = DEFAULT_OLLAMA_URL\n else:\n ollama_url = config_value\n\n await logger.adebug(f\"Fetching Ollama models for provider switch. URL: {ollama_url}\")\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n except ValueError:\n await logger.awarning(\"Failed to fetch Ollama models. Setting empty options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {ollama_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif (\n field_name == \"base_url_ibm_watsonx\"\n and field_value\n and hasattr(self, \"provider\")\n and self.provider == \"IBM watsonx.ai\"\n ):\n # Fetch IBM models when base_url changes\n try:\n models = self.fetch_ibm_models(base_url=field_value)\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else IBM_WATSONX_DEFAULT_MODELS[0]\n info_message = f\"Updated model options: {len(models)} models found in {field_value}\"\n logger.info(info_message)\n except Exception: # noqa: BLE001\n logger.exception(\"Error updating IBM model options.\")\n elif field_name == \"ollama_base_url\":\n # Fetch Ollama models when ollama_base_url changes\n # Use the field_value directly since this is triggered when the field changes\n logger.debug(\n f\"Fetching Ollama models from updated URL: {build_config['ollama_base_url']} \\\n and value {self.ollama_base_url}\",\n )\n await logger.adebug(f\"Fetching Ollama models from updated URL: {self.ollama_base_url}\")\n if await is_valid_ollama_url(url=self.ollama_base_url):\n try:\n models = await get_ollama_models(\n base_url_value=self.ollama_base_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n build_config[\"model_name\"][\"value\"] = models[0] if models else \"\"\n info_message = f\"Updated model options: {len(models)} models found in {self.ollama_base_url}\"\n await logger.ainfo(info_message)\n except ValueError:\n await logger.awarning(\"Error updating Ollama model options.\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n else:\n await logger.awarning(f\"Invalid Ollama URL: {self.ollama_base_url}\")\n build_config[\"model_name\"][\"options\"] = []\n build_config[\"model_name\"][\"value\"] = \"\"\n elif field_name == \"model_name\":\n # Refresh Ollama models when model_name field is accessed\n if hasattr(self, \"provider\") and self.provider == \"Ollama\":\n ollama_url = getattr(self, \"ollama_base_url\", DEFAULT_OLLAMA_URL)\n if await is_valid_ollama_url(url=ollama_url):\n try:\n models = await get_ollama_models(\n base_url_value=ollama_url,\n desired_capability=DESIRED_CAPABILITY,\n json_models_key=JSON_MODELS_KEY,\n json_name_key=JSON_NAME_KEY,\n json_capabilities_key=JSON_CAPABILITIES_KEY,\n )\n build_config[\"model_name\"][\"options\"] = models\n except ValueError:\n await logger.awarning(\"Failed to refresh Ollama models.\")\n build_config[\"model_name\"][\"options\"] = []\n else:\n build_config[\"model_name\"][\"options\"] = []\n\n # Hide system_message for o1 models - currently unsupported\n if field_value and field_value.startswith(\"o1\") and hasattr(self, \"provider\") and self.provider == \"OpenAI\":\n if \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = False\n elif \"system_message\" in build_config:\n build_config[\"system_message\"][\"show\"] = True\n return build_config\n"
|
|
988
|
+
"value": "from lfx.base.models.model import LCModelComponent\nfrom lfx.base.models.unified_models import (\n get_language_model_options,\n get_llm,\n update_model_options_in_build_config,\n)\nfrom lfx.base.models.watsonx_constants import IBM_WATSONX_URLS\nfrom lfx.field_typing import LanguageModel\nfrom lfx.field_typing.range_spec import RangeSpec\nfrom lfx.inputs.inputs import BoolInput, DropdownInput, StrInput\nfrom lfx.io import MessageInput, ModelInput, MultilineInput, SecretStrInput, SliderInput\n\nDEFAULT_OLLAMA_URL = \"http://localhost:11434\"\n\n\nclass LanguageModelComponent(LCModelComponent):\n display_name = \"Language Model\"\n description = \"Runs a language model given a specified provider.\"\n documentation: str = \"https://docs.langflow.org/components-models\"\n icon = \"brain-circuit\"\n category = \"models\"\n priority = 0 # Set priority to 0 to make it appear first\n\n inputs = [\n ModelInput(\n name=\"model\",\n display_name=\"Language Model\",\n info=\"Select your model provider\",\n real_time_refresh=True,\n required=True,\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"API Key\",\n info=\"Model Provider API key\",\n required=False,\n show=True,\n real_time_refresh=True,\n advanced=True,\n ),\n DropdownInput(\n name=\"base_url_ibm_watsonx\",\n display_name=\"watsonx API Endpoint\",\n info=\"The base URL of the API (IBM watsonx.ai only)\",\n options=IBM_WATSONX_URLS,\n value=IBM_WATSONX_URLS[0],\n show=False,\n real_time_refresh=True,\n ),\n StrInput(\n name=\"project_id\",\n display_name=\"watsonx Project ID\",\n info=\"The project ID associated with the foundation model (IBM watsonx.ai only)\",\n show=False,\n required=False,\n ),\n MessageInput(\n name=\"ollama_base_url\",\n display_name=\"Ollama API URL\",\n info=f\"Endpoint of the Ollama API (Ollama only). Defaults to {DEFAULT_OLLAMA_URL}\",\n value=DEFAULT_OLLAMA_URL,\n show=False,\n real_time_refresh=True,\n load_from_db=True,\n ),\n MessageInput(\n name=\"input_value\",\n display_name=\"Input\",\n info=\"The input text to send to the model\",\n ),\n MultilineInput(\n name=\"system_message\",\n display_name=\"System Message\",\n info=\"A system message that helps set the behavior of the assistant\",\n advanced=False,\n ),\n BoolInput(\n name=\"stream\",\n display_name=\"Stream\",\n info=\"Whether to stream the response\",\n value=False,\n advanced=True,\n ),\n SliderInput(\n name=\"temperature\",\n display_name=\"Temperature\",\n value=0.1,\n info=\"Controls randomness in responses\",\n range_spec=RangeSpec(min=0, max=1, step=0.01),\n advanced=True,\n ),\n ]\n\n def build_model(self) -> LanguageModel:\n return get_llm(\n model=self.model,\n user_id=self.user_id,\n api_key=self.api_key,\n temperature=self.temperature,\n stream=self.stream,\n )\n\n def update_build_config(self, build_config: dict, field_value: str, field_name: str | None = None):\n \"\"\"Dynamically update build config with user-filtered model options.\"\"\"\n return update_model_options_in_build_config(\n component=self,\n build_config=build_config,\n cache_key_prefix=\"language_model_options\",\n get_options_func=get_language_model_options,\n field_name=field_name,\n field_value=field_value,\n )\n"
|
|
989
989
|
},
|
|
990
990
|
"input_value": {
|
|
991
991
|
"_input_type": "MessageInput",
|