langflow-base-nightly 1.7.1.dev0__py3-none-any.whl → 1.7.1.dev1__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/frontend/assets/SlackIcon-CDt9ruDi.js +1 -0
- langflow/frontend/assets/Wikipedia-CzZweN4V.js +1 -0
- langflow/frontend/assets/Wolfram-CZ-rQ_dz.js +1 -0
- langflow/frontend/assets/a-arrow-down-CwPpd9H4.js +6 -0
- langflow/frontend/assets/a-arrow-up-jM3y2OLL.js +6 -0
- langflow/frontend/assets/a-large-small-DIxOsxWM.js +6 -0
- langflow/frontend/assets/accessibility-Bu35r-m5.js +6 -0
- langflow/frontend/assets/activity-C8wc8_Pd.js +6 -0
- langflow/frontend/assets/air-vent-B_sKAddy.js +6 -0
- langflow/frontend/assets/airplay-BRq-ZU7H.js +6 -0
- langflow/frontend/assets/alarm-clock-BbYCqVew.js +6 -0
- langflow/frontend/assets/alarm-clock-check-BrWJwXsN.js +6 -0
- langflow/frontend/assets/alarm-clock-minus-B6CwqW-T.js +6 -0
- langflow/frontend/assets/alarm-clock-off-B9ifv7kn.js +6 -0
- langflow/frontend/assets/alarm-clock-plus-BOzl727m.js +6 -0
- langflow/frontend/assets/alarm-smoke-BhmbHGGn.js +6 -0
- langflow/frontend/assets/album-CoFPyd_v.js +6 -0
- langflow/frontend/assets/align-center-DGVY6SPd.js +6 -0
- langflow/frontend/assets/align-center-horizontal-Cey2fjtd.js +6 -0
- langflow/frontend/assets/align-center-vertical-DPOUZrSH.js +6 -0
- langflow/frontend/assets/align-end-horizontal-Cqp4DWbq.js +6 -0
- langflow/frontend/assets/align-end-vertical-Do5r6aRH.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-center-BNr6hPSI.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-end-DZG6jDkR.js +6 -0
- langflow/frontend/assets/align-horizontal-distribute-start-BmK__V8Z.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-center-DmWrPC9A.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-end-DROxo_RK.js +6 -0
- langflow/frontend/assets/align-horizontal-justify-start-Bq3cTNol.js +6 -0
- langflow/frontend/assets/align-horizontal-space-around-CLSN-Vf9.js +6 -0
- langflow/frontend/assets/align-horizontal-space-between-LCNWIoA3.js +6 -0
- langflow/frontend/assets/align-justify-CD4s57UD.js +6 -0
- langflow/frontend/assets/align-left-OX3uEBv3.js +6 -0
- langflow/frontend/assets/align-right-DkuuTQ1d.js +6 -0
- langflow/frontend/assets/align-start-horizontal-BNRk7zxc.js +6 -0
- langflow/frontend/assets/align-start-vertical-B4GqW30U.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-center-CI-DiRiC.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-end-DEy26fXc.js +6 -0
- langflow/frontend/assets/align-vertical-distribute-start-2FYac2F0.js +6 -0
- langflow/frontend/assets/align-vertical-justify-center-BjCbehse.js +6 -0
- langflow/frontend/assets/align-vertical-justify-end-DyqItGrk.js +6 -0
- langflow/frontend/assets/align-vertical-justify-start-C3sYyyyy.js +6 -0
- langflow/frontend/assets/align-vertical-space-around-BOmH3ztI.js +6 -0
- langflow/frontend/assets/align-vertical-space-between-B9c0Lk1p.js +6 -0
- langflow/frontend/assets/ambulance-BE5C3u47.js +6 -0
- langflow/frontend/assets/ampersand-CGiQT7mb.js +6 -0
- langflow/frontend/assets/ampersands-DjvDv92k.js +6 -0
- langflow/frontend/assets/amphora-D5nk3hGg.js +6 -0
- langflow/frontend/assets/anchor-Dqa2CHUZ.js +6 -0
- langflow/frontend/assets/angry-uV--xR8-.js +6 -0
- langflow/frontend/assets/annoyed-DyakcX_g.js +6 -0
- langflow/frontend/assets/antenna-h5RNooai.js +6 -0
- langflow/frontend/assets/anvil-RNRmD2-Y.js +6 -0
- langflow/frontend/assets/aperture-CW9oEicD.js +6 -0
- langflow/frontend/assets/app-window-B6cERlnL.js +6 -0
- langflow/frontend/assets/app-window-mac-DS2dTXq9.js +6 -0
- langflow/frontend/assets/apple-3Hp6P8Bd.js +6 -0
- langflow/frontend/assets/archive-DJwcBaYO.js +6 -0
- langflow/frontend/assets/archive-restore-Bwbb9GIi.js +6 -0
- langflow/frontend/assets/archive-x-BVKIwMVP.js +6 -0
- langflow/frontend/assets/armchair-Bqp7yqwW.js +6 -0
- langflow/frontend/assets/arrow-big-down-CBSTnf2S.js +6 -0
- langflow/frontend/assets/arrow-big-down-dash-Xt3uFfZd.js +6 -0
- langflow/frontend/assets/arrow-big-left-dash-CHj1IfTf.js +6 -0
- langflow/frontend/assets/arrow-big-left-n76PSUVg.js +6 -0
- langflow/frontend/assets/arrow-big-right-dash-D8_l2gIo.js +6 -0
- langflow/frontend/assets/arrow-big-right-qtyRi8in.js +6 -0
- langflow/frontend/assets/arrow-big-up-DT6iJYNQ.js +6 -0
- langflow/frontend/assets/arrow-big-up-dash-Bm1yxK2z.js +6 -0
- langflow/frontend/assets/arrow-down-0-1-RckAPt_n.js +6 -0
- langflow/frontend/assets/arrow-down-1-0-B87psQUW.js +6 -0
- langflow/frontend/assets/arrow-down-CKT3Z8_c.js +6 -0
- langflow/frontend/assets/arrow-down-a-z-C1SkXhIF.js +6 -0
- langflow/frontend/assets/arrow-down-from-line-wpXr5zyx.js +6 -0
- langflow/frontend/assets/arrow-down-left-BYiO5bjf.js +6 -0
- langflow/frontend/assets/arrow-down-narrow-wide-Dw8fGlIz.js +6 -0
- langflow/frontend/assets/arrow-down-right-DF2bUPf_.js +6 -0
- langflow/frontend/assets/arrow-down-to-dot-DmM95y_f.js +6 -0
- langflow/frontend/assets/arrow-down-to-line-B6_vSTzR.js +6 -0
- langflow/frontend/assets/arrow-down-up-BQzt8kqF.js +6 -0
- langflow/frontend/assets/arrow-down-wide-narrow-9dunOrWa.js +6 -0
- langflow/frontend/assets/arrow-down-z-a-Cs1Gl6Ca.js +6 -0
- langflow/frontend/assets/arrow-left-DO-I9wG0.js +6 -0
- langflow/frontend/assets/arrow-left-from-line-CHZCYDQr.js +6 -0
- langflow/frontend/assets/arrow-left-right-XNNtW4Ep.js +6 -0
- langflow/frontend/assets/arrow-left-to-line-BMmitzR6.js +6 -0
- langflow/frontend/assets/arrow-right-C5rahmtj.js +6 -0
- langflow/frontend/assets/arrow-right-from-line-DcUVS8Cj.js +6 -0
- langflow/frontend/assets/arrow-right-left-5FApCcJp.js +6 -0
- langflow/frontend/assets/arrow-right-to-line-Bntn-h6M.js +6 -0
- langflow/frontend/assets/arrow-up-0-1-C6I42WXu.js +6 -0
- langflow/frontend/assets/arrow-up-1-0-RvL5qAHL.js +6 -0
- langflow/frontend/assets/arrow-up-B7ZXHfGR.js +6 -0
- langflow/frontend/assets/arrow-up-a-z-CtljPw0p.js +6 -0
- langflow/frontend/assets/arrow-up-down-CLOJpN5F.js +6 -0
- langflow/frontend/assets/arrow-up-from-dot-Cav5DpLx.js +6 -0
- langflow/frontend/assets/arrow-up-from-line-SJKN8JiM.js +6 -0
- langflow/frontend/assets/arrow-up-left-DeKMDzci.js +6 -0
- langflow/frontend/assets/arrow-up-narrow-wide-CaDsGalF.js +6 -0
- langflow/frontend/assets/arrow-up-right-CgVujl4S.js +6 -0
- langflow/frontend/assets/arrow-up-to-line-Bz-pymjr.js +6 -0
- langflow/frontend/assets/arrow-up-wide-narrow-B-pvvK1E.js +6 -0
- langflow/frontend/assets/arrow-up-z-a-x_h5ovMC.js +6 -0
- langflow/frontend/assets/arrows-up-from-line-m1TUacrX.js +6 -0
- langflow/frontend/assets/asterisk-DSjrdpN1.js +6 -0
- langflow/frontend/assets/at-sign-DFB5giOH.js +6 -0
- langflow/frontend/assets/atom-BGG-TeLe.js +6 -0
- langflow/frontend/assets/audio-lines-CRHT7SQE.js +6 -0
- langflow/frontend/assets/audio-waveform-BzTFaccJ.js +6 -0
- langflow/frontend/assets/award-CNg72EMQ.js +6 -0
- langflow/frontend/assets/axe-CM9Ab5NQ.js +6 -0
- langflow/frontend/assets/axis-3d-DL4YygIz.js +6 -0
- langflow/frontend/assets/baby-C-RQQFSK.js +6 -0
- langflow/frontend/assets/backpack-DSwZazFo.js +6 -0
- langflow/frontend/assets/badge-DQ5UeQW1.js +6 -0
- langflow/frontend/assets/badge-alert-D30mz3o7.js +6 -0
- langflow/frontend/assets/badge-cent-DXwIzlsc.js +6 -0
- langflow/frontend/assets/badge-check-B3YRdSc5.js +6 -0
- langflow/frontend/assets/badge-dollar-sign-D8D48CHU.js +6 -0
- langflow/frontend/assets/badge-euro-Br1IAxah.js +6 -0
- langflow/frontend/assets/badge-help-KG-DxL5J.js +6 -0
- langflow/frontend/assets/badge-indian-rupee-D6piDzXk.js +6 -0
- langflow/frontend/assets/badge-info-BAmJu6DP.js +6 -0
- langflow/frontend/assets/badge-japanese-yen-Bho9pGNs.js +6 -0
- langflow/frontend/assets/badge-minus-BB3vc1Vg.js +6 -0
- langflow/frontend/assets/badge-percent-6vQ2H28C.js +6 -0
- langflow/frontend/assets/badge-plus-D5JLiEnK.js +6 -0
- langflow/frontend/assets/badge-pound-sterling-BmSqgf2V.js +6 -0
- langflow/frontend/assets/badge-russian-ruble-C-aY70Vz.js +6 -0
- langflow/frontend/assets/badge-swiss-franc-DWG2YTZG.js +6 -0
- langflow/frontend/assets/badge-x-CPdTrgRu.js +6 -0
- langflow/frontend/assets/baggage-claim-D5X9ZlaP.js +6 -0
- langflow/frontend/assets/ban-CZlim5IR.js +6 -0
- langflow/frontend/assets/banana-rtMT0E6z.js +6 -0
- langflow/frontend/assets/bandage-B1GX6ABE.js +6 -0
- langflow/frontend/assets/banknote-DPaqrakL.js +6 -0
- langflow/frontend/assets/banknote-arrow-down-DwmMSd1v.js +6 -0
- langflow/frontend/assets/banknote-arrow-up-D9lBKTuZ.js +6 -0
- langflow/frontend/assets/banknote-x-DCgkd1Ve.js +6 -0
- langflow/frontend/assets/barcode-DQOpG04l.js +6 -0
- langflow/frontend/assets/baseline-BL_0FrxU.js +6 -0
- langflow/frontend/assets/bath-Cw2hZQEE.js +6 -0
- langflow/frontend/assets/battery-CJDR3MfN.js +6 -0
- langflow/frontend/assets/battery-charging-BQbJE4JT.js +6 -0
- langflow/frontend/assets/battery-full-CYJlIaJU.js +6 -0
- langflow/frontend/assets/battery-low-CBXuAAur.js +6 -0
- langflow/frontend/assets/battery-medium-BsrJ-_J5.js +6 -0
- langflow/frontend/assets/battery-plus-DwpCzI9s.js +6 -0
- langflow/frontend/assets/battery-warning-DL58ObVr.js +6 -0
- langflow/frontend/assets/beaker-BvvtcoCg.js +6 -0
- langflow/frontend/assets/bean-CxPsMN48.js +6 -0
- langflow/frontend/assets/bean-off-CiYxtEpo.js +6 -0
- langflow/frontend/assets/bed-CHFGG9my.js +6 -0
- langflow/frontend/assets/bed-double-BmatvTtI.js +6 -0
- langflow/frontend/assets/bed-single-BkCg_xO8.js +6 -0
- langflow/frontend/assets/beef-BT-Tqkcu.js +6 -0
- langflow/frontend/assets/beer-Br-w96_H.js +6 -0
- langflow/frontend/assets/beer-off-BCLntpC4.js +6 -0
- langflow/frontend/assets/bell-O8GI9kMj.js +6 -0
- langflow/frontend/assets/bell-dot-Bj0OBLjN.js +6 -0
- langflow/frontend/assets/bell-electric-CY2HEJBK.js +6 -0
- langflow/frontend/assets/bell-minus-DcJMlwFa.js +6 -0
- langflow/frontend/assets/bell-off-BddznZLT.js +6 -0
- langflow/frontend/assets/bell-plus-Bdbag6Iy.js +6 -0
- langflow/frontend/assets/bell-ring-QniTUI83.js +6 -0
- langflow/frontend/assets/between-horizontal-end-BccaaLIx.js +6 -0
- langflow/frontend/assets/between-horizontal-start-DLeaS38Y.js +6 -0
- langflow/frontend/assets/between-vertical-end-Bp5YYPcy.js +6 -0
- langflow/frontend/assets/between-vertical-start-Uq1m2vPv.js +6 -0
- langflow/frontend/assets/biceps-flexed-C7-coF7l.js +6 -0
- langflow/frontend/assets/bike-CW47gMaO.js +6 -0
- langflow/frontend/assets/binary-B2jWyHmS.js +6 -0
- langflow/frontend/assets/binoculars-CLrFW0If.js +6 -0
- langflow/frontend/assets/biohazard-CF7F57VV.js +6 -0
- langflow/frontend/assets/bird-j20wt-d7.js +6 -0
- langflow/frontend/assets/bitcoin-DKaXAvZs.js +6 -0
- langflow/frontend/assets/blend-YB2G1cSt.js +6 -0
- langflow/frontend/assets/blinds-CvjOeFFH.js +6 -0
- langflow/frontend/assets/blocks-KEQTbHJv.js +6 -0
- langflow/frontend/assets/bluetooth-B6WGG2GD.js +6 -0
- langflow/frontend/assets/bluetooth-connected-DYLNIZYk.js +6 -0
- langflow/frontend/assets/bluetooth-off-CLNKbIaL.js +6 -0
- langflow/frontend/assets/bluetooth-searching-DfIeGkiC.js +6 -0
- langflow/frontend/assets/bold-i26IDbuD.js +6 -0
- langflow/frontend/assets/bolt-BvWGlJ7e.js +6 -0
- langflow/frontend/assets/bomb-eETI4arK.js +6 -0
- langflow/frontend/assets/bone-BfX5_39K.js +6 -0
- langflow/frontend/assets/book-C8qxTl1A.js +6 -0
- langflow/frontend/assets/book-a-BjfQrVZT.js +6 -0
- langflow/frontend/assets/book-audio-CW-IVPLM.js +6 -0
- langflow/frontend/assets/book-check-Ysv0j0jd.js +6 -0
- langflow/frontend/assets/book-copy-CREVzePN.js +6 -0
- langflow/frontend/assets/book-dashed-dZlt1GVE.js +6 -0
- langflow/frontend/assets/book-down-BMgE5E_a.js +6 -0
- langflow/frontend/assets/book-headphones-B2LmDr1V.js +6 -0
- langflow/frontend/assets/book-heart-RRe549pE.js +6 -0
- langflow/frontend/assets/book-image-CtVi8j_P.js +6 -0
- langflow/frontend/assets/book-key-DJl_z9qN.js +6 -0
- langflow/frontend/assets/book-lock-Cu1d99eT.js +6 -0
- langflow/frontend/assets/book-marked-BVeaBa6E.js +6 -0
- langflow/frontend/assets/book-minus-D5UpV0HU.js +6 -0
- langflow/frontend/assets/book-open-CAg3knij.js +6 -0
- langflow/frontend/assets/book-open-check-NXQYhiZT.js +6 -0
- langflow/frontend/assets/book-open-text-BpiCvJWR.js +6 -0
- langflow/frontend/assets/book-plus-DCGPS6zP.js +6 -0
- langflow/frontend/assets/book-text-BW4VnWf6.js +6 -0
- langflow/frontend/assets/book-type-D_46kL_0.js +6 -0
- langflow/frontend/assets/book-up-2-DONNzzqQ.js +6 -0
- langflow/frontend/assets/book-up-NbOioeni.js +6 -0
- langflow/frontend/assets/book-user-rhEFRy8m.js +6 -0
- langflow/frontend/assets/book-x-C8XI7wnn.js +6 -0
- langflow/frontend/assets/bookmark-C2DUONVZ.js +6 -0
- langflow/frontend/assets/bookmark-check-BQNeLmCq.js +6 -0
- langflow/frontend/assets/bookmark-minus-BoKQoPZm.js +6 -0
- langflow/frontend/assets/bookmark-plus-Vcuasv25.js +6 -0
- langflow/frontend/assets/bookmark-x-BNZ7MP72.js +6 -0
- langflow/frontend/assets/boom-box-1piwy5jk.js +6 -0
- langflow/frontend/assets/bot-CPP_c_G2.js +6 -0
- langflow/frontend/assets/bot-message-square-tm8Mv6Jm.js +6 -0
- langflow/frontend/assets/bot-off-YjYeJfp4.js +6 -0
- langflow/frontend/assets/bow-arrow-uP26AkC3.js +6 -0
- langflow/frontend/assets/box-Bmq_FMQ4.js +6 -0
- langflow/frontend/assets/boxes-BZ_6JxMi.js +6 -0
- langflow/frontend/assets/braces-DVOM3D5l.js +6 -0
- langflow/frontend/assets/brackets-CS9ID129.js +6 -0
- langflow/frontend/assets/brain-BlXEX7dQ.js +6 -0
- langflow/frontend/assets/brain-circuit-CnThDCAt.js +6 -0
- langflow/frontend/assets/brain-cog-AMJAkopE.js +6 -0
- langflow/frontend/assets/brick-wall-CTT89ewp.js +6 -0
- langflow/frontend/assets/brick-wall-fire-DydIX0mH.js +6 -0
- langflow/frontend/assets/briefcase-DMY6Harl.js +6 -0
- langflow/frontend/assets/briefcase-business-D3M6AyNo.js +6 -0
- langflow/frontend/assets/briefcase-conveyor-belt-CyzrQNxu.js +6 -0
- langflow/frontend/assets/briefcase-medical-CutojFFW.js +6 -0
- langflow/frontend/assets/bring-to-front-DtTEoFiK.js +6 -0
- langflow/frontend/assets/brush-DjTIQhD-.js +6 -0
- langflow/frontend/assets/bubbles-Rdx0Rz-Y.js +6 -0
- langflow/frontend/assets/bug-CcTiugJm.js +6 -0
- langflow/frontend/assets/bug-off-B5Vj99QQ.js +6 -0
- langflow/frontend/assets/bug-play-BjmNJyqy.js +6 -0
- langflow/frontend/assets/building-2-DeBHtjkZ.js +6 -0
- langflow/frontend/assets/building-P-LGfmKw.js +6 -0
- langflow/frontend/assets/bus-B_zj7QKv.js +6 -0
- langflow/frontend/assets/bus-front-zMB5V2yK.js +6 -0
- langflow/frontend/assets/cable-CyF4WLKb.js +6 -0
- langflow/frontend/assets/cable-car-B6fC8qcU.js +6 -0
- langflow/frontend/assets/cake-U4HTzBNY.js +6 -0
- langflow/frontend/assets/cake-slice-bLcEeX90.js +6 -0
- langflow/frontend/assets/calculator-CYPSfYA9.js +6 -0
- langflow/frontend/assets/calendar-1-BjEKNx8O.js +6 -0
- langflow/frontend/assets/calendar-DhVDFKop.js +6 -0
- langflow/frontend/assets/calendar-arrow-down-BBYJBh4D.js +6 -0
- langflow/frontend/assets/calendar-arrow-up-EuTph0Vf.js +6 -0
- langflow/frontend/assets/calendar-check-2-jQv5IN8U.js +6 -0
- langflow/frontend/assets/calendar-check-BJYMA1zc.js +6 -0
- langflow/frontend/assets/calendar-clock-B-WGUYKA.js +6 -0
- langflow/frontend/assets/calendar-cog-CfGO1wE3.js +6 -0
- langflow/frontend/assets/calendar-days-CT3s84rd.js +6 -0
- langflow/frontend/assets/calendar-fold-DPSW8svP.js +6 -0
- langflow/frontend/assets/calendar-heart-CL4f45_b.js +6 -0
- langflow/frontend/assets/calendar-minus-2-DM8uaG1R.js +6 -0
- langflow/frontend/assets/calendar-minus-CT-E1w1p.js +6 -0
- langflow/frontend/assets/calendar-off-BlsGnhnc.js +6 -0
- langflow/frontend/assets/calendar-plus-2-D9evQuaz.js +6 -0
- langflow/frontend/assets/calendar-plus-Badr2uJB.js +6 -0
- langflow/frontend/assets/calendar-range-Ca4xroAn.js +6 -0
- langflow/frontend/assets/calendar-search-BLa7TVYc.js +6 -0
- langflow/frontend/assets/calendar-sync-qbExxZFt.js +6 -0
- langflow/frontend/assets/calendar-x-2-BQ5KOlTJ.js +6 -0
- langflow/frontend/assets/calendar-x-DLCr9CBc.js +6 -0
- langflow/frontend/assets/camera-BXi8O_zl.js +6 -0
- langflow/frontend/assets/camera-off-aT5pglDA.js +6 -0
- langflow/frontend/assets/candy-DSgtO84_.js +6 -0
- langflow/frontend/assets/candy-cane-DVUNmAFZ.js +6 -0
- langflow/frontend/assets/candy-off-CJYlmyP8.js +6 -0
- langflow/frontend/assets/cannabis-DEK82vkB.js +6 -0
- langflow/frontend/assets/captions-HrImpf78.js +6 -0
- langflow/frontend/assets/captions-off-Cxu54MuH.js +6 -0
- langflow/frontend/assets/car-DhYibMDs.js +6 -0
- langflow/frontend/assets/car-front-m-Z--qaT.js +6 -0
- langflow/frontend/assets/car-taxi-front-tFDluXjk.js +6 -0
- langflow/frontend/assets/caravan-Bt5cD847.js +6 -0
- langflow/frontend/assets/carrot--1wSSLRL.js +6 -0
- langflow/frontend/assets/case-lower-rNT5IJCc.js +6 -0
- langflow/frontend/assets/case-sensitive-DwYm5kig.js +6 -0
- langflow/frontend/assets/case-upper-CdvxBi1h.js +6 -0
- langflow/frontend/assets/cassette-tape-D9oQvvFk.js +6 -0
- langflow/frontend/assets/cast-BKETl3Xr.js +6 -0
- langflow/frontend/assets/castle-DFGLBp5r.js +6 -0
- langflow/frontend/assets/cat-BrwBFWdh.js +6 -0
- langflow/frontend/assets/cctv-V8X59rAi.js +6 -0
- langflow/frontend/assets/chart-area-2JCEngWp.js +6 -0
- langflow/frontend/assets/chart-bar-big-CEtsUZjz.js +6 -0
- langflow/frontend/assets/chart-bar-decreasing-BlRfoirI.js +6 -0
- langflow/frontend/assets/chart-bar-increasing-BGiKeAkL.js +6 -0
- langflow/frontend/assets/chart-bar-stacked-DBYrg7mL.js +6 -0
- langflow/frontend/assets/chart-bar-wcD35if1.js +6 -0
- langflow/frontend/assets/chart-candlestick-DGIzqvPs.js +6 -0
- langflow/frontend/assets/chart-column-D02BTIiE.js +6 -0
- langflow/frontend/assets/chart-column-big-ClkNvcMf.js +6 -0
- langflow/frontend/assets/chart-column-decreasing-BNpafKhd.js +6 -0
- langflow/frontend/assets/chart-column-increasing-BrJ9DVDR.js +6 -0
- langflow/frontend/assets/chart-column-stacked-BKC7Zxsp.js +6 -0
- langflow/frontend/assets/chart-gantt-B0dRB2ET.js +6 -0
- langflow/frontend/assets/chart-line-DV6qehEx.js +6 -0
- langflow/frontend/assets/chart-network-CxWgm8mb.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-decreasing-EF7fSZW9.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-iaJ37m4r.js +6 -0
- langflow/frontend/assets/chart-no-axes-column-increasing-JvoS2P-k.js +6 -0
- langflow/frontend/assets/chart-no-axes-combined-DqCgbcuU.js +6 -0
- langflow/frontend/assets/chart-no-axes-gantt-CXMbzpzk.js +6 -0
- langflow/frontend/assets/chart-pie-DM3UVAmN.js +6 -0
- langflow/frontend/assets/chart-scatter-Xqqty9pG.js +6 -0
- langflow/frontend/assets/chart-spline-CaI8se4y.js +6 -0
- langflow/frontend/assets/check-check-3-9PVEn6.js +6 -0
- langflow/frontend/assets/chef-hat-b2fuIXLM.js +6 -0
- langflow/frontend/assets/cherry-CkSaxXPj.js +6 -0
- langflow/frontend/assets/chevron-first-CEn77K5n.js +6 -0
- langflow/frontend/assets/chevron-last-m7wpp3J9.js +6 -0
- langflow/frontend/assets/chevron-left-B1Da_p-C.js +6 -0
- langflow/frontend/assets/chevron-right-CPxlA3qE.js +6 -0
- langflow/frontend/assets/chevrons-down-CTry-RgK.js +6 -0
- langflow/frontend/assets/chevrons-down-up-BPprNhyY.js +6 -0
- langflow/frontend/assets/chevrons-left-BAOVO2Xk.js +6 -0
- langflow/frontend/assets/chevrons-left-right--Lo8NJcC.js +6 -0
- langflow/frontend/assets/chevrons-left-right-ellipsis-CQesA8OH.js +6 -0
- langflow/frontend/assets/chevrons-right-Ddn6k-ej.js +6 -0
- langflow/frontend/assets/chevrons-right-left-BaKH8xtU.js +6 -0
- langflow/frontend/assets/chevrons-up-DV1RzvN8.js +6 -0
- langflow/frontend/assets/chrome-COtt_XZg.js +6 -0
- langflow/frontend/assets/church-DYdgde2T.js +6 -0
- langflow/frontend/assets/cigarette-QRyLOzku.js +6 -0
- langflow/frontend/assets/cigarette-off-CF1zQ4q8.js +6 -0
- langflow/frontend/assets/circle-alert-BVPeMSu6.js +6 -0
- langflow/frontend/assets/circle-arrow-down-CkKJnt8Y.js +6 -0
- langflow/frontend/assets/circle-arrow-left-BuITv_pg.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-left-TG2WB5nr.js +6 -0
- langflow/frontend/assets/circle-arrow-out-down-right-CaAsVoyT.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-left-gl7rB8AN.js +6 -0
- langflow/frontend/assets/circle-arrow-out-up-right-D-hRThX0.js +6 -0
- langflow/frontend/assets/circle-arrow-right-QgGj1RWM.js +6 -0
- langflow/frontend/assets/circle-arrow-up-Di9tJK9i.js +6 -0
- langflow/frontend/assets/circle-check-BdxJ-7PP.js +6 -0
- langflow/frontend/assets/circle-check-big-B12HKwgl.js +6 -0
- langflow/frontend/assets/circle-chevron-down-Cq7MJqBG.js +6 -0
- langflow/frontend/assets/circle-chevron-left-qzSEOIJ-.js +6 -0
- langflow/frontend/assets/circle-chevron-right-H0-KNvtP.js +6 -0
- langflow/frontend/assets/circle-chevron-up-BMAb8RPb.js +6 -0
- langflow/frontend/assets/circle-dashed-C6lpZiZf.js +6 -0
- langflow/frontend/assets/circle-divide-S1GCJZUd.js +6 -0
- langflow/frontend/assets/circle-dollar-sign-bB-SHgD0.js +6 -0
- langflow/frontend/assets/circle-dot-D1Bz2sKf.js +6 -0
- langflow/frontend/assets/circle-dot-dashed-Cwg4RtHm.js +6 -0
- langflow/frontend/assets/circle-ellipsis-BA_vcrPc.js +6 -0
- langflow/frontend/assets/circle-equal-_g_Zkb-H.js +6 -0
- langflow/frontend/assets/circle-fading-arrow-up-B1Lg7xE2.js +6 -0
- langflow/frontend/assets/circle-fading-plus-sxwQGJMn.js +6 -0
- langflow/frontend/assets/circle-gauge-D1whQBBI.js +6 -0
- langflow/frontend/assets/circle-help-DTvoqPm9.js +6 -0
- langflow/frontend/assets/circle-minus-DbAVK8gs.js +6 -0
- langflow/frontend/assets/circle-off-BgDZaql4.js +6 -0
- langflow/frontend/assets/circle-parking-7OC9NdSJ.js +6 -0
- langflow/frontend/assets/circle-parking-off-BGDZDlhS.js +6 -0
- langflow/frontend/assets/circle-pause-DcpqhY4z.js +6 -0
- langflow/frontend/assets/circle-percent-pewKzWce.js +6 -0
- langflow/frontend/assets/circle-play-2y8KwPRR.js +6 -0
- langflow/frontend/assets/circle-plus-D0PDnHno.js +6 -0
- langflow/frontend/assets/circle-power-D7WcMrhN.js +6 -0
- langflow/frontend/assets/circle-slash-2-BjpHAhly.js +6 -0
- langflow/frontend/assets/circle-slash-D7eGpJzk.js +6 -0
- langflow/frontend/assets/circle-small-D2rIC7CY.js +6 -0
- langflow/frontend/assets/circle-stop-BUZqaquT.js +6 -0
- langflow/frontend/assets/circle-user-MtGkEAO0.js +6 -0
- langflow/frontend/assets/circle-user-round-BWCMkI0X.js +6 -0
- langflow/frontend/assets/circuit-board-wWvxCT1Z.js +6 -0
- langflow/frontend/assets/citrus-oqCVmLTv.js +6 -0
- langflow/frontend/assets/clapperboard-D-tG8IJ-.js +6 -0
- langflow/frontend/assets/clipboard-ClTJNl9o.js +6 -0
- langflow/frontend/assets/clipboard-check-BhUrMOzo.js +6 -0
- langflow/frontend/assets/clipboard-copy-BsUNmGRu.js +6 -0
- langflow/frontend/assets/clipboard-list-QIxeDhpF.js +6 -0
- langflow/frontend/assets/clipboard-minus-0pd6K21W.js +6 -0
- langflow/frontend/assets/clipboard-paste-B47VCs_4.js +6 -0
- langflow/frontend/assets/clipboard-pen-Ctecdlrt.js +6 -0
- langflow/frontend/assets/clipboard-pen-line-CHfgNevI.js +6 -0
- langflow/frontend/assets/clipboard-plus-st5sZ5-j.js +6 -0
- langflow/frontend/assets/clipboard-type-DMrKOdE_.js +6 -0
- langflow/frontend/assets/clipboard-x-tb2H5EoM.js +6 -0
- langflow/frontend/assets/clock-1-CUU0V973.js +6 -0
- langflow/frontend/assets/clock-10-q0uaDBmU.js +6 -0
- langflow/frontend/assets/clock-11-DAjGZFmP.js +6 -0
- langflow/frontend/assets/clock-12-D6fkn7Tv.js +6 -0
- langflow/frontend/assets/clock-2-BIyO9Pgx.js +6 -0
- langflow/frontend/assets/clock-3-GuASqSMO.js +6 -0
- langflow/frontend/assets/clock-4-CgSZXRlg.js +6 -0
- langflow/frontend/assets/clock-5-CTbaoUdy.js +6 -0
- langflow/frontend/assets/clock-6-C02Kg74z.js +6 -0
- langflow/frontend/assets/clock-7-DLJK7aUO.js +6 -0
- langflow/frontend/assets/clock-8-DY4UpQ3I.js +6 -0
- langflow/frontend/assets/clock-9-PfpxlzNP.js +6 -0
- langflow/frontend/assets/clock-D9Ia9heH.js +6 -0
- langflow/frontend/assets/clock-alert--zyosldl.js +6 -0
- langflow/frontend/assets/clock-arrow-down-BFSPb4PP.js +6 -0
- langflow/frontend/assets/clock-arrow-up-Civ0eqJv.js +6 -0
- langflow/frontend/assets/clock-fading-Ef5FY0hG.js +6 -0
- langflow/frontend/assets/cloud-alert-X_M36tgo.js +6 -0
- langflow/frontend/assets/cloud-cog-OJdqL8Vi.js +6 -0
- langflow/frontend/assets/cloud-download-pHZ4Jcpz.js +6 -0
- langflow/frontend/assets/cloud-drizzle-BMQrHzfm.js +6 -0
- langflow/frontend/assets/cloud-fog-B2wy3Jlh.js +6 -0
- langflow/frontend/assets/cloud-hail-C_35hXdP.js +6 -0
- langflow/frontend/assets/cloud-lightning-CoKf6VsW.js +6 -0
- langflow/frontend/assets/cloud-moon-02NWUEnX.js +6 -0
- langflow/frontend/assets/cloud-moon-rain-CnQjjZZ6.js +6 -0
- langflow/frontend/assets/cloud-off-D_38ldJY.js +6 -0
- langflow/frontend/assets/cloud-rain-ByFqaLK9.js +6 -0
- langflow/frontend/assets/cloud-rain-wind-DufxKNtC.js +6 -0
- langflow/frontend/assets/cloud-sd0d0_fr.js +6 -0
- langflow/frontend/assets/cloud-snow-DV2VAQdy.js +6 -0
- langflow/frontend/assets/cloud-sun-CS9Q-Nel.js +6 -0
- langflow/frontend/assets/cloud-sun-rain-3-9vglOw.js +6 -0
- langflow/frontend/assets/cloud-upload-CpUgWK_N.js +6 -0
- langflow/frontend/assets/cloudy-BQ9g3wfi.js +6 -0
- langflow/frontend/assets/clover-G6B85aQR.js +6 -0
- langflow/frontend/assets/club-BQx1ewS4.js +6 -0
- langflow/frontend/assets/code-xml-DyWGGOPS.js +6 -0
- langflow/frontend/assets/codepen-B29Vj0AG.js +6 -0
- langflow/frontend/assets/codesandbox-CMnUQzQD.js +6 -0
- langflow/frontend/assets/coffee-BSkcH0MI.js +6 -0
- langflow/frontend/assets/cog-zVHMemn0.js +6 -0
- langflow/frontend/assets/coins-BQ-IbPWT.js +6 -0
- langflow/frontend/assets/columns-2-AnUCWtuZ.js +6 -0
- langflow/frontend/assets/columns-3-Ce0nNosW.js +6 -0
- langflow/frontend/assets/columns-3-cog-0pMtbMd-.js +6 -0
- langflow/frontend/assets/columns-4-C26EKhUO.js +6 -0
- langflow/frontend/assets/combine-qijrq0j0.js +6 -0
- langflow/frontend/assets/command-xDjo1fXY.js +6 -0
- langflow/frontend/assets/compass-40OgO7cL.js +6 -0
- langflow/frontend/assets/component-D-4zw18E.js +6 -0
- langflow/frontend/assets/computer-Bb-9wpWf.js +6 -0
- langflow/frontend/assets/concierge-bell-Bs_P7IDT.js +6 -0
- langflow/frontend/assets/cone-BnTDaaXX.js +6 -0
- langflow/frontend/assets/construction-MqPC2xE9.js +6 -0
- langflow/frontend/assets/contact-HS_H1Amb.js +6 -0
- langflow/frontend/assets/contact-round-BqcTnhVJ.js +6 -0
- langflow/frontend/assets/container-DGELqX4n.js +6 -0
- langflow/frontend/assets/contrast-Cba5NJz9.js +6 -0
- langflow/frontend/assets/cookie-TiGfIL4Z.js +6 -0
- langflow/frontend/assets/cooking-pot-DS-66mBu.js +6 -0
- langflow/frontend/assets/copy-check-D5_qks-T.js +6 -0
- langflow/frontend/assets/copy-iQ_JNkV2.js +6 -0
- langflow/frontend/assets/copy-minus-CiCCpXjv.js +6 -0
- langflow/frontend/assets/copy-plus-DZ6IVh6l.js +6 -0
- langflow/frontend/assets/copy-slash-DJpRn_d0.js +6 -0
- langflow/frontend/assets/copy-x-B1SRWp3Z.js +6 -0
- langflow/frontend/assets/copyleft-CwGxM0FQ.js +6 -0
- langflow/frontend/assets/copyright-Cb6NhYfY.js +6 -0
- langflow/frontend/assets/corner-down-left-CyYCkrO9.js +6 -0
- langflow/frontend/assets/corner-down-right-CQTs69Wv.js +6 -0
- langflow/frontend/assets/corner-left-down-Biky6PpP.js +6 -0
- langflow/frontend/assets/corner-left-up-ClakI_sx.js +6 -0
- langflow/frontend/assets/corner-right-down-CT4XUC0Y.js +6 -0
- langflow/frontend/assets/corner-right-up-D-9JXYE3.js +6 -0
- langflow/frontend/assets/corner-up-left-BQZvhRWq.js +6 -0
- langflow/frontend/assets/corner-up-right-txrP0lLM.js +6 -0
- langflow/frontend/assets/cpu-fpIelFFN.js +6 -0
- langflow/frontend/assets/creative-commons-WnIC6bT1.js +6 -0
- langflow/frontend/assets/credit-card-B5XGEKAs.js +6 -0
- langflow/frontend/assets/croissant-CytcoiPI.js +6 -0
- langflow/frontend/assets/crop-CNssI4oM.js +6 -0
- langflow/frontend/assets/cross-GS_Xw4t2.js +6 -0
- langflow/frontend/assets/crosshair-B8sM8IzX.js +6 -0
- langflow/frontend/assets/crown-DNf5ckus.js +6 -0
- langflow/frontend/assets/cuboid-CxmbTA8D.js +6 -0
- langflow/frontend/assets/cup-soda-Dutc7xOD.js +6 -0
- langflow/frontend/assets/currency-BghQv0Z2.js +6 -0
- langflow/frontend/assets/cylinder-C_0Fp7QJ.js +6 -0
- langflow/frontend/assets/dam-DXzZpUnJ.js +6 -0
- langflow/frontend/assets/database-BGNRGl7O.js +6 -0
- langflow/frontend/assets/database-backup-It3E_N1S.js +6 -0
- langflow/frontend/assets/database-zap-CncNo01C.js +6 -0
- langflow/frontend/assets/decimals-arrow-left-DppGbfxl.js +6 -0
- langflow/frontend/assets/decimals-arrow-right-0C7ZMNny.js +6 -0
- langflow/frontend/assets/delete-F3Cw_6ye.js +6 -0
- langflow/frontend/assets/dessert-CF5OWFRH.js +6 -0
- langflow/frontend/assets/diameter-Cnf5-UwJ.js +6 -0
- langflow/frontend/assets/diamond-CnMEVGVq.js +6 -0
- langflow/frontend/assets/diamond-minus-Ckt6A3hC.js +6 -0
- langflow/frontend/assets/diamond-percent-DctcOWRA.js +6 -0
- langflow/frontend/assets/diamond-plus-BY2Lhcm3.js +6 -0
- langflow/frontend/assets/dice-1-HcMDbokI.js +6 -0
- langflow/frontend/assets/dice-2-BpvF3HMY.js +6 -0
- langflow/frontend/assets/dice-3-fRvD-dQk.js +6 -0
- langflow/frontend/assets/dice-4-qt09lOYy.js +6 -0
- langflow/frontend/assets/dice-5-6CVUNXl8.js +6 -0
- langflow/frontend/assets/dice-6-EYe8e-bQ.js +6 -0
- langflow/frontend/assets/dices-BuxvFS2F.js +6 -0
- langflow/frontend/assets/diff-DvRcI8ka.js +6 -0
- langflow/frontend/assets/disc-2-BxRqyAsn.js +6 -0
- langflow/frontend/assets/disc-3-CvX-oqUB.js +6 -0
- langflow/frontend/assets/disc-88VI5vk-.js +6 -0
- langflow/frontend/assets/disc-album-9vJwjI9u.js +6 -0
- langflow/frontend/assets/divide-DjSfvHRd.js +6 -0
- langflow/frontend/assets/dna-DKik6eTc.js +6 -0
- langflow/frontend/assets/dna-off-BlPboZwU.js +6 -0
- langflow/frontend/assets/dock-DsrVg5kM.js +6 -0
- langflow/frontend/assets/dog-BQ_pyc-Y.js +6 -0
- langflow/frontend/assets/dollar-sign-BcCJ81JM.js +6 -0
- langflow/frontend/assets/donut-Gu53j78o.js +6 -0
- langflow/frontend/assets/door-closed-CjzpJYWU.js +6 -0
- langflow/frontend/assets/door-open-yBJWY9gV.js +6 -0
- langflow/frontend/assets/dot-D9DAVIZe.js +6 -0
- langflow/frontend/assets/download-BPm4IaMg.js +6 -0
- langflow/frontend/assets/drafting-compass--bkWM4Rt.js +6 -0
- langflow/frontend/assets/drama-CdAK8SJH.js +6 -0
- langflow/frontend/assets/dribbble-Rr-xrzHx.js +6 -0
- langflow/frontend/assets/drill-D5M2KPjP.js +6 -0
- langflow/frontend/assets/droplet-m3J0bDQ9.js +6 -0
- langflow/frontend/assets/droplet-off-DEvutFmU.js +6 -0
- langflow/frontend/assets/droplets-CtbZ0Nj7.js +6 -0
- langflow/frontend/assets/drum-Bk7Ltjlj.js +6 -0
- langflow/frontend/assets/drumstick-Dt55S9C8.js +6 -0
- langflow/frontend/assets/dumbbell-CgF3VfO_.js +6 -0
- langflow/frontend/assets/ear-DnWEOSLb.js +6 -0
- langflow/frontend/assets/ear-off-BerACZyc.js +6 -0
- langflow/frontend/assets/earth-dunFCe-v.js +6 -0
- langflow/frontend/assets/earth-lock-B-qoUtct.js +6 -0
- langflow/frontend/assets/eclipse-DQbRwBhc.js +6 -0
- langflow/frontend/assets/egg-Q7kDbnVO.js +6 -0
- langflow/frontend/assets/egg-fried-Dpjhw8EO.js +6 -0
- langflow/frontend/assets/egg-off-BUOfwj2j.js +6 -0
- langflow/frontend/assets/ellipsis-DWkFFB3i.js +6 -0
- langflow/frontend/assets/ellipsis-vertical-C_7RDOeG.js +6 -0
- langflow/frontend/assets/equal-CoQw3Zg7.js +6 -0
- langflow/frontend/assets/equal-approximately-DEwpuH9U.js +6 -0
- langflow/frontend/assets/equal-not-CUs0NFk6.js +6 -0
- langflow/frontend/assets/eraser-DzVU4nMu.js +6 -0
- langflow/frontend/assets/ethernet-port-C9BfP7L4.js +6 -0
- langflow/frontend/assets/euro-DKRXsBRi.js +6 -0
- langflow/frontend/assets/expand-9cuh98c8.js +6 -0
- langflow/frontend/assets/eye-DfM59ZZW.js +6 -0
- langflow/frontend/assets/eye-closed-CufTHV8Y.js +6 -0
- langflow/frontend/assets/eye-off-D7kT_L4q.js +6 -0
- langflow/frontend/assets/facebook-bt0dC2tM.js +6 -0
- langflow/frontend/assets/factory-Ie1CJCnF.js +6 -0
- langflow/frontend/assets/fan-LxprqMWb.js +6 -0
- langflow/frontend/assets/fast-forward-JyHe7CV2.js +6 -0
- langflow/frontend/assets/feather-D9hVYAUV.js +6 -0
- langflow/frontend/assets/fence-Bt2GAQed.js +6 -0
- langflow/frontend/assets/ferris-wheel-DaNAGEmM.js +6 -0
- langflow/frontend/assets/figma-BIR275F4.js +6 -0
- langflow/frontend/assets/file-DVeNIRB3.js +6 -0
- langflow/frontend/assets/file-archive-VpREZIUi.js +6 -0
- langflow/frontend/assets/file-audio-2-B-yrg8Rz.js +6 -0
- langflow/frontend/assets/file-audio-jM0ZVuOx.js +6 -0
- langflow/frontend/assets/file-axis-3d-BpcLKyg_.js +6 -0
- langflow/frontend/assets/file-badge-2-CGjtYMv1.js +6 -0
- langflow/frontend/assets/file-badge-BSt1l_WA.js +6 -0
- langflow/frontend/assets/file-box-C_a8JCNO.js +6 -0
- langflow/frontend/assets/file-chart-column-9Py3tGdD.js +6 -0
- langflow/frontend/assets/file-chart-column-increasing-F1C9y24C.js +6 -0
- langflow/frontend/assets/file-chart-line-BuRbF5_Y.js +6 -0
- langflow/frontend/assets/file-chart-pie-B6kpbzRN.js +6 -0
- langflow/frontend/assets/file-check-2-B_mo4bXF.js +6 -0
- langflow/frontend/assets/file-check-DIYBh0Xu.js +6 -0
- langflow/frontend/assets/file-clock-r-k_U-Cx.js +6 -0
- langflow/frontend/assets/file-code-2-DGDSsDjn.js +6 -0
- langflow/frontend/assets/file-code-kj-49n2G.js +6 -0
- langflow/frontend/assets/file-cog-CUNuKES2.js +6 -0
- langflow/frontend/assets/file-diff-uWziA2C8.js +6 -0
- langflow/frontend/assets/file-digit-Cq2QZJPr.js +6 -0
- langflow/frontend/assets/file-down-di8_WVmc.js +6 -0
- langflow/frontend/assets/file-heart-CJMOShlZ.js +6 -0
- langflow/frontend/assets/file-image-7VnsoJzf.js +6 -0
- langflow/frontend/assets/file-input-BRdR2Iqm.js +6 -0
- langflow/frontend/assets/file-json-2-Bd7KRBwA.js +6 -0
- langflow/frontend/assets/file-json-CxpBvSeL.js +6 -0
- langflow/frontend/assets/file-key-2-BnbpCdnA.js +6 -0
- langflow/frontend/assets/file-key-D4mq2inr.js +6 -0
- langflow/frontend/assets/file-lock-2-D35FlqO6.js +6 -0
- langflow/frontend/assets/file-lock-BsLN8ivh.js +6 -0
- langflow/frontend/assets/file-minus-2-DiCtTLy_.js +6 -0
- langflow/frontend/assets/file-minus-Czy9XFsr.js +6 -0
- langflow/frontend/assets/file-music-qwmZBWH5.js +6 -0
- langflow/frontend/assets/file-output-BfM7RW2p.js +6 -0
- langflow/frontend/assets/file-pen-IT6qCeZE.js +6 -0
- langflow/frontend/assets/file-pen-line-B_kFaoQp.js +6 -0
- langflow/frontend/assets/file-plus-2-Bx-XMP5a.js +6 -0
- langflow/frontend/assets/file-plus-CSg2K6Kc.js +6 -0
- langflow/frontend/assets/file-question-BI2uHyLk.js +6 -0
- langflow/frontend/assets/file-scan-C2u1Weq3.js +6 -0
- langflow/frontend/assets/file-search-2-BXUv_UPS.js +6 -0
- langflow/frontend/assets/file-search-DeMMfTW9.js +6 -0
- langflow/frontend/assets/file-sliders-D7sOABUZ.js +6 -0
- langflow/frontend/assets/file-spreadsheet-ljGfaFp4.js +6 -0
- langflow/frontend/assets/file-stack-BMZ2kTBj.js +6 -0
- langflow/frontend/assets/file-symlink-DlkPl1N7.js +6 -0
- langflow/frontend/assets/file-terminal-DlUhm9ct.js +6 -0
- langflow/frontend/assets/file-text-C_7MEPeN.js +6 -0
- langflow/frontend/assets/file-type-2-CNx2HHPs.js +6 -0
- langflow/frontend/assets/file-type-MLpMLybD.js +6 -0
- langflow/frontend/assets/file-up-qFQCsN6t.js +6 -0
- langflow/frontend/assets/file-user-Czm_ZenO.js +6 -0
- langflow/frontend/assets/file-video-2-BmQkl6Af.js +6 -0
- langflow/frontend/assets/file-video-DmoNZ_PH.js +6 -0
- langflow/frontend/assets/file-volume-2-ClNY-6dj.js +6 -0
- langflow/frontend/assets/file-volume-96lDguhH.js +6 -0
- langflow/frontend/assets/file-warning-BzTT_h23.js +6 -0
- langflow/frontend/assets/file-x-2-D5jphfdP.js +6 -0
- langflow/frontend/assets/file-x-CdlycWJK.js +6 -0
- langflow/frontend/assets/files-D2s65Qur.js +6 -0
- langflow/frontend/assets/film-DxZl5nh0.js +6 -0
- langflow/frontend/assets/fingerprint-Dvf6NX7k.js +6 -0
- langflow/frontend/assets/fire-extinguisher-pLGXvC01.js +6 -0
- langflow/frontend/assets/fish-Cms_f8Xu.js +6 -0
- langflow/frontend/assets/fish-off-NIYHWkGM.js +6 -0
- langflow/frontend/assets/fish-symbol-u_RKPyIz.js +6 -0
- langflow/frontend/assets/flag-DQJjqwdV.js +6 -0
- langflow/frontend/assets/flag-off-CzQf8vsm.js +6 -0
- langflow/frontend/assets/flag-triangle-left-zl-5PcyN.js +6 -0
- langflow/frontend/assets/flag-triangle-right-ChgiiQS1.js +6 -0
- langflow/frontend/assets/flame-BRjSBRcv.js +6 -0
- langflow/frontend/assets/flame-kindling-DL9GSUPS.js +6 -0
- langflow/frontend/assets/flashlight-S9uKWRge.js +6 -0
- langflow/frontend/assets/flashlight-off-D_5pWdDf.js +6 -0
- langflow/frontend/assets/flask-conical-CxSk0Ye2.js +6 -0
- langflow/frontend/assets/flask-conical-off-D0qXXYzd.js +6 -0
- langflow/frontend/assets/flask-round-Cm1EeQog.js +6 -0
- langflow/frontend/assets/flip-horizontal-2-CiicAelk.js +6 -0
- langflow/frontend/assets/flip-horizontal-DzU6OoDY.js +6 -0
- langflow/frontend/assets/flip-vertical-2-D7NpvDiS.js +6 -0
- langflow/frontend/assets/flip-vertical-D5zZqtcB.js +6 -0
- langflow/frontend/assets/flower-2-CexztYf1.js +6 -0
- langflow/frontend/assets/flower-Bma54DNC.js +6 -0
- langflow/frontend/assets/focus-BfN4N87r.js +6 -0
- langflow/frontend/assets/fold-horizontal-JLSkx5Ul.js +6 -0
- langflow/frontend/assets/fold-vertical-C8KNIM_1.js +6 -0
- langflow/frontend/assets/folder-archive-BqffCI6s.js +6 -0
- langflow/frontend/assets/folder-check-DOeoM9Ui.js +6 -0
- langflow/frontend/assets/folder-clock-DY8Py7Yo.js +6 -0
- langflow/frontend/assets/folder-closed-8Sjt5Q_M.js +6 -0
- langflow/frontend/assets/folder-code-af2KOgrM.js +6 -0
- langflow/frontend/assets/folder-cog-CG8S-nJf.js +6 -0
- langflow/frontend/assets/folder-dot-Bn_AK8ht.js +6 -0
- langflow/frontend/assets/folder-down-Cdg7RppH.js +6 -0
- langflow/frontend/assets/folder-eVmqxqLu.js +6 -0
- langflow/frontend/assets/folder-git-2-CS7p8jPS.js +6 -0
- langflow/frontend/assets/folder-git-BEvtNhYB.js +6 -0
- langflow/frontend/assets/folder-heart-B3357bQ7.js +6 -0
- langflow/frontend/assets/folder-input-CS54jGvm.js +6 -0
- langflow/frontend/assets/folder-kanban-CfsbatY0.js +6 -0
- langflow/frontend/assets/folder-key-C8fVwDGj.js +6 -0
- langflow/frontend/assets/folder-lock-DWlbGIuU.js +6 -0
- langflow/frontend/assets/folder-minus-BgrJAll7.js +6 -0
- langflow/frontend/assets/folder-open-BpUXP460.js +6 -0
- langflow/frontend/assets/folder-open-dot-DwAfKF1I.js +6 -0
- langflow/frontend/assets/folder-output-BvntvXWn.js +6 -0
- langflow/frontend/assets/folder-pen-C7R4xK75.js +6 -0
- langflow/frontend/assets/folder-plus-C13gniOb.js +6 -0
- langflow/frontend/assets/folder-root-byXl6PUE.js +6 -0
- langflow/frontend/assets/folder-search-2-CprKqiKf.js +6 -0
- langflow/frontend/assets/folder-search-B704Twr9.js +6 -0
- langflow/frontend/assets/folder-symlink-DV-YEYTe.js +6 -0
- langflow/frontend/assets/folder-sync-DmFfBIzv.js +6 -0
- langflow/frontend/assets/folder-tree-BwA8hS45.js +6 -0
- langflow/frontend/assets/folder-up-dfRL3ZbO.js +6 -0
- langflow/frontend/assets/folder-x-DdS1Kh6E.js +6 -0
- langflow/frontend/assets/folders-jURfeUYW.js +6 -0
- langflow/frontend/assets/footprints-C3DhUQi1.js +6 -0
- langflow/frontend/assets/forklift-Dsb8hU2a.js +6 -0
- langflow/frontend/assets/forward-4ryXowC_.js +6 -0
- langflow/frontend/assets/frame-BcnUbN8A.js +6 -0
- langflow/frontend/assets/framer-DSJuC3Ej.js +6 -0
- langflow/frontend/assets/frown-bORFKAs-.js +6 -0
- langflow/frontend/assets/fuel-BD7G4Lam.js +6 -0
- langflow/frontend/assets/fullscreen-1-vF6jDJ.js +6 -0
- langflow/frontend/assets/funnel-BEjJpk-D.js +6 -0
- langflow/frontend/assets/funnel-plus-Cwb3P2We.js +6 -0
- langflow/frontend/assets/funnel-x-DB866IWX.js +6 -0
- langflow/frontend/assets/gallery-horizontal-MVzvwubX.js +6 -0
- langflow/frontend/assets/gallery-horizontal-end-BqPCJklr.js +6 -0
- langflow/frontend/assets/gallery-thumbnails-tksV-fzS.js +6 -0
- langflow/frontend/assets/gallery-vertical-CwDEqkCI.js +6 -0
- langflow/frontend/assets/gallery-vertical-end-CM57RekV.js +6 -0
- langflow/frontend/assets/gamepad-2-DWFvNiTD.js +6 -0
- langflow/frontend/assets/gamepad-BhI1fwnk.js +6 -0
- langflow/frontend/assets/gauge-pm_LFK3O.js +6 -0
- langflow/frontend/assets/gavel-BA_oTbL9.js +6 -0
- langflow/frontend/assets/gem-C3ngjhCw.js +6 -0
- langflow/frontend/assets/ghost-BF-FyixJ.js +6 -0
- langflow/frontend/assets/gift-DXVBCeHi.js +6 -0
- langflow/frontend/assets/git-branch-CvymwRNH.js +6 -0
- langflow/frontend/assets/git-branch-plus-CBvvPXl7.js +6 -0
- langflow/frontend/assets/git-commit-horizontal-9RbPhyua.js +6 -0
- langflow/frontend/assets/git-commit-vertical-D5cBOLH7.js +6 -0
- langflow/frontend/assets/git-compare-arrows-JsHSBf7B.js +6 -0
- langflow/frontend/assets/git-compare-bNqBra3R.js +6 -0
- langflow/frontend/assets/git-fork-DHR8LFdx.js +6 -0
- langflow/frontend/assets/git-graph-C-KsT4_y.js +6 -0
- langflow/frontend/assets/git-merge-CJviIaGN.js +6 -0
- langflow/frontend/assets/git-pull-request-VeeK2-yo.js +6 -0
- langflow/frontend/assets/git-pull-request-arrow-D5tXBIXv.js +6 -0
- langflow/frontend/assets/git-pull-request-closed-BLteWwtB.js +6 -0
- langflow/frontend/assets/git-pull-request-create-DIcNHYxH.js +6 -0
- langflow/frontend/assets/git-pull-request-create-arrow-BT0Y1rqZ.js +6 -0
- langflow/frontend/assets/git-pull-request-draft-Bbwzg6vX.js +6 -0
- langflow/frontend/assets/github-DLwvmAC1.js +6 -0
- langflow/frontend/assets/gitlab-DtCtYN7A.js +6 -0
- langflow/frontend/assets/glass-water-D2Y_kLyA.js +6 -0
- langflow/frontend/assets/glasses-CtHdOWfR.js +6 -0
- langflow/frontend/assets/globe-lock-B9ATkXdO.js +6 -0
- langflow/frontend/assets/globe-mb9Bd_p-.js +6 -0
- langflow/frontend/assets/goal-D_saei_u.js +6 -0
- langflow/frontend/assets/grab-BxnPY0g2.js +6 -0
- langflow/frontend/assets/graduation-cap-CUs3RC3F.js +6 -0
- langflow/frontend/assets/grape-CKMb2mkd.js +6 -0
- langflow/frontend/assets/grid-2x2-BWVzxLQw.js +6 -0
- langflow/frontend/assets/grid-2x2-check-DUj9ZJqn.js +6 -0
- langflow/frontend/assets/grid-2x2-plus-BT-EsIOn.js +6 -0
- langflow/frontend/assets/grid-2x2-x-DxReUbA5.js +6 -0
- langflow/frontend/assets/grid-3x3-C_ligFpx.js +6 -0
- langflow/frontend/assets/grip-B_KD3YUU.js +6 -0
- langflow/frontend/assets/grip-horizontal-BZ3Vv2Ha.js +6 -0
- langflow/frontend/assets/grip-vertical-BETUt37g.js +6 -0
- langflow/frontend/assets/group-BNmcogVv.js +6 -0
- langflow/frontend/assets/guitar-W4OktqAe.js +6 -0
- langflow/frontend/assets/ham-CVCR1uS6.js +6 -0
- langflow/frontend/assets/hammer-BWh1SXlv.js +6 -0
- langflow/frontend/assets/hand-C7TtnIa3.js +6 -0
- langflow/frontend/assets/hand-coins-gDwx7SVi.js +6 -0
- langflow/frontend/assets/hand-heart-rA9LGnON.js +6 -0
- langflow/frontend/assets/hand-helping-0S22McQF.js +6 -0
- langflow/frontend/assets/hand-metal-BRS4Qm3s.js +6 -0
- langflow/frontend/assets/hand-platter-CLqrlgex.js +6 -0
- langflow/frontend/assets/handshake-Bt0bcpFJ.js +6 -0
- langflow/frontend/assets/hard-drive-CRYjv4W-.js +6 -0
- langflow/frontend/assets/hard-drive-download-CY7chV9Q.js +6 -0
- langflow/frontend/assets/hard-drive-upload-P-zTZlIN.js +6 -0
- langflow/frontend/assets/hard-hat-CiAbIFtZ.js +6 -0
- langflow/frontend/assets/hash-B5ffTNt7.js +6 -0
- langflow/frontend/assets/haze-4j36iUtw.js +6 -0
- langflow/frontend/assets/hdmi-port-DW9O8GNF.js +6 -0
- langflow/frontend/assets/heading-1-qvUkh-3B.js +6 -0
- langflow/frontend/assets/heading-2-BR9BEcEH.js +6 -0
- langflow/frontend/assets/heading-3-DY9Zf3vZ.js +6 -0
- langflow/frontend/assets/heading-4-DNahwYJC.js +6 -0
- langflow/frontend/assets/heading-5-Ci_pbAP7.js +6 -0
- langflow/frontend/assets/heading-6-BWA32eyj.js +6 -0
- langflow/frontend/assets/heading-C7KLVz9g.js +6 -0
- langflow/frontend/assets/headphone-off-CTBK5huX.js +6 -0
- langflow/frontend/assets/headphones-CvpfHeBw.js +6 -0
- langflow/frontend/assets/headset-D6a1tEnQ.js +6 -0
- langflow/frontend/assets/heart-CegSgV3K.js +6 -0
- langflow/frontend/assets/heart-crack-C_pCvIp3.js +6 -0
- langflow/frontend/assets/heart-handshake-BKILJI-d.js +6 -0
- langflow/frontend/assets/heart-minus-H31H2CjD.js +6 -0
- langflow/frontend/assets/heart-off-D7RaIGZM.js +6 -0
- langflow/frontend/assets/heart-plus-BzjaA-vB.js +6 -0
- langflow/frontend/assets/heart-pulse-qBJcE0u6.js +6 -0
- langflow/frontend/assets/heater-DK20eg_l.js +6 -0
- langflow/frontend/assets/hexagon-CVp0ssY4.js +6 -0
- langflow/frontend/assets/highlighter-C99QVyyU.js +6 -0
- langflow/frontend/assets/history-D8wfKqDa.js +6 -0
- langflow/frontend/assets/hop-D3dNEcSg.js +6 -0
- langflow/frontend/assets/hop-off-BLuyaOPs.js +6 -0
- langflow/frontend/assets/hospital-CcVqiCkI.js +6 -0
- langflow/frontend/assets/hotel-CyO8UKhp.js +6 -0
- langflow/frontend/assets/hourglass-BhWwaV7W.js +6 -0
- langflow/frontend/assets/house-DSBGYwYC.js +6 -0
- langflow/frontend/assets/house-plug-Cexilfei.js +6 -0
- langflow/frontend/assets/house-plus-BsgGJ5Yf.js +6 -0
- langflow/frontend/assets/house-wifi-DBFvR9TZ.js +6 -0
- langflow/frontend/assets/ice-cream-bowl-Dof7QD1I.js +6 -0
- langflow/frontend/assets/ice-cream-cone-CthW8x9G.js +6 -0
- langflow/frontend/assets/id-card-D5dEmhp_.js +6 -0
- langflow/frontend/assets/image-BdfQPOA_.js +6 -0
- langflow/frontend/assets/image-down-B5rjh0eb.js +6 -0
- langflow/frontend/assets/image-minus-B5F4zilt.js +6 -0
- langflow/frontend/assets/image-off-iZqLyP3o.js +6 -0
- langflow/frontend/assets/image-play-Cdd_sPBz.js +6 -0
- langflow/frontend/assets/image-plus-Bsgt4Tfk.js +6 -0
- langflow/frontend/assets/image-up-R3S-Fb_a.js +6 -0
- langflow/frontend/assets/image-upscale-usmdTndn.js +6 -0
- langflow/frontend/assets/images-CLONhCoO.js +6 -0
- langflow/frontend/assets/import-GkIxe6Nc.js +6 -0
- langflow/frontend/assets/inbox-C32wQ12t.js +6 -0
- langflow/frontend/assets/indent-decrease-B9_yCuAJ.js +6 -0
- langflow/frontend/assets/indent-increase-Cz2JLS0b.js +6 -0
- langflow/frontend/assets/index-0phF0hAW.js +1 -0
- langflow/frontend/assets/index-190xvA68.js +1 -0
- langflow/frontend/assets/index-25_Qp26P.js +1 -0
- langflow/frontend/assets/index-2MtSuMmd.js +1 -0
- langflow/frontend/assets/index-5D92uxEJ.js +1 -0
- langflow/frontend/assets/index-6BJZ9Pmp.js +1 -0
- langflow/frontend/assets/index-94gla548.js +1 -0
- langflow/frontend/assets/index-AuZe-ngU.js +381 -0
- langflow/frontend/assets/index-B0HiEU_s.js +1 -0
- langflow/frontend/assets/index-B15lQ_2z.js +1 -0
- langflow/frontend/assets/index-B3OK8N2u.js +1 -0
- langflow/frontend/assets/index-B3Yt68yy.js +1 -0
- langflow/frontend/assets/index-B5Zvq_Pb.js +1 -0
- langflow/frontend/assets/index-B6NZoXiJ.js +7 -0
- langflow/frontend/assets/index-B85_Dksv.js +1 -0
- langflow/frontend/assets/index-BEMjoSH7.js +1 -0
- langflow/frontend/assets/index-BF1oPeYf.js +1 -0
- langflow/frontend/assets/index-BF353yvx.js +1 -0
- langflow/frontend/assets/index-BFD8SY9I.js +1 -0
- langflow/frontend/assets/index-BFVJpgU8.js +1 -0
- langflow/frontend/assets/index-BGLqZQ5F.js +1 -0
- langflow/frontend/assets/index-BHgI-kgJ.js +1 -0
- langflow/frontend/assets/index-BJO0z3G0.js +1 -0
- langflow/frontend/assets/index-BKNu5vZa.js +205 -0
- langflow/frontend/assets/index-BMaP8pXZ.js +1 -0
- langflow/frontend/assets/index-BP9yxPCl.js +1 -0
- langflow/frontend/assets/index-BQ61IrZU.js +185 -0
- langflow/frontend/assets/index-BSQGtvtI.js +1 -0
- langflow/frontend/assets/index-BXIMxiON.js +1 -0
- langflow/frontend/assets/index-BYTys_GB.js +1 -0
- langflow/frontend/assets/index-BYXzjVHC.js +1 -0
- langflow/frontend/assets/index-BZFHtvHK.js +1 -0
- langflow/frontend/assets/index-B_jd7JB6.js +1 -0
- langflow/frontend/assets/index-B_r_WXxu.js +1 -0
- langflow/frontend/assets/index-B_yqjRPz.js +1 -0
- langflow/frontend/assets/index-BadcH9fn.js +1 -0
- langflow/frontend/assets/index-Bae3Qz10.js +1 -0
- langflow/frontend/assets/index-BbOBJJKV.js +1 -0
- langflow/frontend/assets/index-BgwF8LI8.js +1 -0
- langflow/frontend/assets/index-BhdwDbaJ.js +1 -0
- langflow/frontend/assets/index-Bi4c-giG.js +1 -0
- langflow/frontend/assets/index-Bip6ySuQ.js +1 -0
- langflow/frontend/assets/index-BkbCY_dl.js +1 -0
- langflow/frontend/assets/index-BlOlBfRg.js +1 -0
- langflow/frontend/assets/index-Blhx-SP4.js +1 -0
- langflow/frontend/assets/index-Bnb7QBfu.js +1 -0
- langflow/frontend/assets/index-Bnss_nit.js +1 -0
- langflow/frontend/assets/index-BpNqCkB1.js +1 -0
- langflow/frontend/assets/index-BqRKzkF1.js +1 -0
- langflow/frontend/assets/index-Bsjnh87F.js +1 -0
- langflow/frontend/assets/index-Btaf2a3s.js +1 -0
- langflow/frontend/assets/index-Bu9v3rac.js +1 -0
- langflow/frontend/assets/index-Bw_hOzan.js +1 -0
- langflow/frontend/assets/index-BwutGmgE.js +1 -0
- langflow/frontend/assets/index-ByweHquX.js +1 -0
- langflow/frontend/assets/index-Bz1CRp1o.js +1 -0
- langflow/frontend/assets/index-C1kmAgl5.js +1 -0
- langflow/frontend/assets/index-C2NO6tJj.js +1 -0
- langflow/frontend/assets/index-C2X7xzXv.js +1 -0
- langflow/frontend/assets/index-C3Qz98DK.js +1 -0
- langflow/frontend/assets/index-C3hN_tQ_.js +281 -0
- langflow/frontend/assets/index-C4MOo85o.js +1 -0
- langflow/frontend/assets/index-C64ecSrr.js +1 -0
- langflow/frontend/assets/index-C8-2C71K.js +1 -0
- langflow/frontend/assets/index-CArLAVm4.js +1 -0
- langflow/frontend/assets/index-CCgTZGr5.js +1 -0
- langflow/frontend/assets/index-CDSyGh8h.js +1 -0
- langflow/frontend/assets/index-CDZKnq7I.js +1 -0
- langflow/frontend/assets/index-CEgPuN0K.js +1 -0
- langflow/frontend/assets/index-CG1O4hT5.js +1 -0
- langflow/frontend/assets/index-CH2G7t7D.js +1 -0
- langflow/frontend/assets/index-CQdn9e1s.js +21 -0
- langflow/frontend/assets/index-CRMphHp1.js +1 -0
- langflow/frontend/assets/index-CRURQPcb.js +1 -0
- langflow/frontend/assets/index-CT1bvNKi.js +1 -0
- langflow/frontend/assets/index-CTVsEvAT.js +1 -0
- langflow/frontend/assets/index-CX2CahQs.js +1 -0
- langflow/frontend/assets/index-CXNxNpz_.js +1 -0
- langflow/frontend/assets/index-CYXf3ZKk.js +1 -0
- langflow/frontend/assets/index-CZNTNIYG.js +1 -0
- langflow/frontend/assets/index-C_40j3dV.js +1 -0
- langflow/frontend/assets/index-CcVZOh8b.js +1 -0
- langflow/frontend/assets/index-Cck8pnPg.js +1 -0
- langflow/frontend/assets/index-CdVB2QJD.js +1 -0
- langflow/frontend/assets/index-CeF2eL7q.js +1 -0
- langflow/frontend/assets/index-Cidr57qg.js +7323 -0
- langflow/frontend/assets/index-CjhZZUe9.js +1 -0
- langflow/frontend/assets/index-CkE4ffT5.js +1 -0
- langflow/frontend/assets/index-CocJsLpF.js +1 -0
- langflow/frontend/assets/index-CpUnm570.js +1 -0
- langflow/frontend/assets/index-CqOsAlB1.js +1 -0
- langflow/frontend/assets/index-Ctv5t9Ax.js +1 -0
- langflow/frontend/assets/index-Cu71RknM.js +1 -0
- langflow/frontend/assets/index-CuWoIZkj.js +1 -0
- langflow/frontend/assets/index-CuboaYvj.js +1 -0
- langflow/frontend/assets/index-CvnvFDEJ.js +108 -0
- langflow/frontend/assets/index-Cwrq5I4n.js +14 -0
- langflow/frontend/assets/index-CxBgryeO.js +1 -0
- langflow/frontend/assets/index-Cy-nj55q.js +1 -0
- langflow/frontend/assets/index-D-I17JZS.js +1 -0
- langflow/frontend/assets/index-D0_3pIA0.js +1 -0
- langflow/frontend/assets/index-D2-y5UBg.js +1 -0
- langflow/frontend/assets/index-D5p-Xdcb.js +1 -0
- langflow/frontend/assets/index-D7SXXArE.js +1 -0
- langflow/frontend/assets/index-D7ug5Mr4.js +1 -0
- langflow/frontend/assets/index-D8Ojh-k6.js +1 -0
- langflow/frontend/assets/index-D8UxwgB_.js +1 -0
- langflow/frontend/assets/index-DAxOth3t.js +1 -0
- langflow/frontend/assets/index-DB02OuvQ.js +767 -0
- langflow/frontend/assets/index-DB3P3gpX.js +1 -0
- langflow/frontend/assets/index-DDbpcVpi.js +1 -0
- langflow/frontend/assets/index-DDkfBk3_.js +1 -0
- langflow/frontend/assets/index-DE4WjdXi.js +1 -0
- langflow/frontend/assets/index-DFefZRt3.js +1 -0
- langflow/frontend/assets/index-DHhNCoxC.js +1 -0
- langflow/frontend/assets/index-DHvEjBzy.js +1 -0
- langflow/frontend/assets/index-DIeFK5un.js +1 -0
- langflow/frontend/assets/index-DJMrXx0h.js +1 -0
- langflow/frontend/assets/index-DMKTA8hO.js +1 -0
- langflow/frontend/assets/index-DNc0ObDi.js +1 -0
- langflow/frontend/assets/index-DPYWL9Xo.js +1 -0
- langflow/frontend/assets/index-DPpFAB_M.js +1 -0
- langflow/frontend/assets/index-DS6TyH60.js +1 -0
- langflow/frontend/assets/index-DSiPc20v.js +1 -0
- langflow/frontend/assets/index-DT6I0ji6.js +1 -0
- langflow/frontend/assets/index-DUPyoHu0.js +1 -0
- langflow/frontend/assets/index-DZ5HGZMy.js +1 -0
- langflow/frontend/assets/index-DZRwOBje.js +20 -0
- langflow/frontend/assets/index-De3N_i8c.js +1 -0
- langflow/frontend/assets/index-DjBhV7ZX.js +1 -0
- langflow/frontend/assets/index-DjCKJxoZ.js +1 -0
- langflow/frontend/assets/index-DknGB3mL.js +1 -0
- langflow/frontend/assets/index-DnDMuUOD.js +1 -0
- langflow/frontend/assets/index-DnMs3n1N.js +399 -0
- langflow/frontend/assets/index-DnqVuRVT.js +1 -0
- langflow/frontend/assets/index-DpJ0uzab.js +495 -0
- langflow/frontend/assets/index-DqSxHJgE.js +1 -0
- langflow/frontend/assets/index-DqrfBmrJ.js +1 -0
- langflow/frontend/assets/index-DrDOytJC.js +1 -0
- langflow/frontend/assets/index-DsDi0Bjj.js +1 -0
- langflow/frontend/assets/index-DsNVoDzR.js +127 -0
- langflow/frontend/assets/index-Dt50-PjL.js +1 -0
- langflow/frontend/assets/index-Du9lcEvb.js +1 -0
- langflow/frontend/assets/index-Dvu6DvO2.js +1 -0
- langflow/frontend/assets/index-DwBe9f6v.js +1 -0
- langflow/frontend/assets/index-DwtG8USV.js +1 -0
- langflow/frontend/assets/index-Dzc_q67O.js +1 -0
- langflow/frontend/assets/index-E0x1Hzu4.js +1 -0
- langflow/frontend/assets/index-GykK2iIn.js +1 -0
- langflow/frontend/assets/index-K8dAnAZF.js +1 -0
- langflow/frontend/assets/index-KFjasZlN.js +1 -0
- langflow/frontend/assets/index-KRFrreTx.js +1 -0
- langflow/frontend/assets/index-MZ8lJjwI.js +1 -0
- langflow/frontend/assets/index-PAdwqdYR.js +2 -0
- langflow/frontend/assets/index-PzWFAJc5.js +1 -0
- langflow/frontend/assets/index-QbN-AMm6.js +1 -0
- langflow/frontend/assets/index-SaFrAWJv.js +1 -0
- langflow/frontend/assets/index-Sg9rwmLa.js +1 -0
- langflow/frontend/assets/index-TdOK0iYE.js +1 -0
- langflow/frontend/assets/index-UVJZzmVG.js +1 -0
- langflow/frontend/assets/index-UfDqV7Th.js +1 -0
- langflow/frontend/assets/index-VPMVkUGa.js +1 -0
- langflow/frontend/assets/index-YYykW4Z0.js +1 -0
- langflow/frontend/assets/index-ZvMkdQ1T.js +1 -0
- langflow/frontend/assets/index-_X1FFLFO.js +1 -0
- langflow/frontend/assets/index-aX7kluAF.js +1 -0
- langflow/frontend/assets/index-b_iJY4LX.js +1 -0
- langflow/frontend/assets/index-eOFIpP6q.js +1 -0
- langflow/frontend/assets/index-i5xkcJo9.js +1 -0
- langflow/frontend/assets/index-j9XPM87F.js +1 -0
- langflow/frontend/assets/index-jX87eqGu.js +1 -0
- langflow/frontend/assets/index-kR3AdtE6.js +1 -0
- langflow/frontend/assets/index-kkPMNG8F.js +13 -0
- langflow/frontend/assets/index-lGKQ51bw.js +1 -0
- langflow/frontend/assets/index-nC0FZUl2.js +1 -0
- langflow/frontend/assets/index-nRNamDkS.js +1 -0
- langflow/frontend/assets/index-naRqFBGF.js +1 -0
- langflow/frontend/assets/index-oZYqaFMt.js +1 -0
- langflow/frontend/assets/index-p_O4RsMx.js +1 -0
- langflow/frontend/assets/index-sNtTAT5M.js +1 -0
- langflow/frontend/assets/index-tRn0T9eP.js +1 -0
- langflow/frontend/assets/index-u-PIynSn.js +1 -0
- langflow/frontend/assets/index-uNXjHJ0I.js +1 -0
- langflow/frontend/assets/index-uywG8s5T.js +1 -0
- langflow/frontend/assets/index-v7I5KNh9.js +1 -0
- langflow/frontend/assets/indian-rupee-BwTmLYOI.js +6 -0
- langflow/frontend/assets/infinity-Dh8NBtPf.js +6 -0
- langflow/frontend/assets/info-Dv4W4Ls4.js +6 -0
- langflow/frontend/assets/inspection-panel-D7WhwHo_.js +6 -0
- langflow/frontend/assets/instagram-Do9mreAQ.js +6 -0
- langflow/frontend/assets/italic-Ca-_MJMM.js +6 -0
- langflow/frontend/assets/iteration-ccw-BJurPsoq.js +6 -0
- langflow/frontend/assets/iteration-cw-FqnCo_5f.js +6 -0
- langflow/frontend/assets/japanese-yen-Bav4bd1l.js +6 -0
- langflow/frontend/assets/joystick-DV4qb2N5.js +6 -0
- langflow/frontend/assets/kanban-CZS74wpv.js +6 -0
- langflow/frontend/assets/key-BWzYBkPV.js +6 -0
- langflow/frontend/assets/key-round-DuROIWKu.js +6 -0
- langflow/frontend/assets/key-square-BVQppw3t.js +6 -0
- langflow/frontend/assets/keyboard-CzWokhoC.js +6 -0
- langflow/frontend/assets/keyboard-music-D9OkSafG.js +6 -0
- langflow/frontend/assets/keyboard-off-eIoqTwvV.js +6 -0
- langflow/frontend/assets/lamp-bVDXt7l6.js +6 -0
- langflow/frontend/assets/lamp-ceiling-vyH-uHHW.js +6 -0
- langflow/frontend/assets/lamp-desk-C1_xpLmX.js +6 -0
- langflow/frontend/assets/lamp-floor-DgNIyBa9.js +6 -0
- langflow/frontend/assets/lamp-wall-down-BPzU3zyX.js +6 -0
- langflow/frontend/assets/lamp-wall-up-CrBzyE-d.js +6 -0
- langflow/frontend/assets/land-plot-BZQr9cgA.js +6 -0
- langflow/frontend/assets/landmark-CVYKdN3X.js +6 -0
- langflow/frontend/assets/languages-45SyjLGE.js +6 -0
- langflow/frontend/assets/laptop-CoknuACm.js +6 -0
- langflow/frontend/assets/laptop-minimal-DLasDIm8.js +6 -0
- langflow/frontend/assets/laptop-minimal-check-DJ5oYc2T.js +6 -0
- langflow/frontend/assets/lasso-BI3aB94J.js +6 -0
- langflow/frontend/assets/lasso-select-UJUIqJqA.js +6 -0
- langflow/frontend/assets/laugh-DDFlxFF9.js +6 -0
- langflow/frontend/assets/layers-2-VRynypVE.js +6 -0
- langflow/frontend/assets/layers-BHZWg3DI.js +6 -0
- langflow/frontend/assets/layout-dashboard-DgW72CjK.js +6 -0
- langflow/frontend/assets/layout-grid--q7PN_qg.js +6 -0
- langflow/frontend/assets/layout-list-CCLvLIFC.js +6 -0
- langflow/frontend/assets/layout-panel-left-C_Qjw6QC.js +6 -0
- langflow/frontend/assets/layout-panel-top-DzLjyhuf.js +6 -0
- langflow/frontend/assets/layout-template-B-5X_Qkx.js +6 -0
- langflow/frontend/assets/lazyIconImports-Bz3bkgCe.js +2 -0
- langflow/frontend/assets/leaf-C3JjvcCt.js +6 -0
- langflow/frontend/assets/leafy-green-CyhqB08u.js +6 -0
- langflow/frontend/assets/lectern-DOC9cItP.js +6 -0
- langflow/frontend/assets/letter-text-C0gmbTry.js +6 -0
- langflow/frontend/assets/library-C1CsMb8h.js +6 -0
- langflow/frontend/assets/library-big-Cg8YN3RQ.js +6 -0
- langflow/frontend/assets/life-buoy-BJ4o4btU.js +6 -0
- langflow/frontend/assets/ligature-F7CjHgcf.js +6 -0
- langflow/frontend/assets/lightbulb-DwhjekWM.js +6 -0
- langflow/frontend/assets/lightbulb-off--IIEl1Uu.js +6 -0
- langflow/frontend/assets/link-2-BwyOJj2E.js +6 -0
- langflow/frontend/assets/link-2-off-C5VeEnRj.js +6 -0
- langflow/frontend/assets/link-Crooi5CK.js +6 -0
- langflow/frontend/assets/linkedin-CW8Gdyiy.js +6 -0
- langflow/frontend/assets/list-BqvobIeA.js +6 -0
- langflow/frontend/assets/list-check-CO3D1i6B.js +6 -0
- langflow/frontend/assets/list-checks-ompA_hJ3.js +6 -0
- langflow/frontend/assets/list-collapse-BMesRt3G.js +6 -0
- langflow/frontend/assets/list-end-CcRyDVJj.js +6 -0
- langflow/frontend/assets/list-filter-CiV0Bxq2.js +6 -0
- langflow/frontend/assets/list-filter-plus-BZpxNwsH.js +6 -0
- langflow/frontend/assets/list-minus-BYvvlNjc.js +6 -0
- langflow/frontend/assets/list-music-BvIN7DCF.js +6 -0
- langflow/frontend/assets/list-ordered-DC36HggM.js +6 -0
- langflow/frontend/assets/list-plus-CBq0273s.js +6 -0
- langflow/frontend/assets/list-restart-MpqexlAi.js +6 -0
- langflow/frontend/assets/list-start-C8B4Iz0l.js +6 -0
- langflow/frontend/assets/list-todo-t9Uz6s5k.js +6 -0
- langflow/frontend/assets/list-tree-C_jTFXcp.js +6 -0
- langflow/frontend/assets/list-video-BUi7L7h1.js +6 -0
- langflow/frontend/assets/list-x-25I3R3EQ.js +6 -0
- langflow/frontend/assets/loader-DojwFfmg.js +6 -0
- langflow/frontend/assets/loader-circle-BIDGgBMg.js +6 -0
- langflow/frontend/assets/loader-pinwheel-DAcRdN4v.js +6 -0
- langflow/frontend/assets/locate-DU82yHfH.js +6 -0
- langflow/frontend/assets/locate-fixed-BOviOtja.js +6 -0
- langflow/frontend/assets/locate-off-ypytr2El.js +6 -0
- langflow/frontend/assets/location-edit-Cz3hePHF.js +6 -0
- langflow/frontend/assets/lock-CCg6w3pY.js +6 -0
- langflow/frontend/assets/lock-keyhole-CX3_fQEB.js +6 -0
- langflow/frontend/assets/lock-keyhole-open-Kq0AVKzj.js +6 -0
- langflow/frontend/assets/lock-open-DtpgnBqE.js +6 -0
- langflow/frontend/assets/log-in-CUEy1JTq.js +6 -0
- langflow/frontend/assets/log-out-IzTjzLpx.js +6 -0
- langflow/frontend/assets/logs-CJulgLEs.js +6 -0
- langflow/frontend/assets/lollipop-DBq9NgQr.js +6 -0
- langflow/frontend/assets/luggage-Btwx2Ot6.js +6 -0
- langflow/frontend/assets/magnet-Denpacuv.js +6 -0
- langflow/frontend/assets/mail-check-CaJkfM-K.js +6 -0
- langflow/frontend/assets/mail-mNShmIw5.js +6 -0
- langflow/frontend/assets/mail-minus-C3CryOgO.js +6 -0
- langflow/frontend/assets/mail-open-CH5-mJXF.js +6 -0
- langflow/frontend/assets/mail-plus-Biazs9K2.js +6 -0
- langflow/frontend/assets/mail-question-DK9RsXOL.js +6 -0
- langflow/frontend/assets/mail-search-DFn8-RMW.js +6 -0
- langflow/frontend/assets/mail-warning-BfqXHQ0a.js +6 -0
- langflow/frontend/assets/mail-x-BbahUcO6.js +6 -0
- langflow/frontend/assets/mailbox-8wq6kjqA.js +6 -0
- langflow/frontend/assets/mails-Q1q_iYv7.js +6 -0
- langflow/frontend/assets/map-BNKjH1Fl.js +6 -0
- langflow/frontend/assets/map-pin-Hq6WcTW0.js +6 -0
- langflow/frontend/assets/map-pin-check-inside-2vLXtfPV.js +6 -0
- langflow/frontend/assets/map-pin-check-tZZ9FoDV.js +6 -0
- langflow/frontend/assets/map-pin-house-LL627BKs.js +6 -0
- langflow/frontend/assets/map-pin-minus-BA87I2RR.js +6 -0
- langflow/frontend/assets/map-pin-minus-inside-Ys3Lzs0l.js +6 -0
- langflow/frontend/assets/map-pin-off-gbjYYZwD.js +6 -0
- langflow/frontend/assets/map-pin-plus-BqmbzQII.js +6 -0
- langflow/frontend/assets/map-pin-plus-inside-1d0l4IFr.js +6 -0
- langflow/frontend/assets/map-pin-x-BzVVR0rt.js +6 -0
- langflow/frontend/assets/map-pin-x-inside-D28uxF0R.js +6 -0
- langflow/frontend/assets/map-pinned-Dq19m9e2.js +6 -0
- langflow/frontend/assets/map-plus-DmbbaQS7.js +6 -0
- langflow/frontend/assets/mars-BX3A7zA9.js +6 -0
- langflow/frontend/assets/mars-stroke-BL38pj5R.js +6 -0
- langflow/frontend/assets/martini-Bqwx_md5.js +6 -0
- langflow/frontend/assets/maximize-2-CpuS3cL-.js +6 -0
- langflow/frontend/assets/maximize-BedPrjVF.js +6 -0
- langflow/frontend/assets/medal-AghGVQt7.js +6 -0
- langflow/frontend/assets/megaphone-CJ_vXm7O.js +6 -0
- langflow/frontend/assets/megaphone-off-C11KLwO4.js +6 -0
- langflow/frontend/assets/meh-CW-EgNPh.js +6 -0
- langflow/frontend/assets/memory-stick-Cd66iaS4.js +6 -0
- langflow/frontend/assets/menu-_dG5yVw3.js +6 -0
- langflow/frontend/assets/merge-Cb0QwOv7.js +6 -0
- langflow/frontend/assets/message-circle-52FtCirt.js +6 -0
- langflow/frontend/assets/message-circle-code-B5KURs5S.js +6 -0
- langflow/frontend/assets/message-circle-dashed-waKjBvNJ.js +6 -0
- langflow/frontend/assets/message-circle-heart-UMH-HX7W.js +6 -0
- langflow/frontend/assets/message-circle-more-Cg_ltQEC.js +6 -0
- langflow/frontend/assets/message-circle-off-zHmLC-AS.js +6 -0
- langflow/frontend/assets/message-circle-plus-C3e9QNH0.js +6 -0
- langflow/frontend/assets/message-circle-question-0dwLf4vc.js +6 -0
- langflow/frontend/assets/message-circle-reply-CB0lR6DE.js +6 -0
- langflow/frontend/assets/message-circle-warning-CTB2Hx_g.js +6 -0
- langflow/frontend/assets/message-circle-x-CT_pQ-jA.js +6 -0
- langflow/frontend/assets/message-square-Q5N-krYh.js +6 -0
- langflow/frontend/assets/message-square-code-ibprMtz3.js +6 -0
- langflow/frontend/assets/message-square-dashed-NEtTID9I.js +6 -0
- langflow/frontend/assets/message-square-diff-BLldgXed.js +6 -0
- langflow/frontend/assets/message-square-dot-Cfibvj-U.js +6 -0
- langflow/frontend/assets/message-square-heart-CV7hi8dc.js +6 -0
- langflow/frontend/assets/message-square-lock-mWga49zz.js +6 -0
- langflow/frontend/assets/message-square-more-DCr1OP5i.js +6 -0
- langflow/frontend/assets/message-square-off-SRd8-EpB.js +6 -0
- langflow/frontend/assets/message-square-plus-VBl7AfnB.js +6 -0
- langflow/frontend/assets/message-square-quote-CgkubcWl.js +6 -0
- langflow/frontend/assets/message-square-reply-DhRhpR7V.js +6 -0
- langflow/frontend/assets/message-square-share-BTxQd2vA.js +6 -0
- langflow/frontend/assets/message-square-text-BzdbDDYX.js +6 -0
- langflow/frontend/assets/message-square-warning-DElcRREE.js +6 -0
- langflow/frontend/assets/message-square-x-CkS-D0ZQ.js +6 -0
- langflow/frontend/assets/messages-square-CJRjj-e6.js +6 -0
- langflow/frontend/assets/mic-CbUPysjv.js +6 -0
- langflow/frontend/assets/mic-off-DnQis5H4.js +6 -0
- langflow/frontend/assets/mic-vocal-C_32nw-u.js +6 -0
- langflow/frontend/assets/microchip-hihvWe6v.js +6 -0
- langflow/frontend/assets/microscope-V58rsnW1.js +6 -0
- langflow/frontend/assets/microwave-fAFdtfZD.js +6 -0
- langflow/frontend/assets/milestone-Bvy5tx_q.js +6 -0
- langflow/frontend/assets/milk-RvsrcGM-.js +6 -0
- langflow/frontend/assets/milk-off-DR675sEi.js +6 -0
- langflow/frontend/assets/minimize-2-BOQ_nBxs.js +6 -0
- langflow/frontend/assets/minimize-DgOpuiSn.js +6 -0
- langflow/frontend/assets/monitor-C-64RI3p.js +6 -0
- langflow/frontend/assets/monitor-check-B7yW02iG.js +6 -0
- langflow/frontend/assets/monitor-cog-BghcqHRt.js +6 -0
- langflow/frontend/assets/monitor-dot-CD9ZdwzM.js +6 -0
- langflow/frontend/assets/monitor-down-Cgqoy8Gy.js +6 -0
- langflow/frontend/assets/monitor-off-Dn_XstC0.js +6 -0
- langflow/frontend/assets/monitor-pause-RDyryqkr.js +6 -0
- langflow/frontend/assets/monitor-play--cb__gmL.js +6 -0
- langflow/frontend/assets/monitor-smartphone-BF285xqc.js +6 -0
- langflow/frontend/assets/monitor-speaker-xO_S-6dS.js +6 -0
- langflow/frontend/assets/monitor-stop-CtCM968A.js +6 -0
- langflow/frontend/assets/monitor-up-5L3XxAMM.js +6 -0
- langflow/frontend/assets/monitor-x-DgYxgG2N.js +6 -0
- langflow/frontend/assets/moon-CI2m7CGH.js +6 -0
- langflow/frontend/assets/moon-star-Bz3TgrEc.js +6 -0
- langflow/frontend/assets/mountain-LpzgaRB1.js +6 -0
- langflow/frontend/assets/mountain-snow-BQJQB6gK.js +6 -0
- langflow/frontend/assets/mouse-BL1O1m96.js +6 -0
- langflow/frontend/assets/mouse-off-D_qFgcNf.js +6 -0
- langflow/frontend/assets/mouse-pointer-2-DOYUlrR6.js +6 -0
- langflow/frontend/assets/mouse-pointer-BZ69s9aI.js +6 -0
- langflow/frontend/assets/mouse-pointer-ban-3sdegHOo.js +6 -0
- langflow/frontend/assets/mouse-pointer-click-DbqPOzfa.js +6 -0
- langflow/frontend/assets/move-3d-DjF8F2Xe.js +6 -0
- langflow/frontend/assets/move-C8KtKXDD.js +6 -0
- langflow/frontend/assets/move-diagonal-2-BnJF1lh-.js +6 -0
- langflow/frontend/assets/move-diagonal-qMcF5hdU.js +6 -0
- langflow/frontend/assets/move-down-DSPc-fDE.js +6 -0
- langflow/frontend/assets/move-down-left-K4qdRcT6.js +6 -0
- langflow/frontend/assets/move-down-right-DV4ZEXu5.js +6 -0
- langflow/frontend/assets/move-horizontal-D00wEncL.js +6 -0
- langflow/frontend/assets/move-left-BQT_sqYK.js +6 -0
- langflow/frontend/assets/move-right-BEL9BIao.js +6 -0
- langflow/frontend/assets/move-up-D7szht_Z.js +6 -0
- langflow/frontend/assets/move-up-left-L6w6uQ4-.js +6 -0
- langflow/frontend/assets/move-up-right-C5-N-Erm.js +6 -0
- langflow/frontend/assets/move-vertical-BGY4Z6NJ.js +6 -0
- langflow/frontend/assets/music-2-BZZd-8Da.js +6 -0
- langflow/frontend/assets/music-3-DWl9Kftk.js +6 -0
- langflow/frontend/assets/music-4-D9TbRjBe.js +6 -0
- langflow/frontend/assets/music-CXzNx0Ej.js +6 -0
- langflow/frontend/assets/navigation-2-off-BMnzsjaI.js +6 -0
- langflow/frontend/assets/navigation-2-zKBl6Qda.js +6 -0
- langflow/frontend/assets/navigation-off-G_2EJHcd.js +6 -0
- langflow/frontend/assets/navigation-qFDfgVuO.js +6 -0
- langflow/frontend/assets/network-C01c95uT.js +6 -0
- langflow/frontend/assets/newspaper-Cv-lQymb.js +6 -0
- langflow/frontend/assets/nfc-mP6629yS.js +6 -0
- langflow/frontend/assets/non-binary-CutC3h4F.js +6 -0
- langflow/frontend/assets/notebook-BZsHMDll.js +6 -0
- langflow/frontend/assets/notebook-pen-B37VM9LR.js +6 -0
- langflow/frontend/assets/notebook-tabs-D0248WIy.js +6 -0
- langflow/frontend/assets/notebook-text-CtsTa1Tx.js +6 -0
- langflow/frontend/assets/notepad-text-5ZgoKeZw.js +6 -0
- langflow/frontend/assets/notepad-text-dashed-Bi2tmsP-.js +6 -0
- langflow/frontend/assets/nut-Cc8dxv-3.js +6 -0
- langflow/frontend/assets/nut-off-Dq-nJY58.js +6 -0
- langflow/frontend/assets/octagon-B43W9laf.js +6 -0
- langflow/frontend/assets/octagon-alert-BKT-KENt.js +6 -0
- langflow/frontend/assets/octagon-minus-CIpb0cq9.js +6 -0
- langflow/frontend/assets/octagon-pause-C3VYxdNn.js +6 -0
- langflow/frontend/assets/octagon-x-BD2emBvs.js +6 -0
- langflow/frontend/assets/omega-5KFeiZdP.js +6 -0
- langflow/frontend/assets/option-D-_6YLKc.js +6 -0
- langflow/frontend/assets/orbit-CMaQ8NFZ.js +6 -0
- langflow/frontend/assets/origami-BGDHUS5V.js +6 -0
- langflow/frontend/assets/package-2-iJReeCXG.js +6 -0
- langflow/frontend/assets/package-check-BPwowUBP.js +6 -0
- langflow/frontend/assets/package-minus-dNiTU7ns.js +6 -0
- langflow/frontend/assets/package-n5XZlHRs.js +6 -0
- langflow/frontend/assets/package-open-BPFhKbzL.js +6 -0
- langflow/frontend/assets/package-plus-CYBPxJrj.js +6 -0
- langflow/frontend/assets/package-search-DmOrd4Wx.js +6 -0
- langflow/frontend/assets/package-x-WzFs0CkF.js +6 -0
- langflow/frontend/assets/paint-bucket-DSeGe6Wq.js +6 -0
- langflow/frontend/assets/paint-roller-CbhG-k_d.js +6 -0
- langflow/frontend/assets/paintbrush-DCub73HW.js +6 -0
- langflow/frontend/assets/paintbrush-vertical-CSgUB38n.js +6 -0
- langflow/frontend/assets/palette-BTAspRl6.js +6 -0
- langflow/frontend/assets/panel-bottom-DKAs47n1.js +6 -0
- langflow/frontend/assets/panel-bottom-close-Dn9Aee-D.js +6 -0
- langflow/frontend/assets/panel-bottom-dashed-C57ExszP.js +6 -0
- langflow/frontend/assets/panel-bottom-open-BahoAeBY.js +6 -0
- langflow/frontend/assets/panel-left-close-2NZii4px.js +6 -0
- langflow/frontend/assets/panel-left-dashed-B7xvlrM3.js +6 -0
- langflow/frontend/assets/panel-left-open-D8IbiVni.js +6 -0
- langflow/frontend/assets/panel-right-DvEwh69d.js +6 -0
- langflow/frontend/assets/panel-right-close-BU2i_6lj.js +6 -0
- langflow/frontend/assets/panel-right-dashed-CGVyfcX7.js +6 -0
- langflow/frontend/assets/panel-right-open-BY6izYgI.js +6 -0
- langflow/frontend/assets/panel-top-DF9Tk-Sl.js +6 -0
- langflow/frontend/assets/panel-top-close-H2Byp8q0.js +6 -0
- langflow/frontend/assets/panel-top-dashed-Dp-OM5rf.js +6 -0
- langflow/frontend/assets/panel-top-open-ChysV6wS.js +6 -0
- langflow/frontend/assets/panels-left-bottom-B9g0wVu3.js +6 -0
- langflow/frontend/assets/panels-right-bottom-BEUMDIKf.js +6 -0
- langflow/frontend/assets/panels-top-left-BhITaudh.js +6 -0
- langflow/frontend/assets/paperclip-vx41TSPC.js +6 -0
- langflow/frontend/assets/parentheses-BWn3uWrz.js +6 -0
- langflow/frontend/assets/parking-meter-D17UrNOe.js +6 -0
- langflow/frontend/assets/party-popper-D2swQyOD.js +6 -0
- langflow/frontend/assets/pause-eTQboL6R.js +6 -0
- langflow/frontend/assets/paw-print-CPITBsQk.js +6 -0
- langflow/frontend/assets/pc-case-DGANtdEL.js +6 -0
- langflow/frontend/assets/pen-BxPgLmtS.js +6 -0
- langflow/frontend/assets/pen-line-iD0BMH2s.js +6 -0
- langflow/frontend/assets/pen-off-DxNceeBA.js +6 -0
- langflow/frontend/assets/pen-tool-Di8zA-s7.js +6 -0
- langflow/frontend/assets/pencil-9kfwTqUP.js +6 -0
- langflow/frontend/assets/pencil-line-CSxpjcva.js +6 -0
- langflow/frontend/assets/pencil-off-CaGgN8bq.js +6 -0
- langflow/frontend/assets/pencil-ruler-Dm9Wz7dD.js +6 -0
- langflow/frontend/assets/pentagon-CLWMXAaY.js +6 -0
- langflow/frontend/assets/percent-9fNitGXM.js +6 -0
- langflow/frontend/assets/person-standing-EqJkcYTC.js +6 -0
- langflow/frontend/assets/philippine-peso-DBvIYuWa.js +6 -0
- langflow/frontend/assets/phone-BllQ2UMq.js +6 -0
- langflow/frontend/assets/phone-call-BMCwxqZn.js +6 -0
- langflow/frontend/assets/phone-forwarded-mlLsfTs-.js +6 -0
- langflow/frontend/assets/phone-incoming-zfZsIXer.js +6 -0
- langflow/frontend/assets/phone-missed-CuSafq9_.js +6 -0
- langflow/frontend/assets/phone-off-CMeaZRiB.js +6 -0
- langflow/frontend/assets/phone-outgoing-DslJLl8S.js +6 -0
- langflow/frontend/assets/pi-ZOw0VRyU.js +6 -0
- langflow/frontend/assets/piano-MWguQr7g.js +6 -0
- langflow/frontend/assets/pickaxe-Cwr62aW5.js +6 -0
- langflow/frontend/assets/picture-in-picture-2-CmjgS_Sk.js +6 -0
- langflow/frontend/assets/picture-in-picture-CIvF2OW6.js +6 -0
- langflow/frontend/assets/piggy-bank-BdGPIv5a.js +6 -0
- langflow/frontend/assets/pilcrow-DIcrLu_7.js +6 -0
- langflow/frontend/assets/pilcrow-left-CjzCvCBJ.js +6 -0
- langflow/frontend/assets/pilcrow-right-D7SrTDGh.js +6 -0
- langflow/frontend/assets/pill-arUcAXhm.js +6 -0
- langflow/frontend/assets/pill-bottle-LPnBlax_.js +6 -0
- langflow/frontend/assets/pin-C-Z7BLdx.js +6 -0
- langflow/frontend/assets/pin-off-DiGxUvg0.js +6 -0
- langflow/frontend/assets/pipette-KZIcjurR.js +6 -0
- langflow/frontend/assets/pizza-C5ovkYsw.js +6 -0
- langflow/frontend/assets/plane-gwsbhpCH.js +6 -0
- langflow/frontend/assets/plane-landing-CmNBajV5.js +6 -0
- langflow/frontend/assets/plane-takeoff-BAKmx9xy.js +6 -0
- langflow/frontend/assets/play-BLX7pfhg.js +6 -0
- langflow/frontend/assets/plug-2-DIJRHfBc.js +6 -0
- langflow/frontend/assets/plug-DvGJf4or.js +6 -0
- langflow/frontend/assets/plug-zap-Dby7iXz_.js +6 -0
- langflow/frontend/assets/pocket-CBi6EXJ9.js +6 -0
- langflow/frontend/assets/pocket-knife-DWNeZDKw.js +6 -0
- langflow/frontend/assets/podcast-REvxdRL4.js +6 -0
- langflow/frontend/assets/pointer-Cb95n8P9.js +6 -0
- langflow/frontend/assets/pointer-off-oUPHD8gV.js +6 -0
- langflow/frontend/assets/popcorn-Dc_a5cjE.js +6 -0
- langflow/frontend/assets/popsicle-D9aLKYLe.js +6 -0
- langflow/frontend/assets/pound-sterling-CyOuNQbR.js +6 -0
- langflow/frontend/assets/power-7-2MF3yX.js +6 -0
- langflow/frontend/assets/power-off-9A6f6kBZ.js +6 -0
- langflow/frontend/assets/presentation-CXImVjJ-.js +6 -0
- langflow/frontend/assets/printer-check-B22z9hle.js +6 -0
- langflow/frontend/assets/printer-kYdn5NFX.js +6 -0
- langflow/frontend/assets/projector-Cip5ECQv.js +6 -0
- langflow/frontend/assets/proportions-DQEPBHfD.js +6 -0
- langflow/frontend/assets/puzzle-WV0iKtR6.js +6 -0
- langflow/frontend/assets/pyramid-BFq2uJGo.js +6 -0
- langflow/frontend/assets/qr-code-DlXW931L.js +6 -0
- langflow/frontend/assets/quote-BdZd7eyc.js +6 -0
- langflow/frontend/assets/rabbit-BYqaCmUx.js +6 -0
- langflow/frontend/assets/radar-D5YpnRk7.js +6 -0
- langflow/frontend/assets/radiation-lTLARj--.js +6 -0
- langflow/frontend/assets/radical-B4Ov94pe.js +6 -0
- langflow/frontend/assets/radio-D4-DfE_1.js +6 -0
- langflow/frontend/assets/radio-receiver-CwMRHUBC.js +6 -0
- langflow/frontend/assets/radio-tower-CBT0T3eV.js +6 -0
- langflow/frontend/assets/radius-Bghc24jA.js +6 -0
- langflow/frontend/assets/rail-symbol-DwuSUAy8.js +6 -0
- langflow/frontend/assets/rainbow-Ez9S5P24.js +6 -0
- langflow/frontend/assets/rat-Aqd9wr3L.js +6 -0
- langflow/frontend/assets/ratio-DmoVdMEJ.js +6 -0
- langflow/frontend/assets/receipt-CrRxOoc9.js +6 -0
- langflow/frontend/assets/receipt-cent-BzRdT5iD.js +6 -0
- langflow/frontend/assets/receipt-euro-Cj4w2KwE.js +6 -0
- langflow/frontend/assets/receipt-indian-rupee-6rfN1Cns.js +6 -0
- langflow/frontend/assets/receipt-japanese-yen-DdxDu5AW.js +6 -0
- langflow/frontend/assets/receipt-pound-sterling-c2IWPR24.js +6 -0
- langflow/frontend/assets/receipt-russian-ruble-iseq21zF.js +6 -0
- langflow/frontend/assets/receipt-swiss-franc-DCCm43Nd.js +6 -0
- langflow/frontend/assets/receipt-text-pnC0gKyt.js +6 -0
- langflow/frontend/assets/rectangle-ellipsis-CF73XhsP.js +6 -0
- langflow/frontend/assets/rectangle-goggles-CAShxqJi.js +6 -0
- langflow/frontend/assets/rectangle-horizontal-N2VbSnFI.js +6 -0
- langflow/frontend/assets/rectangle-vertical-CVTdkuTc.js +6 -0
- langflow/frontend/assets/recycle-mxb5g6m_.js +6 -0
- langflow/frontend/assets/redo-2-hr1J81Ig.js +6 -0
- langflow/frontend/assets/redo-Ay9lRnpR.js +6 -0
- langflow/frontend/assets/redo-dot-DaEyWXX5.js +6 -0
- langflow/frontend/assets/refresh-ccw-CdZJX3RU.js +6 -0
- langflow/frontend/assets/refresh-ccw-dot-BwMiuAgO.js +6 -0
- langflow/frontend/assets/refresh-cw-DTYMzKiJ.js +6 -0
- langflow/frontend/assets/refresh-cw-off-ty-uTVvi.js +6 -0
- langflow/frontend/assets/refrigerator-REjxmqJC.js +6 -0
- langflow/frontend/assets/regex-Cg22XfVG.js +6 -0
- langflow/frontend/assets/remove-formatting-DZ3JpmPQ.js +6 -0
- langflow/frontend/assets/repeat-1-DJZ-Jrr5.js +6 -0
- langflow/frontend/assets/repeat-2-CFBAgrr8.js +6 -0
- langflow/frontend/assets/repeat-C7jVkMcY.js +6 -0
- langflow/frontend/assets/replace-BvaqTZNB.js +6 -0
- langflow/frontend/assets/replace-all-FGJUpTnx.js +6 -0
- langflow/frontend/assets/reply-CcLLusZd.js +6 -0
- langflow/frontend/assets/reply-all-CWHfytey.js +6 -0
- langflow/frontend/assets/rewind-D07HB0Gh.js +6 -0
- langflow/frontend/assets/ribbon-DINZnC8A.js +6 -0
- langflow/frontend/assets/rocket-DJn94ITT.js +6 -0
- langflow/frontend/assets/rocking-chair-BIXukant.js +6 -0
- langflow/frontend/assets/roller-coaster-jnXQm5X7.js +6 -0
- langflow/frontend/assets/rotate-3d-OE_Ffhwg.js +6 -0
- langflow/frontend/assets/rotate-ccw-BWm1gOT_.js +6 -0
- langflow/frontend/assets/rotate-ccw-key-DraXNNlO.js +6 -0
- langflow/frontend/assets/rotate-ccw-square-Q4i_j52y.js +6 -0
- langflow/frontend/assets/rotate-cw-DMkokMV_.js +6 -0
- langflow/frontend/assets/rotate-cw-square-DiUhpfPT.js +6 -0
- langflow/frontend/assets/route-ClOv8UAD.js +6 -0
- langflow/frontend/assets/route-off-BnIsbc68.js +6 -0
- langflow/frontend/assets/router-BHv7gFmI.js +6 -0
- langflow/frontend/assets/rows-2-DTZnpgGL.js +6 -0
- langflow/frontend/assets/rows-3-DCEUH2hC.js +6 -0
- langflow/frontend/assets/rows-4-BBiUwu5l.js +6 -0
- langflow/frontend/assets/rss-P-oOpENE.js +6 -0
- langflow/frontend/assets/ruler-DkxXaPK_.js +6 -0
- langflow/frontend/assets/ruler-dimension-line-Cz1V9c03.js +6 -0
- langflow/frontend/assets/russian-ruble-DmW3mLmW.js +6 -0
- langflow/frontend/assets/sailboat-Tetgo4Lb.js +6 -0
- langflow/frontend/assets/salad-DMwMyvB5.js +6 -0
- langflow/frontend/assets/sandwich-Bba6HLT0.js +6 -0
- langflow/frontend/assets/satellite-Ddu5ipJx.js +6 -0
- langflow/frontend/assets/satellite-dish-BMQARc8I.js +6 -0
- langflow/frontend/assets/saudi-riyal-BQQlONU-.js +6 -0
- langflow/frontend/assets/save-CdxxT5KB.js +6 -0
- langflow/frontend/assets/save-all-D8hqBz4i.js +6 -0
- langflow/frontend/assets/save-off-CgSs9rr9.js +6 -0
- langflow/frontend/assets/scale-3d-D7IZLnfN.js +6 -0
- langflow/frontend/assets/scale-93M8x4y6.js +6 -0
- langflow/frontend/assets/scaling-CA8UBaOt.js +6 -0
- langflow/frontend/assets/scan-DNIHgr8K.js +6 -0
- langflow/frontend/assets/scan-barcode-BMmz7dNs.js +6 -0
- langflow/frontend/assets/scan-eye-Beb09hiv.js +6 -0
- langflow/frontend/assets/scan-face-BQplkbWv.js +6 -0
- langflow/frontend/assets/scan-heart-BD_4v2ah.js +6 -0
- langflow/frontend/assets/scan-line-CSPugzgQ.js +6 -0
- langflow/frontend/assets/scan-qr-code-Cxarkxzn.js +6 -0
- langflow/frontend/assets/scan-search-DfgRNeZg.js +6 -0
- langflow/frontend/assets/scan-text---lWlVm4.js +6 -0
- langflow/frontend/assets/school-CV1XycZ3.js +6 -0
- langflow/frontend/assets/scissors-NyUF9OZW.js +6 -0
- langflow/frontend/assets/scissors-line-dashed-J9QGREeb.js +6 -0
- langflow/frontend/assets/screen-share-B42rg9ys.js +6 -0
- langflow/frontend/assets/screen-share-off-CmLTkMUk.js +6 -0
- langflow/frontend/assets/scroll-D1EI8Rz4.js +6 -0
- langflow/frontend/assets/scroll-text-Dx_-xmVI.js +6 -0
- langflow/frontend/assets/search-check-BF2od0KI.js +6 -0
- langflow/frontend/assets/search-code-B26GQWI6.js +6 -0
- langflow/frontend/assets/search-slash-BETXps2t.js +6 -0
- langflow/frontend/assets/search-x-DPb5LlA3.js +6 -0
- langflow/frontend/assets/section-B4Q9DCdm.js +6 -0
- langflow/frontend/assets/send-ZE383SKr.js +6 -0
- langflow/frontend/assets/send-horizontal-D0lDWrSA.js +6 -0
- langflow/frontend/assets/send-to-back-Ca8Vx9zf.js +6 -0
- langflow/frontend/assets/separator-horizontal-CDugpdYB.js +6 -0
- langflow/frontend/assets/separator-vertical-DMgJmJJ6.js +6 -0
- langflow/frontend/assets/server-NwiDY9d-.js +6 -0
- langflow/frontend/assets/server-cog-DdF97wmM.js +6 -0
- langflow/frontend/assets/server-crash-DNd7M6hh.js +6 -0
- langflow/frontend/assets/server-off-YhWx3OCB.js +6 -0
- langflow/frontend/assets/settings-2-DY_KIsk0.js +6 -0
- langflow/frontend/assets/settings-T6CRSr45.js +6 -0
- langflow/frontend/assets/shapes-vJvMiRGi.js +6 -0
- langflow/frontend/assets/share-2-E5VMR1Hg.js +6 -0
- langflow/frontend/assets/share-DC9RnFbY.js +6 -0
- langflow/frontend/assets/sheet-Ruqk26Oc.js +6 -0
- langflow/frontend/assets/shell-rFGa8qRZ.js +6 -0
- langflow/frontend/assets/shield-B0M1G5xB.js +6 -0
- langflow/frontend/assets/shield-alert-7i642MLN.js +6 -0
- langflow/frontend/assets/shield-ban-BdfO4IFn.js +6 -0
- langflow/frontend/assets/shield-check-DfgimtKv.js +6 -0
- langflow/frontend/assets/shield-ellipsis-DlI2NVRM.js +6 -0
- langflow/frontend/assets/shield-half-BBafVyZq.js +6 -0
- langflow/frontend/assets/shield-minus-BtBybI3y.js +6 -0
- langflow/frontend/assets/shield-off-BYAEKjAr.js +6 -0
- langflow/frontend/assets/shield-plus-Cljw3ov4.js +6 -0
- langflow/frontend/assets/shield-question-Dalxl2-B.js +6 -0
- langflow/frontend/assets/shield-user-D4X9Un7l.js +6 -0
- langflow/frontend/assets/shield-x-BUeUx9EQ.js +6 -0
- langflow/frontend/assets/ship-DTfs26OC.js +6 -0
- langflow/frontend/assets/ship-wheel-DVz0eFlR.js +6 -0
- langflow/frontend/assets/shirt-BnKjDvos.js +6 -0
- langflow/frontend/assets/shopping-bag-Dfkia7L0.js +6 -0
- langflow/frontend/assets/shopping-basket-SUNesxhk.js +6 -0
- langflow/frontend/assets/shopping-cart-BH9sfqQX.js +6 -0
- langflow/frontend/assets/shovel-Bxs0Qjmh.js +6 -0
- langflow/frontend/assets/shower-head-CADjDTiK.js +6 -0
- langflow/frontend/assets/shredder-Cu7Xn00A.js +6 -0
- langflow/frontend/assets/shrimp-C3jKiKrk.js +6 -0
- langflow/frontend/assets/shrink-Cclu_dw0.js +6 -0
- langflow/frontend/assets/shrub-BL5dBzfp.js +6 -0
- langflow/frontend/assets/shuffle-C_WrduYd.js +6 -0
- langflow/frontend/assets/sigma-CJnd9jNa.js +6 -0
- langflow/frontend/assets/signal-Dcm6sbyu.js +6 -0
- langflow/frontend/assets/signal-high-DfHqHBGU.js +6 -0
- langflow/frontend/assets/signal-low-DkvkPeXD.js +6 -0
- langflow/frontend/assets/signal-medium-Z8D3qUli.js +6 -0
- langflow/frontend/assets/signal-zero-DMMOUSJN.js +6 -0
- langflow/frontend/assets/signature-BuNASrxq.js +6 -0
- langflow/frontend/assets/signpost-DZ45H1O1.js +6 -0
- langflow/frontend/assets/signpost-big-DPz14W8U.js +6 -0
- langflow/frontend/assets/siren-DB3WrVSP.js +6 -0
- langflow/frontend/assets/skip-back-DjUV73s2.js +6 -0
- langflow/frontend/assets/skip-forward-CmD_sUWm.js +6 -0
- langflow/frontend/assets/skull-BFSFzqlJ.js +6 -0
- langflow/frontend/assets/slack-a0qHkocc.js +6 -0
- langflow/frontend/assets/slash-BTqLWpKj.js +6 -0
- langflow/frontend/assets/slice-DtaQu0Yo.js +6 -0
- langflow/frontend/assets/sliders-horizontal-Cb6o0sGH.js +6 -0
- langflow/frontend/assets/sliders-vertical-CQiKA-33.js +6 -0
- langflow/frontend/assets/smartphone-charging-CGHpA7Gv.js +6 -0
- langflow/frontend/assets/smartphone-nfc-DpmH6c7h.js +6 -0
- langflow/frontend/assets/smartphone-vbMnkDNF.js +6 -0
- langflow/frontend/assets/smile-FPhOdGXi.js +6 -0
- langflow/frontend/assets/smile-plus-BLvbs7Wn.js +6 -0
- langflow/frontend/assets/snail-N5ea-xbv.js +6 -0
- langflow/frontend/assets/snowflake-B2IUrE0d.js +6 -0
- langflow/frontend/assets/sofa-GDryelNA.js +6 -0
- langflow/frontend/assets/soup-DW9OBMi1.js +6 -0
- langflow/frontend/assets/space-Lgs4HSmS.js +6 -0
- langflow/frontend/assets/spade-Dz9fYCdz.js +6 -0
- langflow/frontend/assets/sparkle-BXX-A6Ie.js +6 -0
- langflow/frontend/assets/sparkles-DseoCWZ7.js +6 -0
- langflow/frontend/assets/speaker-B-4Rhc6r.js +6 -0
- langflow/frontend/assets/speech-vGyEnTQZ.js +6 -0
- langflow/frontend/assets/spell-check-2-BcJkVZtT.js +6 -0
- langflow/frontend/assets/spell-check-DAFBDc9n.js +6 -0
- langflow/frontend/assets/spline-BHwR5076.js +6 -0
- langflow/frontend/assets/spline-pointer-DXr7gccJ.js +6 -0
- langflow/frontend/assets/split-DlhPVsS1.js +6 -0
- langflow/frontend/assets/spray-can-Ba6HqBzy.js +6 -0
- langflow/frontend/assets/sprout-LkXWX66w.js +6 -0
- langflow/frontend/assets/square-D2C9EdwK.js +6 -0
- langflow/frontend/assets/square-activity-DSalkO78.js +6 -0
- langflow/frontend/assets/square-arrow-down-Vr9KV4e0.js +6 -0
- langflow/frontend/assets/square-arrow-down-left-DIKkCn9X.js +6 -0
- langflow/frontend/assets/square-arrow-down-right-CQmsD6Ru.js +6 -0
- langflow/frontend/assets/square-arrow-left-YykOBzPM.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-left-qCxMUFxq.js +6 -0
- langflow/frontend/assets/square-arrow-out-down-right-B76Xndzc.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-left-BGzA2Zut.js +6 -0
- langflow/frontend/assets/square-arrow-out-up-right-DKjQdxIe.js +6 -0
- langflow/frontend/assets/square-arrow-right-CyyxLw_B.js +6 -0
- langflow/frontend/assets/square-arrow-up-9z96Lbfu.js +6 -0
- langflow/frontend/assets/square-arrow-up-left-CmYwn9TO.js +6 -0
- langflow/frontend/assets/square-arrow-up-right-CTUXxklq.js +6 -0
- langflow/frontend/assets/square-asterisk-D3-w77Cq.js +6 -0
- langflow/frontend/assets/square-bottom-dashed-scissors-C05k0PnK.js +6 -0
- langflow/frontend/assets/square-chart-gantt-C0WUKYq1.js +6 -0
- langflow/frontend/assets/square-check-DWIo-rkj.js +6 -0
- langflow/frontend/assets/square-check-big-CioQ9mBa.js +6 -0
- langflow/frontend/assets/square-chevron-down-BMwUjPc-.js +6 -0
- langflow/frontend/assets/square-chevron-left-CV4PVhGg.js +6 -0
- langflow/frontend/assets/square-chevron-right-CcElTxoP.js +6 -0
- langflow/frontend/assets/square-chevron-up-6SRxVe27.js +6 -0
- langflow/frontend/assets/square-code-Dxb-TMRS.js +6 -0
- langflow/frontend/assets/square-dashed-EeG4YZEK.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-ClygsM7v.js +6 -0
- langflow/frontend/assets/square-dashed-bottom-code-CAOzImD1.js +6 -0
- langflow/frontend/assets/square-dashed-kanban-CE_7x2N2.js +6 -0
- langflow/frontend/assets/square-dashed-mouse-pointer-kD-CXdJV.js +6 -0
- langflow/frontend/assets/square-divide-Wcsw80g6.js +6 -0
- langflow/frontend/assets/square-dot-Do97Knxf.js +6 -0
- langflow/frontend/assets/square-equal-zQafNVoS.js +6 -0
- langflow/frontend/assets/square-function-D-6HIJRC.js +6 -0
- langflow/frontend/assets/square-kanban-BdYVtNEl.js +6 -0
- langflow/frontend/assets/square-library-BwV-ZYF-.js +6 -0
- langflow/frontend/assets/square-m-C31tRU7Q.js +6 -0
- langflow/frontend/assets/square-menu-ByLhwz06.js +6 -0
- langflow/frontend/assets/square-minus-pkut0v0I.js +6 -0
- langflow/frontend/assets/square-mouse-pointer-B5tVHvzR.js +6 -0
- langflow/frontend/assets/square-parking-C4WAAtn0.js +6 -0
- langflow/frontend/assets/square-parking-off-BLLny9Y8.js +6 -0
- langflow/frontend/assets/square-pen-rgiAP6Nm.js +6 -0
- langflow/frontend/assets/square-percent-BMcuqyrL.js +6 -0
- langflow/frontend/assets/square-pi-CFhLD_bP.js +6 -0
- langflow/frontend/assets/square-pilcrow-CoJO-JAr.js +6 -0
- langflow/frontend/assets/square-play-9l1wTOU7.js +6 -0
- langflow/frontend/assets/square-plus-DxOhcRAK.js +6 -0
- langflow/frontend/assets/square-power-DnvBz_TG.js +6 -0
- langflow/frontend/assets/square-radical-i6SMras_.js +6 -0
- langflow/frontend/assets/square-round-corner-Cb01vLpU.js +6 -0
- langflow/frontend/assets/square-scissors-WEQ9paYy.js +6 -0
- langflow/frontend/assets/square-sigma-BptuOfPm.js +6 -0
- langflow/frontend/assets/square-slash-IltY0vnS.js +6 -0
- langflow/frontend/assets/square-split-horizontal-BrYZ_oXa.js +6 -0
- langflow/frontend/assets/square-split-vertical-DyDKX7Jn.js +6 -0
- langflow/frontend/assets/square-square-DDDFXroa.js +6 -0
- langflow/frontend/assets/square-stack-BmRTUF55.js +6 -0
- langflow/frontend/assets/square-terminal-CsakaMH-.js +6 -0
- langflow/frontend/assets/square-user-B6N8QZMc.js +6 -0
- langflow/frontend/assets/square-user-round-D5ysg8tr.js +6 -0
- langflow/frontend/assets/square-x-Cv84TzQW.js +6 -0
- langflow/frontend/assets/squares-exclude-Dp8LEVCx.js +6 -0
- langflow/frontend/assets/squares-intersect-jgYcuegN.js +6 -0
- langflow/frontend/assets/squares-subtract-BPS0VqTr.js +6 -0
- langflow/frontend/assets/squares-unite-Xr7e6dw5.js +6 -0
- langflow/frontend/assets/squircle-CnQgALl2.js +6 -0
- langflow/frontend/assets/squirrel-BXh__7Tp.js +6 -0
- langflow/frontend/assets/stamp-DEljq4EG.js +6 -0
- langflow/frontend/assets/star-BDdTgqkA.js +6 -0
- langflow/frontend/assets/star-half-CkpChSgZ.js +6 -0
- langflow/frontend/assets/star-off-C8tXhBzU.js +6 -0
- langflow/frontend/assets/step-back-CeUcLpYP.js +6 -0
- langflow/frontend/assets/step-forward-YZYgie-H.js +6 -0
- langflow/frontend/assets/stethoscope-B1HKkNjb.js +6 -0
- langflow/frontend/assets/sticker-s76hzsbw.js +6 -0
- langflow/frontend/assets/sticky-note-d3wKhnVZ.js +6 -0
- langflow/frontend/assets/store-CgkhfYr8.js +6 -0
- langflow/frontend/assets/stretch-horizontal-CgRs532f.js +6 -0
- langflow/frontend/assets/stretch-vertical-Cbbad0DE.js +6 -0
- langflow/frontend/assets/strikethrough-CLu5NrUJ.js +6 -0
- langflow/frontend/assets/subscript-iNLzbpNF.js +6 -0
- langflow/frontend/assets/sun-DdND6npr.js +6 -0
- langflow/frontend/assets/sun-dim-Cp5QYpLO.js +6 -0
- langflow/frontend/assets/sun-medium-0hYIdM7r.js +6 -0
- langflow/frontend/assets/sun-moon-dCZP-wBl.js +6 -0
- langflow/frontend/assets/sun-snow-CMkrYaZU.js +6 -0
- langflow/frontend/assets/sunrise-B_4rb5Yc.js +6 -0
- langflow/frontend/assets/sunset-CdHtBu9f.js +6 -0
- langflow/frontend/assets/superscript-D-43mfqg.js +6 -0
- langflow/frontend/assets/swatch-book-CWvY6Gge.js +6 -0
- langflow/frontend/assets/swiss-franc-CQUQOqfw.js +6 -0
- langflow/frontend/assets/switch-camera-D8HVtE35.js +6 -0
- langflow/frontend/assets/sword-ZhnbrO02.js +6 -0
- langflow/frontend/assets/swords-1419KKmU.js +6 -0
- langflow/frontend/assets/syringe-C-ur-zxc.js +6 -0
- langflow/frontend/assets/table-2-DqDVsfw0.js +6 -0
- langflow/frontend/assets/table-BR7M9T2m.js +6 -0
- langflow/frontend/assets/table-cells-merge-LP_BdXHn.js +6 -0
- langflow/frontend/assets/table-cells-split-DDEZjNxQ.js +6 -0
- langflow/frontend/assets/table-columns-split-CZFb_e6a.js +6 -0
- langflow/frontend/assets/table-of-contents-YKQOIBeh.js +6 -0
- langflow/frontend/assets/table-properties-07iCbzoF.js +6 -0
- langflow/frontend/assets/table-rows-split-BvGY1KFG.js +6 -0
- langflow/frontend/assets/tablet-B1dvFkME.js +6 -0
- langflow/frontend/assets/tablet-smartphone-C9zhR9id.js +6 -0
- langflow/frontend/assets/tablets-BV0NxbWo.js +6 -0
- langflow/frontend/assets/tag-K-O6lnTy.js +6 -0
- langflow/frontend/assets/tags-ByeAXu2U.js +6 -0
- langflow/frontend/assets/tally-1-CROxhWtK.js +6 -0
- langflow/frontend/assets/tally-2-BsgGv4NP.js +6 -0
- langflow/frontend/assets/tally-3-ByWskaRS.js +6 -0
- langflow/frontend/assets/tally-4-BNd2X26I.js +6 -0
- langflow/frontend/assets/tally-5-Db_7pJVF.js +6 -0
- langflow/frontend/assets/tangent-DE9c5ssL.js +6 -0
- langflow/frontend/assets/target-B4BR4LnK.js +6 -0
- langflow/frontend/assets/telescope-COaR5mQI.js +6 -0
- langflow/frontend/assets/tent-Rbm180IQ.js +6 -0
- langflow/frontend/assets/tent-tree-BKb-kXr8.js +6 -0
- langflow/frontend/assets/terminal-tEjz8sWY.js +6 -0
- langflow/frontend/assets/test-tube-DZ4xTCVw.js +6 -0
- langflow/frontend/assets/test-tube-diagonal-B2qLgIo7.js +6 -0
- langflow/frontend/assets/test-tubes-mReW2TR5.js +6 -0
- langflow/frontend/assets/text-CMv6Ef3g.js +6 -0
- langflow/frontend/assets/text-cursor-CvvULVqP.js +6 -0
- langflow/frontend/assets/text-cursor-input-DrTxBv-T.js +6 -0
- langflow/frontend/assets/text-quote-CFgdWDkk.js +6 -0
- langflow/frontend/assets/text-search-D1eRjWbA.js +6 -0
- langflow/frontend/assets/text-select-CXDcKbEm.js +6 -0
- langflow/frontend/assets/theater-DgHnzf31.js +6 -0
- langflow/frontend/assets/thermometer-T9ytEgwA.js +6 -0
- langflow/frontend/assets/thermometer-snowflake-DMDHpy2y.js +6 -0
- langflow/frontend/assets/thermometer-sun-CX5XTyHW.js +6 -0
- langflow/frontend/assets/thumbs-down-Pt3RAIOb.js +6 -0
- langflow/frontend/assets/thumbs-up-C914Y43F.js +6 -0
- langflow/frontend/assets/ticket-COv_WbDG.js +6 -0
- langflow/frontend/assets/ticket-check-D3svOi3W.js +6 -0
- langflow/frontend/assets/ticket-minus-DjdC_Cll.js +6 -0
- langflow/frontend/assets/ticket-percent-DnirgzY8.js +6 -0
- langflow/frontend/assets/ticket-plus-BNktrtF7.js +6 -0
- langflow/frontend/assets/ticket-slash-CeGoC2KZ.js +6 -0
- langflow/frontend/assets/ticket-x-BuNvjw4X.js +6 -0
- langflow/frontend/assets/tickets-CYmPlQI9.js +6 -0
- langflow/frontend/assets/tickets-plane-CAWIkLW_.js +6 -0
- langflow/frontend/assets/timer-BwrzCE-V.js +6 -0
- langflow/frontend/assets/timer-off-T8DLAP8U.js +6 -0
- langflow/frontend/assets/timer-reset-DOhC4myx.js +6 -0
- langflow/frontend/assets/toggle-left-BhOOqX0X.js +6 -0
- langflow/frontend/assets/toggle-right-D5ZrH_0F.js +6 -0
- langflow/frontend/assets/toilet-SiYTUeEv.js +6 -0
- langflow/frontend/assets/tornado-DxgHb0Ve.js +6 -0
- langflow/frontend/assets/torus-BwTWyr_F.js +6 -0
- langflow/frontend/assets/touchpad-BVOsSOil.js +6 -0
- langflow/frontend/assets/touchpad-off-DeZcOnny.js +6 -0
- langflow/frontend/assets/tower-control-5bMwbXDP.js +6 -0
- langflow/frontend/assets/toy-brick-Kd7RLgVo.js +6 -0
- langflow/frontend/assets/tractor-DooKePRM.js +6 -0
- langflow/frontend/assets/traffic-cone-aU9C6EVe.js +6 -0
- langflow/frontend/assets/train-front-B9zYcrr0.js +6 -0
- langflow/frontend/assets/train-front-tunnel-CGgQ0665.js +6 -0
- langflow/frontend/assets/train-track-CNSTSElM.js +6 -0
- langflow/frontend/assets/tram-front-Bh3c0VTb.js +6 -0
- langflow/frontend/assets/transgender-Yb9Aw3eq.js +6 -0
- langflow/frontend/assets/trash-D8bX1W_s.js +6 -0
- langflow/frontend/assets/tree-deciduous-DfnqNuRS.js +6 -0
- langflow/frontend/assets/tree-palm-DJXocuTV.js +6 -0
- langflow/frontend/assets/tree-pine-BP3dMe04.js +6 -0
- langflow/frontend/assets/trees-D6yP_WCR.js +6 -0
- langflow/frontend/assets/trello-DGqo8szF.js +6 -0
- langflow/frontend/assets/trending-down-BR09CtIE.js +6 -0
- langflow/frontend/assets/trending-up-CirFPPVF.js +6 -0
- langflow/frontend/assets/trending-up-down-BTY_q6JA.js +6 -0
- langflow/frontend/assets/triangle-B-H_4YEk.js +6 -0
- langflow/frontend/assets/triangle-alert-DXeGuITo.js +6 -0
- langflow/frontend/assets/triangle-dashed-Dn7NnKw5.js +6 -0
- langflow/frontend/assets/triangle-right-zG_BZzF1.js +6 -0
- langflow/frontend/assets/trophy-DueWLGox.js +6 -0
- langflow/frontend/assets/truck-BhAvmcrD.js +6 -0
- langflow/frontend/assets/truck-electric-CpHu1jkP.js +6 -0
- langflow/frontend/assets/turtle-DmRYvXYC.js +6 -0
- langflow/frontend/assets/tv-DPms7spx.js +6 -0
- langflow/frontend/assets/tv-minimal-D2oB1Crj.js +6 -0
- langflow/frontend/assets/tv-minimal-play-5WSDRFTW.js +6 -0
- langflow/frontend/assets/twitch-CTyYsltR.js +6 -0
- langflow/frontend/assets/twitter-Uejh7W2i.js +6 -0
- langflow/frontend/assets/type-DCWbYKxb.js +6 -0
- langflow/frontend/assets/type-outline-DwmlKH7Q.js +6 -0
- langflow/frontend/assets/umbrella-DzoOhtjc.js +6 -0
- langflow/frontend/assets/umbrella-off-BnGloLbA.js +6 -0
- langflow/frontend/assets/underline-D6VqNULT.js +6 -0
- langflow/frontend/assets/undo-2-TM0n_RG8.js +6 -0
- langflow/frontend/assets/undo-DrNsQ0jO.js +6 -0
- langflow/frontend/assets/undo-dot-CQVBPt4f.js +6 -0
- langflow/frontend/assets/unfold-horizontal-CzsehnZk.js +6 -0
- langflow/frontend/assets/unfold-vertical-DNVYXN_y.js +6 -0
- langflow/frontend/assets/ungroup-BM2bWp8p.js +6 -0
- langflow/frontend/assets/university-DB28dVFt.js +6 -0
- langflow/frontend/assets/unlink-2-WpXjYohB.js +6 -0
- langflow/frontend/assets/unlink-BLFGfEEc.js +6 -0
- langflow/frontend/assets/unplug-_UmFvYbg.js +6 -0
- langflow/frontend/assets/upload-8boS95gI.js +6 -0
- langflow/frontend/assets/usb-BMx0J0Sy.js +6 -0
- langflow/frontend/assets/use-post-add-user-b13pIDQz.js +1 -0
- langflow/frontend/assets/user-Kd6NpdHy.js +6 -0
- langflow/frontend/assets/user-check-FzX3eqRX.js +6 -0
- langflow/frontend/assets/user-cog-D6mCcJMc.js +6 -0
- langflow/frontend/assets/user-lock-BH_MoGYH.js +6 -0
- langflow/frontend/assets/user-minus-Bff-DMlG.js +6 -0
- langflow/frontend/assets/user-pen-eD_3V4js.js +6 -0
- langflow/frontend/assets/user-plus-BN6TLHAo.js +6 -0
- langflow/frontend/assets/user-round-a2K1pyMI.js +6 -0
- langflow/frontend/assets/user-round-check-BAIHcpBc.js +6 -0
- langflow/frontend/assets/user-round-cog-BCBk6ZVt.js +6 -0
- langflow/frontend/assets/user-round-minus-CHL_i3b9.js +6 -0
- langflow/frontend/assets/user-round-pen-TnLmmKC3.js +6 -0
- langflow/frontend/assets/user-round-plus-Qrfk8bFQ.js +6 -0
- langflow/frontend/assets/user-round-search-Cn3fCMkz.js +6 -0
- langflow/frontend/assets/user-round-x-345XjYXs.js +6 -0
- langflow/frontend/assets/user-search-CBLnlbDn.js +6 -0
- langflow/frontend/assets/user-x-ik_MyYRD.js +6 -0
- langflow/frontend/assets/users-Df0o_CuB.js +6 -0
- langflow/frontend/assets/users-round-BKnPg4da.js +6 -0
- langflow/frontend/assets/utensils-cq-tMQLW.js +6 -0
- langflow/frontend/assets/utensils-crossed-DWzuDxTn.js +6 -0
- langflow/frontend/assets/utility-pole-qRfA8wtY.js +6 -0
- langflow/frontend/assets/variable-B45R7IJK.js +6 -0
- langflow/frontend/assets/vault-SaNUMa_B.js +6 -0
- langflow/frontend/assets/vegan-C2JI0djZ.js +6 -0
- langflow/frontend/assets/venetian-mask-l_dC3fdd.js +6 -0
- langflow/frontend/assets/venus-DNdaOye-.js +6 -0
- langflow/frontend/assets/venus-and-mars-DMUL6DMg.js +6 -0
- langflow/frontend/assets/vibrate-C9HxrpTc.js +6 -0
- langflow/frontend/assets/vibrate-off-w-61vbky.js +6 -0
- langflow/frontend/assets/video-87Z3Lbge.js +6 -0
- langflow/frontend/assets/video-off-BOIzvqoS.js +6 -0
- langflow/frontend/assets/videotape-DwCI9sEE.js +6 -0
- langflow/frontend/assets/view-z8q6zdGE.js +6 -0
- langflow/frontend/assets/voicemail-VlgAyZ7U.js +6 -0
- langflow/frontend/assets/volleyball-CF870KHa.js +6 -0
- langflow/frontend/assets/volume-1-CNxob_Nl.js +6 -0
- langflow/frontend/assets/volume-2-DQomH6nX.js +6 -0
- langflow/frontend/assets/volume-BoHZDoyz.js +6 -0
- langflow/frontend/assets/volume-off-D5MM66Sc.js +6 -0
- langflow/frontend/assets/volume-x-BqytCptf.js +6 -0
- langflow/frontend/assets/vote-Dv_EZ8YN.js +6 -0
- langflow/frontend/assets/wallet-DiTqyz__.js +6 -0
- langflow/frontend/assets/wallet-cards-B6eU3---.js +6 -0
- langflow/frontend/assets/wallet-minimal-BZ4XgiJA.js +6 -0
- langflow/frontend/assets/wallpaper-CoIeU4pe.js +6 -0
- langflow/frontend/assets/wand-Chf-H806.js +6 -0
- langflow/frontend/assets/wand-sparkles--NVEsZKT.js +6 -0
- langflow/frontend/assets/warehouse-CQ7L8eBz.js +6 -0
- langflow/frontend/assets/washing-machine-WMapWZY7.js +6 -0
- langflow/frontend/assets/watch-DwmxDPvs.js +6 -0
- langflow/frontend/assets/waves-bvbK_c78.js +6 -0
- langflow/frontend/assets/waves-ladder-Bv98yPlz.js +6 -0
- langflow/frontend/assets/waypoints-PsEPIFFL.js +6 -0
- langflow/frontend/assets/webcam-02bsO3AI.js +6 -0
- langflow/frontend/assets/webhook-Dx_085r3.js +6 -0
- langflow/frontend/assets/webhook-off-TY8hluXX.js +6 -0
- langflow/frontend/assets/weight-BfWkUxko.js +6 -0
- langflow/frontend/assets/wheat-Cwsqt3C_.js +6 -0
- langflow/frontend/assets/wheat-off-1iG0pZ4K.js +6 -0
- langflow/frontend/assets/whole-word-4BN517Fj.js +6 -0
- langflow/frontend/assets/wifi-BpnpJKhW.js +6 -0
- langflow/frontend/assets/wifi-high-CBK4pbuW.js +6 -0
- langflow/frontend/assets/wifi-low-D0DpTmqi.js +6 -0
- langflow/frontend/assets/wifi-off-BzrDb98-.js +6 -0
- langflow/frontend/assets/wifi-pen-C5DgAR9i.js +6 -0
- langflow/frontend/assets/wifi-zero-DEHB1VJ-.js +6 -0
- langflow/frontend/assets/wind-BxI8NUUR.js +6 -0
- langflow/frontend/assets/wind-arrow-down-BjRs1yLb.js +6 -0
- langflow/frontend/assets/wine-BqMCCO2_.js +6 -0
- langflow/frontend/assets/wine-off-Df34oC2c.js +6 -0
- langflow/frontend/assets/workflow-BvNCAg6i.js +6 -0
- langflow/frontend/assets/worm-BIo_UYvJ.js +6 -0
- langflow/frontend/assets/wrap-text-D3TsRBDd.js +6 -0
- langflow/frontend/assets/wrench-BFkT40qn.js +6 -0
- langflow/frontend/assets/youtube-ChyocX_5.js +6 -0
- langflow/frontend/assets/zap-DUIubQvb.js +6 -0
- langflow/frontend/assets/zap-off-CPra9mqz.js +6 -0
- langflow/frontend/assets/zoom-in-DzwDGluP.js +6 -0
- langflow/frontend/assets/zoom-out-C1sJbBAI.js +6 -0
- langflow/frontend/index.html +1 -1
- 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 +69 -232
- langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +1 -1
- langflow/initial_setup/starter_projects/Instagram Copywriter.json +2 -2
- 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/Nvidia Remix.json +2 -2
- langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +1126 -1407
- langflow/initial_setup/starter_projects/Research Agent.json +2 -2
- 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/Text Sentiment Analysis.json +140 -550
- langflow/initial_setup/starter_projects/Twitter Thread Generator.json +1 -1
- langflow/initial_setup/starter_projects/Vector Store RAG.json +1395 -1570
- langflow_base_nightly-1.7.1.dev1.dist-info/METADATA +99 -0
- langflow_base_nightly-1.7.1.dev1.dist-info/RECORD +2283 -0
- langflow/frontend/assets/SlackIcon-DlvHzgKf.js +0 -1
- langflow/frontend/assets/Wikipedia-CYCV3OwN.js +0 -1
- langflow/frontend/assets/Wolfram-fMi_u0PK.js +0 -1
- langflow/frontend/assets/a-arrow-down-C-cKYF2u.js +0 -6
- langflow/frontend/assets/a-arrow-up-CjwOuxws.js +0 -6
- langflow/frontend/assets/a-large-small-BDIumVKt.js +0 -6
- langflow/frontend/assets/accessibility-VxSbFy72.js +0 -6
- langflow/frontend/assets/activity-DBQy7ieS.js +0 -6
- langflow/frontend/assets/air-vent-Cs9_6_fM.js +0 -6
- langflow/frontend/assets/airplay-BZzTsovO.js +0 -6
- langflow/frontend/assets/alarm-clock-DnuUE4q6.js +0 -6
- langflow/frontend/assets/alarm-clock-check-D9vPjx5g.js +0 -6
- langflow/frontend/assets/alarm-clock-minus-xvXgVo6N.js +0 -6
- langflow/frontend/assets/alarm-clock-off-urGc_tcx.js +0 -6
- langflow/frontend/assets/alarm-clock-plus-C0PRaTdf.js +0 -6
- langflow/frontend/assets/alarm-smoke-B7mkLxOd.js +0 -6
- langflow/frontend/assets/album-BxAwduhM.js +0 -6
- langflow/frontend/assets/align-center-Crw-ls4R.js +0 -6
- langflow/frontend/assets/align-center-horizontal-DXvNpJPJ.js +0 -6
- langflow/frontend/assets/align-center-vertical-DGzyvvpM.js +0 -6
- langflow/frontend/assets/align-end-horizontal-DpO7sNv7.js +0 -6
- langflow/frontend/assets/align-end-vertical-G0aeph-u.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-center-BSl3E5Nv.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-end-DuDXse3X.js +0 -6
- langflow/frontend/assets/align-horizontal-distribute-start-B8UftvCS.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-center-DsXH3H42.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-end-BPAbO3qj.js +0 -6
- langflow/frontend/assets/align-horizontal-justify-start-B-Qty91v.js +0 -6
- langflow/frontend/assets/align-horizontal-space-around-Du3vqrf0.js +0 -6
- langflow/frontend/assets/align-horizontal-space-between-DoZ3Zop3.js +0 -6
- langflow/frontend/assets/align-justify-BbXRzIze.js +0 -6
- langflow/frontend/assets/align-left-BSz--dCv.js +0 -6
- langflow/frontend/assets/align-right-Bt8cnyTd.js +0 -6
- langflow/frontend/assets/align-start-horizontal-DWOH9BZU.js +0 -6
- langflow/frontend/assets/align-start-vertical-D7XdSqFQ.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-center-DLLTYLZF.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-end-DzcBOjpB.js +0 -6
- langflow/frontend/assets/align-vertical-distribute-start-i2a7YBO2.js +0 -6
- langflow/frontend/assets/align-vertical-justify-center-CnYrDOH_.js +0 -6
- langflow/frontend/assets/align-vertical-justify-end-CdegC7Kz.js +0 -6
- langflow/frontend/assets/align-vertical-justify-start-U0OVlrHk.js +0 -6
- langflow/frontend/assets/align-vertical-space-around-CvEYXneb.js +0 -6
- langflow/frontend/assets/align-vertical-space-between-B1HyKGZk.js +0 -6
- langflow/frontend/assets/ambulance-DuquWylK.js +0 -6
- langflow/frontend/assets/ampersand-R7rN7SvC.js +0 -6
- langflow/frontend/assets/ampersands-DutqkC5g.js +0 -6
- langflow/frontend/assets/amphora-B9bwdfXP.js +0 -6
- langflow/frontend/assets/anchor-CFpd29Js.js +0 -6
- langflow/frontend/assets/angry-DX0PxOP2.js +0 -6
- langflow/frontend/assets/annoyed-DFX17Hcx.js +0 -6
- langflow/frontend/assets/antenna-DiDXzp22.js +0 -6
- langflow/frontend/assets/anvil-BQjvi-3Z.js +0 -6
- langflow/frontend/assets/aperture-CNhAABAW.js +0 -6
- langflow/frontend/assets/app-window-DefwAbL-.js +0 -6
- langflow/frontend/assets/app-window-mac-B4t54BVR.js +0 -6
- langflow/frontend/assets/apple-C5qyCn8r.js +0 -6
- langflow/frontend/assets/archive-DWf2FQEN.js +0 -6
- langflow/frontend/assets/archive-restore-DtUVGrj7.js +0 -6
- langflow/frontend/assets/archive-x-Bl8w7YVq.js +0 -6
- langflow/frontend/assets/armchair-2VmOH0Wx.js +0 -6
- langflow/frontend/assets/arrow-big-down-Dxqlc6ty.js +0 -6
- langflow/frontend/assets/arrow-big-down-dash-PzaImcJy.js +0 -6
- langflow/frontend/assets/arrow-big-left-C0Uauzog.js +0 -6
- langflow/frontend/assets/arrow-big-left-dash-CQIDKTrp.js +0 -6
- langflow/frontend/assets/arrow-big-right-BJ1xS76I.js +0 -6
- langflow/frontend/assets/arrow-big-right-dash-BuOgK9Tc.js +0 -6
- langflow/frontend/assets/arrow-big-up-DZbIG1H4.js +0 -6
- langflow/frontend/assets/arrow-big-up-dash-4sLnAgWE.js +0 -6
- langflow/frontend/assets/arrow-down-0-1-Dh8THg85.js +0 -6
- langflow/frontend/assets/arrow-down-1-0-DRV58dNG.js +0 -6
- langflow/frontend/assets/arrow-down-RD7ST_Nj.js +0 -6
- langflow/frontend/assets/arrow-down-a-z-C-wYDNF1.js +0 -6
- langflow/frontend/assets/arrow-down-from-line-BucYmlvv.js +0 -6
- langflow/frontend/assets/arrow-down-left-Bh8RGAOn.js +0 -6
- langflow/frontend/assets/arrow-down-narrow-wide-Ci_P181I.js +0 -6
- langflow/frontend/assets/arrow-down-right-DGrqds5u.js +0 -6
- langflow/frontend/assets/arrow-down-to-dot-DUIKSyS9.js +0 -6
- langflow/frontend/assets/arrow-down-to-line-QdGRHCqF.js +0 -6
- langflow/frontend/assets/arrow-down-up-BjZ1jBtf.js +0 -6
- langflow/frontend/assets/arrow-down-wide-narrow-CEThH-ay.js +0 -6
- langflow/frontend/assets/arrow-down-z-a-5r6_408o.js +0 -6
- langflow/frontend/assets/arrow-left-D177jAk0.js +0 -6
- langflow/frontend/assets/arrow-left-from-line-CLuPv4Wq.js +0 -6
- langflow/frontend/assets/arrow-left-right-B0INawSB.js +0 -6
- langflow/frontend/assets/arrow-left-to-line-Dc_ro8bi.js +0 -6
- langflow/frontend/assets/arrow-right-BqNyjCWp.js +0 -6
- langflow/frontend/assets/arrow-right-from-line-KnCuBR8_.js +0 -6
- langflow/frontend/assets/arrow-right-left-C1o6GXbI.js +0 -6
- langflow/frontend/assets/arrow-right-to-line-DsIaCn5Q.js +0 -6
- langflow/frontend/assets/arrow-up-0-1-ByOT4vth.js +0 -6
- langflow/frontend/assets/arrow-up-1-0-ChLvN8H3.js +0 -6
- langflow/frontend/assets/arrow-up-KyW95RNF.js +0 -6
- langflow/frontend/assets/arrow-up-a-z-DnjngiQw.js +0 -6
- langflow/frontend/assets/arrow-up-down-BItspH3q.js +0 -6
- langflow/frontend/assets/arrow-up-from-dot-De5jcxsZ.js +0 -6
- langflow/frontend/assets/arrow-up-from-line-CRDq0-f0.js +0 -6
- langflow/frontend/assets/arrow-up-left-CSnyYerZ.js +0 -6
- langflow/frontend/assets/arrow-up-narrow-wide-CbGzUVnv.js +0 -6
- langflow/frontend/assets/arrow-up-right-ByVD2w8X.js +0 -6
- langflow/frontend/assets/arrow-up-to-line-DyBCZvY2.js +0 -6
- langflow/frontend/assets/arrow-up-wide-narrow-B2v-OL3l.js +0 -6
- langflow/frontend/assets/arrow-up-z-a-B6PSmC8w.js +0 -6
- langflow/frontend/assets/arrows-up-from-line-N5YM9t7n.js +0 -6
- langflow/frontend/assets/asterisk-6MbKPf-C.js +0 -6
- langflow/frontend/assets/at-sign-BKL3x2d_.js +0 -6
- langflow/frontend/assets/atom-Dc-JfPxf.js +0 -6
- langflow/frontend/assets/audio-lines-C-W8ts0k.js +0 -6
- langflow/frontend/assets/audio-waveform-C8czrmcq.js +0 -6
- langflow/frontend/assets/award-BuS4O2sw.js +0 -6
- langflow/frontend/assets/axe-LZiGFi2K.js +0 -6
- langflow/frontend/assets/axis-3d-Da0Hf8SY.js +0 -6
- langflow/frontend/assets/baby-C8LJqA3a.js +0 -6
- langflow/frontend/assets/backpack-8eR3mOTW.js +0 -6
- langflow/frontend/assets/badge-EDGPdlUz.js +0 -6
- langflow/frontend/assets/badge-alert-DzCydZ7S.js +0 -6
- langflow/frontend/assets/badge-cent-CT6B4tD5.js +0 -6
- langflow/frontend/assets/badge-check-Bxp_sun1.js +0 -6
- langflow/frontend/assets/badge-dollar-sign-Dze0rwlL.js +0 -6
- langflow/frontend/assets/badge-euro-D5Cm88hn.js +0 -6
- langflow/frontend/assets/badge-help-BsOXh8oK.js +0 -6
- langflow/frontend/assets/badge-indian-rupee-IOz-tV_2.js +0 -6
- langflow/frontend/assets/badge-info-D1OVWVm6.js +0 -6
- langflow/frontend/assets/badge-japanese-yen-Blwx4dbl.js +0 -6
- langflow/frontend/assets/badge-minus-tk-dBTIA.js +0 -6
- langflow/frontend/assets/badge-percent-q0BruWSx.js +0 -6
- langflow/frontend/assets/badge-plus-DMgNmy5x.js +0 -6
- langflow/frontend/assets/badge-pound-sterling-CHHRcVdr.js +0 -6
- langflow/frontend/assets/badge-russian-ruble-CEbVxGdy.js +0 -6
- langflow/frontend/assets/badge-swiss-franc-VkeTV2Jb.js +0 -6
- langflow/frontend/assets/badge-x-DpIs2VJS.js +0 -6
- langflow/frontend/assets/baggage-claim-0qf3dIRz.js +0 -6
- langflow/frontend/assets/ban-CYRXZEE5.js +0 -6
- langflow/frontend/assets/banana-DmJiIL3h.js +0 -6
- langflow/frontend/assets/bandage-8iK18u6O.js +0 -6
- langflow/frontend/assets/banknote-CZjau31E.js +0 -6
- langflow/frontend/assets/banknote-arrow-down-CDpXvmFu.js +0 -6
- langflow/frontend/assets/banknote-arrow-up-CHPZQBVP.js +0 -6
- langflow/frontend/assets/banknote-x-CVpQfLSf.js +0 -6
- langflow/frontend/assets/barcode-C7Q5lrBn.js +0 -6
- langflow/frontend/assets/baseline-Cs7ZHPZ4.js +0 -6
- langflow/frontend/assets/bath-CDWPMaym.js +0 -6
- langflow/frontend/assets/battery-BFbHgRpU.js +0 -6
- langflow/frontend/assets/battery-charging-CsdGXssX.js +0 -6
- langflow/frontend/assets/battery-full-CcwmBaAZ.js +0 -6
- langflow/frontend/assets/battery-low-DAjILXda.js +0 -6
- langflow/frontend/assets/battery-medium-CZyQCN5h.js +0 -6
- langflow/frontend/assets/battery-plus-DfsE3RTm.js +0 -6
- langflow/frontend/assets/battery-warning-BZw_7xKe.js +0 -6
- langflow/frontend/assets/beaker-DHNVlyVo.js +0 -6
- langflow/frontend/assets/bean-YLVO9evq.js +0 -6
- langflow/frontend/assets/bean-off-Db3YBVDD.js +0 -6
- langflow/frontend/assets/bed-CgUwmyeT.js +0 -6
- langflow/frontend/assets/bed-double-BLNGBOmV.js +0 -6
- langflow/frontend/assets/bed-single-BcSlS0k2.js +0 -6
- langflow/frontend/assets/beef-BX03LzQv.js +0 -6
- langflow/frontend/assets/beer-DtRKaakP.js +0 -6
- langflow/frontend/assets/beer-off-ntawv8J3.js +0 -6
- langflow/frontend/assets/bell-BQ1MS1h3.js +0 -6
- langflow/frontend/assets/bell-dot-DFJQsNba.js +0 -6
- langflow/frontend/assets/bell-electric-ugdmLwOH.js +0 -6
- langflow/frontend/assets/bell-minus-CUT7k6WY.js +0 -6
- langflow/frontend/assets/bell-off-DcOEFLSM.js +0 -6
- langflow/frontend/assets/bell-plus-CTv3L84z.js +0 -6
- langflow/frontend/assets/bell-ring-BQGCbeNK.js +0 -6
- langflow/frontend/assets/between-horizontal-end-DQm9wHWZ.js +0 -6
- langflow/frontend/assets/between-horizontal-start-B4n63M4w.js +0 -6
- langflow/frontend/assets/between-vertical-end-4V70-Tmf.js +0 -6
- langflow/frontend/assets/between-vertical-start-CiuWpjd_.js +0 -6
- langflow/frontend/assets/biceps-flexed-BRkse63U.js +0 -6
- langflow/frontend/assets/bike-DbODYZa9.js +0 -6
- langflow/frontend/assets/binary-BZrFV6uU.js +0 -6
- langflow/frontend/assets/binoculars-XPRKuSmF.js +0 -6
- langflow/frontend/assets/biohazard-Cyq2kDJG.js +0 -6
- langflow/frontend/assets/bird-BhZ8WtVr.js +0 -6
- langflow/frontend/assets/bitcoin-B3F5kR4-.js +0 -6
- langflow/frontend/assets/blend-BGryF9qq.js +0 -6
- langflow/frontend/assets/blinds-DbFIu1bT.js +0 -6
- langflow/frontend/assets/blocks-DWcBLodr.js +0 -6
- langflow/frontend/assets/bluetooth-connected-Dhf9pdI-.js +0 -6
- langflow/frontend/assets/bluetooth-kswXe1Y-.js +0 -6
- langflow/frontend/assets/bluetooth-off-szFkxRUi.js +0 -6
- langflow/frontend/assets/bluetooth-searching-CTF5tAkg.js +0 -6
- langflow/frontend/assets/bold-BGg4fc3J.js +0 -6
- langflow/frontend/assets/bolt-R60irphj.js +0 -6
- langflow/frontend/assets/bomb-igGJjPrs.js +0 -6
- langflow/frontend/assets/bone-BeFpkzE9.js +0 -6
- langflow/frontend/assets/book-B1Z9x77f.js +0 -6
- langflow/frontend/assets/book-a-DTwZwHeL.js +0 -6
- langflow/frontend/assets/book-audio-D03bcHN1.js +0 -6
- langflow/frontend/assets/book-check-1PwIBLvI.js +0 -6
- langflow/frontend/assets/book-copy-yb_crTZw.js +0 -6
- langflow/frontend/assets/book-dashed-CKh4AvE3.js +0 -6
- langflow/frontend/assets/book-down-C6uWFaMI.js +0 -6
- langflow/frontend/assets/book-headphones-CmPZIaha.js +0 -6
- langflow/frontend/assets/book-heart-DUjyWUw6.js +0 -6
- langflow/frontend/assets/book-image-DZGANV-s.js +0 -6
- langflow/frontend/assets/book-key-QkydeqUW.js +0 -6
- langflow/frontend/assets/book-lock-kIjH4dFY.js +0 -6
- langflow/frontend/assets/book-marked-e2WkHwpc.js +0 -6
- langflow/frontend/assets/book-minus-aSaz_QR8.js +0 -6
- langflow/frontend/assets/book-open-CGX9M2Np.js +0 -6
- langflow/frontend/assets/book-open-check-BTGqcf-8.js +0 -6
- langflow/frontend/assets/book-open-text-CLMMMAyZ.js +0 -6
- langflow/frontend/assets/book-plus-BsA7fEJn.js +0 -6
- langflow/frontend/assets/book-text-COaes1xV.js +0 -6
- langflow/frontend/assets/book-type-BOySdQYg.js +0 -6
- langflow/frontend/assets/book-up-2-B0cQqCZK.js +0 -6
- langflow/frontend/assets/book-up-CH4D33N2.js +0 -6
- langflow/frontend/assets/book-user-CTPsc8o9.js +0 -6
- langflow/frontend/assets/book-x-Cef8efkv.js +0 -6
- langflow/frontend/assets/bookmark-BIROAsWh.js +0 -6
- langflow/frontend/assets/bookmark-check-CswzE8Mt.js +0 -6
- langflow/frontend/assets/bookmark-minus-CkJxt1p3.js +0 -6
- langflow/frontend/assets/bookmark-plus-CRoRb-5i.js +0 -6
- langflow/frontend/assets/bookmark-x-D2cLMMcO.js +0 -6
- langflow/frontend/assets/boom-box-DGyKFFGr.js +0 -6
- langflow/frontend/assets/bot-GomJtx3A.js +0 -6
- langflow/frontend/assets/bot-message-square-BlRIV6QC.js +0 -6
- langflow/frontend/assets/bot-off-VjlqlN2U.js +0 -6
- langflow/frontend/assets/bow-arrow-Co9G_lG1.js +0 -6
- langflow/frontend/assets/box-CS1eZvCH.js +0 -6
- langflow/frontend/assets/boxes-qndAkj1J.js +0 -6
- langflow/frontend/assets/braces-DK97MG-e.js +0 -6
- langflow/frontend/assets/brackets-s8GDjwqe.js +0 -6
- langflow/frontend/assets/brain-BgzfhgZ9.js +0 -6
- langflow/frontend/assets/brain-circuit-DV-WYKsx.js +0 -6
- langflow/frontend/assets/brain-cog-DAOJ3HcZ.js +0 -6
- langflow/frontend/assets/brick-wall-Cnn8IJBp.js +0 -6
- langflow/frontend/assets/brick-wall-fire-Cn5Q_Z7T.js +0 -6
- langflow/frontend/assets/briefcase-CfD4XT3g.js +0 -6
- langflow/frontend/assets/briefcase-business-BsVaxwTz.js +0 -6
- langflow/frontend/assets/briefcase-conveyor-belt-BsyQzp9D.js +0 -6
- langflow/frontend/assets/briefcase-medical-BafOnW6h.js +0 -6
- langflow/frontend/assets/bring-to-front-D6LTGUAM.js +0 -6
- langflow/frontend/assets/brush-CMSgAyCy.js +0 -6
- langflow/frontend/assets/bubbles-CpYAzFFq.js +0 -6
- langflow/frontend/assets/bug-DEH7fEs7.js +0 -6
- langflow/frontend/assets/bug-off-HWRB0ShZ.js +0 -6
- langflow/frontend/assets/bug-play-B5QFRuKR.js +0 -6
- langflow/frontend/assets/building-2-CBJPkScT.js +0 -6
- langflow/frontend/assets/building-Dc_XpMzY.js +0 -6
- langflow/frontend/assets/bus-YOWyUCDM.js +0 -6
- langflow/frontend/assets/bus-front-DU56GrjN.js +0 -6
- langflow/frontend/assets/cable-PspUAHj5.js +0 -6
- langflow/frontend/assets/cable-car-DPo9b_Qk.js +0 -6
- langflow/frontend/assets/cake-qPqSfib8.js +0 -6
- langflow/frontend/assets/cake-slice-Dr6vBGPs.js +0 -6
- langflow/frontend/assets/calculator-ZQMPmiOA.js +0 -6
- langflow/frontend/assets/calendar-1-B0eE9_1b.js +0 -6
- langflow/frontend/assets/calendar-BGF8IDyi.js +0 -6
- langflow/frontend/assets/calendar-arrow-down-BX7NVTYl.js +0 -6
- langflow/frontend/assets/calendar-arrow-up-Do_rf2fp.js +0 -6
- langflow/frontend/assets/calendar-check-2-BVcDTCp3.js +0 -6
- langflow/frontend/assets/calendar-check-3ROSiiel.js +0 -6
- langflow/frontend/assets/calendar-clock-Bn9fe9QX.js +0 -6
- langflow/frontend/assets/calendar-cog-kuhRz4OH.js +0 -6
- langflow/frontend/assets/calendar-days-CKruG6Kp.js +0 -6
- langflow/frontend/assets/calendar-fold-DuirA1WZ.js +0 -6
- langflow/frontend/assets/calendar-heart-Bq2qoO83.js +0 -6
- langflow/frontend/assets/calendar-minus-2-BOSwCuOW.js +0 -6
- langflow/frontend/assets/calendar-minus-DiFVtQeo.js +0 -6
- langflow/frontend/assets/calendar-off-B-YGSx4p.js +0 -6
- langflow/frontend/assets/calendar-plus-2-NFXvsHxT.js +0 -6
- langflow/frontend/assets/calendar-plus-C1avJN4z.js +0 -6
- langflow/frontend/assets/calendar-range-BXR42bOX.js +0 -6
- langflow/frontend/assets/calendar-search-C-lFyn7p.js +0 -6
- langflow/frontend/assets/calendar-sync-DNa0lIv7.js +0 -6
- langflow/frontend/assets/calendar-x-2-z_E7oB4p.js +0 -6
- langflow/frontend/assets/calendar-x-CMLxjjmV.js +0 -6
- langflow/frontend/assets/camera-off-2dTvMGgv.js +0 -6
- langflow/frontend/assets/camera-qbwR10p_.js +0 -6
- langflow/frontend/assets/candy-BQ4t-DqD.js +0 -6
- langflow/frontend/assets/candy-cane-DrBGvfys.js +0 -6
- langflow/frontend/assets/candy-off-BubtPe60.js +0 -6
- langflow/frontend/assets/cannabis-DC5SYNIc.js +0 -6
- langflow/frontend/assets/captions-DFA2Oe5Z.js +0 -6
- langflow/frontend/assets/captions-off-BrNnxb6q.js +0 -6
- langflow/frontend/assets/car-QyBdI2SI.js +0 -6
- langflow/frontend/assets/car-front-CWS10Ibz.js +0 -6
- langflow/frontend/assets/car-taxi-front-wxCgLXuk.js +0 -6
- langflow/frontend/assets/caravan-BlCPl6aV.js +0 -6
- langflow/frontend/assets/carrot-BGvkK6EI.js +0 -6
- langflow/frontend/assets/case-lower-J0JsWk74.js +0 -6
- langflow/frontend/assets/case-sensitive-D9uPJFLk.js +0 -6
- langflow/frontend/assets/case-upper-C-CJ5igC.js +0 -6
- langflow/frontend/assets/cassette-tape-CckW_qZY.js +0 -6
- langflow/frontend/assets/cast-BHip4cyK.js +0 -6
- langflow/frontend/assets/castle-8kj-YW4y.js +0 -6
- langflow/frontend/assets/cat-_Td3TyXI.js +0 -6
- langflow/frontend/assets/cctv-X-HCVWTb.js +0 -6
- langflow/frontend/assets/chart-area-D92RtYIO.js +0 -6
- langflow/frontend/assets/chart-bar-DT90TlU5.js +0 -6
- langflow/frontend/assets/chart-bar-big-B9PJar0z.js +0 -6
- langflow/frontend/assets/chart-bar-decreasing-CzB6usic.js +0 -6
- langflow/frontend/assets/chart-bar-increasing-Lb4NqLYv.js +0 -6
- langflow/frontend/assets/chart-bar-stacked-D2PFpYb4.js +0 -6
- langflow/frontend/assets/chart-candlestick-DgBrkDfA.js +0 -6
- langflow/frontend/assets/chart-column-CyJ7jHlw.js +0 -6
- langflow/frontend/assets/chart-column-big-DNLCRh6v.js +0 -6
- langflow/frontend/assets/chart-column-decreasing-agiKdO9q.js +0 -6
- langflow/frontend/assets/chart-column-increasing-8xSN0RFX.js +0 -6
- langflow/frontend/assets/chart-column-stacked-ByjSIgVm.js +0 -6
- langflow/frontend/assets/chart-gantt-Cb-QgWLY.js +0 -6
- langflow/frontend/assets/chart-line-DJdXADIj.js +0 -6
- langflow/frontend/assets/chart-network-DiItS55y.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-S1Y3Gzin.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-decreasing-DlWnCnHN.js +0 -6
- langflow/frontend/assets/chart-no-axes-column-increasing-CEJu_Nut.js +0 -6
- langflow/frontend/assets/chart-no-axes-combined-DiRTVosK.js +0 -6
- langflow/frontend/assets/chart-no-axes-gantt-ClvHJAwI.js +0 -6
- langflow/frontend/assets/chart-pie-DrFGw6jy.js +0 -6
- langflow/frontend/assets/chart-scatter-BGYtUfNW.js +0 -6
- langflow/frontend/assets/chart-spline-DTa9Xe4n.js +0 -6
- langflow/frontend/assets/check-check-9L6jvp8Y.js +0 -6
- langflow/frontend/assets/chef-hat-BjzWpgjV.js +0 -6
- langflow/frontend/assets/cherry-B5SpzY_P.js +0 -6
- langflow/frontend/assets/chevron-first-DX3vbLUS.js +0 -6
- langflow/frontend/assets/chevron-last-CNWwWmpW.js +0 -6
- langflow/frontend/assets/chevron-left-CjLu6ldM.js +0 -6
- langflow/frontend/assets/chevron-right-BbrGRs7_.js +0 -6
- langflow/frontend/assets/chevrons-down-H2ZS5rUc.js +0 -6
- langflow/frontend/assets/chevrons-down-up-DQWC2qjS.js +0 -6
- langflow/frontend/assets/chevrons-left-7Na6UmCj.js +0 -6
- langflow/frontend/assets/chevrons-left-right-Btk4IHsh.js +0 -6
- langflow/frontend/assets/chevrons-left-right-ellipsis-CHTwyaJS.js +0 -6
- langflow/frontend/assets/chevrons-right-BOCimP-Y.js +0 -6
- langflow/frontend/assets/chevrons-right-left-BDGV7ZHN.js +0 -6
- langflow/frontend/assets/chevrons-up-BtBbYTIX.js +0 -6
- langflow/frontend/assets/chrome-CLHrUdL7.js +0 -6
- langflow/frontend/assets/church-DyP20Di6.js +0 -6
- langflow/frontend/assets/cigarette-B2UOS8lf.js +0 -6
- langflow/frontend/assets/cigarette-off-ByckuC3q.js +0 -6
- langflow/frontend/assets/circle-alert-DXzq9xj6.js +0 -6
- langflow/frontend/assets/circle-arrow-down-D6Wnw5dJ.js +0 -6
- langflow/frontend/assets/circle-arrow-left-CTcR5KD9.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-left-CqGME175.js +0 -6
- langflow/frontend/assets/circle-arrow-out-down-right--1pHhm_S.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-left-CokBstE4.js +0 -6
- langflow/frontend/assets/circle-arrow-out-up-right-CkWhrB1W.js +0 -6
- langflow/frontend/assets/circle-arrow-right-BaxjllQX.js +0 -6
- langflow/frontend/assets/circle-arrow-up-DcjKtZmC.js +0 -6
- langflow/frontend/assets/circle-check-DVIF3Nr_.js +0 -6
- langflow/frontend/assets/circle-check-big-CMfOraW9.js +0 -6
- langflow/frontend/assets/circle-chevron-down-D9WiS2SB.js +0 -6
- langflow/frontend/assets/circle-chevron-left-B-qkgP0T.js +0 -6
- langflow/frontend/assets/circle-chevron-right-CKqdjZu0.js +0 -6
- langflow/frontend/assets/circle-chevron-up-BmLC2mks.js +0 -6
- langflow/frontend/assets/circle-dashed-C8Uk1RfD.js +0 -6
- langflow/frontend/assets/circle-divide-BljEFvGL.js +0 -6
- langflow/frontend/assets/circle-dollar-sign-YeM-HVIq.js +0 -6
- langflow/frontend/assets/circle-dot-CmAA73ex.js +0 -6
- langflow/frontend/assets/circle-dot-dashed-DUTuJBCb.js +0 -6
- langflow/frontend/assets/circle-ellipsis-y8nFdmyO.js +0 -6
- langflow/frontend/assets/circle-equal-vYkDHToT.js +0 -6
- langflow/frontend/assets/circle-fading-arrow-up-nOYwIMqy.js +0 -6
- langflow/frontend/assets/circle-fading-plus-D0I4QaEI.js +0 -6
- langflow/frontend/assets/circle-gauge-m4IG1O-u.js +0 -6
- langflow/frontend/assets/circle-help-DVb_wNDM.js +0 -6
- langflow/frontend/assets/circle-minus-Byf1m04e.js +0 -6
- langflow/frontend/assets/circle-off-C2TaaGNm.js +0 -6
- langflow/frontend/assets/circle-parking-BxXpvySV.js +0 -6
- langflow/frontend/assets/circle-parking-off-CmE2Bihs.js +0 -6
- langflow/frontend/assets/circle-pause-DroDtAej.js +0 -6
- langflow/frontend/assets/circle-percent-BfzBs559.js +0 -6
- langflow/frontend/assets/circle-play-C0-l24Qf.js +0 -6
- langflow/frontend/assets/circle-plus-_EnqRPM0.js +0 -6
- langflow/frontend/assets/circle-power-uMj-rVOp.js +0 -6
- langflow/frontend/assets/circle-slash-2-KKegU_qW.js +0 -6
- langflow/frontend/assets/circle-slash-DfJK2Ho_.js +0 -6
- langflow/frontend/assets/circle-small-CXWhZ8Yq.js +0 -6
- langflow/frontend/assets/circle-stop-O25AHDTz.js +0 -6
- langflow/frontend/assets/circle-user-DZosvpw2.js +0 -6
- langflow/frontend/assets/circle-user-round-CdsDXkBp.js +0 -6
- langflow/frontend/assets/circuit-board-DNRBzrQM.js +0 -6
- langflow/frontend/assets/citrus-j_jtDGPb.js +0 -6
- langflow/frontend/assets/clapperboard-B4kGMwR1.js +0 -6
- langflow/frontend/assets/clipboard-WThr5izD.js +0 -6
- langflow/frontend/assets/clipboard-check-DT_MbRwb.js +0 -6
- langflow/frontend/assets/clipboard-copy-BvkHI3rh.js +0 -6
- langflow/frontend/assets/clipboard-list-CLUD2tKX.js +0 -6
- langflow/frontend/assets/clipboard-minus-DEZOHV09.js +0 -6
- langflow/frontend/assets/clipboard-paste-DBMsxziB.js +0 -6
- langflow/frontend/assets/clipboard-pen-D22TKKPD.js +0 -6
- langflow/frontend/assets/clipboard-pen-line-BWyQZZIT.js +0 -6
- langflow/frontend/assets/clipboard-plus-D1UFMJum.js +0 -6
- langflow/frontend/assets/clipboard-type-CxijHV2W.js +0 -6
- langflow/frontend/assets/clipboard-x-D9yy-3lO.js +0 -6
- langflow/frontend/assets/clock-1-DAwU43Ut.js +0 -6
- langflow/frontend/assets/clock-10-BPoZP6ds.js +0 -6
- langflow/frontend/assets/clock-11-C9LQgTl3.js +0 -6
- langflow/frontend/assets/clock-12-yIaDqcZ3.js +0 -6
- langflow/frontend/assets/clock-2-CBoyj7R6.js +0 -6
- langflow/frontend/assets/clock-3-CC1_E6dN.js +0 -6
- langflow/frontend/assets/clock-4-8pIV05ob.js +0 -6
- langflow/frontend/assets/clock-5-C2hXuSwF.js +0 -6
- langflow/frontend/assets/clock-6-CcMALSp2.js +0 -6
- langflow/frontend/assets/clock-7-C-SHYfUw.js +0 -6
- langflow/frontend/assets/clock-8-_gJjLUJ4.js +0 -6
- langflow/frontend/assets/clock-9-Ck4K3tqp.js +0 -6
- langflow/frontend/assets/clock-alert-Cyk2IRBc.js +0 -6
- langflow/frontend/assets/clock-arrow-down-DFTDL4kx.js +0 -6
- langflow/frontend/assets/clock-arrow-up-BnDhCzb4.js +0 -6
- langflow/frontend/assets/clock-fading-Bjka-Vfr.js +0 -6
- langflow/frontend/assets/clock-gYcFsLDS.js +0 -6
- langflow/frontend/assets/cloud-CkDxBGiX.js +0 -6
- langflow/frontend/assets/cloud-alert-5_4mbkbT.js +0 -6
- langflow/frontend/assets/cloud-cog-D_4-dUI8.js +0 -6
- langflow/frontend/assets/cloud-download-BeAnuH6V.js +0 -6
- langflow/frontend/assets/cloud-drizzle-BZNgGQjK.js +0 -6
- langflow/frontend/assets/cloud-fog-g6H9mnPB.js +0 -6
- langflow/frontend/assets/cloud-hail-mfOY3PyQ.js +0 -6
- langflow/frontend/assets/cloud-lightning-BTT7SZeG.js +0 -6
- langflow/frontend/assets/cloud-moon-BwWkVJ49.js +0 -6
- langflow/frontend/assets/cloud-moon-rain-1U_w8q9_.js +0 -6
- langflow/frontend/assets/cloud-off-Ch0rgW4F.js +0 -6
- langflow/frontend/assets/cloud-rain-BMlRf1it.js +0 -6
- langflow/frontend/assets/cloud-rain-wind-DdXJxzsJ.js +0 -6
- langflow/frontend/assets/cloud-snow-l7BHiF66.js +0 -6
- langflow/frontend/assets/cloud-sun-B9xczlpe.js +0 -6
- langflow/frontend/assets/cloud-sun-rain-C2EhPc8d.js +0 -6
- langflow/frontend/assets/cloud-upload--IrI73uY.js +0 -6
- langflow/frontend/assets/cloudy-BLY2P7pI.js +0 -6
- langflow/frontend/assets/clover-CCa69VCu.js +0 -6
- langflow/frontend/assets/club-BoK3QkZI.js +0 -6
- langflow/frontend/assets/code-xml-BJ4pcmNb.js +0 -6
- langflow/frontend/assets/codepen-y-bmhV7C.js +0 -6
- langflow/frontend/assets/codesandbox-BHyCD9aN.js +0 -6
- langflow/frontend/assets/coffee-CHqvDOjz.js +0 -6
- langflow/frontend/assets/cog-B3awbO3E.js +0 -6
- langflow/frontend/assets/coins-C-6NNAjI.js +0 -6
- langflow/frontend/assets/columns-2-Hg_ZeGuF.js +0 -6
- langflow/frontend/assets/columns-3-CrY0stzR.js +0 -6
- langflow/frontend/assets/columns-3-cog-CkEOZTSJ.js +0 -6
- langflow/frontend/assets/columns-4-C6O27Uk6.js +0 -6
- langflow/frontend/assets/combine-BQHXMUAE.js +0 -6
- langflow/frontend/assets/command-FnSqkckB.js +0 -6
- langflow/frontend/assets/compass-EebvLOoc.js +0 -6
- langflow/frontend/assets/component-DKKIEb9c.js +0 -6
- langflow/frontend/assets/computer-D20RZor-.js +0 -6
- langflow/frontend/assets/concierge-bell-BNQwfuW3.js +0 -6
- langflow/frontend/assets/cone-rfMmNEJj.js +0 -6
- langflow/frontend/assets/construction-Ctz76OTY.js +0 -6
- langflow/frontend/assets/contact-BsvQyBK4.js +0 -6
- langflow/frontend/assets/contact-round-BXIpbAgi.js +0 -6
- langflow/frontend/assets/container-5iUx3nlv.js +0 -6
- langflow/frontend/assets/contrast-cefwbAsE.js +0 -6
- langflow/frontend/assets/cookie-DL58azAK.js +0 -6
- langflow/frontend/assets/cooking-pot-C3wBu1s4.js +0 -6
- langflow/frontend/assets/copy-UJnbiPtr.js +0 -6
- langflow/frontend/assets/copy-check-CIbqpkRk.js +0 -6
- langflow/frontend/assets/copy-minus-BLf0JZxV.js +0 -6
- langflow/frontend/assets/copy-plus-D30XipeU.js +0 -6
- langflow/frontend/assets/copy-slash-MruO4PRW.js +0 -6
- langflow/frontend/assets/copy-x-CqG1DirU.js +0 -6
- langflow/frontend/assets/copyleft-qecPjIRB.js +0 -6
- langflow/frontend/assets/copyright-BAvLTBZh.js +0 -6
- langflow/frontend/assets/corner-down-left-DhdODoB2.js +0 -6
- langflow/frontend/assets/corner-down-right-GFzNTX3d.js +0 -6
- langflow/frontend/assets/corner-left-down-BsEoXyb8.js +0 -6
- langflow/frontend/assets/corner-left-up-CWc90yLu.js +0 -6
- langflow/frontend/assets/corner-right-down-zb58ewkb.js +0 -6
- langflow/frontend/assets/corner-right-up-B4D23RNY.js +0 -6
- langflow/frontend/assets/corner-up-left-BEPUYLy9.js +0 -6
- langflow/frontend/assets/corner-up-right-UEwbxN-r.js +0 -6
- langflow/frontend/assets/cpu-CiAfriZ0.js +0 -6
- langflow/frontend/assets/creative-commons-DTsqWMLQ.js +0 -6
- langflow/frontend/assets/credit-card-BsqZCwy7.js +0 -6
- langflow/frontend/assets/croissant-Dne9gpD6.js +0 -6
- langflow/frontend/assets/crop-BWr5Nt9j.js +0 -6
- langflow/frontend/assets/cross-CShHDmEw.js +0 -6
- langflow/frontend/assets/crosshair-BCE8MhW3.js +0 -6
- langflow/frontend/assets/crown-CIXLAW1p.js +0 -6
- langflow/frontend/assets/cuboid-BdVM9bLq.js +0 -6
- langflow/frontend/assets/cup-soda-BSwVg3a5.js +0 -6
- langflow/frontend/assets/currency-DJp8xWtW.js +0 -6
- langflow/frontend/assets/cylinder-Bahv0XqP.js +0 -6
- langflow/frontend/assets/dam-BiiN0uXc.js +0 -6
- langflow/frontend/assets/database-CgOq8Ih-.js +0 -6
- langflow/frontend/assets/database-backup-BEmFvF40.js +0 -6
- langflow/frontend/assets/database-zap-B4qlD4xw.js +0 -6
- langflow/frontend/assets/decimals-arrow-left-DTVAe_Hn.js +0 -6
- langflow/frontend/assets/decimals-arrow-right-BJpvQaKs.js +0 -6
- langflow/frontend/assets/delete-DNgmAcy0.js +0 -6
- langflow/frontend/assets/dessert-Bi6gyYf-.js +0 -6
- langflow/frontend/assets/diameter-a93r8rjy.js +0 -6
- langflow/frontend/assets/diamond-0p-8DpG5.js +0 -6
- langflow/frontend/assets/diamond-minus-COaE18H5.js +0 -6
- langflow/frontend/assets/diamond-percent-Df698BfA.js +0 -6
- langflow/frontend/assets/diamond-plus-D3eQ62H4.js +0 -6
- langflow/frontend/assets/dice-1-DnL3C4vE.js +0 -6
- langflow/frontend/assets/dice-2-BtEh1DPp.js +0 -6
- langflow/frontend/assets/dice-3-DVXeHqgh.js +0 -6
- langflow/frontend/assets/dice-4-i1t533VC.js +0 -6
- langflow/frontend/assets/dice-5-DL_QrdV9.js +0 -6
- langflow/frontend/assets/dice-6-CEN5iQ7F.js +0 -6
- langflow/frontend/assets/dices-BJFgAPPA.js +0 -6
- langflow/frontend/assets/diff-C5upn_lT.js +0 -6
- langflow/frontend/assets/disc-2-CWruH8PS.js +0 -6
- langflow/frontend/assets/disc-3-BHOYBnsT.js +0 -6
- langflow/frontend/assets/disc-album-BQllRW2x.js +0 -6
- langflow/frontend/assets/disc-eKt9DAPl.js +0 -6
- langflow/frontend/assets/divide-BQ4_k1d1.js +0 -6
- langflow/frontend/assets/dna-dZI_EwH-.js +0 -6
- langflow/frontend/assets/dna-off-I9s41lB9.js +0 -6
- langflow/frontend/assets/dock-B1Bdxowp.js +0 -6
- langflow/frontend/assets/dog-BR7ug1Wi.js +0 -6
- langflow/frontend/assets/dollar-sign-BrPvGKWr.js +0 -6
- langflow/frontend/assets/donut-Dj02uIog.js +0 -6
- langflow/frontend/assets/door-closed-wL5v0Vb0.js +0 -6
- langflow/frontend/assets/door-open-CcjATHeV.js +0 -6
- langflow/frontend/assets/dot-b94B4R9h.js +0 -6
- langflow/frontend/assets/download-Dq5Dm54C.js +0 -6
- langflow/frontend/assets/drafting-compass-vwA4Ho1z.js +0 -6
- langflow/frontend/assets/drama-CvKReENk.js +0 -6
- langflow/frontend/assets/dribbble-BbwrE9Yy.js +0 -6
- langflow/frontend/assets/drill--IJn0pWJ.js +0 -6
- langflow/frontend/assets/droplet-ClYRsdb8.js +0 -6
- langflow/frontend/assets/droplet-off-CFIzG0Ol.js +0 -6
- langflow/frontend/assets/droplets-BKLSMAGX.js +0 -6
- langflow/frontend/assets/drum-C7xB3QRH.js +0 -6
- langflow/frontend/assets/drumstick-B-hfKO8B.js +0 -6
- langflow/frontend/assets/dumbbell-DVaOS0FX.js +0 -6
- langflow/frontend/assets/ear-Ds37MAXI.js +0 -6
- langflow/frontend/assets/ear-off-PR_WQH1k.js +0 -6
- langflow/frontend/assets/earth-CA7q24-B.js +0 -6
- langflow/frontend/assets/earth-lock-C_A8Ahn1.js +0 -6
- langflow/frontend/assets/eclipse-BszuASH0.js +0 -6
- langflow/frontend/assets/egg-dhQLHf-p.js +0 -6
- langflow/frontend/assets/egg-fried-CCdZahuH.js +0 -6
- langflow/frontend/assets/egg-off-DjWCi1Kv.js +0 -6
- langflow/frontend/assets/ellipsis-CVuUKx17.js +0 -6
- langflow/frontend/assets/ellipsis-vertical-D_fRPINS.js +0 -6
- langflow/frontend/assets/equal-Bt5xcGZG.js +0 -6
- langflow/frontend/assets/equal-approximately-B1e5vblr.js +0 -6
- langflow/frontend/assets/equal-not-COi6tuqB.js +0 -6
- langflow/frontend/assets/eraser-ClwGEu2r.js +0 -6
- langflow/frontend/assets/ethernet-port-BaIsGepi.js +0 -6
- langflow/frontend/assets/euro-CzKiwxLv.js +0 -6
- langflow/frontend/assets/expand-C7mmmW2t.js +0 -6
- langflow/frontend/assets/eye-Y1wrQoS5.js +0 -6
- langflow/frontend/assets/eye-closed-Og5A_krH.js +0 -6
- langflow/frontend/assets/eye-off-Bny-wJcw.js +0 -6
- langflow/frontend/assets/facebook-D1YivKM-.js +0 -6
- langflow/frontend/assets/factory-BEYmvm6v.js +0 -6
- langflow/frontend/assets/fan-BV08YHfu.js +0 -6
- langflow/frontend/assets/fast-forward-CHJOu0Q-.js +0 -6
- langflow/frontend/assets/feather-B3rvCCo9.js +0 -6
- langflow/frontend/assets/fence-kbQqi4Ww.js +0 -6
- langflow/frontend/assets/ferris-wheel-C_MWhi8b.js +0 -6
- langflow/frontend/assets/figma-mbLL6Z_A.js +0 -6
- langflow/frontend/assets/file-DjQpgvN_.js +0 -6
- langflow/frontend/assets/file-archive-Cy00BTxG.js +0 -6
- langflow/frontend/assets/file-audio-2-1ZahxTag.js +0 -6
- langflow/frontend/assets/file-audio-BfdYg6TN.js +0 -6
- langflow/frontend/assets/file-axis-3d-D_PzfWrG.js +0 -6
- langflow/frontend/assets/file-badge-2-DW_r3C03.js +0 -6
- langflow/frontend/assets/file-badge-P_R0iIF4.js +0 -6
- langflow/frontend/assets/file-box-BbdwRlZo.js +0 -6
- langflow/frontend/assets/file-chart-column-CH5Cl6Vo.js +0 -6
- langflow/frontend/assets/file-chart-column-increasing-BwKb_oTm.js +0 -6
- langflow/frontend/assets/file-chart-line-DqFdt9kQ.js +0 -6
- langflow/frontend/assets/file-chart-pie-DefSZfRa.js +0 -6
- langflow/frontend/assets/file-check-2-RXuJsXXj.js +0 -6
- langflow/frontend/assets/file-check-BYDnCPax.js +0 -6
- langflow/frontend/assets/file-clock-DOERBDCj.js +0 -6
- langflow/frontend/assets/file-code-0-hWc2HC.js +0 -6
- langflow/frontend/assets/file-code-2-DQ_93XuW.js +0 -6
- langflow/frontend/assets/file-cog-BdE4EEMa.js +0 -6
- langflow/frontend/assets/file-diff-CtTrIgxG.js +0 -6
- langflow/frontend/assets/file-digit-Iwphm6BD.js +0 -6
- langflow/frontend/assets/file-down-Ck14OjJt.js +0 -6
- langflow/frontend/assets/file-heart-DgeG_u2p.js +0 -6
- langflow/frontend/assets/file-image-BRsYiX2B.js +0 -6
- langflow/frontend/assets/file-input-D8d6wAL7.js +0 -6
- langflow/frontend/assets/file-json-2-Cp005a7z.js +0 -6
- langflow/frontend/assets/file-json-DOxvIPN5.js +0 -6
- langflow/frontend/assets/file-key-2-B9ul6SjG.js +0 -6
- langflow/frontend/assets/file-key-CjH4-RUQ.js +0 -6
- langflow/frontend/assets/file-lock-2-Cmos9f8R.js +0 -6
- langflow/frontend/assets/file-lock-qOLsgF3e.js +0 -6
- langflow/frontend/assets/file-minus-2-k1jAjC0Z.js +0 -6
- langflow/frontend/assets/file-minus-CIP6ezxw.js +0 -6
- langflow/frontend/assets/file-music-BO8AilAF.js +0 -6
- langflow/frontend/assets/file-output-BWt-jJjY.js +0 -6
- langflow/frontend/assets/file-pen-Cl_qYiOD.js +0 -6
- langflow/frontend/assets/file-pen-line-BLsV3na3.js +0 -6
- langflow/frontend/assets/file-plus-2-DmtjcO1f.js +0 -6
- langflow/frontend/assets/file-plus-CjX61yZI.js +0 -6
- langflow/frontend/assets/file-question-D1s2EnEi.js +0 -6
- langflow/frontend/assets/file-scan-BtOXjfkx.js +0 -6
- langflow/frontend/assets/file-search-2-C62uqFii.js +0 -6
- langflow/frontend/assets/file-search-SoFJ_6Ps.js +0 -6
- langflow/frontend/assets/file-sliders-BwoNTa0w.js +0 -6
- langflow/frontend/assets/file-spreadsheet-D7s0vz6X.js +0 -6
- langflow/frontend/assets/file-stack-CAOg05Cf.js +0 -6
- langflow/frontend/assets/file-symlink-BieImjU3.js +0 -6
- langflow/frontend/assets/file-terminal-DEJpQ6UE.js +0 -6
- langflow/frontend/assets/file-text-BPOIgq28.js +0 -6
- langflow/frontend/assets/file-type-2-4jD6JU2J.js +0 -6
- langflow/frontend/assets/file-type-DvUFi4hv.js +0 -6
- langflow/frontend/assets/file-up-Ctxhu7Ye.js +0 -6
- langflow/frontend/assets/file-user-Pi0Aj9xA.js +0 -6
- langflow/frontend/assets/file-video-2-_psUeOOy.js +0 -6
- langflow/frontend/assets/file-video-C7sonoXL.js +0 -6
- langflow/frontend/assets/file-volume-2-DBBXt8gz.js +0 -6
- langflow/frontend/assets/file-volume-DVbA5-Ds.js +0 -6
- langflow/frontend/assets/file-warning-MAtWC6L8.js +0 -6
- langflow/frontend/assets/file-x-2-Buf7GU_G.js +0 -6
- langflow/frontend/assets/file-x-B6HPhurJ.js +0 -6
- langflow/frontend/assets/files-DSBUfdWk.js +0 -6
- langflow/frontend/assets/film-DOi3QeWb.js +0 -6
- langflow/frontend/assets/fingerprint-CXB2dcmC.js +0 -6
- langflow/frontend/assets/fire-extinguisher-CeDLzfLT.js +0 -6
- langflow/frontend/assets/fish-e0C3erj5.js +0 -6
- langflow/frontend/assets/fish-off-B15WwwXi.js +0 -6
- langflow/frontend/assets/fish-symbol-BWvljjWX.js +0 -6
- langflow/frontend/assets/flag-BFn9drT6.js +0 -6
- langflow/frontend/assets/flag-off-B93JBYsq.js +0 -6
- langflow/frontend/assets/flag-triangle-left-DI0eYHt7.js +0 -6
- langflow/frontend/assets/flag-triangle-right-B42qvniw.js +0 -6
- langflow/frontend/assets/flame-kindling-B8TD1nJQ.js +0 -6
- langflow/frontend/assets/flame-yaZnwjKV.js +0 -6
- langflow/frontend/assets/flashlight-BQIl3IpW.js +0 -6
- langflow/frontend/assets/flashlight-off-D_-jT97K.js +0 -6
- langflow/frontend/assets/flask-conical-CHYXrQz0.js +0 -6
- langflow/frontend/assets/flask-conical-off-DKVX4iqz.js +0 -6
- langflow/frontend/assets/flask-round-BjQ9GAQf.js +0 -6
- langflow/frontend/assets/flip-horizontal-2-CLXO4TGg.js +0 -6
- langflow/frontend/assets/flip-horizontal-CBCzeHti.js +0 -6
- langflow/frontend/assets/flip-vertical-2-iT_B38iJ.js +0 -6
- langflow/frontend/assets/flip-vertical-gXuxA0OQ.js +0 -6
- langflow/frontend/assets/flower-2-Bca1Ck7g.js +0 -6
- langflow/frontend/assets/flower-DpuQRbmp.js +0 -6
- langflow/frontend/assets/focus-BqPsaGjU.js +0 -6
- langflow/frontend/assets/fold-horizontal-BehS_WQ7.js +0 -6
- langflow/frontend/assets/fold-vertical-CyY2vtMk.js +0 -6
- langflow/frontend/assets/folder-archive-BAinHuMQ.js +0 -6
- langflow/frontend/assets/folder-check-DNFwTBTN.js +0 -6
- langflow/frontend/assets/folder-clock-D_2WLn5P.js +0 -6
- langflow/frontend/assets/folder-closed-CGYZNl2H.js +0 -6
- langflow/frontend/assets/folder-code-BuzzI1RJ.js +0 -6
- langflow/frontend/assets/folder-cog-CuLMHoIt.js +0 -6
- langflow/frontend/assets/folder-dot-quKDC9Lq.js +0 -6
- langflow/frontend/assets/folder-down-DSLmJgPq.js +0 -6
- langflow/frontend/assets/folder-git-2-Bxh5ZAVa.js +0 -6
- langflow/frontend/assets/folder-git-a_CI5g4g.js +0 -6
- langflow/frontend/assets/folder-heart-D_ZGMgfz.js +0 -6
- langflow/frontend/assets/folder-input-CiL9qPZV.js +0 -6
- langflow/frontend/assets/folder-kanban-BgyHqi0P.js +0 -6
- langflow/frontend/assets/folder-key-DeICPkae.js +0 -6
- langflow/frontend/assets/folder-lock-CHM-fXY_.js +0 -6
- langflow/frontend/assets/folder-minus-Im-1anc5.js +0 -6
- langflow/frontend/assets/folder-open-RTm4lw0r.js +0 -6
- langflow/frontend/assets/folder-open-dot-K6CDwJgB.js +0 -6
- langflow/frontend/assets/folder-output-B_dfcjyZ.js +0 -6
- langflow/frontend/assets/folder-pFgJBlMx.js +0 -6
- langflow/frontend/assets/folder-pen-Chockbm5.js +0 -6
- langflow/frontend/assets/folder-plus-dniwJW7J.js +0 -6
- langflow/frontend/assets/folder-root-D_57lkVb.js +0 -6
- langflow/frontend/assets/folder-search-2-DC-2VrkS.js +0 -6
- langflow/frontend/assets/folder-search-BNKm965K.js +0 -6
- langflow/frontend/assets/folder-symlink-BcgdmDtb.js +0 -6
- langflow/frontend/assets/folder-sync-1T6-XOtQ.js +0 -6
- langflow/frontend/assets/folder-tree-C3so4vEU.js +0 -6
- langflow/frontend/assets/folder-up-COFYP1oz.js +0 -6
- langflow/frontend/assets/folder-x-BLlN3YLu.js +0 -6
- langflow/frontend/assets/folders-SZrVKXwg.js +0 -6
- langflow/frontend/assets/footprints-CDAAy4Wz.js +0 -6
- langflow/frontend/assets/forklift-DmdG35uV.js +0 -6
- langflow/frontend/assets/forward-1HsNRcG8.js +0 -6
- langflow/frontend/assets/frame-BovTax1d.js +0 -6
- langflow/frontend/assets/framer-j8ff6pIs.js +0 -6
- langflow/frontend/assets/frown-D0iaoYNS.js +0 -6
- langflow/frontend/assets/fuel-faXeMv1N.js +0 -6
- langflow/frontend/assets/fullscreen-CRpzIegV.js +0 -6
- langflow/frontend/assets/funnel-1-bk_QHe.js +0 -6
- langflow/frontend/assets/funnel-plus-Bsp208XH.js +0 -6
- langflow/frontend/assets/funnel-x-DL396SXW.js +0 -6
- langflow/frontend/assets/gallery-horizontal-Dm9sdx68.js +0 -6
- langflow/frontend/assets/gallery-horizontal-end-Dpyr4Ygb.js +0 -6
- langflow/frontend/assets/gallery-thumbnails-BizYXv_e.js +0 -6
- langflow/frontend/assets/gallery-vertical-HRB_iyK6.js +0 -6
- langflow/frontend/assets/gallery-vertical-end-DyaCoNJE.js +0 -6
- langflow/frontend/assets/gamepad-2-BVTF3mqj.js +0 -6
- langflow/frontend/assets/gamepad-CxEGgC35.js +0 -6
- langflow/frontend/assets/gauge-IdAEJ0kJ.js +0 -6
- langflow/frontend/assets/gavel-Cf_t06A-.js +0 -6
- langflow/frontend/assets/gem-CIIJrACa.js +0 -6
- langflow/frontend/assets/ghost-bq0rR6Q6.js +0 -6
- langflow/frontend/assets/gift-C04GwpRr.js +0 -6
- langflow/frontend/assets/git-branch-DT8lJfIe.js +0 -6
- langflow/frontend/assets/git-branch-plus-z2nKEguc.js +0 -6
- langflow/frontend/assets/git-commit-horizontal-BNrw6h_X.js +0 -6
- langflow/frontend/assets/git-commit-vertical-BJBCCrSu.js +0 -6
- langflow/frontend/assets/git-compare-Q4kwJVvG.js +0 -6
- langflow/frontend/assets/git-compare-arrows-D18LA56E.js +0 -6
- langflow/frontend/assets/git-fork-630Vd8C-.js +0 -6
- langflow/frontend/assets/git-graph-DMgYs0my.js +0 -6
- langflow/frontend/assets/git-merge-Di4VPVPr.js +0 -6
- langflow/frontend/assets/git-pull-request-BkXRobDX.js +0 -6
- langflow/frontend/assets/git-pull-request-arrow-50B44C11.js +0 -6
- langflow/frontend/assets/git-pull-request-closed-CMx3VK_Y.js +0 -6
- langflow/frontend/assets/git-pull-request-create-VathYLG_.js +0 -6
- langflow/frontend/assets/git-pull-request-create-arrow-1hRlGHo3.js +0 -6
- langflow/frontend/assets/git-pull-request-draft-4Z_CKmgP.js +0 -6
- langflow/frontend/assets/github-DMd3-02s.js +0 -6
- langflow/frontend/assets/gitlab-BU_ET8_I.js +0 -6
- langflow/frontend/assets/glass-water-BqDe1o7x.js +0 -6
- langflow/frontend/assets/glasses-DsB_LgQy.js +0 -6
- langflow/frontend/assets/globe-80YdjaPb.js +0 -6
- langflow/frontend/assets/globe-lock-Bw-Cd6nF.js +0 -6
- langflow/frontend/assets/goal-DY8IQVn2.js +0 -6
- langflow/frontend/assets/grab-Ui5GAGKe.js +0 -6
- langflow/frontend/assets/graduation-cap-DZd5qlKy.js +0 -6
- langflow/frontend/assets/grape-CPzDhPID.js +0 -6
- langflow/frontend/assets/grid-2x2-UdjQWFOV.js +0 -6
- langflow/frontend/assets/grid-2x2-check-C8BnNSGI.js +0 -6
- langflow/frontend/assets/grid-2x2-plus-BBMBYUjt.js +0 -6
- langflow/frontend/assets/grid-2x2-x-Dj93ZVGM.js +0 -6
- langflow/frontend/assets/grid-3x3-DbDDPh2n.js +0 -6
- langflow/frontend/assets/grip-Bz90IxX4.js +0 -6
- langflow/frontend/assets/grip-horizontal-Cz3Khj1B.js +0 -6
- langflow/frontend/assets/grip-vertical-DtSLX07r.js +0 -6
- langflow/frontend/assets/group-DKDntQd1.js +0 -6
- langflow/frontend/assets/guitar-BWU2nMRN.js +0 -6
- langflow/frontend/assets/ham-Cma1G8Xs.js +0 -6
- langflow/frontend/assets/hammer-1jG8-eZm.js +0 -6
- langflow/frontend/assets/hand-BIkojRmR.js +0 -6
- langflow/frontend/assets/hand-coins-hqlxvxmm.js +0 -6
- langflow/frontend/assets/hand-heart-6e_zAGTv.js +0 -6
- langflow/frontend/assets/hand-helping-BF5hAl_w.js +0 -6
- langflow/frontend/assets/hand-metal-BVy7_4cQ.js +0 -6
- langflow/frontend/assets/hand-platter-D-xscMcU.js +0 -6
- langflow/frontend/assets/handshake-7AXlWWGI.js +0 -6
- langflow/frontend/assets/hard-drive-BxRnPUbK.js +0 -6
- langflow/frontend/assets/hard-drive-download-BX5QHVFg.js +0 -6
- langflow/frontend/assets/hard-drive-upload-chMNyeSV.js +0 -6
- langflow/frontend/assets/hard-hat-WbgSDXg5.js +0 -6
- langflow/frontend/assets/hash-BQ4uug9c.js +0 -6
- langflow/frontend/assets/haze-D-GnfVst.js +0 -6
- langflow/frontend/assets/hdmi-port-BEAd4Wt8.js +0 -6
- langflow/frontend/assets/heading-1-CiMsyZDi.js +0 -6
- langflow/frontend/assets/heading-2-Czgj1mkH.js +0 -6
- langflow/frontend/assets/heading-3-CqFM-jwy.js +0 -6
- langflow/frontend/assets/heading-4-CjwRHdKG.js +0 -6
- langflow/frontend/assets/heading-5-C-KlC8s6.js +0 -6
- langflow/frontend/assets/heading-6-5tcIOjiS.js +0 -6
- langflow/frontend/assets/heading-CD7FeKN6.js +0 -6
- langflow/frontend/assets/headphone-off-COoiJV1r.js +0 -6
- langflow/frontend/assets/headphones-D7S1AuC5.js +0 -6
- langflow/frontend/assets/headset-CdE6Eym6.js +0 -6
- langflow/frontend/assets/heart-Ch8JKUDz.js +0 -6
- langflow/frontend/assets/heart-crack-BPf4Xkm0.js +0 -6
- langflow/frontend/assets/heart-handshake-CDz69yh7.js +0 -6
- langflow/frontend/assets/heart-minus-CqauV_Cx.js +0 -6
- langflow/frontend/assets/heart-off-DC5wBzLR.js +0 -6
- langflow/frontend/assets/heart-plus-hOv51cgy.js +0 -6
- langflow/frontend/assets/heart-pulse-C2nsALV-.js +0 -6
- langflow/frontend/assets/heater-DxLum1pL.js +0 -6
- langflow/frontend/assets/hexagon-D5ZXW5tT.js +0 -6
- langflow/frontend/assets/highlighter-DPDvMwDP.js +0 -6
- langflow/frontend/assets/history-m8Qq4Xlb.js +0 -6
- langflow/frontend/assets/hop-D-AxGIUW.js +0 -6
- langflow/frontend/assets/hop-off-hT2fB8jS.js +0 -6
- langflow/frontend/assets/hospital-CvJ0Ia_m.js +0 -6
- langflow/frontend/assets/hotel-D3j7DKAC.js +0 -6
- langflow/frontend/assets/hourglass-BWi6M7BG.js +0 -6
- langflow/frontend/assets/house-CgaaxzBK.js +0 -6
- langflow/frontend/assets/house-plug-CrW_XgHI.js +0 -6
- langflow/frontend/assets/house-plus-F3MX9EEk.js +0 -6
- langflow/frontend/assets/house-wifi-DtAD1vys.js +0 -6
- langflow/frontend/assets/ice-cream-bowl-C03CRKp4.js +0 -6
- langflow/frontend/assets/ice-cream-cone-BJabUeaL.js +0 -6
- langflow/frontend/assets/id-card-eNoaabz9.js +0 -6
- langflow/frontend/assets/image-Blup1gPl.js +0 -6
- langflow/frontend/assets/image-down-C61adJyK.js +0 -6
- langflow/frontend/assets/image-minus-C3dJhb4e.js +0 -6
- langflow/frontend/assets/image-off-CTcTSFvq.js +0 -6
- langflow/frontend/assets/image-play-DDGhNBe9.js +0 -6
- langflow/frontend/assets/image-plus-BBgwn8Sd.js +0 -6
- langflow/frontend/assets/image-up-BbB-kmNq.js +0 -6
- langflow/frontend/assets/image-upscale-BuO3Qya1.js +0 -6
- langflow/frontend/assets/images-BiSj3APX.js +0 -6
- langflow/frontend/assets/import-B-7G1Qt_.js +0 -6
- langflow/frontend/assets/inbox-Cyq4vqkn.js +0 -6
- langflow/frontend/assets/indent-decrease-DEXPKrbt.js +0 -6
- langflow/frontend/assets/indent-increase-2G5O9EIn.js +0 -6
- langflow/frontend/assets/index-0FVhSSXv.js +0 -205
- langflow/frontend/assets/index-3TrwYqia.js +0 -1
- langflow/frontend/assets/index-4tJA7_nN.js +0 -1
- langflow/frontend/assets/index-6z0Nqvyk.js +0 -1
- langflow/frontend/assets/index-B-wbXhJt.js +0 -1
- langflow/frontend/assets/index-B-zoVY6N.js +0 -1
- langflow/frontend/assets/index-B0_6chj_.js +0 -1
- langflow/frontend/assets/index-B0a_OwEU.js +0 -1
- langflow/frontend/assets/index-B2m30Cet.js +0 -1
- langflow/frontend/assets/index-B3onOnMw.js +0 -1
- langflow/frontend/assets/index-B7uNcRJ1.js +0 -1
- langflow/frontend/assets/index-B90nnG-X.js +0 -1
- langflow/frontend/assets/index-BBHMmEw_.js +0 -1
- langflow/frontend/assets/index-BB_YHLpx.js +0 -1
- langflow/frontend/assets/index-BDj-iXXL.js +0 -1
- langflow/frontend/assets/index-BE8UJPuj.js +0 -1
- langflow/frontend/assets/index-BF_6Sfpu.js +0 -1
- langflow/frontend/assets/index-BImV1khi.js +0 -495
- langflow/frontend/assets/index-BK82cETY.js +0 -1
- langflow/frontend/assets/index-BMIxHQqW.js +0 -1
- langflow/frontend/assets/index-BPfryKGe.js +0 -1
- langflow/frontend/assets/index-BPoWJLjN.js +0 -14
- langflow/frontend/assets/index-BPy7LexL.js +0 -1
- langflow/frontend/assets/index-BUHeDdFy.js +0 -1
- langflow/frontend/assets/index-BUb0b7ZX.js +0 -1
- langflow/frontend/assets/index-BUbZZukK.js +0 -1
- langflow/frontend/assets/index-BV5J-v-J.js +0 -399
- langflow/frontend/assets/index-BWd0ZN4Z.js +0 -1
- langflow/frontend/assets/index-BYochfm8.js +0 -1
- langflow/frontend/assets/index-BZ-7dQnL.js +0 -1
- langflow/frontend/assets/index-BZmREVHV.js +0 -1
- langflow/frontend/assets/index-B_8ZL5Hy.js +0 -1
- langflow/frontend/assets/index-B_MVKVuF.js +0 -1
- langflow/frontend/assets/index-Ba1bU4sM.js +0 -1
- langflow/frontend/assets/index-Ba7-7Y4d.js +0 -1
- langflow/frontend/assets/index-Bc3VsIgk.js +0 -1
- langflow/frontend/assets/index-BjqgdepV.js +0 -1
- langflow/frontend/assets/index-BkuIpYm8.js +0 -1
- langflow/frontend/assets/index-BlSzfje3.js +0 -1
- langflow/frontend/assets/index-Bmg2KVh7.js +0 -21
- langflow/frontend/assets/index-Bn0-oJDX.js +0 -1
- langflow/frontend/assets/index-Bnz4XJLx.js +0 -1
- langflow/frontend/assets/index-BqyyhVGV.js +0 -1
- langflow/frontend/assets/index-BrBvpJOO.js +0 -20
- langflow/frontend/assets/index-BrGwyEoL.js +0 -1
- langflow/frontend/assets/index-Brdx25QD.js +0 -1
- langflow/frontend/assets/index-Bs0eD38T.js +0 -1
- langflow/frontend/assets/index-BsIUtXG7.js +0 -1
- langflow/frontend/assets/index-Bv9WeVXs.js +0 -1
- langflow/frontend/assets/index-BxpvIsii.js +0 -1
- langflow/frontend/assets/index-BzTe6EYl.js +0 -1
- langflow/frontend/assets/index-C5vI_DSn.js +0 -1
- langflow/frontend/assets/index-C7DBsE76.js +0 -1
- langflow/frontend/assets/index-C7xEabxZ.js +0 -1
- langflow/frontend/assets/index-C8SBiyP0.js +0 -1
- langflow/frontend/assets/index-C9C4YVFL.js +0 -1
- langflow/frontend/assets/index-CAM7421R.js +0 -1
- langflow/frontend/assets/index-CAx53syk.js +0 -1
- langflow/frontend/assets/index-CBVLw8FA.js +0 -1
- langflow/frontend/assets/index-CC6ON7Xj.js +0 -1
- langflow/frontend/assets/index-CCCVPbc3.js +0 -1
- langflow/frontend/assets/index-CDDB9iyu.js +0 -1
- langflow/frontend/assets/index-CH-Nr_Xj.js +0 -127
- langflow/frontend/assets/index-CH3Fbxcb.js +0 -1
- langflow/frontend/assets/index-CH4A6lMb.js +0 -1
- langflow/frontend/assets/index-CI2V4Zfj.js +0 -1
- langflow/frontend/assets/index-CJ8Nr12j.js +0 -1
- langflow/frontend/assets/index-CKbYBqDg.js +0 -1
- langflow/frontend/assets/index-CKpYWc8V.js +0 -1
- langflow/frontend/assets/index-CNVTXezp.js +0 -1
- langflow/frontend/assets/index-COBP87dd.js +0 -7
- langflow/frontend/assets/index-CQ8v6mfY.js +0 -1
- langflow/frontend/assets/index-CQL2k-_E.js +0 -1
- langflow/frontend/assets/index-CQuU9_fh.js +0 -1
- langflow/frontend/assets/index-CTEuNhFa.js +0 -7323
- langflow/frontend/assets/index-CULqnlGT.js +0 -1
- langflow/frontend/assets/index-CVMEQfzA.js +0 -1
- langflow/frontend/assets/index-CVR_do-o.js +0 -1
- langflow/frontend/assets/index-CWSXsDGU.js +0 -1
- langflow/frontend/assets/index-CX-PfSVM.js +0 -1
- langflow/frontend/assets/index-CZ8tibho.js +0 -1
- langflow/frontend/assets/index-CZTlbmew.js +0 -1
- langflow/frontend/assets/index-C_ShAAtC.js +0 -1
- langflow/frontend/assets/index-Cc2rBMbl.js +0 -1
- langflow/frontend/assets/index-CcSLA83H.js +0 -1
- langflow/frontend/assets/index-CdtkkJBK.js +0 -1
- langflow/frontend/assets/index-CgpTeXS9.js +0 -1
- langflow/frontend/assets/index-ChynGSoW.js +0 -1
- langflow/frontend/assets/index-Cj4zskyc.js +0 -1
- langflow/frontend/assets/index-Cn-Pe2iI.js +0 -1
- langflow/frontend/assets/index-CnH1bLaj.js +0 -1
- langflow/frontend/assets/index-CnZk24hL.js +0 -1
- langflow/frontend/assets/index-Cq4kSK7t.js +0 -1
- langflow/frontend/assets/index-CqlUxg9E.js +0 -1
- langflow/frontend/assets/index-Cr_BpdBW.js +0 -1
- langflow/frontend/assets/index-CriFKi76.js +0 -1
- langflow/frontend/assets/index-CsaGD2DA.js +0 -1
- langflow/frontend/assets/index-CsuUoVB-.js +0 -1
- langflow/frontend/assets/index-CuUVncgq.js +0 -1
- langflow/frontend/assets/index-CvbYiTWN.js +0 -1
- langflow/frontend/assets/index-CyxvoQUw.js +0 -1
- langflow/frontend/assets/index-D-x1xRrh.js +0 -1
- langflow/frontend/assets/index-D0uzI1O9.js +0 -1
- langflow/frontend/assets/index-D19iHHLJ.js +0 -1
- langflow/frontend/assets/index-D4p1ZLVX.js +0 -1
- langflow/frontend/assets/index-D6dQ6puQ.js +0 -1
- langflow/frontend/assets/index-D7EzEbxj.js +0 -1
- langflow/frontend/assets/index-D7JcUIGR.js +0 -1
- langflow/frontend/assets/index-D854M0_Y.js +0 -1
- langflow/frontend/assets/index-D88_YaoZ.js +0 -1
- langflow/frontend/assets/index-DBf8ynaZ.js +0 -1
- langflow/frontend/assets/index-DBpyCJ7o.js +0 -1
- langflow/frontend/assets/index-DEOJMf2K.js +0 -1
- langflow/frontend/assets/index-DEXnLTMJ.js +0 -1
- langflow/frontend/assets/index-DJuq831c.js +0 -1
- langflow/frontend/assets/index-DOZ-8rBU.js +0 -1
- langflow/frontend/assets/index-DOwyim5c.js +0 -2
- langflow/frontend/assets/index-DPndDoCo.js +0 -1
- langflow/frontend/assets/index-DRZjpDlS.js +0 -767
- langflow/frontend/assets/index-DTryTo6Q.js +0 -1
- langflow/frontend/assets/index-DTwufW2W.js +0 -1
- langflow/frontend/assets/index-DVEX_HvJ.js +0 -1
- langflow/frontend/assets/index-DWNBIxSU.js +0 -1
- langflow/frontend/assets/index-DWkXX_YH.js +0 -1
- langflow/frontend/assets/index-DWzy33dX.js +0 -1
- langflow/frontend/assets/index-DZ8wwkX-.js +0 -1
- langflow/frontend/assets/index-DZK5BZ9V.js +0 -1
- langflow/frontend/assets/index-Da-5C6pQ.js +0 -1
- langflow/frontend/assets/index-DaRoQgoQ.js +0 -1
- langflow/frontend/assets/index-DdohG-Qv.js +0 -1
- langflow/frontend/assets/index-DfIZo4rh.js +0 -1
- langflow/frontend/assets/index-DguSSpbV.js +0 -381
- langflow/frontend/assets/index-DhLLSj_s.js +0 -1
- langflow/frontend/assets/index-DkxRkOAO.js +0 -13
- langflow/frontend/assets/index-DlcXxKOf.js +0 -1
- langflow/frontend/assets/index-Dn7Bu2s3.js +0 -1
- langflow/frontend/assets/index-DqytFMQU.js +0 -1
- langflow/frontend/assets/index-DsWxDyLL.js +0 -1
- langflow/frontend/assets/index-DucJAaGN.js +0 -1
- langflow/frontend/assets/index-Duvn0GMv.js +0 -1
- langflow/frontend/assets/index-Dv-O2BNC.js +0 -1
- langflow/frontend/assets/index-DvD84j3j.js +0 -1
- langflow/frontend/assets/index-DwyTXOJO.js +0 -108
- langflow/frontend/assets/index-DyBgwwg4.js +0 -1
- langflow/frontend/assets/index-Dydanyt3.js +0 -1
- langflow/frontend/assets/index-DyfrLdCx.js +0 -1
- langflow/frontend/assets/index-FxcnBKx3.js +0 -1
- langflow/frontend/assets/index-H4l1i6Hf.js +0 -1
- langflow/frontend/assets/index-HvwWx3rB.js +0 -1
- langflow/frontend/assets/index-IHc6vxe5.js +0 -1
- langflow/frontend/assets/index-JPA_hYSx.js +0 -1
- langflow/frontend/assets/index-LeTXg6wZ.js +0 -1
- langflow/frontend/assets/index-NQqBMCDr.js +0 -1
- langflow/frontend/assets/index-OL9tpD8A.js +0 -1
- langflow/frontend/assets/index-Ow6054nJ.js +0 -1
- langflow/frontend/assets/index-Pla3pGip.js +0 -1
- langflow/frontend/assets/index-TLARXkF8.js +0 -1
- langflow/frontend/assets/index-TgoV8nd0.js +0 -1
- langflow/frontend/assets/index-UehLlmiN.js +0 -1
- langflow/frontend/assets/index-VPb5Shjk.js +0 -1
- langflow/frontend/assets/index-VmuECpu0.js +0 -1
- langflow/frontend/assets/index-XXuNHAdJ.js +0 -1
- langflow/frontend/assets/index-ZTgKVccl.js +0 -1
- langflow/frontend/assets/index-bbTYAs6U.js +0 -1
- langflow/frontend/assets/index-fcx9Ylo7.js +0 -1
- langflow/frontend/assets/index-fmLYhkZ4.js +0 -1
- langflow/frontend/assets/index-gew3mVjB.js +0 -1
- langflow/frontend/assets/index-gkeXAmfA.js +0 -1
- langflow/frontend/assets/index-gsd0bDLj.js +0 -1
- langflow/frontend/assets/index-h1HAJ9a1.js +0 -1
- langflow/frontend/assets/index-icvJtI-t.js +0 -1
- langflow/frontend/assets/index-ie1u1Rqn.js +0 -1
- langflow/frontend/assets/index-is2u2Wgo.js +0 -1
- langflow/frontend/assets/index-jBXwIfZq.js +0 -1
- langflow/frontend/assets/index-lKCW6ily.js +0 -1
- langflow/frontend/assets/index-lUnzlObc.js +0 -281
- langflow/frontend/assets/index-lqCXugWU.js +0 -1
- langflow/frontend/assets/index-m0YGyHmR.js +0 -1
- langflow/frontend/assets/index-nXK9OaaZ.js +0 -1
- langflow/frontend/assets/index-nj_JyHAD.js +0 -1
- langflow/frontend/assets/index-oMJGhkku.js +0 -185
- langflow/frontend/assets/index-p-PXl1xt.js +0 -1
- langflow/frontend/assets/index-sz-M1vIJ.js +0 -1
- langflow/frontend/assets/index-tukYrrXk.js +0 -1
- langflow/frontend/assets/index-vUHuwGVZ.js +0 -1
- langflow/frontend/assets/indian-rupee-O9CajFfS.js +0 -6
- langflow/frontend/assets/infinity-BLkxpdqX.js +0 -6
- langflow/frontend/assets/info-CRQ-dTnF.js +0 -6
- langflow/frontend/assets/inspection-panel-DyJB7Wom.js +0 -6
- langflow/frontend/assets/instagram-DZaH_wEg.js +0 -6
- langflow/frontend/assets/italic-BLBM0ICf.js +0 -6
- langflow/frontend/assets/iteration-ccw-Ctc5cT_j.js +0 -6
- langflow/frontend/assets/iteration-cw-D3WN-p9y.js +0 -6
- langflow/frontend/assets/japanese-yen-BaNr_JXN.js +0 -6
- langflow/frontend/assets/joystick-Dd6AOiiS.js +0 -6
- langflow/frontend/assets/kanban-BtZegnlG.js +0 -6
- langflow/frontend/assets/key-round-D_3Woi3H.js +0 -6
- langflow/frontend/assets/key-square-DRvn_Fhv.js +0 -6
- langflow/frontend/assets/key-zFF66mCi.js +0 -6
- langflow/frontend/assets/keyboard-B0SoxtCN.js +0 -6
- langflow/frontend/assets/keyboard-music-DG_C2eKO.js +0 -6
- langflow/frontend/assets/keyboard-off-D7BZV1cQ.js +0 -6
- langflow/frontend/assets/lamp-Cp1EqzWW.js +0 -6
- langflow/frontend/assets/lamp-ceiling-Cr08nNTI.js +0 -6
- langflow/frontend/assets/lamp-desk-DvViVB0_.js +0 -6
- langflow/frontend/assets/lamp-floor-Cp21ki8G.js +0 -6
- langflow/frontend/assets/lamp-wall-down-DvS5L49E.js +0 -6
- langflow/frontend/assets/lamp-wall-up-O77RoPL-.js +0 -6
- langflow/frontend/assets/land-plot-D3xUsCYa.js +0 -6
- langflow/frontend/assets/landmark-2eY-OvMd.js +0 -6
- langflow/frontend/assets/languages-BdVhV2IM.js +0 -6
- langflow/frontend/assets/laptop-C2VZUCQD.js +0 -6
- langflow/frontend/assets/laptop-minimal-BJmhaeC9.js +0 -6
- langflow/frontend/assets/laptop-minimal-check-DrO5ess9.js +0 -6
- langflow/frontend/assets/lasso-DNQGgH84.js +0 -6
- langflow/frontend/assets/lasso-select-BbdGmThB.js +0 -6
- langflow/frontend/assets/laugh-CuitpOqG.js +0 -6
- langflow/frontend/assets/layers-2-FPRQxAFw.js +0 -6
- langflow/frontend/assets/layers-DRi3jFWj.js +0 -6
- langflow/frontend/assets/layout-dashboard-BF0un9K1.js +0 -6
- langflow/frontend/assets/layout-grid-CYofp62a.js +0 -6
- langflow/frontend/assets/layout-list-q7uJyOgL.js +0 -6
- langflow/frontend/assets/layout-panel-left-By0304sR.js +0 -6
- langflow/frontend/assets/layout-panel-top-7c11t79V.js +0 -6
- langflow/frontend/assets/layout-template-DlHlYFx3.js +0 -6
- langflow/frontend/assets/lazyIconImports-Cpou1J0T.js +0 -2
- langflow/frontend/assets/leaf-BNWCDP1g.js +0 -6
- langflow/frontend/assets/leafy-green-DHk3mPVC.js +0 -6
- langflow/frontend/assets/lectern-DEclGS1a.js +0 -6
- langflow/frontend/assets/letter-text-CzMFT0LY.js +0 -6
- langflow/frontend/assets/library-big-v4lQ02Zc.js +0 -6
- langflow/frontend/assets/library-bqq5Rhw3.js +0 -6
- langflow/frontend/assets/life-buoy-BQVxU42T.js +0 -6
- langflow/frontend/assets/ligature-CiYMF-Zl.js +0 -6
- langflow/frontend/assets/lightbulb-C1uLV46z.js +0 -6
- langflow/frontend/assets/lightbulb-off-CC_iPnyx.js +0 -6
- langflow/frontend/assets/link-2-C82GqZ-C.js +0 -6
- langflow/frontend/assets/link-2-off-BgWfumJo.js +0 -6
- langflow/frontend/assets/link-DTylDZ0C.js +0 -6
- langflow/frontend/assets/linkedin-CpAifWSc.js +0 -6
- langflow/frontend/assets/list-Bsm1c838.js +0 -6
- langflow/frontend/assets/list-check-DkFVgmbv.js +0 -6
- langflow/frontend/assets/list-checks-CH8lwwUg.js +0 -6
- langflow/frontend/assets/list-collapse-D2zPQK9o.js +0 -6
- langflow/frontend/assets/list-end-BlRzFD6x.js +0 -6
- langflow/frontend/assets/list-filter-DOGy2z29.js +0 -6
- langflow/frontend/assets/list-filter-plus-DCVg8G43.js +0 -6
- langflow/frontend/assets/list-minus-BIgBUelo.js +0 -6
- langflow/frontend/assets/list-music-dBn-4Mm8.js +0 -6
- langflow/frontend/assets/list-ordered-DrUsxiSC.js +0 -6
- langflow/frontend/assets/list-plus-B921qzMz.js +0 -6
- langflow/frontend/assets/list-restart-DZP10dFa.js +0 -6
- langflow/frontend/assets/list-start-Dq6SleaQ.js +0 -6
- langflow/frontend/assets/list-todo-DoArrowv.js +0 -6
- langflow/frontend/assets/list-tree-BteVOs83.js +0 -6
- langflow/frontend/assets/list-video-DOUMNcqp.js +0 -6
- langflow/frontend/assets/list-x-Cn7qooKc.js +0 -6
- langflow/frontend/assets/loader-CLSGXN2K.js +0 -6
- langflow/frontend/assets/loader-circle-CbBtPl5L.js +0 -6
- langflow/frontend/assets/loader-pinwheel-DGQQ3P0g.js +0 -6
- langflow/frontend/assets/locate-BIDQI7kl.js +0 -6
- langflow/frontend/assets/locate-fixed-1ZjWxarq.js +0 -6
- langflow/frontend/assets/locate-off-f5erpF72.js +0 -6
- langflow/frontend/assets/location-edit-B4sHedB_.js +0 -6
- langflow/frontend/assets/lock-kHFfo1hu.js +0 -6
- langflow/frontend/assets/lock-keyhole-B-CuQgk8.js +0 -6
- langflow/frontend/assets/lock-keyhole-open-D4j7TAAJ.js +0 -6
- langflow/frontend/assets/lock-open-Dcu-zpze.js +0 -6
- langflow/frontend/assets/log-in-_KHOd-3D.js +0 -6
- langflow/frontend/assets/log-out-Xkeby2sI.js +0 -6
- langflow/frontend/assets/logs-CtG2TZ4x.js +0 -6
- langflow/frontend/assets/lollipop-Cew1zdny.js +0 -6
- langflow/frontend/assets/luggage-R4ZGQqSn.js +0 -6
- langflow/frontend/assets/magnet-DOeB4KDt.js +0 -6
- langflow/frontend/assets/mail-Dgs-CcLl.js +0 -6
- langflow/frontend/assets/mail-check-BAqb6yI8.js +0 -6
- langflow/frontend/assets/mail-minus-D1XUAODi.js +0 -6
- langflow/frontend/assets/mail-open-C2DJBolg.js +0 -6
- langflow/frontend/assets/mail-plus-Bl8r6je6.js +0 -6
- langflow/frontend/assets/mail-question-B5s6mxi8.js +0 -6
- langflow/frontend/assets/mail-search--7gakGgL.js +0 -6
- langflow/frontend/assets/mail-warning-Ch0V9e_Z.js +0 -6
- langflow/frontend/assets/mail-x-Bwpl0eMc.js +0 -6
- langflow/frontend/assets/mailbox-nJIr9W2E.js +0 -6
- langflow/frontend/assets/mails-81iqcapA.js +0 -6
- langflow/frontend/assets/map-CQftFnvl.js +0 -6
- langflow/frontend/assets/map-pin-CUOp900Y.js +0 -6
- langflow/frontend/assets/map-pin-check-DbqWv8NL.js +0 -6
- langflow/frontend/assets/map-pin-check-inside-CWLZqSnt.js +0 -6
- langflow/frontend/assets/map-pin-house-CO861FH0.js +0 -6
- langflow/frontend/assets/map-pin-minus-B2S150yc.js +0 -6
- langflow/frontend/assets/map-pin-minus-inside-DwS78c7Y.js +0 -6
- langflow/frontend/assets/map-pin-off-CA45Pbr2.js +0 -6
- langflow/frontend/assets/map-pin-plus-C3DW3yiK.js +0 -6
- langflow/frontend/assets/map-pin-plus-inside-CEyg5KWT.js +0 -6
- langflow/frontend/assets/map-pin-x-inside-DlbdMlF9.js +0 -6
- langflow/frontend/assets/map-pin-x-tCZ255vf.js +0 -6
- langflow/frontend/assets/map-pinned-U7TH5B5a.js +0 -6
- langflow/frontend/assets/map-plus-DxkNK7O-.js +0 -6
- langflow/frontend/assets/mars-Bq6dxU-a.js +0 -6
- langflow/frontend/assets/mars-stroke-CFm76TLb.js +0 -6
- langflow/frontend/assets/martini-Dw6KBRgP.js +0 -6
- langflow/frontend/assets/maximize-2-BNKFwRHb.js +0 -6
- langflow/frontend/assets/maximize-D3-JEsfX.js +0 -6
- langflow/frontend/assets/medal-CauenFs4.js +0 -6
- langflow/frontend/assets/megaphone-D7kmzfRC.js +0 -6
- langflow/frontend/assets/megaphone-off-Cn6Jo5m8.js +0 -6
- langflow/frontend/assets/meh-z760gabb.js +0 -6
- langflow/frontend/assets/memory-stick-KRxB_2jP.js +0 -6
- langflow/frontend/assets/menu-uOGZG3qo.js +0 -6
- langflow/frontend/assets/merge-DnDGlkVl.js +0 -6
- langflow/frontend/assets/message-circle-BkFBLmV0.js +0 -6
- langflow/frontend/assets/message-circle-code-twRgt9ie.js +0 -6
- langflow/frontend/assets/message-circle-dashed-CIdxrnDM.js +0 -6
- langflow/frontend/assets/message-circle-heart-DMonDpvo.js +0 -6
- langflow/frontend/assets/message-circle-more-BJbPTNX8.js +0 -6
- langflow/frontend/assets/message-circle-off-DPHNReWf.js +0 -6
- langflow/frontend/assets/message-circle-plus-T93DQ6jO.js +0 -6
- langflow/frontend/assets/message-circle-question-Cxt-C85V.js +0 -6
- langflow/frontend/assets/message-circle-reply-BglI2Pvs.js +0 -6
- langflow/frontend/assets/message-circle-warning-D6CQM6xv.js +0 -6
- langflow/frontend/assets/message-circle-x-CIPC25Ab.js +0 -6
- langflow/frontend/assets/message-square-BFwyyBT7.js +0 -6
- langflow/frontend/assets/message-square-code-CyTY-CB1.js +0 -6
- langflow/frontend/assets/message-square-dashed-CRkRfB3s.js +0 -6
- langflow/frontend/assets/message-square-diff-CzoRjWTT.js +0 -6
- langflow/frontend/assets/message-square-dot-DCjfEv6u.js +0 -6
- langflow/frontend/assets/message-square-heart-LG_8nM-J.js +0 -6
- langflow/frontend/assets/message-square-lock-B5TelWyj.js +0 -6
- langflow/frontend/assets/message-square-more-oHlvSOaG.js +0 -6
- langflow/frontend/assets/message-square-off-J3wAR8jK.js +0 -6
- langflow/frontend/assets/message-square-plus-Bw2mX7ri.js +0 -6
- langflow/frontend/assets/message-square-quote-CjQ-xjIp.js +0 -6
- langflow/frontend/assets/message-square-reply-tOnN3-5u.js +0 -6
- langflow/frontend/assets/message-square-share-BbLmn1G2.js +0 -6
- langflow/frontend/assets/message-square-text-CRVWb6Cp.js +0 -6
- langflow/frontend/assets/message-square-warning-BY120G5T.js +0 -6
- langflow/frontend/assets/message-square-x-BgfkluvH.js +0 -6
- langflow/frontend/assets/messages-square-1baSsz7J.js +0 -6
- langflow/frontend/assets/mic-CoMOmSwJ.js +0 -6
- langflow/frontend/assets/mic-off-uugKWxAQ.js +0 -6
- langflow/frontend/assets/mic-vocal-Ph31ypWV.js +0 -6
- langflow/frontend/assets/microchip-oIIqhc8B.js +0 -6
- langflow/frontend/assets/microscope-JviZz8EH.js +0 -6
- langflow/frontend/assets/microwave-Cb3tDfts.js +0 -6
- langflow/frontend/assets/milestone-we_zJhAj.js +0 -6
- langflow/frontend/assets/milk-Ds1WWU0k.js +0 -6
- langflow/frontend/assets/milk-off-DtKFexun.js +0 -6
- langflow/frontend/assets/minimize-2-46WSe-cS.js +0 -6
- langflow/frontend/assets/minimize-D471s40a.js +0 -6
- langflow/frontend/assets/monitor-COKxc0gv.js +0 -6
- langflow/frontend/assets/monitor-check-CFfe6oBS.js +0 -6
- langflow/frontend/assets/monitor-cog-CbgXTZuH.js +0 -6
- langflow/frontend/assets/monitor-dot-BdxxgiXD.js +0 -6
- langflow/frontend/assets/monitor-down-D9dqmgVG.js +0 -6
- langflow/frontend/assets/monitor-off-D-j26EZz.js +0 -6
- langflow/frontend/assets/monitor-pause-DfY_CimT.js +0 -6
- langflow/frontend/assets/monitor-play-D0VrVyw8.js +0 -6
- langflow/frontend/assets/monitor-smartphone-xsPkq7Af.js +0 -6
- langflow/frontend/assets/monitor-speaker-D1PpHMvJ.js +0 -6
- langflow/frontend/assets/monitor-stop-DuqxZnXB.js +0 -6
- langflow/frontend/assets/monitor-up-CSDmyc7t.js +0 -6
- langflow/frontend/assets/monitor-x-CcqgnK5f.js +0 -6
- langflow/frontend/assets/moon-Bc-GKFwT.js +0 -6
- langflow/frontend/assets/moon-star-De8EJ5ST.js +0 -6
- langflow/frontend/assets/mountain-Byfyw1_1.js +0 -6
- langflow/frontend/assets/mountain-snow-BozktKiw.js +0 -6
- langflow/frontend/assets/mouse-CnXbNZkF.js +0 -6
- langflow/frontend/assets/mouse-off-A9CV8v3e.js +0 -6
- langflow/frontend/assets/mouse-pointer-2-E2-CAYli.js +0 -6
- langflow/frontend/assets/mouse-pointer-D5ZpyXuu.js +0 -6
- langflow/frontend/assets/mouse-pointer-ban-KvFuo6C0.js +0 -6
- langflow/frontend/assets/mouse-pointer-click-D0oVH4nj.js +0 -6
- langflow/frontend/assets/move-3d-Dlna4k5m.js +0 -6
- langflow/frontend/assets/move-CicozcKz.js +0 -6
- langflow/frontend/assets/move-diagonal-2-1PxjsAeb.js +0 -6
- langflow/frontend/assets/move-diagonal-Bx7dX_j4.js +0 -6
- langflow/frontend/assets/move-down-D7YAMc7C.js +0 -6
- langflow/frontend/assets/move-down-left-DaCZ2XB7.js +0 -6
- langflow/frontend/assets/move-down-right-DgHZPcFQ.js +0 -6
- langflow/frontend/assets/move-horizontal-DdYIl4gV.js +0 -6
- langflow/frontend/assets/move-left-BqDYPNUw.js +0 -6
- langflow/frontend/assets/move-right-BLoOZHiE.js +0 -6
- langflow/frontend/assets/move-up-OPhbOP5P.js +0 -6
- langflow/frontend/assets/move-up-left-DfiRDuVI.js +0 -6
- langflow/frontend/assets/move-up-right-B8ZRd_FM.js +0 -6
- langflow/frontend/assets/move-vertical-owBNq-3q.js +0 -6
- langflow/frontend/assets/music-2-BSl2xmrB.js +0 -6
- langflow/frontend/assets/music-3-DcbdkGD7.js +0 -6
- langflow/frontend/assets/music-4-DQ_duFrH.js +0 -6
- langflow/frontend/assets/music-CdWslsrh.js +0 -6
- langflow/frontend/assets/navigation-2-off-kipqIC6c.js +0 -6
- langflow/frontend/assets/navigation-2-ou3_uwx_.js +0 -6
- langflow/frontend/assets/navigation-BGorI29_.js +0 -6
- langflow/frontend/assets/navigation-off-DiKBigUx.js +0 -6
- langflow/frontend/assets/network-B1zlCNCH.js +0 -6
- langflow/frontend/assets/newspaper-ZJkvUiGT.js +0 -6
- langflow/frontend/assets/nfc-ki1E6Wu_.js +0 -6
- langflow/frontend/assets/non-binary-Dw7g8ADa.js +0 -6
- langflow/frontend/assets/notebook-MGg1DFzz.js +0 -6
- langflow/frontend/assets/notebook-pen-Dn8gfd1n.js +0 -6
- langflow/frontend/assets/notebook-tabs-QnBSJLEd.js +0 -6
- langflow/frontend/assets/notebook-text-B7IuR6_c.js +0 -6
- langflow/frontend/assets/notepad-text-CckGiO6e.js +0 -6
- langflow/frontend/assets/notepad-text-dashed-KkN3Nakr.js +0 -6
- langflow/frontend/assets/nut-BXPbojDE.js +0 -6
- langflow/frontend/assets/nut-off-DZTCqi0s.js +0 -6
- langflow/frontend/assets/octagon-Up0Wyg0P.js +0 -6
- langflow/frontend/assets/octagon-alert-CKuEnfc8.js +0 -6
- langflow/frontend/assets/octagon-minus-COG8HpgJ.js +0 -6
- langflow/frontend/assets/octagon-pause-BsYhHQXx.js +0 -6
- langflow/frontend/assets/octagon-x-ChDFRb7_.js +0 -6
- langflow/frontend/assets/omega-DbnL9sfu.js +0 -6
- langflow/frontend/assets/option-BU0sXztM.js +0 -6
- langflow/frontend/assets/orbit-DA7LIi2l.js +0 -6
- langflow/frontend/assets/origami-3Mw-nuYZ.js +0 -6
- langflow/frontend/assets/package-2-D3YZn55Y.js +0 -6
- langflow/frontend/assets/package-DIxU8-mn.js +0 -6
- langflow/frontend/assets/package-check-COtMqIfA.js +0 -6
- langflow/frontend/assets/package-minus-DZANe_7p.js +0 -6
- langflow/frontend/assets/package-open-D7XrIaw9.js +0 -6
- langflow/frontend/assets/package-plus-CcvN7-U9.js +0 -6
- langflow/frontend/assets/package-search-ChoPdke-.js +0 -6
- langflow/frontend/assets/package-x-D16htF83.js +0 -6
- langflow/frontend/assets/paint-bucket-Cg95GQJg.js +0 -6
- langflow/frontend/assets/paint-roller-B9StqV_J.js +0 -6
- langflow/frontend/assets/paintbrush-Dqhtnpuw.js +0 -6
- langflow/frontend/assets/paintbrush-vertical-DNx8M5S3.js +0 -6
- langflow/frontend/assets/palette-ml0w3t49.js +0 -6
- langflow/frontend/assets/panel-bottom-B4Fc3TY7.js +0 -6
- langflow/frontend/assets/panel-bottom-close-BObhTb0s.js +0 -6
- langflow/frontend/assets/panel-bottom-dashed-gIsS9Hjf.js +0 -6
- langflow/frontend/assets/panel-bottom-open-DEOCcwzh.js +0 -6
- langflow/frontend/assets/panel-left-close-Dx5cCbL_.js +0 -6
- langflow/frontend/assets/panel-left-dashed-BcTUvq4P.js +0 -6
- langflow/frontend/assets/panel-left-open-CBaufHFE.js +0 -6
- langflow/frontend/assets/panel-right-DukXmi7_.js +0 -6
- langflow/frontend/assets/panel-right-close-BR1KtkeR.js +0 -6
- langflow/frontend/assets/panel-right-dashed-BgYuwA98.js +0 -6
- langflow/frontend/assets/panel-right-open-CDp7CHNs.js +0 -6
- langflow/frontend/assets/panel-top-CggW0ygS.js +0 -6
- langflow/frontend/assets/panel-top-close-CX83WQ0J.js +0 -6
- langflow/frontend/assets/panel-top-dashed-DjWcxIEH.js +0 -6
- langflow/frontend/assets/panel-top-open-5FBkjYnT.js +0 -6
- langflow/frontend/assets/panels-left-bottom-Dd5Uhjjk.js +0 -6
- langflow/frontend/assets/panels-right-bottom-D1VAC8Ws.js +0 -6
- langflow/frontend/assets/panels-top-left-DxWEvl8n.js +0 -6
- langflow/frontend/assets/paperclip-B0E4rvBS.js +0 -6
- langflow/frontend/assets/parentheses-GRd4nHRu.js +0 -6
- langflow/frontend/assets/parking-meter-B2lHw4LQ.js +0 -6
- langflow/frontend/assets/party-popper-BK2qV8eJ.js +0 -6
- langflow/frontend/assets/pause-K2jMW6A9.js +0 -6
- langflow/frontend/assets/paw-print-BGG82aAa.js +0 -6
- langflow/frontend/assets/pc-case-CzNSMaLT.js +0 -6
- langflow/frontend/assets/pen-BlTvvvRX.js +0 -6
- langflow/frontend/assets/pen-line-4xoIubOi.js +0 -6
- langflow/frontend/assets/pen-off-Bag43XIY.js +0 -6
- langflow/frontend/assets/pen-tool-vNJyU9of.js +0 -6
- langflow/frontend/assets/pencil-DZKbwkbZ.js +0 -6
- langflow/frontend/assets/pencil-line-Nt_KP5Lc.js +0 -6
- langflow/frontend/assets/pencil-off-CuDqMcng.js +0 -6
- langflow/frontend/assets/pencil-ruler-CImuuOx_.js +0 -6
- langflow/frontend/assets/pentagon-D-CZ45sZ.js +0 -6
- langflow/frontend/assets/percent-BjcnLxmM.js +0 -6
- langflow/frontend/assets/person-standing-BhX3_FVx.js +0 -6
- langflow/frontend/assets/philippine-peso-BGPHMxW-.js +0 -6
- langflow/frontend/assets/phone-Drv1610G.js +0 -6
- langflow/frontend/assets/phone-call-hNCS3EAC.js +0 -6
- langflow/frontend/assets/phone-forwarded-DPwM5QWJ.js +0 -6
- langflow/frontend/assets/phone-incoming-J8Zk7Uaq.js +0 -6
- langflow/frontend/assets/phone-missed-Bwf0yKjB.js +0 -6
- langflow/frontend/assets/phone-off-BEPNB9YQ.js +0 -6
- langflow/frontend/assets/phone-outgoing-Dd67K4qS.js +0 -6
- langflow/frontend/assets/pi-5tYLsPYG.js +0 -6
- langflow/frontend/assets/piano-BYOW-jJM.js +0 -6
- langflow/frontend/assets/pickaxe-xg-dd9G0.js +0 -6
- langflow/frontend/assets/picture-in-picture-2-DYvd32Sb.js +0 -6
- langflow/frontend/assets/picture-in-picture-BuYYC7zv.js +0 -6
- langflow/frontend/assets/piggy-bank-DqrvEQ1U.js +0 -6
- langflow/frontend/assets/pilcrow-Cdy2DjQu.js +0 -6
- langflow/frontend/assets/pilcrow-left-B6Ln7oAk.js +0 -6
- langflow/frontend/assets/pilcrow-right-hGingT2I.js +0 -6
- langflow/frontend/assets/pill-bottle-viCjW_dN.js +0 -6
- langflow/frontend/assets/pill-rcos0Gwl.js +0 -6
- langflow/frontend/assets/pin-COe3feft.js +0 -6
- langflow/frontend/assets/pin-off-Cf8rmYhN.js +0 -6
- langflow/frontend/assets/pipette-BD8aK2nD.js +0 -6
- langflow/frontend/assets/pizza-ChtyZT0P.js +0 -6
- langflow/frontend/assets/plane-BU8RSOGd.js +0 -6
- langflow/frontend/assets/plane-landing-CRsPY9tD.js +0 -6
- langflow/frontend/assets/plane-takeoff-COtgWdSj.js +0 -6
- langflow/frontend/assets/play-cUXKlRp3.js +0 -6
- langflow/frontend/assets/plug-2-CB_Ge12h.js +0 -6
- langflow/frontend/assets/plug-D-vLfFIX.js +0 -6
- langflow/frontend/assets/plug-zap-DKQDHSqW.js +0 -6
- langflow/frontend/assets/pocket-CysXRFIR.js +0 -6
- langflow/frontend/assets/pocket-knife-C7_ru-LL.js +0 -6
- langflow/frontend/assets/podcast-DJ5XAYjJ.js +0 -6
- langflow/frontend/assets/pointer-BIiC-_d_.js +0 -6
- langflow/frontend/assets/pointer-off-BgLdCJv2.js +0 -6
- langflow/frontend/assets/popcorn-PPPqTD51.js +0 -6
- langflow/frontend/assets/popsicle-KkBxYpO_.js +0 -6
- langflow/frontend/assets/pound-sterling-D6auPFM-.js +0 -6
- langflow/frontend/assets/power-DAittmgO.js +0 -6
- langflow/frontend/assets/power-off-CtyC7qMY.js +0 -6
- langflow/frontend/assets/presentation-CrLBd5SY.js +0 -6
- langflow/frontend/assets/printer-D-4NfnGp.js +0 -6
- langflow/frontend/assets/printer-check-BrudpiyS.js +0 -6
- langflow/frontend/assets/projector-CcBr8mus.js +0 -6
- langflow/frontend/assets/proportions-CjtlThAF.js +0 -6
- langflow/frontend/assets/puzzle-GqbuqBoI.js +0 -6
- langflow/frontend/assets/pyramid-A25y0wHK.js +0 -6
- langflow/frontend/assets/qr-code-CnbB-HOQ.js +0 -6
- langflow/frontend/assets/quote-8bjDM3DM.js +0 -6
- langflow/frontend/assets/rabbit-tPoi1qgo.js +0 -6
- langflow/frontend/assets/radar-DOoH9E2V.js +0 -6
- langflow/frontend/assets/radiation-Cs_vGE-8.js +0 -6
- langflow/frontend/assets/radical-l5TAqT6I.js +0 -6
- langflow/frontend/assets/radio-CHhGcBW-.js +0 -6
- langflow/frontend/assets/radio-receiver-lgMwagtd.js +0 -6
- langflow/frontend/assets/radio-tower-C47hi01B.js +0 -6
- langflow/frontend/assets/radius-GYZZpbcU.js +0 -6
- langflow/frontend/assets/rail-symbol-BEfZfdfa.js +0 -6
- langflow/frontend/assets/rainbow-DYaGMx8X.js +0 -6
- langflow/frontend/assets/rat-C4oT7Esn.js +0 -6
- langflow/frontend/assets/ratio-DWlHZIKo.js +0 -6
- langflow/frontend/assets/receipt-BWUMmVQx.js +0 -6
- langflow/frontend/assets/receipt-cent-C-INmgac.js +0 -6
- langflow/frontend/assets/receipt-euro-BXEdpPTC.js +0 -6
- langflow/frontend/assets/receipt-indian-rupee-Ix3oSht2.js +0 -6
- langflow/frontend/assets/receipt-japanese-yen-CnXVdgfQ.js +0 -6
- langflow/frontend/assets/receipt-pound-sterling-ViZJJzIl.js +0 -6
- langflow/frontend/assets/receipt-russian-ruble-B2X6Y82i.js +0 -6
- langflow/frontend/assets/receipt-swiss-franc-CG7XQFnM.js +0 -6
- langflow/frontend/assets/receipt-text-BFuy4Mtu.js +0 -6
- langflow/frontend/assets/rectangle-ellipsis-C0oDiTNW.js +0 -6
- langflow/frontend/assets/rectangle-goggles-DnpXYzwI.js +0 -6
- langflow/frontend/assets/rectangle-horizontal-C0jnuJHd.js +0 -6
- langflow/frontend/assets/rectangle-vertical-DWRK77EG.js +0 -6
- langflow/frontend/assets/recycle-DkYy8axK.js +0 -6
- langflow/frontend/assets/redo-2-BTDxMgjZ.js +0 -6
- langflow/frontend/assets/redo-BPIpXxhh.js +0 -6
- langflow/frontend/assets/redo-dot-DRM6Krp1.js +0 -6
- langflow/frontend/assets/refresh-ccw-CjjAztF7.js +0 -6
- langflow/frontend/assets/refresh-ccw-dot-CGdyOFyk.js +0 -6
- langflow/frontend/assets/refresh-cw-CmT4eP1U.js +0 -6
- langflow/frontend/assets/refresh-cw-off-R7RGumwY.js +0 -6
- langflow/frontend/assets/refrigerator-Bt5nPIOc.js +0 -6
- langflow/frontend/assets/regex-DXPhd4TQ.js +0 -6
- langflow/frontend/assets/remove-formatting-DnOY_Y_8.js +0 -6
- langflow/frontend/assets/repeat-1-B_BYElvF.js +0 -6
- langflow/frontend/assets/repeat-2-nZrjtGL9.js +0 -6
- langflow/frontend/assets/repeat-D71ZgNJH.js +0 -6
- langflow/frontend/assets/replace-CgT3zPue.js +0 -6
- langflow/frontend/assets/replace-all-goYc_7ja.js +0 -6
- langflow/frontend/assets/reply-Bk1gbMw1.js +0 -6
- langflow/frontend/assets/reply-all-DMC60NG1.js +0 -6
- langflow/frontend/assets/rewind-IkM2mqXp.js +0 -6
- langflow/frontend/assets/ribbon-BDF2Glqb.js +0 -6
- langflow/frontend/assets/rocket-DlBDrD19.js +0 -6
- langflow/frontend/assets/rocking-chair-mRglbsWf.js +0 -6
- langflow/frontend/assets/roller-coaster-B9C8vO02.js +0 -6
- langflow/frontend/assets/rotate-3d-CILd3GEW.js +0 -6
- langflow/frontend/assets/rotate-ccw-DtqiMJ2f.js +0 -6
- langflow/frontend/assets/rotate-ccw-key-CO5xvtp-.js +0 -6
- langflow/frontend/assets/rotate-ccw-square-stD8hoL5.js +0 -6
- langflow/frontend/assets/rotate-cw-CYhRTfOC.js +0 -6
- langflow/frontend/assets/rotate-cw-square-mudZ7kJf.js +0 -6
- langflow/frontend/assets/route-off-7TpcpjRK.js +0 -6
- langflow/frontend/assets/route-u8D7bxc0.js +0 -6
- langflow/frontend/assets/router-2HYD_5_E.js +0 -6
- langflow/frontend/assets/rows-2-B1HQxy9j.js +0 -6
- langflow/frontend/assets/rows-3-CPRHRKwH.js +0 -6
- langflow/frontend/assets/rows-4-DQiWV0KJ.js +0 -6
- langflow/frontend/assets/rss-Cq8PJFPa.js +0 -6
- langflow/frontend/assets/ruler-Baha0aCS.js +0 -6
- langflow/frontend/assets/ruler-dimension-line-D45C7zen.js +0 -6
- langflow/frontend/assets/russian-ruble-CRQXgdXr.js +0 -6
- langflow/frontend/assets/sailboat-CN71MmOO.js +0 -6
- langflow/frontend/assets/salad-BEAkQZLI.js +0 -6
- langflow/frontend/assets/sandwich-8-bhD6Lv.js +0 -6
- langflow/frontend/assets/satellite-M4Xy05pu.js +0 -6
- langflow/frontend/assets/satellite-dish-B-J5yd_u.js +0 -6
- langflow/frontend/assets/saudi-riyal-CLyYhFH6.js +0 -6
- langflow/frontend/assets/save-Cmg4FIq7.js +0 -6
- langflow/frontend/assets/save-all-KbILrbmU.js +0 -6
- langflow/frontend/assets/save-off-C4bXdmgS.js +0 -6
- langflow/frontend/assets/scale-3d-CbIbjoQ3.js +0 -6
- langflow/frontend/assets/scale-C1sJwlRK.js +0 -6
- langflow/frontend/assets/scaling-CvKV2_IZ.js +0 -6
- langflow/frontend/assets/scan-BDEwQ7Qe.js +0 -6
- langflow/frontend/assets/scan-barcode-C2nTxAk4.js +0 -6
- langflow/frontend/assets/scan-eye-BjJwhbWs.js +0 -6
- langflow/frontend/assets/scan-face-D1YY5tPf.js +0 -6
- langflow/frontend/assets/scan-heart-C9pNOc3_.js +0 -6
- langflow/frontend/assets/scan-line-CKEFJJud.js +0 -6
- langflow/frontend/assets/scan-qr-code-ZpPxr-2R.js +0 -6
- langflow/frontend/assets/scan-search-D3cLXOQE.js +0 -6
- langflow/frontend/assets/scan-text-R4Bo1rkO.js +0 -6
- langflow/frontend/assets/school-DHnEwERf.js +0 -6
- langflow/frontend/assets/scissors-DJBNVPEd.js +0 -6
- langflow/frontend/assets/scissors-line-dashed-DtbVK4yt.js +0 -6
- langflow/frontend/assets/screen-share-DRhvEcLS.js +0 -6
- langflow/frontend/assets/screen-share-off-B2PVmcvE.js +0 -6
- langflow/frontend/assets/scroll-BU6XKFjb.js +0 -6
- langflow/frontend/assets/scroll-text-BpNlVscN.js +0 -6
- langflow/frontend/assets/search-check-D-fxBLS6.js +0 -6
- langflow/frontend/assets/search-code-BfV61dvt.js +0 -6
- langflow/frontend/assets/search-slash-Cjg39A6b.js +0 -6
- langflow/frontend/assets/search-x-CrFEhfc4.js +0 -6
- langflow/frontend/assets/section-Dyb7dEpB.js +0 -6
- langflow/frontend/assets/send-BllmTSMK.js +0 -6
- langflow/frontend/assets/send-horizontal-CCxFsK5t.js +0 -6
- langflow/frontend/assets/send-to-back-BZ-WqaQe.js +0 -6
- langflow/frontend/assets/separator-horizontal-CFhasEpa.js +0 -6
- langflow/frontend/assets/separator-vertical-CK1na9fJ.js +0 -6
- langflow/frontend/assets/server-VD2WErCz.js +0 -6
- langflow/frontend/assets/server-cog-qPLT2GIt.js +0 -6
- langflow/frontend/assets/server-crash-BpLIHREN.js +0 -6
- langflow/frontend/assets/server-off-D2t2Lhg-.js +0 -6
- langflow/frontend/assets/settings-2-CTcz7fll.js +0 -6
- langflow/frontend/assets/settings-DU7g50L9.js +0 -6
- langflow/frontend/assets/shapes-D_kEvZKl.js +0 -6
- langflow/frontend/assets/share-2-VJhfJKXF.js +0 -6
- langflow/frontend/assets/share-Dd3bqAM0.js +0 -6
- langflow/frontend/assets/sheet-CEvHadfJ.js +0 -6
- langflow/frontend/assets/shell-fHfvIDwC.js +0 -6
- langflow/frontend/assets/shield-VfPqlRRB.js +0 -6
- langflow/frontend/assets/shield-alert-BOj9J5zA.js +0 -6
- langflow/frontend/assets/shield-ban-Doa7ulWd.js +0 -6
- langflow/frontend/assets/shield-check-DAQ-z00W.js +0 -6
- langflow/frontend/assets/shield-ellipsis-CtmsinWw.js +0 -6
- langflow/frontend/assets/shield-half-V-o-t5Lx.js +0 -6
- langflow/frontend/assets/shield-minus-BnemIpJa.js +0 -6
- langflow/frontend/assets/shield-off-CxWlvk7r.js +0 -6
- langflow/frontend/assets/shield-plus-QVkbakld.js +0 -6
- langflow/frontend/assets/shield-question-COpg9NoY.js +0 -6
- langflow/frontend/assets/shield-user-CoegU97t.js +0 -6
- langflow/frontend/assets/shield-x-CdAKkcdI.js +0 -6
- langflow/frontend/assets/ship-bCYOVjm_.js +0 -6
- langflow/frontend/assets/ship-wheel-aj3UgWgh.js +0 -6
- langflow/frontend/assets/shirt-BwKnuoqa.js +0 -6
- langflow/frontend/assets/shopping-bag-Bvykz-u-.js +0 -6
- langflow/frontend/assets/shopping-basket-BLh-v-4F.js +0 -6
- langflow/frontend/assets/shopping-cart-BNLlkyR3.js +0 -6
- langflow/frontend/assets/shovel-D-LTCign.js +0 -6
- langflow/frontend/assets/shower-head-CJm7lELS.js +0 -6
- langflow/frontend/assets/shredder-BN6oQYYI.js +0 -6
- langflow/frontend/assets/shrimp-B8mIXZcn.js +0 -6
- langflow/frontend/assets/shrink-B2Sm00Dl.js +0 -6
- langflow/frontend/assets/shrub-BKHi38Mv.js +0 -6
- langflow/frontend/assets/shuffle-BQfd6nc5.js +0 -6
- langflow/frontend/assets/sigma-B3b0S0YW.js +0 -6
- langflow/frontend/assets/signal-BL47tRVd.js +0 -6
- langflow/frontend/assets/signal-high-CPznMUVb.js +0 -6
- langflow/frontend/assets/signal-low-DdsZioS0.js +0 -6
- langflow/frontend/assets/signal-medium-MAOoWyo-.js +0 -6
- langflow/frontend/assets/signal-zero-DO9onBMK.js +0 -6
- langflow/frontend/assets/signature-CDNllhD4.js +0 -6
- langflow/frontend/assets/signpost-DZukqY2Q.js +0 -6
- langflow/frontend/assets/signpost-big-l_gZ54oE.js +0 -6
- langflow/frontend/assets/siren-DZEpjIxI.js +0 -6
- langflow/frontend/assets/skip-back-LMMyX7i0.js +0 -6
- langflow/frontend/assets/skip-forward-3fbdqmxL.js +0 -6
- langflow/frontend/assets/skull-D150-BdX.js +0 -6
- langflow/frontend/assets/slack-CA2vty0-.js +0 -6
- langflow/frontend/assets/slash-DLRamBMc.js +0 -6
- langflow/frontend/assets/slice-Ns8IcsJm.js +0 -6
- langflow/frontend/assets/sliders-horizontal-BfxJVpu0.js +0 -6
- langflow/frontend/assets/sliders-vertical-fdYgGvdp.js +0 -6
- langflow/frontend/assets/smartphone-C5dYq0M7.js +0 -6
- langflow/frontend/assets/smartphone-charging-t1Cr621u.js +0 -6
- langflow/frontend/assets/smartphone-nfc-CHD61XTv.js +0 -6
- langflow/frontend/assets/smile-ByaOAGFV.js +0 -6
- langflow/frontend/assets/smile-plus-BYKQT_2e.js +0 -6
- langflow/frontend/assets/snail-BLq7uuoW.js +0 -6
- langflow/frontend/assets/snowflake-CYsf9pfZ.js +0 -6
- langflow/frontend/assets/sofa-DG5ZPgXr.js +0 -6
- langflow/frontend/assets/soup-Dc1bXxzM.js +0 -6
- langflow/frontend/assets/space-DKkvCXLd.js +0 -6
- langflow/frontend/assets/spade-DgB5W-OB.js +0 -6
- langflow/frontend/assets/sparkle-Db93NDtI.js +0 -6
- langflow/frontend/assets/sparkles-xUIuou4A.js +0 -6
- langflow/frontend/assets/speaker-BWn1Qonx.js +0 -6
- langflow/frontend/assets/speech-qIGem1Go.js +0 -6
- langflow/frontend/assets/spell-check-2-B2cZXUCa.js +0 -6
- langflow/frontend/assets/spell-check-lHnH8H0N.js +0 -6
- langflow/frontend/assets/spline-Cm4A2C0d.js +0 -6
- langflow/frontend/assets/spline-pointer-BFCnQNhM.js +0 -6
- langflow/frontend/assets/split-BlaNB-m6.js +0 -6
- langflow/frontend/assets/spray-can-PQvbyFN8.js +0 -6
- langflow/frontend/assets/sprout-DYLKUJOm.js +0 -6
- langflow/frontend/assets/square-BQ25rjZN.js +0 -6
- langflow/frontend/assets/square-activity-BC1g9hIH.js +0 -6
- langflow/frontend/assets/square-arrow-down-9W_S03ge.js +0 -6
- langflow/frontend/assets/square-arrow-down-left-B82nM0R2.js +0 -6
- langflow/frontend/assets/square-arrow-down-right-DZyom3ae.js +0 -6
- langflow/frontend/assets/square-arrow-left-BSWuTucu.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-left-t_j7aQzA.js +0 -6
- langflow/frontend/assets/square-arrow-out-down-right-D1Hb89jV.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-left-Bdv-jLVA.js +0 -6
- langflow/frontend/assets/square-arrow-out-up-right-CDgfw9T8.js +0 -6
- langflow/frontend/assets/square-arrow-right-DHtj4Z_y.js +0 -6
- langflow/frontend/assets/square-arrow-up-DMEDT3wd.js +0 -6
- langflow/frontend/assets/square-arrow-up-left-CrcmXV4q.js +0 -6
- langflow/frontend/assets/square-arrow-up-right-CBhrXMOc.js +0 -6
- langflow/frontend/assets/square-asterisk-DzFQ9VAS.js +0 -6
- langflow/frontend/assets/square-bottom-dashed-scissors-CKGBy4R6.js +0 -6
- langflow/frontend/assets/square-chart-gantt-ZNVQ-GTo.js +0 -6
- langflow/frontend/assets/square-check-C2jJjf49.js +0 -6
- langflow/frontend/assets/square-check-big-DKucpNkQ.js +0 -6
- langflow/frontend/assets/square-chevron-down-Co2qpqTr.js +0 -6
- langflow/frontend/assets/square-chevron-left-Dh7yqYBt.js +0 -6
- langflow/frontend/assets/square-chevron-right-CAbBfYZO.js +0 -6
- langflow/frontend/assets/square-chevron-up-ByEpnR1d.js +0 -6
- langflow/frontend/assets/square-code-WlCO2khm.js +0 -6
- langflow/frontend/assets/square-dashed-Cwzejq82.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-CRS9IWk0.js +0 -6
- langflow/frontend/assets/square-dashed-bottom-code-Co6R2kEY.js +0 -6
- langflow/frontend/assets/square-dashed-kanban-DNVYpJR1.js +0 -6
- langflow/frontend/assets/square-dashed-mouse-pointer-D6zwqIPb.js +0 -6
- langflow/frontend/assets/square-divide-BRsu17TA.js +0 -6
- langflow/frontend/assets/square-dot-BSZERpMQ.js +0 -6
- langflow/frontend/assets/square-equal-DlCTNRwu.js +0 -6
- langflow/frontend/assets/square-function-5r9z4b4I.js +0 -6
- langflow/frontend/assets/square-kanban-DZYGxOjU.js +0 -6
- langflow/frontend/assets/square-library-Bt0Alrgq.js +0 -6
- langflow/frontend/assets/square-m-CP4kRUKD.js +0 -6
- langflow/frontend/assets/square-menu-CFiyqUWn.js +0 -6
- langflow/frontend/assets/square-minus-C3MV7njF.js +0 -6
- langflow/frontend/assets/square-mouse-pointer-ClV0LfR7.js +0 -6
- langflow/frontend/assets/square-parking-off-BhmYVwPZ.js +0 -6
- langflow/frontend/assets/square-parking-uNTgxoGp.js +0 -6
- langflow/frontend/assets/square-pen-Cy2Zcc1n.js +0 -6
- langflow/frontend/assets/square-percent-DQshRjbA.js +0 -6
- langflow/frontend/assets/square-pi-DxR8I-Ds.js +0 -6
- langflow/frontend/assets/square-pilcrow-C8R5P-PO.js +0 -6
- langflow/frontend/assets/square-play-9lJv1T9C.js +0 -6
- langflow/frontend/assets/square-plus-iEfwebn-.js +0 -6
- langflow/frontend/assets/square-power-jfsm1NJs.js +0 -6
- langflow/frontend/assets/square-radical-CDzy5o5Y.js +0 -6
- langflow/frontend/assets/square-round-corner-Dv5vMY1f.js +0 -6
- langflow/frontend/assets/square-scissors-DbINkDNT.js +0 -6
- langflow/frontend/assets/square-sigma-BReMNGhb.js +0 -6
- langflow/frontend/assets/square-slash-CNsgv2Sa.js +0 -6
- langflow/frontend/assets/square-split-horizontal-BfRg2lDm.js +0 -6
- langflow/frontend/assets/square-split-vertical-UHKpEkGO.js +0 -6
- langflow/frontend/assets/square-square-luklvd5N.js +0 -6
- langflow/frontend/assets/square-stack-BS73UeKd.js +0 -6
- langflow/frontend/assets/square-terminal-8WO2IeBX.js +0 -6
- langflow/frontend/assets/square-user-BZ_UjNNJ.js +0 -6
- langflow/frontend/assets/square-user-round-B944rjkk.js +0 -6
- langflow/frontend/assets/square-x-7sE2TBTz.js +0 -6
- langflow/frontend/assets/squares-exclude-3ZemYBRj.js +0 -6
- langflow/frontend/assets/squares-intersect-BXYVvy27.js +0 -6
- langflow/frontend/assets/squares-subtract-Tjdd6hOn.js +0 -6
- langflow/frontend/assets/squares-unite-BhQQi1A3.js +0 -6
- langflow/frontend/assets/squircle-BSCiAU0_.js +0 -6
- langflow/frontend/assets/squirrel-CsXgCg0Q.js +0 -6
- langflow/frontend/assets/stamp-BwxxPiyC.js +0 -6
- langflow/frontend/assets/star-CbBgte9t.js +0 -6
- langflow/frontend/assets/star-half-BQhwQUTH.js +0 -6
- langflow/frontend/assets/star-off-Bn8ZUUY1.js +0 -6
- langflow/frontend/assets/step-back-QUCTSaOM.js +0 -6
- langflow/frontend/assets/step-forward-CtCNr_zk.js +0 -6
- langflow/frontend/assets/stethoscope-CcSMreKr.js +0 -6
- langflow/frontend/assets/sticker-aZRJZHLI.js +0 -6
- langflow/frontend/assets/sticky-note-CNWxkXTS.js +0 -6
- langflow/frontend/assets/store-BRTrEFn3.js +0 -6
- langflow/frontend/assets/stretch-horizontal-BEjd_tbW.js +0 -6
- langflow/frontend/assets/stretch-vertical-BrafkJPM.js +0 -6
- langflow/frontend/assets/strikethrough-COieVoOZ.js +0 -6
- langflow/frontend/assets/subscript-DTohsurC.js +0 -6
- langflow/frontend/assets/sun-Co4GkUR3.js +0 -6
- langflow/frontend/assets/sun-dim-BW6p6o9O.js +0 -6
- langflow/frontend/assets/sun-medium-BNYoaEvK.js +0 -6
- langflow/frontend/assets/sun-moon-D0Pq4quP.js +0 -6
- langflow/frontend/assets/sun-snow-CqbqlvmM.js +0 -6
- langflow/frontend/assets/sunrise-CO4mIMSv.js +0 -6
- langflow/frontend/assets/sunset-CIfdXk9C.js +0 -6
- langflow/frontend/assets/superscript-DUu0Q4_D.js +0 -6
- langflow/frontend/assets/swatch-book-C4J3lI_J.js +0 -6
- langflow/frontend/assets/swiss-franc-BH8id42u.js +0 -6
- langflow/frontend/assets/switch-camera-CiePjak0.js +0 -6
- langflow/frontend/assets/sword-strwHoxD.js +0 -6
- langflow/frontend/assets/swords-C-w1IwO9.js +0 -6
- langflow/frontend/assets/syringe-BRV2C8cA.js +0 -6
- langflow/frontend/assets/table-2-BMr7H6eP.js +0 -6
- langflow/frontend/assets/table-B_7Oj7Ox.js +0 -6
- langflow/frontend/assets/table-cells-merge-C54Qw23Y.js +0 -6
- langflow/frontend/assets/table-cells-split-CtHVdDeS.js +0 -6
- langflow/frontend/assets/table-columns-split-BcaQrCr4.js +0 -6
- langflow/frontend/assets/table-of-contents-D0mUFGft.js +0 -6
- langflow/frontend/assets/table-properties--I6nXBR3.js +0 -6
- langflow/frontend/assets/table-rows-split-B0xJQ37f.js +0 -6
- langflow/frontend/assets/tablet-Cf0EWdJK.js +0 -6
- langflow/frontend/assets/tablet-smartphone-DY4wZHr1.js +0 -6
- langflow/frontend/assets/tablets-BwdeIRo8.js +0 -6
- langflow/frontend/assets/tag-CctZN7kL.js +0 -6
- langflow/frontend/assets/tags-BCHRjKYf.js +0 -6
- langflow/frontend/assets/tally-1-BldVxrsQ.js +0 -6
- langflow/frontend/assets/tally-2-DXrwGFrl.js +0 -6
- langflow/frontend/assets/tally-3-DmfWkX76.js +0 -6
- langflow/frontend/assets/tally-4-5HQCUDdA.js +0 -6
- langflow/frontend/assets/tally-5-CJ6oLp3v.js +0 -6
- langflow/frontend/assets/tangent-DB7fZRai.js +0 -6
- langflow/frontend/assets/target-DpuUfDL-.js +0 -6
- langflow/frontend/assets/telescope-DI51EUze.js +0 -6
- langflow/frontend/assets/tent-B0JEjxdf.js +0 -6
- langflow/frontend/assets/tent-tree-7eQIWJxt.js +0 -6
- langflow/frontend/assets/terminal-DkJIR40E.js +0 -6
- langflow/frontend/assets/test-tube-CVcsryKJ.js +0 -6
- langflow/frontend/assets/test-tube-diagonal-DUWwW59l.js +0 -6
- langflow/frontend/assets/test-tubes-CEazaT1A.js +0 -6
- langflow/frontend/assets/text-ChX5VB23.js +0 -6
- langflow/frontend/assets/text-cursor-D0W6SvBT.js +0 -6
- langflow/frontend/assets/text-cursor-input-DZJywZl8.js +0 -6
- langflow/frontend/assets/text-quote-A7E7kGXh.js +0 -6
- langflow/frontend/assets/text-search-Ci_9VX5o.js +0 -6
- langflow/frontend/assets/text-select-B-MYo7Bk.js +0 -6
- langflow/frontend/assets/theater-CLA9VUyd.js +0 -6
- langflow/frontend/assets/thermometer-CCtu28Uk.js +0 -6
- langflow/frontend/assets/thermometer-snowflake-Den4-Bn4.js +0 -6
- langflow/frontend/assets/thermometer-sun-NEOdjDsY.js +0 -6
- langflow/frontend/assets/thumbs-down-Bvp584LU.js +0 -6
- langflow/frontend/assets/thumbs-up-BtrMFbVS.js +0 -6
- langflow/frontend/assets/ticket-CV7UPEHN.js +0 -6
- langflow/frontend/assets/ticket-check-C6fPp3wU.js +0 -6
- langflow/frontend/assets/ticket-minus-KNNJ2iM0.js +0 -6
- langflow/frontend/assets/ticket-percent-Rezekn-N.js +0 -6
- langflow/frontend/assets/ticket-plus-Aps5a9CM.js +0 -6
- langflow/frontend/assets/ticket-slash-Qbdnbd0m.js +0 -6
- langflow/frontend/assets/ticket-x-1zRdxQPQ.js +0 -6
- langflow/frontend/assets/tickets-BdBUXSkg.js +0 -6
- langflow/frontend/assets/tickets-plane-DjIofQ62.js +0 -6
- langflow/frontend/assets/timer-BplY9xWf.js +0 -6
- langflow/frontend/assets/timer-off-BCLZxVnv.js +0 -6
- langflow/frontend/assets/timer-reset-Od914fdl.js +0 -6
- langflow/frontend/assets/toggle-left-BcEMIa-0.js +0 -6
- langflow/frontend/assets/toggle-right-DFcq7xBW.js +0 -6
- langflow/frontend/assets/toilet-B7pvq6hs.js +0 -6
- langflow/frontend/assets/tornado-CcwjCEya.js +0 -6
- langflow/frontend/assets/torus-BHd2P0M2.js +0 -6
- langflow/frontend/assets/touchpad-BkSEryoR.js +0 -6
- langflow/frontend/assets/touchpad-off-Bp4VNri8.js +0 -6
- langflow/frontend/assets/tower-control-B0M5LDMG.js +0 -6
- langflow/frontend/assets/toy-brick-DYPUOrpo.js +0 -6
- langflow/frontend/assets/tractor-BdjeAU29.js +0 -6
- langflow/frontend/assets/traffic-cone-Rid-92fN.js +0 -6
- langflow/frontend/assets/train-front-Bn9pj37z.js +0 -6
- langflow/frontend/assets/train-front-tunnel-CDtFf3il.js +0 -6
- langflow/frontend/assets/train-track-C2lvGo-p.js +0 -6
- langflow/frontend/assets/tram-front-hCk6g-kr.js +0 -6
- langflow/frontend/assets/transgender-DmKUhVdN.js +0 -6
- langflow/frontend/assets/trash-qOGvIrQP.js +0 -6
- langflow/frontend/assets/tree-deciduous-CPX20v9X.js +0 -6
- langflow/frontend/assets/tree-palm-Bba_s6WM.js +0 -6
- langflow/frontend/assets/tree-pine-B46HVi1j.js +0 -6
- langflow/frontend/assets/trees-DMrXWyAI.js +0 -6
- langflow/frontend/assets/trello-BdNjucj5.js +0 -6
- langflow/frontend/assets/trending-down-mobVRn87.js +0 -6
- langflow/frontend/assets/trending-up-BccTwVQ3.js +0 -6
- langflow/frontend/assets/trending-up-down-BFBzmCek.js +0 -6
- langflow/frontend/assets/triangle-B_1SxMhH.js +0 -6
- langflow/frontend/assets/triangle-alert-Cp51jOjb.js +0 -6
- langflow/frontend/assets/triangle-dashed-DFBRieof.js +0 -6
- langflow/frontend/assets/triangle-right-mdPj_yGd.js +0 -6
- langflow/frontend/assets/trophy-BwYmkEKJ.js +0 -6
- langflow/frontend/assets/truck-ByXs4MRT.js +0 -6
- langflow/frontend/assets/truck-electric-CoDLeURU.js +0 -6
- langflow/frontend/assets/turtle-B_0t1L1r.js +0 -6
- langflow/frontend/assets/tv-LKP4Yd6G.js +0 -6
- langflow/frontend/assets/tv-minimal-0UIB2_YF.js +0 -6
- langflow/frontend/assets/tv-minimal-play-D6WpFMoW.js +0 -6
- langflow/frontend/assets/twitch-CdmKqstS.js +0 -6
- langflow/frontend/assets/twitter-Bn3B-nJs.js +0 -6
- langflow/frontend/assets/type-CdLC62-v.js +0 -6
- langflow/frontend/assets/type-outline-B9sZx19h.js +0 -6
- langflow/frontend/assets/umbrella-DhyhsQ7f.js +0 -6
- langflow/frontend/assets/umbrella-off-DW-WFw75.js +0 -6
- langflow/frontend/assets/underline-oZz1nZHE.js +0 -6
- langflow/frontend/assets/undo-2-CF3ZpvsA.js +0 -6
- langflow/frontend/assets/undo-CpBc-ZlX.js +0 -6
- langflow/frontend/assets/undo-dot-Kp9DVLqw.js +0 -6
- langflow/frontend/assets/unfold-horizontal-GffCoo9x.js +0 -6
- langflow/frontend/assets/unfold-vertical-QVa3f1Wo.js +0 -6
- langflow/frontend/assets/ungroup-BP26g4VQ.js +0 -6
- langflow/frontend/assets/university-CForBFku.js +0 -6
- langflow/frontend/assets/unlink-2-DszR0Pss.js +0 -6
- langflow/frontend/assets/unlink-DtGPnmVI.js +0 -6
- langflow/frontend/assets/unplug-CRH0Dguu.js +0 -6
- langflow/frontend/assets/upload-DiPD_gzi.js +0 -6
- langflow/frontend/assets/usb-DZJXI9d7.js +0 -6
- langflow/frontend/assets/use-post-add-user-Bs41teEN.js +0 -1
- langflow/frontend/assets/user-cHu1Tb-j.js +0 -6
- langflow/frontend/assets/user-check-By1TfF1x.js +0 -6
- langflow/frontend/assets/user-cog-DSrSQLdm.js +0 -6
- langflow/frontend/assets/user-lock-Dr0nssIA.js +0 -6
- langflow/frontend/assets/user-minus-D5YKaMHP.js +0 -6
- langflow/frontend/assets/user-pen-CsLTR5OS.js +0 -6
- langflow/frontend/assets/user-plus-De5dKowi.js +0 -6
- langflow/frontend/assets/user-round-Db-PGyeS.js +0 -6
- langflow/frontend/assets/user-round-check-oeAhvgtX.js +0 -6
- langflow/frontend/assets/user-round-cog-D0PrF4c8.js +0 -6
- langflow/frontend/assets/user-round-minus-CqlSkZqX.js +0 -6
- langflow/frontend/assets/user-round-pen-QLTzzwnf.js +0 -6
- langflow/frontend/assets/user-round-plus-Bx3K4KAU.js +0 -6
- langflow/frontend/assets/user-round-search-CTuvbxcv.js +0 -6
- langflow/frontend/assets/user-round-x-CXiWjGk5.js +0 -6
- langflow/frontend/assets/user-search-Wx8LBIpw.js +0 -6
- langflow/frontend/assets/user-x-C7dP93Wk.js +0 -6
- langflow/frontend/assets/users-Db7zYFpA.js +0 -6
- langflow/frontend/assets/users-round-DHr5Sr0N.js +0 -6
- langflow/frontend/assets/utensils-DtHkOs6Z.js +0 -6
- langflow/frontend/assets/utensils-crossed-DLcgsz-O.js +0 -6
- langflow/frontend/assets/utility-pole-B_wWOFgu.js +0 -6
- langflow/frontend/assets/variable-DApkrROK.js +0 -6
- langflow/frontend/assets/vault-ui3qi5oL.js +0 -6
- langflow/frontend/assets/vegan-DbeU7GCW.js +0 -6
- langflow/frontend/assets/venetian-mask-TngPVMQi.js +0 -6
- langflow/frontend/assets/venus-DGTRr7NR.js +0 -6
- langflow/frontend/assets/venus-and-mars-D3LGBlDX.js +0 -6
- langflow/frontend/assets/vibrate-CgFeMpsJ.js +0 -6
- langflow/frontend/assets/vibrate-off-Dfo2gom0.js +0 -6
- langflow/frontend/assets/video-C37dbk9j.js +0 -6
- langflow/frontend/assets/video-off-4ADfzTwY.js +0 -6
- langflow/frontend/assets/videotape-B04hZc74.js +0 -6
- langflow/frontend/assets/view-qgN5VhRW.js +0 -6
- langflow/frontend/assets/voicemail-CmDdOF5x.js +0 -6
- langflow/frontend/assets/volleyball-Cjg-162g.js +0 -6
- langflow/frontend/assets/volume-1-CIkQ8iIg.js +0 -6
- langflow/frontend/assets/volume-2-BMioCS8E.js +0 -6
- langflow/frontend/assets/volume-B7ES03Qv.js +0 -6
- langflow/frontend/assets/volume-off-D5XWZrKI.js +0 -6
- langflow/frontend/assets/volume-x-7XVRVJ9B.js +0 -6
- langflow/frontend/assets/vote-Dw1I2FfB.js +0 -6
- langflow/frontend/assets/wallet-BFzQLkbo.js +0 -6
- langflow/frontend/assets/wallet-cards-D13f7MeJ.js +0 -6
- langflow/frontend/assets/wallet-minimal-Dqd8mUUI.js +0 -6
- langflow/frontend/assets/wallpaper-BsSO8Odk.js +0 -6
- langflow/frontend/assets/wand-TBE2I8GE.js +0 -6
- langflow/frontend/assets/wand-sparkles-CRKbXOJZ.js +0 -6
- langflow/frontend/assets/warehouse-CMbzjlH6.js +0 -6
- langflow/frontend/assets/washing-machine-BGn-KReA.js +0 -6
- langflow/frontend/assets/watch-CIGWSZt6.js +0 -6
- langflow/frontend/assets/waves-ladder-DcF2y9VG.js +0 -6
- langflow/frontend/assets/waves-wIUBgocz.js +0 -6
- langflow/frontend/assets/waypoints-BQurfXX_.js +0 -6
- langflow/frontend/assets/webcam-YKtMPPFX.js +0 -6
- langflow/frontend/assets/webhook-BkjGp-iI.js +0 -6
- langflow/frontend/assets/webhook-off-BQDPVLml.js +0 -6
- langflow/frontend/assets/weight-B3FKVk1f.js +0 -6
- langflow/frontend/assets/wheat-CX8yqsV1.js +0 -6
- langflow/frontend/assets/wheat-off-CJNcq7KF.js +0 -6
- langflow/frontend/assets/whole-word-B5MfrMWF.js +0 -6
- langflow/frontend/assets/wifi-DZJleZd3.js +0 -6
- langflow/frontend/assets/wifi-high-LKM0TXbk.js +0 -6
- langflow/frontend/assets/wifi-low-CxVH1qJM.js +0 -6
- langflow/frontend/assets/wifi-off-Dn9vsBGP.js +0 -6
- langflow/frontend/assets/wifi-pen-Da_-sk9d.js +0 -6
- langflow/frontend/assets/wifi-zero-DcMNjWZC.js +0 -6
- langflow/frontend/assets/wind-DPrxycW5.js +0 -6
- langflow/frontend/assets/wind-arrow-down-BrWeaZmh.js +0 -6
- langflow/frontend/assets/wine-DAadDbxi.js +0 -6
- langflow/frontend/assets/wine-off-C2Vv12g_.js +0 -6
- langflow/frontend/assets/workflow-BxHBdxzI.js +0 -6
- langflow/frontend/assets/worm-CZy7u8Xa.js +0 -6
- langflow/frontend/assets/wrap-text-BoowhP_g.js +0 -6
- langflow/frontend/assets/wrench-CwBP6vOn.js +0 -6
- langflow/frontend/assets/youtube-BxpODfJZ.js +0 -6
- langflow/frontend/assets/zap-CWSGMMkE.js +0 -6
- langflow/frontend/assets/zap-off-D40--2OK.js +0 -6
- langflow/frontend/assets/zoom-in-DZbBfX5Y.js +0 -6
- langflow/frontend/assets/zoom-out-C4WVFDS7.js +0 -6
- langflow_base_nightly-1.7.1.dev0.dist-info/METADATA +0 -99
- langflow_base_nightly-1.7.1.dev0.dist-info/RECORD +0 -2283
- {langflow_base_nightly-1.7.1.dev0.dist-info → langflow_base_nightly-1.7.1.dev1.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-1.7.1.dev0.dist-info → langflow_base_nightly-1.7.1.dev1.dist-info}/entry_points.txt +0 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"data": {
|
|
8
8
|
"sourceHandle": {
|
|
9
9
|
"dataType": "ChatInput",
|
|
10
|
-
"id": "ChatInput-
|
|
10
|
+
"id": "ChatInput-8l9oz",
|
|
11
11
|
"name": "message",
|
|
12
12
|
"output_types": [
|
|
13
13
|
"Message"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"targetHandle": {
|
|
17
17
|
"fieldName": "question",
|
|
18
|
-
"id": "Prompt-
|
|
18
|
+
"id": "Prompt-ML5XQ",
|
|
19
19
|
"inputTypes": [
|
|
20
20
|
"Message",
|
|
21
21
|
"Text"
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
"type": "str"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
|
-
"id": "reactflow__edge-ChatInput-
|
|
26
|
+
"id": "reactflow__edge-ChatInput-8l9oz{œdataTypeœ:œChatInputœ,œidœ:œChatInput-8l9ozœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-Prompt-ML5XQ{œfieldNameœ:œquestionœ,œidœ:œPrompt-ML5XQœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}",
|
|
27
27
|
"selected": false,
|
|
28
|
-
"source": "ChatInput-
|
|
29
|
-
"sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-
|
|
30
|
-
"target": "Prompt-
|
|
31
|
-
"targetHandle": "{œfieldNameœ: œquestionœ, œidœ: œPrompt-
|
|
28
|
+
"source": "ChatInput-8l9oz",
|
|
29
|
+
"sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-8l9ozœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
|
|
30
|
+
"target": "Prompt-ML5XQ",
|
|
31
|
+
"targetHandle": "{œfieldNameœ: œquestionœ, œidœ: œPrompt-ML5XQœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"animated": false,
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"data": {
|
|
37
37
|
"sourceHandle": {
|
|
38
38
|
"dataType": "parser",
|
|
39
|
-
"id": "parser-
|
|
39
|
+
"id": "parser-oHf4E",
|
|
40
40
|
"name": "parsed_text",
|
|
41
41
|
"output_types": [
|
|
42
42
|
"Message"
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"targetHandle": {
|
|
46
46
|
"fieldName": "context",
|
|
47
|
-
"id": "Prompt-
|
|
47
|
+
"id": "Prompt-ML5XQ",
|
|
48
48
|
"inputTypes": [
|
|
49
49
|
"Message",
|
|
50
50
|
"Text"
|
|
@@ -52,12 +52,42 @@
|
|
|
52
52
|
"type": "str"
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
|
-
"id": "reactflow__edge-parser-
|
|
55
|
+
"id": "reactflow__edge-parser-oHf4E{œdataTypeœ:œparserœ,œidœ:œparser-oHf4Eœ,œnameœ:œparsed_textœ,œoutput_typesœ:[œMessageœ]}-Prompt-ML5XQ{œfieldNameœ:œcontextœ,œidœ:œPrompt-ML5XQœ,œinputTypesœ:[œMessageœ,œTextœ],œtypeœ:œstrœ}",
|
|
56
56
|
"selected": false,
|
|
57
|
-
"source": "parser-
|
|
58
|
-
"sourceHandle": "{œdataTypeœ: œparserœ, œidœ: œparser-
|
|
59
|
-
"target": "Prompt-
|
|
60
|
-
"targetHandle": "{œfieldNameœ: œcontextœ, œidœ: œPrompt-
|
|
57
|
+
"source": "parser-oHf4E",
|
|
58
|
+
"sourceHandle": "{œdataTypeœ: œparserœ, œidœ: œparser-oHf4Eœ, œnameœ: œparsed_textœ, œoutput_typesœ: [œMessageœ]}",
|
|
59
|
+
"target": "Prompt-ML5XQ",
|
|
60
|
+
"targetHandle": "{œfieldNameœ: œcontextœ, œidœ: œPrompt-ML5XQœ, œinputTypesœ: [œMessageœ, œTextœ], œtypeœ: œstrœ}"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"animated": false,
|
|
64
|
+
"className": "",
|
|
65
|
+
"data": {
|
|
66
|
+
"sourceHandle": {
|
|
67
|
+
"dataType": "File",
|
|
68
|
+
"id": "File-7D3hP",
|
|
69
|
+
"name": "message",
|
|
70
|
+
"output_types": [
|
|
71
|
+
"Message"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"targetHandle": {
|
|
75
|
+
"fieldName": "data_inputs",
|
|
76
|
+
"id": "SplitText-4s7Dt",
|
|
77
|
+
"inputTypes": [
|
|
78
|
+
"Data",
|
|
79
|
+
"DataFrame",
|
|
80
|
+
"Message"
|
|
81
|
+
],
|
|
82
|
+
"type": "other"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"id": "reactflow__edge-File-7D3hP{œdataTypeœ:œFileœ,œidœ:œFile-7D3hPœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-SplitText-4s7Dt{œfieldNameœ:œdata_inputsœ,œidœ:œSplitText-4s7Dtœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}",
|
|
86
|
+
"selected": false,
|
|
87
|
+
"source": "File-7D3hP",
|
|
88
|
+
"sourceHandle": "{œdataTypeœ: œFileœ, œidœ: œFile-7D3hPœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
|
|
89
|
+
"target": "SplitText-4s7Dt",
|
|
90
|
+
"targetHandle": "{œfieldNameœ: œdata_inputsœ, œidœ: œSplitText-4s7Dtœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}"
|
|
61
91
|
},
|
|
62
92
|
{
|
|
63
93
|
"animated": false,
|
|
@@ -65,7 +95,7 @@
|
|
|
65
95
|
"data": {
|
|
66
96
|
"sourceHandle": {
|
|
67
97
|
"dataType": "Prompt",
|
|
68
|
-
"id": "Prompt-
|
|
98
|
+
"id": "Prompt-ML5XQ",
|
|
69
99
|
"name": "prompt",
|
|
70
100
|
"output_types": [
|
|
71
101
|
"Message"
|
|
@@ -73,19 +103,19 @@
|
|
|
73
103
|
},
|
|
74
104
|
"targetHandle": {
|
|
75
105
|
"fieldName": "input_value",
|
|
76
|
-
"id": "LanguageModelComponent-
|
|
106
|
+
"id": "LanguageModelComponent-Wqbva",
|
|
77
107
|
"inputTypes": [
|
|
78
108
|
"Message"
|
|
79
109
|
],
|
|
80
110
|
"type": "str"
|
|
81
111
|
}
|
|
82
112
|
},
|
|
83
|
-
"id": "reactflow__edge-Prompt-
|
|
113
|
+
"id": "reactflow__edge-Prompt-ML5XQ{œdataTypeœ:œPromptœ,œidœ:œPrompt-ML5XQœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-LanguageModelComponent-Wqbva{œfieldNameœ:œinput_valueœ,œidœ:œLanguageModelComponent-Wqbvaœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
|
84
114
|
"selected": false,
|
|
85
|
-
"source": "Prompt-
|
|
86
|
-
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-
|
|
87
|
-
"target": "LanguageModelComponent-
|
|
88
|
-
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œLanguageModelComponent-
|
|
115
|
+
"source": "Prompt-ML5XQ",
|
|
116
|
+
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-ML5XQœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
|
|
117
|
+
"target": "LanguageModelComponent-Wqbva",
|
|
118
|
+
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œLanguageModelComponent-Wqbvaœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
|
89
119
|
},
|
|
90
120
|
{
|
|
91
121
|
"animated": false,
|
|
@@ -93,7 +123,7 @@
|
|
|
93
123
|
"data": {
|
|
94
124
|
"sourceHandle": {
|
|
95
125
|
"dataType": "LanguageModelComponent",
|
|
96
|
-
"id": "LanguageModelComponent-
|
|
126
|
+
"id": "LanguageModelComponent-Wqbva",
|
|
97
127
|
"name": "text_output",
|
|
98
128
|
"output_types": [
|
|
99
129
|
"Message"
|
|
@@ -101,7 +131,7 @@
|
|
|
101
131
|
},
|
|
102
132
|
"targetHandle": {
|
|
103
133
|
"fieldName": "input_value",
|
|
104
|
-
"id": "ChatOutput-
|
|
134
|
+
"id": "ChatOutput-g0Phk",
|
|
105
135
|
"inputTypes": [
|
|
106
136
|
"Data",
|
|
107
137
|
"DataFrame",
|
|
@@ -110,12 +140,12 @@
|
|
|
110
140
|
"type": "str"
|
|
111
141
|
}
|
|
112
142
|
},
|
|
113
|
-
"id": "reactflow__edge-LanguageModelComponent-
|
|
143
|
+
"id": "reactflow__edge-LanguageModelComponent-Wqbva{œdataTypeœ:œLanguageModelComponentœ,œidœ:œLanguageModelComponent-Wqbvaœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-g0Phk{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-g0Phkœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œstrœ}",
|
|
114
144
|
"selected": false,
|
|
115
|
-
"source": "LanguageModelComponent-
|
|
116
|
-
"sourceHandle": "{œdataTypeœ: œLanguageModelComponentœ, œidœ: œLanguageModelComponent-
|
|
117
|
-
"target": "ChatOutput-
|
|
118
|
-
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-
|
|
145
|
+
"source": "LanguageModelComponent-Wqbva",
|
|
146
|
+
"sourceHandle": "{œdataTypeœ: œLanguageModelComponentœ, œidœ: œLanguageModelComponent-Wqbvaœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
|
|
147
|
+
"target": "ChatOutput-g0Phk",
|
|
148
|
+
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-g0Phkœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œstrœ}"
|
|
119
149
|
},
|
|
120
150
|
{
|
|
121
151
|
"animated": false,
|
|
@@ -123,7 +153,7 @@
|
|
|
123
153
|
"data": {
|
|
124
154
|
"sourceHandle": {
|
|
125
155
|
"dataType": "SplitText",
|
|
126
|
-
"id": "SplitText-
|
|
156
|
+
"id": "SplitText-4s7Dt",
|
|
127
157
|
"name": "dataframe",
|
|
128
158
|
"output_types": [
|
|
129
159
|
"DataFrame"
|
|
@@ -131,7 +161,7 @@
|
|
|
131
161
|
},
|
|
132
162
|
"targetHandle": {
|
|
133
163
|
"fieldName": "ingest_data",
|
|
134
|
-
"id": "AstraDB-
|
|
164
|
+
"id": "AstraDB-TCSqR",
|
|
135
165
|
"inputTypes": [
|
|
136
166
|
"Data",
|
|
137
167
|
"DataFrame"
|
|
@@ -139,12 +169,12 @@
|
|
|
139
169
|
"type": "other"
|
|
140
170
|
}
|
|
141
171
|
},
|
|
142
|
-
"id": "reactflow__edge-SplitText-
|
|
172
|
+
"id": "reactflow__edge-SplitText-4s7Dt{œdataTypeœ:œSplitTextœ,œidœ:œSplitText-4s7Dtœ,œnameœ:œdataframeœ,œoutput_typesœ:[œDataFrameœ]}-AstraDB-TCSqR{œfieldNameœ:œingest_dataœ,œidœ:œAstraDB-TCSqRœ,œinputTypesœ:[œDataœ,œDataFrameœ],œtypeœ:œotherœ}",
|
|
143
173
|
"selected": false,
|
|
144
|
-
"source": "SplitText-
|
|
145
|
-
"sourceHandle": "{œdataTypeœ: œSplitTextœ, œidœ: œSplitText-
|
|
146
|
-
"target": "AstraDB-
|
|
147
|
-
"targetHandle": "{œfieldNameœ: œingest_dataœ, œidœ: œAstraDB-
|
|
174
|
+
"source": "SplitText-4s7Dt",
|
|
175
|
+
"sourceHandle": "{œdataTypeœ: œSplitTextœ, œidœ: œSplitText-4s7Dtœ, œnameœ: œdataframeœ, œoutput_typesœ: [œDataFrameœ]}",
|
|
176
|
+
"target": "AstraDB-TCSqR",
|
|
177
|
+
"targetHandle": "{œfieldNameœ: œingest_dataœ, œidœ: œAstraDB-TCSqRœ, œinputTypesœ: [œDataœ, œDataFrameœ], œtypeœ: œotherœ}"
|
|
148
178
|
},
|
|
149
179
|
{
|
|
150
180
|
"animated": false,
|
|
@@ -152,7 +182,7 @@
|
|
|
152
182
|
"data": {
|
|
153
183
|
"sourceHandle": {
|
|
154
184
|
"dataType": "ChatInput",
|
|
155
|
-
"id": "ChatInput-
|
|
185
|
+
"id": "ChatInput-8l9oz",
|
|
156
186
|
"name": "message",
|
|
157
187
|
"output_types": [
|
|
158
188
|
"Message"
|
|
@@ -160,19 +190,19 @@
|
|
|
160
190
|
},
|
|
161
191
|
"targetHandle": {
|
|
162
192
|
"fieldName": "search_query",
|
|
163
|
-
"id": "AstraDB-
|
|
193
|
+
"id": "AstraDB-BteL9",
|
|
164
194
|
"inputTypes": [
|
|
165
195
|
"Message"
|
|
166
196
|
],
|
|
167
197
|
"type": "query"
|
|
168
198
|
}
|
|
169
199
|
},
|
|
170
|
-
"id": "reactflow__edge-ChatInput-
|
|
200
|
+
"id": "reactflow__edge-ChatInput-8l9oz{œdataTypeœ:œChatInputœ,œidœ:œChatInput-8l9ozœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-AstraDB-BteL9{œfieldNameœ:œsearch_queryœ,œidœ:œAstraDB-BteL9œ,œinputTypesœ:[œMessageœ],œtypeœ:œqueryœ}",
|
|
171
201
|
"selected": false,
|
|
172
|
-
"source": "ChatInput-
|
|
173
|
-
"sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-
|
|
174
|
-
"target": "AstraDB-
|
|
175
|
-
"targetHandle": "{œfieldNameœ: œsearch_queryœ, œidœ: œAstraDB-
|
|
202
|
+
"source": "ChatInput-8l9oz",
|
|
203
|
+
"sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-8l9ozœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
|
|
204
|
+
"target": "AstraDB-BteL9",
|
|
205
|
+
"targetHandle": "{œfieldNameœ: œsearch_queryœ, œidœ: œAstraDB-BteL9œ, œinputTypesœ: [œMessageœ], œtypeœ: œqueryœ}"
|
|
176
206
|
},
|
|
177
207
|
{
|
|
178
208
|
"animated": false,
|
|
@@ -180,7 +210,7 @@
|
|
|
180
210
|
"data": {
|
|
181
211
|
"sourceHandle": {
|
|
182
212
|
"dataType": "AstraDB",
|
|
183
|
-
"id": "AstraDB-
|
|
213
|
+
"id": "AstraDB-BteL9",
|
|
184
214
|
"name": "dataframe",
|
|
185
215
|
"output_types": [
|
|
186
216
|
"DataFrame"
|
|
@@ -188,7 +218,7 @@
|
|
|
188
218
|
},
|
|
189
219
|
"targetHandle": {
|
|
190
220
|
"fieldName": "input_data",
|
|
191
|
-
"id": "parser-
|
|
221
|
+
"id": "parser-oHf4E",
|
|
192
222
|
"inputTypes": [
|
|
193
223
|
"DataFrame",
|
|
194
224
|
"Data"
|
|
@@ -196,12 +226,12 @@
|
|
|
196
226
|
"type": "other"
|
|
197
227
|
}
|
|
198
228
|
},
|
|
199
|
-
"id": "reactflow__edge-AstraDB-
|
|
229
|
+
"id": "reactflow__edge-AstraDB-BteL9{œdataTypeœ:œAstraDBœ,œidœ:œAstraDB-BteL9œ,œnameœ:œdataframeœ,œoutput_typesœ:[œDataFrameœ]}-parser-oHf4E{œfieldNameœ:œinput_dataœ,œidœ:œparser-oHf4Eœ,œinputTypesœ:[œDataFrameœ,œDataœ],œtypeœ:œotherœ}",
|
|
200
230
|
"selected": false,
|
|
201
|
-
"source": "AstraDB-
|
|
202
|
-
"sourceHandle": "{œdataTypeœ: œAstraDBœ, œidœ: œAstraDB-
|
|
203
|
-
"target": "parser-
|
|
204
|
-
"targetHandle": "{œfieldNameœ: œinput_dataœ, œidœ: œparser-
|
|
231
|
+
"source": "AstraDB-BteL9",
|
|
232
|
+
"sourceHandle": "{œdataTypeœ: œAstraDBœ, œidœ: œAstraDB-BteL9œ, œnameœ: œdataframeœ, œoutput_typesœ: [œDataFrameœ]}",
|
|
233
|
+
"target": "parser-oHf4E",
|
|
234
|
+
"targetHandle": "{œfieldNameœ: œinput_dataœ, œidœ: œparser-oHf4Eœ, œinputTypesœ: [œDataFrameœ, œDataœ], œtypeœ: œotherœ}"
|
|
205
235
|
},
|
|
206
236
|
{
|
|
207
237
|
"animated": false,
|
|
@@ -209,7 +239,7 @@
|
|
|
209
239
|
"data": {
|
|
210
240
|
"sourceHandle": {
|
|
211
241
|
"dataType": "OpenAIEmbeddings",
|
|
212
|
-
"id": "OpenAIEmbeddings-
|
|
242
|
+
"id": "OpenAIEmbeddings-U8tZg",
|
|
213
243
|
"name": "embeddings",
|
|
214
244
|
"output_types": [
|
|
215
245
|
"Embeddings"
|
|
@@ -217,27 +247,26 @@
|
|
|
217
247
|
},
|
|
218
248
|
"targetHandle": {
|
|
219
249
|
"fieldName": "embedding_model",
|
|
220
|
-
"id": "AstraDB-
|
|
250
|
+
"id": "AstraDB-TCSqR",
|
|
221
251
|
"inputTypes": [
|
|
222
252
|
"Embeddings"
|
|
223
253
|
],
|
|
224
254
|
"type": "other"
|
|
225
255
|
}
|
|
226
256
|
},
|
|
227
|
-
"id": "
|
|
257
|
+
"id": "xy-edge__OpenAIEmbeddings-U8tZg{œdataTypeœ:œOpenAIEmbeddingsœ,œidœ:œOpenAIEmbeddings-U8tZgœ,œnameœ:œembeddingsœ,œoutput_typesœ:[œEmbeddingsœ]}-AstraDB-TCSqR{œfieldNameœ:œembedding_modelœ,œidœ:œAstraDB-TCSqRœ,œinputTypesœ:[œEmbeddingsœ],œtypeœ:œotherœ}",
|
|
228
258
|
"selected": false,
|
|
229
|
-
"source": "OpenAIEmbeddings-
|
|
230
|
-
"sourceHandle": "{œdataTypeœ: œOpenAIEmbeddingsœ, œidœ: œOpenAIEmbeddings-
|
|
231
|
-
"target": "AstraDB-
|
|
232
|
-
"targetHandle": "{œfieldNameœ: œembedding_modelœ, œidœ: œAstraDB-
|
|
259
|
+
"source": "OpenAIEmbeddings-U8tZg",
|
|
260
|
+
"sourceHandle": "{œdataTypeœ: œOpenAIEmbeddingsœ, œidœ: œOpenAIEmbeddings-U8tZgœ, œnameœ: œembeddingsœ, œoutput_typesœ: [œEmbeddingsœ]}",
|
|
261
|
+
"target": "AstraDB-TCSqR",
|
|
262
|
+
"targetHandle": "{œfieldNameœ: œembedding_modelœ, œidœ: œAstraDB-TCSqRœ, œinputTypesœ: [œEmbeddingsœ], œtypeœ: œotherœ}"
|
|
233
263
|
},
|
|
234
264
|
{
|
|
235
|
-
"animated": false,
|
|
236
265
|
"className": "",
|
|
237
266
|
"data": {
|
|
238
267
|
"sourceHandle": {
|
|
239
268
|
"dataType": "OpenAIEmbeddings",
|
|
240
|
-
"id": "OpenAIEmbeddings-
|
|
269
|
+
"id": "OpenAIEmbeddings-jsaKm",
|
|
241
270
|
"name": "embeddings",
|
|
242
271
|
"output_types": [
|
|
243
272
|
"Embeddings"
|
|
@@ -245,49 +274,18 @@
|
|
|
245
274
|
},
|
|
246
275
|
"targetHandle": {
|
|
247
276
|
"fieldName": "embedding_model",
|
|
248
|
-
"id": "AstraDB-
|
|
277
|
+
"id": "AstraDB-BteL9",
|
|
249
278
|
"inputTypes": [
|
|
250
279
|
"Embeddings"
|
|
251
280
|
],
|
|
252
281
|
"type": "other"
|
|
253
282
|
}
|
|
254
283
|
},
|
|
255
|
-
"id": "
|
|
256
|
-
"
|
|
257
|
-
"
|
|
258
|
-
"
|
|
259
|
-
"
|
|
260
|
-
"targetHandle": "{œfieldNameœ: œembedding_modelœ, œidœ: œAstraDB-RaUqwœ, œinputTypesœ: [œEmbeddingsœ], œtypeœ: œotherœ}"
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
"animated": false,
|
|
264
|
-
"className": "",
|
|
265
|
-
"data": {
|
|
266
|
-
"sourceHandle": {
|
|
267
|
-
"dataType": "File",
|
|
268
|
-
"id": "File-CxEQk",
|
|
269
|
-
"name": "message",
|
|
270
|
-
"output_types": [
|
|
271
|
-
"Message"
|
|
272
|
-
]
|
|
273
|
-
},
|
|
274
|
-
"targetHandle": {
|
|
275
|
-
"fieldName": "data_inputs",
|
|
276
|
-
"id": "SplitText-1fBfh",
|
|
277
|
-
"inputTypes": [
|
|
278
|
-
"Data",
|
|
279
|
-
"DataFrame",
|
|
280
|
-
"Message"
|
|
281
|
-
],
|
|
282
|
-
"type": "other"
|
|
283
|
-
}
|
|
284
|
-
},
|
|
285
|
-
"id": "reactflow__edge-File-CxEQk{œdataTypeœ:œFileœ,œidœ:œFile-CxEQkœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-SplitText-1fBfh{œfieldNameœ:œdata_inputsœ,œidœ:œSplitText-1fBfhœ,œinputTypesœ:[œDataœ,œDataFrameœ,œMessageœ],œtypeœ:œotherœ}",
|
|
286
|
-
"selected": false,
|
|
287
|
-
"source": "File-CxEQk",
|
|
288
|
-
"sourceHandle": "{œdataTypeœ: œFileœ, œidœ: œFile-CxEQkœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
|
|
289
|
-
"target": "SplitText-1fBfh",
|
|
290
|
-
"targetHandle": "{œfieldNameœ: œdata_inputsœ, œidœ: œSplitText-1fBfhœ, œinputTypesœ: [œDataœ, œDataFrameœ, œMessageœ], œtypeœ: œotherœ}"
|
|
284
|
+
"id": "xy-edge__OpenAIEmbeddings-jsaKm{œdataTypeœ:œOpenAIEmbeddingsœ,œidœ:œOpenAIEmbeddings-jsaKmœ,œnameœ:œembeddingsœ,œoutput_typesœ:[œEmbeddingsœ]}-AstraDB-BteL9{œfieldNameœ:œembedding_modelœ,œidœ:œAstraDB-BteL9œ,œinputTypesœ:[œEmbeddingsœ],œtypeœ:œotherœ}",
|
|
285
|
+
"source": "OpenAIEmbeddings-jsaKm",
|
|
286
|
+
"sourceHandle": "{œdataTypeœ: œOpenAIEmbeddingsœ, œidœ: œOpenAIEmbeddings-jsaKmœ, œnameœ: œembeddingsœ, œoutput_typesœ: [œEmbeddingsœ]}",
|
|
287
|
+
"target": "AstraDB-BteL9",
|
|
288
|
+
"targetHandle": "{œfieldNameœ: œembedding_modelœ, œidœ: œAstraDB-BteL9œ, œinputTypesœ: [œEmbeddingsœ], œtypeœ: œotherœ}"
|
|
291
289
|
}
|
|
292
290
|
],
|
|
293
291
|
"nodes": [
|
|
@@ -295,7 +293,7 @@
|
|
|
295
293
|
"data": {
|
|
296
294
|
"description": "Get chat inputs from the Playground.",
|
|
297
295
|
"display_name": "Chat Input",
|
|
298
|
-
"id": "ChatInput-
|
|
296
|
+
"id": "ChatInput-8l9oz",
|
|
299
297
|
"node": {
|
|
300
298
|
"base_classes": [
|
|
301
299
|
"Message"
|
|
@@ -533,9 +531,9 @@
|
|
|
533
531
|
"type": "ChatInput"
|
|
534
532
|
},
|
|
535
533
|
"dragging": false,
|
|
536
|
-
"id": "ChatInput-
|
|
534
|
+
"id": "ChatInput-8l9oz",
|
|
537
535
|
"measured": {
|
|
538
|
-
"height":
|
|
536
|
+
"height": 234,
|
|
539
537
|
"width": 320
|
|
540
538
|
},
|
|
541
539
|
"position": {
|
|
@@ -553,7 +551,7 @@
|
|
|
553
551
|
"data": {
|
|
554
552
|
"description": "Create a prompt template with dynamic variables.",
|
|
555
553
|
"display_name": "Prompt",
|
|
556
|
-
"id": "Prompt-
|
|
554
|
+
"id": "Prompt-ML5XQ",
|
|
557
555
|
"node": {
|
|
558
556
|
"base_classes": [
|
|
559
557
|
"Message"
|
|
@@ -716,9 +714,9 @@
|
|
|
716
714
|
"type": "Prompt"
|
|
717
715
|
},
|
|
718
716
|
"dragging": false,
|
|
719
|
-
"id": "Prompt-
|
|
717
|
+
"id": "Prompt-ML5XQ",
|
|
720
718
|
"measured": {
|
|
721
|
-
"height":
|
|
719
|
+
"height": 433,
|
|
722
720
|
"width": 320
|
|
723
721
|
},
|
|
724
722
|
"position": {
|
|
@@ -736,7 +734,7 @@
|
|
|
736
734
|
"data": {
|
|
737
735
|
"description": "Split text into chunks based on specified criteria.",
|
|
738
736
|
"display_name": "Split Text",
|
|
739
|
-
"id": "SplitText-
|
|
737
|
+
"id": "SplitText-4s7Dt",
|
|
740
738
|
"node": {
|
|
741
739
|
"base_classes": [
|
|
742
740
|
"Data"
|
|
@@ -937,9 +935,9 @@
|
|
|
937
935
|
"type": "SplitText"
|
|
938
936
|
},
|
|
939
937
|
"dragging": false,
|
|
940
|
-
"id": "SplitText-
|
|
938
|
+
"id": "SplitText-4s7Dt",
|
|
941
939
|
"measured": {
|
|
942
|
-
"height":
|
|
940
|
+
"height": 475,
|
|
943
941
|
"width": 320
|
|
944
942
|
},
|
|
945
943
|
"position": {
|
|
@@ -955,7 +953,7 @@
|
|
|
955
953
|
},
|
|
956
954
|
{
|
|
957
955
|
"data": {
|
|
958
|
-
"id": "note-
|
|
956
|
+
"id": "note-PMpi6",
|
|
959
957
|
"node": {
|
|
960
958
|
"description": "## 🐕 2. Retriever Flow\n\nThis flow answers your questions with contextual data retrieved from your vector database.\n\nOpen the **Playground** and ask, \n\n```\nWhat is this document about?\n```\n",
|
|
961
959
|
"display_name": "",
|
|
@@ -968,7 +966,7 @@
|
|
|
968
966
|
},
|
|
969
967
|
"dragging": false,
|
|
970
968
|
"height": 324,
|
|
971
|
-
"id": "note-
|
|
969
|
+
"id": "note-PMpi6",
|
|
972
970
|
"measured": {
|
|
973
971
|
"height": 324,
|
|
974
972
|
"width": 324
|
|
@@ -992,7 +990,7 @@
|
|
|
992
990
|
},
|
|
993
991
|
{
|
|
994
992
|
"data": {
|
|
995
|
-
"id": "note-
|
|
993
|
+
"id": "note-WvtH0",
|
|
996
994
|
"node": {
|
|
997
995
|
"description": "Retrieval Augmented Generation (RAG) is a way of providing additional context to a Large Language Model (LLM) by preloading a vector database with embeddings for relevant content. When a user chats with the LLM, a _similarity search_ retrieves relevant content by comparing an embedding for the user's query against the embeddings in the vector database.\nFor example, a RAG chatbot could be pre-loaded with product data, and then it can help customers find specific products based on their queries.\nThis template has two sub-flows. One flow loads data into your vector store, and the other is the user-driven chat flow that compares a new query against the existing content in your vector database.\n\n## Quickstart\n1. Add your OpenAI API key to the **Language Model** component and the two **Embeddings** components.\n2. Add an Astra application token to the **Astra DB** vector store components, or replace these components with other vector store components available in the **Components** menu.\n**💡 Store your credentials as Langflow global variables 🌐 to simplify token management and reuse in your flows.**\n\n## Run the flows\n1. Load your data into a vector database with the 📚 **Load Data** flow. Select a file to upload in the **File** component, and then click **Play** ▶️ on the **Astra DB** component to run the **Load Data** flow.\n2. Open the **Playground** to start a chat with the 🐕 **Retriever** flow.\n\nOnly the run the **Load Data** flow when you need to populate your vector database with baseline content, such as product data.\nThe **Retriever** flow is the user-facing chat flow. This flow generates an embedding from chat input, runs a similarity search against the vector database to retrieve relevant content, and then passes the original query and the retrieved content to the LLM, which produces the chat response sent to the user.\n\n## Next steps\nExperiment by changing the prompt and the loaded data to see how the LLM's responses change.",
|
|
998
996
|
"display_name": "Read Me",
|
|
@@ -1005,7 +1003,7 @@
|
|
|
1005
1003
|
},
|
|
1006
1004
|
"dragging": false,
|
|
1007
1005
|
"height": 556,
|
|
1008
|
-
"id": "note-
|
|
1006
|
+
"id": "note-WvtH0",
|
|
1009
1007
|
"measured": {
|
|
1010
1008
|
"height": 556,
|
|
1011
1009
|
"width": 389
|
|
@@ -1031,7 +1029,7 @@
|
|
|
1031
1029
|
"data": {
|
|
1032
1030
|
"description": "Display a chat message in the Playground.",
|
|
1033
1031
|
"display_name": "Chat Output",
|
|
1034
|
-
"id": "ChatOutput-
|
|
1032
|
+
"id": "ChatOutput-g0Phk",
|
|
1035
1033
|
"node": {
|
|
1036
1034
|
"base_classes": [
|
|
1037
1035
|
"Message"
|
|
@@ -1290,9 +1288,9 @@
|
|
|
1290
1288
|
"type": "ChatOutput"
|
|
1291
1289
|
},
|
|
1292
1290
|
"dragging": false,
|
|
1293
|
-
"id": "ChatOutput-
|
|
1291
|
+
"id": "ChatOutput-g0Phk",
|
|
1294
1292
|
"measured": {
|
|
1295
|
-
"height":
|
|
1293
|
+
"height": 234,
|
|
1296
1294
|
"width": 320
|
|
1297
1295
|
},
|
|
1298
1296
|
"position": {
|
|
@@ -1308,7 +1306,7 @@
|
|
|
1308
1306
|
},
|
|
1309
1307
|
{
|
|
1310
1308
|
"data": {
|
|
1311
|
-
"id": "OpenAIEmbeddings-
|
|
1309
|
+
"id": "OpenAIEmbeddings-jsaKm",
|
|
1312
1310
|
"node": {
|
|
1313
1311
|
"base_classes": [
|
|
1314
1312
|
"Embeddings"
|
|
@@ -1609,7 +1607,7 @@
|
|
|
1609
1607
|
"dynamic": false,
|
|
1610
1608
|
"info": "",
|
|
1611
1609
|
"input_types": [],
|
|
1612
|
-
"load_from_db":
|
|
1610
|
+
"load_from_db": true,
|
|
1613
1611
|
"name": "openai_api_key",
|
|
1614
1612
|
"password": true,
|
|
1615
1613
|
"placeholder": "",
|
|
@@ -1617,7 +1615,7 @@
|
|
|
1617
1615
|
"show": true,
|
|
1618
1616
|
"title_case": false,
|
|
1619
1617
|
"type": "str",
|
|
1620
|
-
"value": ""
|
|
1618
|
+
"value": "OPENAI_API_KEY"
|
|
1621
1619
|
},
|
|
1622
1620
|
"openai_api_type": {
|
|
1623
1621
|
"_input_type": "MessageTextInput",
|
|
@@ -1800,9 +1798,9 @@
|
|
|
1800
1798
|
"type": "OpenAIEmbeddings"
|
|
1801
1799
|
},
|
|
1802
1800
|
"dragging": false,
|
|
1803
|
-
"id": "OpenAIEmbeddings-
|
|
1801
|
+
"id": "OpenAIEmbeddings-jsaKm",
|
|
1804
1802
|
"measured": {
|
|
1805
|
-
"height":
|
|
1803
|
+
"height": 320,
|
|
1806
1804
|
"width": 320
|
|
1807
1805
|
},
|
|
1808
1806
|
"position": {
|
|
@@ -1818,7 +1816,7 @@
|
|
|
1818
1816
|
},
|
|
1819
1817
|
{
|
|
1820
1818
|
"data": {
|
|
1821
|
-
"id": "note-
|
|
1819
|
+
"id": "note-WLlNM",
|
|
1822
1820
|
"node": {
|
|
1823
1821
|
"description": "## 📚 1. Load Data Flow\n\nRun this first! Load data from a local file and embed it into the vector database.\n\nSelect a Database and a Collection, or create new ones. \n\nClick **Run component** on the **Astra DB** component to load your data.\n\n\n### Next steps:\n Experiment by changing the prompt and the contextual data to see how the retrieval flow's responses change.",
|
|
1824
1822
|
"display_name": "",
|
|
@@ -1831,7 +1829,7 @@
|
|
|
1831
1829
|
},
|
|
1832
1830
|
"dragging": false,
|
|
1833
1831
|
"height": 460,
|
|
1834
|
-
"id": "note-
|
|
1832
|
+
"id": "note-WLlNM",
|
|
1835
1833
|
"measured": {
|
|
1836
1834
|
"height": 460,
|
|
1837
1835
|
"width": 340
|
|
@@ -1855,7 +1853,7 @@
|
|
|
1855
1853
|
},
|
|
1856
1854
|
{
|
|
1857
1855
|
"data": {
|
|
1858
|
-
"id": "OpenAIEmbeddings-
|
|
1856
|
+
"id": "OpenAIEmbeddings-U8tZg",
|
|
1859
1857
|
"node": {
|
|
1860
1858
|
"base_classes": [
|
|
1861
1859
|
"Embeddings"
|
|
@@ -2156,7 +2154,7 @@
|
|
|
2156
2154
|
"dynamic": false,
|
|
2157
2155
|
"info": "",
|
|
2158
2156
|
"input_types": [],
|
|
2159
|
-
"load_from_db":
|
|
2157
|
+
"load_from_db": true,
|
|
2160
2158
|
"name": "openai_api_key",
|
|
2161
2159
|
"password": true,
|
|
2162
2160
|
"placeholder": "",
|
|
@@ -2164,7 +2162,7 @@
|
|
|
2164
2162
|
"show": true,
|
|
2165
2163
|
"title_case": false,
|
|
2166
2164
|
"type": "str",
|
|
2167
|
-
"value": ""
|
|
2165
|
+
"value": "OPENAI_API_KEY"
|
|
2168
2166
|
},
|
|
2169
2167
|
"openai_api_type": {
|
|
2170
2168
|
"_input_type": "MessageTextInput",
|
|
@@ -2347,9 +2345,9 @@
|
|
|
2347
2345
|
"type": "OpenAIEmbeddings"
|
|
2348
2346
|
},
|
|
2349
2347
|
"dragging": false,
|
|
2350
|
-
"id": "OpenAIEmbeddings-
|
|
2348
|
+
"id": "OpenAIEmbeddings-U8tZg",
|
|
2351
2349
|
"measured": {
|
|
2352
|
-
"height":
|
|
2350
|
+
"height": 320,
|
|
2353
2351
|
"width": 320
|
|
2354
2352
|
},
|
|
2355
2353
|
"position": {
|
|
@@ -2365,7 +2363,7 @@
|
|
|
2365
2363
|
},
|
|
2366
2364
|
{
|
|
2367
2365
|
"data": {
|
|
2368
|
-
"id": "note-
|
|
2366
|
+
"id": "note-5qEgh",
|
|
2369
2367
|
"node": {
|
|
2370
2368
|
"description": "### 💡 Add your OpenAI API key here 👇",
|
|
2371
2369
|
"display_name": "",
|
|
@@ -2378,7 +2376,7 @@
|
|
|
2378
2376
|
},
|
|
2379
2377
|
"dragging": false,
|
|
2380
2378
|
"height": 324,
|
|
2381
|
-
"id": "note-
|
|
2379
|
+
"id": "note-5qEgh",
|
|
2382
2380
|
"measured": {
|
|
2383
2381
|
"height": 324,
|
|
2384
2382
|
"width": 324
|
|
@@ -2397,7 +2395,7 @@
|
|
|
2397
2395
|
},
|
|
2398
2396
|
{
|
|
2399
2397
|
"data": {
|
|
2400
|
-
"id": "note-
|
|
2398
|
+
"id": "note-siZGp",
|
|
2401
2399
|
"node": {
|
|
2402
2400
|
"description": "### 💡 Add your OpenAI API key here 👇",
|
|
2403
2401
|
"display_name": "",
|
|
@@ -2410,7 +2408,7 @@
|
|
|
2410
2408
|
},
|
|
2411
2409
|
"dragging": false,
|
|
2412
2410
|
"height": 324,
|
|
2413
|
-
"id": "note-
|
|
2411
|
+
"id": "note-siZGp",
|
|
2414
2412
|
"measured": {
|
|
2415
2413
|
"height": 324,
|
|
2416
2414
|
"width": 324
|
|
@@ -2429,7 +2427,7 @@
|
|
|
2429
2427
|
},
|
|
2430
2428
|
{
|
|
2431
2429
|
"data": {
|
|
2432
|
-
"id": "note-
|
|
2430
|
+
"id": "note-qKdBl",
|
|
2433
2431
|
"node": {
|
|
2434
2432
|
"description": "### 💡 Add your OpenAI API key here 👇",
|
|
2435
2433
|
"display_name": "",
|
|
@@ -2442,7 +2440,7 @@
|
|
|
2442
2440
|
},
|
|
2443
2441
|
"dragging": false,
|
|
2444
2442
|
"height": 324,
|
|
2445
|
-
"id": "note-
|
|
2443
|
+
"id": "note-qKdBl",
|
|
2446
2444
|
"measured": {
|
|
2447
2445
|
"height": 324,
|
|
2448
2446
|
"width": 324
|
|
@@ -2461,7 +2459,7 @@
|
|
|
2461
2459
|
},
|
|
2462
2460
|
{
|
|
2463
2461
|
"data": {
|
|
2464
|
-
"id": "parser-
|
|
2462
|
+
"id": "parser-oHf4E",
|
|
2465
2463
|
"node": {
|
|
2466
2464
|
"base_classes": [
|
|
2467
2465
|
"Message"
|
|
@@ -2623,7 +2621,7 @@
|
|
|
2623
2621
|
"type": "parser"
|
|
2624
2622
|
},
|
|
2625
2623
|
"dragging": false,
|
|
2626
|
-
"id": "parser-
|
|
2624
|
+
"id": "parser-oHf4E",
|
|
2627
2625
|
"measured": {
|
|
2628
2626
|
"height": 361,
|
|
2629
2627
|
"width": 320
|
|
@@ -2637,53 +2635,57 @@
|
|
|
2637
2635
|
},
|
|
2638
2636
|
{
|
|
2639
2637
|
"data": {
|
|
2640
|
-
"id": "
|
|
2638
|
+
"id": "File-7D3hP",
|
|
2641
2639
|
"node": {
|
|
2642
2640
|
"base_classes": [
|
|
2643
|
-
"LanguageModel",
|
|
2644
2641
|
"Message"
|
|
2645
2642
|
],
|
|
2646
2643
|
"beta": false,
|
|
2647
2644
|
"conditional_paths": [],
|
|
2648
2645
|
"custom_fields": {},
|
|
2649
|
-
"description": "
|
|
2650
|
-
"display_name": "
|
|
2651
|
-
"documentation": "
|
|
2646
|
+
"description": "Loads and returns the content from uploaded files.",
|
|
2647
|
+
"display_name": "File",
|
|
2648
|
+
"documentation": "",
|
|
2652
2649
|
"edited": false,
|
|
2653
2650
|
"field_order": [
|
|
2654
|
-
"
|
|
2655
|
-
"
|
|
2656
|
-
"
|
|
2657
|
-
"
|
|
2658
|
-
"
|
|
2659
|
-
"
|
|
2660
|
-
"
|
|
2661
|
-
"
|
|
2662
|
-
"
|
|
2651
|
+
"path",
|
|
2652
|
+
"file_path",
|
|
2653
|
+
"separator",
|
|
2654
|
+
"silent_errors",
|
|
2655
|
+
"delete_server_file_after_processing",
|
|
2656
|
+
"ignore_unsupported_extensions",
|
|
2657
|
+
"ignore_unspecified_files",
|
|
2658
|
+
"use_multithreading",
|
|
2659
|
+
"concurrency_multithreading"
|
|
2663
2660
|
],
|
|
2664
2661
|
"frozen": false,
|
|
2665
|
-
"icon": "
|
|
2666
|
-
"last_updated": "2025-
|
|
2662
|
+
"icon": "file-text",
|
|
2663
|
+
"last_updated": "2025-10-10T17:51:29.596Z",
|
|
2667
2664
|
"legacy": false,
|
|
2668
|
-
"lf_version": "1.7.0",
|
|
2669
2665
|
"metadata": {
|
|
2670
|
-
"code_hash": "
|
|
2666
|
+
"code_hash": "5008cc086d7f",
|
|
2671
2667
|
"dependencies": {
|
|
2672
2668
|
"dependencies": [
|
|
2673
2669
|
{
|
|
2674
2670
|
"name": "lfx",
|
|
2675
2671
|
"version": null
|
|
2672
|
+
},
|
|
2673
|
+
{
|
|
2674
|
+
"name": "langchain_core",
|
|
2675
|
+
"version": "0.3.80"
|
|
2676
|
+
},
|
|
2677
|
+
{
|
|
2678
|
+
"name": "pydantic",
|
|
2679
|
+
"version": "2.11.10"
|
|
2680
|
+
},
|
|
2681
|
+
{
|
|
2682
|
+
"name": "googleapiclient",
|
|
2683
|
+
"version": "2.154.0"
|
|
2676
2684
|
}
|
|
2677
2685
|
],
|
|
2678
|
-
"total_dependencies":
|
|
2686
|
+
"total_dependencies": 4
|
|
2679
2687
|
},
|
|
2680
|
-
"
|
|
2681
|
-
"model",
|
|
2682
|
-
"llm",
|
|
2683
|
-
"language model",
|
|
2684
|
-
"large language model"
|
|
2685
|
-
],
|
|
2686
|
-
"module": "lfx.components.models_and_agents.language_model.LanguageModelComponent"
|
|
2688
|
+
"module": "lfx.components.files_and_knowledge.file.FileComponent"
|
|
2687
2689
|
},
|
|
2688
2690
|
"minimized": false,
|
|
2689
2691
|
"output_types": [],
|
|
@@ -2691,101 +2693,119 @@
|
|
|
2691
2693
|
{
|
|
2692
2694
|
"allows_loop": false,
|
|
2693
2695
|
"cache": true,
|
|
2694
|
-
"display_name": "
|
|
2696
|
+
"display_name": "Raw Content",
|
|
2695
2697
|
"group_outputs": false,
|
|
2696
|
-
"
|
|
2697
|
-
"
|
|
2698
|
-
"method": "text_response",
|
|
2699
|
-
"name": "text_output",
|
|
2700
|
-
"options": null,
|
|
2701
|
-
"required_inputs": null,
|
|
2698
|
+
"method": "load_files_message",
|
|
2699
|
+
"name": "message",
|
|
2702
2700
|
"selected": "Message",
|
|
2703
2701
|
"tool_mode": true,
|
|
2704
2702
|
"types": [
|
|
2705
2703
|
"Message"
|
|
2706
2704
|
],
|
|
2707
2705
|
"value": "__UNDEFINED__"
|
|
2708
|
-
},
|
|
2709
|
-
{
|
|
2710
|
-
"allows_loop": false,
|
|
2711
|
-
"cache": true,
|
|
2712
|
-
"display_name": "Language Model",
|
|
2713
|
-
"group_outputs": false,
|
|
2714
|
-
"hidden": null,
|
|
2715
|
-
"loop_types": null,
|
|
2716
|
-
"method": "build_model",
|
|
2717
|
-
"name": "model_output",
|
|
2718
|
-
"options": null,
|
|
2719
|
-
"required_inputs": null,
|
|
2720
|
-
"selected": "LanguageModel",
|
|
2721
|
-
"tool_mode": true,
|
|
2722
|
-
"types": [
|
|
2723
|
-
"LanguageModel"
|
|
2724
|
-
],
|
|
2725
|
-
"value": "__UNDEFINED__"
|
|
2726
2706
|
}
|
|
2727
2707
|
],
|
|
2728
2708
|
"pinned": false,
|
|
2729
|
-
"priority": 0,
|
|
2730
2709
|
"template": {
|
|
2731
|
-
"_frontend_node_flow_id": {
|
|
2732
|
-
"value": "be165273-a6ce-4053-9548-e5b5c8a657bf"
|
|
2733
|
-
},
|
|
2734
|
-
"_frontend_node_folder_id": {
|
|
2735
|
-
"value": "34260300-cae1-43f3-8b14-1272b8cffe4c"
|
|
2736
|
-
},
|
|
2737
2710
|
"_type": "Component",
|
|
2738
|
-
"
|
|
2711
|
+
"advanced_mode": {
|
|
2712
|
+
"_input_type": "BoolInput",
|
|
2713
|
+
"advanced": false,
|
|
2714
|
+
"display_name": "Advanced Parser",
|
|
2715
|
+
"dynamic": false,
|
|
2716
|
+
"info": "Enable advanced document processing and export with Docling for PDFs, images, and office documents. Note that advanced document processing can consume significant resources.",
|
|
2717
|
+
"list": false,
|
|
2718
|
+
"list_add_label": "Add More",
|
|
2719
|
+
"name": "advanced_mode",
|
|
2720
|
+
"placeholder": "",
|
|
2721
|
+
"real_time_refresh": true,
|
|
2722
|
+
"required": false,
|
|
2723
|
+
"show": true,
|
|
2724
|
+
"title_case": false,
|
|
2725
|
+
"tool_mode": false,
|
|
2726
|
+
"trace_as_metadata": true,
|
|
2727
|
+
"type": "bool",
|
|
2728
|
+
"value": false
|
|
2729
|
+
},
|
|
2730
|
+
"aws_access_key_id": {
|
|
2739
2731
|
"_input_type": "SecretStrInput",
|
|
2740
|
-
"advanced":
|
|
2741
|
-
"display_name": "
|
|
2732
|
+
"advanced": false,
|
|
2733
|
+
"display_name": "AWS Access Key ID",
|
|
2742
2734
|
"dynamic": false,
|
|
2743
|
-
"info": "
|
|
2735
|
+
"info": "AWS Access key ID.",
|
|
2744
2736
|
"input_types": [],
|
|
2745
|
-
"load_from_db":
|
|
2746
|
-
"name": "
|
|
2737
|
+
"load_from_db": true,
|
|
2738
|
+
"name": "aws_access_key_id",
|
|
2747
2739
|
"override_skip": false,
|
|
2748
2740
|
"password": true,
|
|
2749
2741
|
"placeholder": "",
|
|
2750
|
-
"
|
|
2751
|
-
"
|
|
2752
|
-
"show": true,
|
|
2742
|
+
"required": true,
|
|
2743
|
+
"show": false,
|
|
2753
2744
|
"title_case": false,
|
|
2754
2745
|
"track_in_telemetry": false,
|
|
2755
2746
|
"type": "str",
|
|
2756
2747
|
"value": ""
|
|
2757
2748
|
},
|
|
2758
|
-
"
|
|
2759
|
-
"_input_type": "
|
|
2749
|
+
"aws_region": {
|
|
2750
|
+
"_input_type": "StrInput",
|
|
2760
2751
|
"advanced": false,
|
|
2761
|
-
"
|
|
2762
|
-
"dialog_inputs": {},
|
|
2763
|
-
"display_name": "watsonx API Endpoint",
|
|
2752
|
+
"display_name": "AWS Region",
|
|
2764
2753
|
"dynamic": false,
|
|
2765
|
-
"
|
|
2766
|
-
"
|
|
2767
|
-
"
|
|
2768
|
-
"
|
|
2769
|
-
|
|
2770
|
-
"https://eu-de.ml.cloud.ibm.com",
|
|
2771
|
-
"https://eu-gb.ml.cloud.ibm.com",
|
|
2772
|
-
"https://au-syd.ml.cloud.ibm.com",
|
|
2773
|
-
"https://jp-tok.ml.cloud.ibm.com",
|
|
2774
|
-
"https://ca-tor.ml.cloud.ibm.com"
|
|
2775
|
-
],
|
|
2776
|
-
"options_metadata": [],
|
|
2754
|
+
"info": "AWS region (e.g., us-east-1, eu-west-1).",
|
|
2755
|
+
"list": false,
|
|
2756
|
+
"list_add_label": "Add More",
|
|
2757
|
+
"load_from_db": false,
|
|
2758
|
+
"name": "aws_region",
|
|
2777
2759
|
"override_skip": false,
|
|
2778
2760
|
"placeholder": "",
|
|
2779
|
-
"real_time_refresh": true,
|
|
2780
2761
|
"required": false,
|
|
2781
2762
|
"show": false,
|
|
2782
2763
|
"title_case": false,
|
|
2783
|
-
"toggle": false,
|
|
2784
2764
|
"tool_mode": false,
|
|
2785
2765
|
"trace_as_metadata": true,
|
|
2786
|
-
"track_in_telemetry":
|
|
2766
|
+
"track_in_telemetry": false,
|
|
2787
2767
|
"type": "str",
|
|
2788
|
-
"value": "
|
|
2768
|
+
"value": ""
|
|
2769
|
+
},
|
|
2770
|
+
"aws_secret_access_key": {
|
|
2771
|
+
"_input_type": "SecretStrInput",
|
|
2772
|
+
"advanced": false,
|
|
2773
|
+
"display_name": "AWS Secret Key",
|
|
2774
|
+
"dynamic": false,
|
|
2775
|
+
"info": "AWS Secret Key.",
|
|
2776
|
+
"input_types": [],
|
|
2777
|
+
"load_from_db": true,
|
|
2778
|
+
"name": "aws_secret_access_key",
|
|
2779
|
+
"override_skip": false,
|
|
2780
|
+
"password": true,
|
|
2781
|
+
"placeholder": "",
|
|
2782
|
+
"required": true,
|
|
2783
|
+
"show": false,
|
|
2784
|
+
"title_case": false,
|
|
2785
|
+
"track_in_telemetry": false,
|
|
2786
|
+
"type": "str",
|
|
2787
|
+
"value": ""
|
|
2788
|
+
},
|
|
2789
|
+
"bucket_name": {
|
|
2790
|
+
"_input_type": "StrInput",
|
|
2791
|
+
"advanced": false,
|
|
2792
|
+
"display_name": "S3 Bucket Name",
|
|
2793
|
+
"dynamic": false,
|
|
2794
|
+
"info": "Enter the name of the S3 bucket.",
|
|
2795
|
+
"list": false,
|
|
2796
|
+
"list_add_label": "Add More",
|
|
2797
|
+
"load_from_db": false,
|
|
2798
|
+
"name": "bucket_name",
|
|
2799
|
+
"override_skip": false,
|
|
2800
|
+
"placeholder": "",
|
|
2801
|
+
"required": true,
|
|
2802
|
+
"show": false,
|
|
2803
|
+
"title_case": false,
|
|
2804
|
+
"tool_mode": false,
|
|
2805
|
+
"trace_as_metadata": true,
|
|
2806
|
+
"track_in_telemetry": false,
|
|
2807
|
+
"type": "str",
|
|
2808
|
+
"value": ""
|
|
2789
2809
|
},
|
|
2790
2810
|
"code": {
|
|
2791
2811
|
"advanced": true,
|
|
@@ -2803,810 +2823,370 @@
|
|
|
2803
2823
|
"show": true,
|
|
2804
2824
|
"title_case": false,
|
|
2805
2825
|
"type": "code",
|
|
2806
|
-
"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"
|
|
2826
|
+
"value": "\"\"\"Enhanced file component with Docling support and process isolation.\n\nNotes:\n-----\n- ALL Docling parsing/export runs in a separate OS process to prevent memory\n growth and native library state from impacting the main Langflow process.\n- Standard text/structured parsing continues to use existing BaseFileComponent\n utilities (and optional threading via `parallel_load_data`).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport contextlib\nimport json\nimport subprocess\nimport sys\nimport textwrap\nfrom copy import deepcopy\nfrom pathlib import Path\nfrom tempfile import NamedTemporaryFile\nfrom typing import Any\n\nfrom lfx.base.data.base_file import BaseFileComponent\nfrom lfx.base.data.storage_utils import parse_storage_path, read_file_bytes, validate_image_content_type\nfrom lfx.base.data.utils import TEXT_FILE_TYPES, parallel_load_data, parse_text_file_to_data\nfrom lfx.inputs import SortableListInput\nfrom lfx.inputs.inputs import DropdownInput, MessageTextInput, StrInput\nfrom lfx.io import BoolInput, FileInput, IntInput, Output, SecretStrInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame # noqa: TC001\nfrom lfx.schema.message import Message\nfrom lfx.services.deps import get_settings_service, get_storage_service\nfrom lfx.utils.async_helpers import run_until_complete\nfrom lfx.utils.validate_cloud import is_astra_cloud_environment\n\n\ndef _get_storage_location_options():\n \"\"\"Get storage location options, filtering out Local if in Astra cloud environment.\"\"\"\n all_options = [{\"name\": \"AWS\", \"icon\": \"Amazon\"}, {\"name\": \"Google Drive\", \"icon\": \"google\"}]\n if is_astra_cloud_environment():\n return all_options\n return [{\"name\": \"Local\", \"icon\": \"hard-drive\"}, *all_options]\n\n\nclass FileComponent(BaseFileComponent):\n \"\"\"File component with optional Docling processing (isolated in a subprocess).\"\"\"\n\n display_name = \"Read File\"\n # description is now a dynamic property - see get_tool_description()\n _base_description = \"Loads content from one or more files.\"\n documentation: str = \"https://docs.langflow.org/read-file\"\n icon = \"file-text\"\n name = \"File\"\n add_tool_output = True # Enable tool mode toggle without requiring tool_mode inputs\n\n # Extensions that can be processed without Docling (using standard text parsing)\n TEXT_EXTENSIONS = TEXT_FILE_TYPES\n\n # Extensions that require Docling for processing (images, advanced office formats, etc.)\n DOCLING_ONLY_EXTENSIONS = [\n \"adoc\",\n \"asciidoc\",\n \"asc\",\n \"bmp\",\n \"dotx\",\n \"dotm\",\n \"docm\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"potx\",\n \"ppsx\",\n \"pptm\",\n \"potm\",\n \"ppsm\",\n \"pptx\",\n \"tiff\",\n \"xls\",\n \"xlsx\",\n \"xhtml\",\n \"webp\",\n ]\n\n # Docling-supported/compatible extensions; TEXT_FILE_TYPES are supported by the base loader.\n VALID_EXTENSIONS = [\n *TEXT_EXTENSIONS,\n *DOCLING_ONLY_EXTENSIONS,\n ]\n\n # Fixed export settings used when markdown export is requested.\n EXPORT_FORMAT = \"Markdown\"\n IMAGE_MODE = \"placeholder\"\n\n _base_inputs = deepcopy(BaseFileComponent.get_base_inputs())\n\n for input_item in _base_inputs:\n if isinstance(input_item, FileInput) and input_item.name == \"path\":\n input_item.real_time_refresh = True\n input_item.tool_mode = False # Disable tool mode for file upload input\n input_item.required = False # Make it optional so it doesn't error in tool mode\n break\n\n inputs = [\n SortableListInput(\n name=\"storage_location\",\n display_name=\"Storage Location\",\n placeholder=\"Select Location\",\n info=\"Choose where to read the file from.\",\n options=_get_storage_location_options(),\n real_time_refresh=True,\n limit=1,\n ),\n *_base_inputs,\n StrInput(\n name=\"file_path_str\",\n display_name=\"File Path\",\n info=(\n \"Path to the file to read. Used when component is called as a tool. \"\n \"If not provided, will use the uploaded file from 'path' input.\"\n ),\n show=False,\n advanced=True,\n tool_mode=True, # Required for Toolset toggle, but _get_tools() ignores this parameter\n required=False,\n ),\n # AWS S3 specific inputs\n SecretStrInput(\n name=\"aws_access_key_id\",\n display_name=\"AWS Access Key ID\",\n info=\"AWS Access key ID.\",\n show=False,\n advanced=False,\n required=True,\n ),\n SecretStrInput(\n name=\"aws_secret_access_key\",\n display_name=\"AWS Secret Key\",\n info=\"AWS Secret Key.\",\n show=False,\n advanced=False,\n required=True,\n ),\n StrInput(\n name=\"bucket_name\",\n display_name=\"S3 Bucket Name\",\n info=\"Enter the name of the S3 bucket.\",\n show=False,\n advanced=False,\n required=True,\n ),\n StrInput(\n name=\"aws_region\",\n display_name=\"AWS Region\",\n info=\"AWS region (e.g., us-east-1, eu-west-1).\",\n show=False,\n advanced=False,\n ),\n StrInput(\n name=\"s3_file_key\",\n display_name=\"S3 File Key\",\n info=\"The key (path) of the file in S3 bucket.\",\n show=False,\n advanced=False,\n required=True,\n ),\n # Google Drive specific inputs\n SecretStrInput(\n name=\"service_account_key\",\n display_name=\"GCP Credentials Secret Key\",\n info=\"Your Google Cloud Platform service account JSON key as a secret string (complete JSON content).\",\n show=False,\n advanced=False,\n required=True,\n ),\n StrInput(\n name=\"file_id\",\n display_name=\"Google Drive File ID\",\n info=(\"The Google Drive file ID to read. The file must be shared with the service account email.\"),\n show=False,\n advanced=False,\n required=True,\n ),\n BoolInput(\n name=\"advanced_mode\",\n display_name=\"Advanced Parser\",\n value=False,\n real_time_refresh=True,\n info=(\n \"Enable advanced document processing and export with Docling for PDFs, images, and office documents. \"\n \"Note that advanced document processing can consume significant resources.\"\n ),\n # Disabled in cloud\n show=not is_astra_cloud_environment(),\n ),\n DropdownInput(\n name=\"pipeline\",\n display_name=\"Pipeline\",\n info=\"Docling pipeline to use\",\n options=[\"standard\", \"vlm\"],\n value=\"standard\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"ocr_engine\",\n display_name=\"OCR Engine\",\n info=\"OCR engine to use. Only available when pipeline is set to 'standard'.\",\n options=[\"None\", \"easyocr\"],\n value=\"easyocr\",\n show=False,\n advanced=True,\n ),\n StrInput(\n name=\"md_image_placeholder\",\n display_name=\"Image placeholder\",\n info=\"Specify the image placeholder for markdown exports.\",\n value=\"<!-- image -->\",\n advanced=True,\n show=False,\n ),\n StrInput(\n name=\"md_page_break_placeholder\",\n display_name=\"Page break placeholder\",\n info=\"Add this placeholder between pages in the markdown output.\",\n value=\"\",\n advanced=True,\n show=False,\n ),\n MessageTextInput(\n name=\"doc_key\",\n display_name=\"Doc Key\",\n info=\"The key to use for the DoclingDocument column.\",\n value=\"doc\",\n advanced=True,\n show=False,\n ),\n # Deprecated input retained for backward-compatibility.\n BoolInput(\n name=\"use_multithreading\",\n display_name=\"[Deprecated] Use Multithreading\",\n advanced=True,\n value=True,\n info=\"Set 'Processing Concurrency' greater than 1 to enable multithreading.\",\n ),\n IntInput(\n name=\"concurrency_multithreading\",\n display_name=\"Processing Concurrency\",\n advanced=True,\n info=\"When multiple files are being processed, the number of files to process concurrently.\",\n value=1,\n ),\n BoolInput(\n name=\"markdown\",\n display_name=\"Markdown Export\",\n info=\"Export processed documents to Markdown format. Only available when advanced mode is enabled.\",\n value=False,\n show=False,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n ]\n\n # ------------------------------ Tool description with file names --------------\n\n def get_tool_description(self) -> str:\n \"\"\"Return a dynamic description that includes the names of uploaded files.\n\n This helps the Agent understand which files are available to read.\n \"\"\"\n base_description = \"Loads and returns the content from uploaded files.\"\n\n # Get the list of uploaded file paths\n file_paths = getattr(self, \"path\", None)\n if not file_paths:\n return base_description\n\n # Ensure it's a list\n if not isinstance(file_paths, list):\n file_paths = [file_paths]\n\n # Extract just the file names from the paths\n file_names = []\n for fp in file_paths:\n if fp:\n name = Path(fp).name\n file_names.append(name)\n\n if file_names:\n files_str = \", \".join(file_names)\n return f\"{base_description} Available files: {files_str}. Call this tool to read these files.\"\n\n return base_description\n\n @property\n def description(self) -> str:\n \"\"\"Dynamic description property that includes uploaded file names.\"\"\"\n return self.get_tool_description()\n\n async def _get_tools(self) -> list:\n \"\"\"Override to create a tool without parameters.\n\n The Read File component should use the files already uploaded via UI,\n not accept file paths from the Agent (which wouldn't know the internal paths).\n \"\"\"\n from langchain_core.tools import StructuredTool\n from pydantic import BaseModel\n\n # Empty schema - no parameters needed\n class EmptySchema(BaseModel):\n \"\"\"No parameters required - uses pre-uploaded files.\"\"\"\n\n async def read_files_tool() -> str:\n \"\"\"Read the content of uploaded files.\"\"\"\n try:\n result = self.load_files_message()\n if hasattr(result, \"get_text\"):\n return result.get_text()\n if hasattr(result, \"text\"):\n return result.text\n return str(result)\n except (FileNotFoundError, ValueError, OSError, RuntimeError) as e:\n return f\"Error reading files: {e}\"\n\n description = self.get_tool_description()\n\n tool = StructuredTool(\n name=\"load_files_message\",\n description=description,\n coroutine=read_files_tool,\n args_schema=EmptySchema,\n handle_tool_error=True,\n tags=[\"load_files_message\"],\n metadata={\n \"display_name\": \"Read File\",\n \"display_description\": description,\n },\n )\n\n return [tool]\n\n # ------------------------------ UI helpers --------------------------------------\n\n def _path_value(self, template: dict) -> list[str]:\n \"\"\"Return the list of currently selected file paths from the template.\"\"\"\n return template.get(\"path\", {}).get(\"file_path\", [])\n\n def _disable_docling_fields_in_cloud(self, build_config: dict[str, Any]) -> None:\n \"\"\"Disable all Docling-related fields in cloud environments.\"\"\"\n if \"advanced_mode\" in build_config:\n build_config[\"advanced_mode\"][\"show\"] = False\n build_config[\"advanced_mode\"][\"value\"] = False\n # Hide all Docling-related fields\n docling_fields = (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\")\n for field in docling_fields:\n if field in build_config:\n build_config[field][\"show\"] = False\n # Also disable OCR engine specifically\n if \"ocr_engine\" in build_config:\n build_config[\"ocr_engine\"][\"value\"] = \"None\"\n\n def update_build_config(\n self,\n build_config: dict[str, Any],\n field_value: Any,\n field_name: str | None = None,\n ) -> dict[str, Any]:\n \"\"\"Show/hide Advanced Parser and related fields based on selection context.\"\"\"\n # Update storage location options dynamically based on cloud environment\n if \"storage_location\" in build_config:\n updated_options = _get_storage_location_options()\n build_config[\"storage_location\"][\"options\"] = updated_options\n\n # Handle storage location selection\n if field_name == \"storage_location\":\n # Extract selected storage location\n selected = [location[\"name\"] for location in field_value] if isinstance(field_value, list) else []\n\n # Hide all storage-specific fields first\n storage_fields = [\n \"aws_access_key_id\",\n \"aws_secret_access_key\",\n \"bucket_name\",\n \"aws_region\",\n \"s3_file_key\",\n \"service_account_key\",\n \"file_id\",\n ]\n\n for f_name in storage_fields:\n if f_name in build_config:\n build_config[f_name][\"show\"] = False\n\n # Show fields based on selected storage location\n if len(selected) == 1:\n location = selected[0]\n\n if location == \"Local\":\n # Show file upload input for local storage\n if \"path\" in build_config:\n build_config[\"path\"][\"show\"] = True\n\n elif location == \"AWS\":\n # Hide file upload input, show AWS fields\n if \"path\" in build_config:\n build_config[\"path\"][\"show\"] = False\n\n aws_fields = [\n \"aws_access_key_id\",\n \"aws_secret_access_key\",\n \"bucket_name\",\n \"aws_region\",\n \"s3_file_key\",\n ]\n for f_name in aws_fields:\n if f_name in build_config:\n build_config[f_name][\"show\"] = True\n build_config[f_name][\"advanced\"] = False\n\n elif location == \"Google Drive\":\n # Hide file upload input, show Google Drive fields\n if \"path\" in build_config:\n build_config[\"path\"][\"show\"] = False\n\n gdrive_fields = [\"service_account_key\", \"file_id\"]\n for f_name in gdrive_fields:\n if f_name in build_config:\n build_config[f_name][\"show\"] = True\n build_config[f_name][\"advanced\"] = False\n # No storage location selected - show file upload by default\n elif \"path\" in build_config:\n build_config[\"path\"][\"show\"] = True\n\n return build_config\n\n if field_name == \"path\":\n paths = self._path_value(build_config)\n\n # Disable in cloud environments\n if is_astra_cloud_environment():\n self._disable_docling_fields_in_cloud(build_config)\n else:\n # If all files can be processed by docling, do so\n allow_advanced = all(not file_path.endswith((\".csv\", \".xlsx\", \".parquet\")) for file_path in paths)\n build_config[\"advanced_mode\"][\"show\"] = allow_advanced\n if not allow_advanced:\n build_config[\"advanced_mode\"][\"value\"] = False\n docling_fields = (\n \"pipeline\",\n \"ocr_engine\",\n \"doc_key\",\n \"md_image_placeholder\",\n \"md_page_break_placeholder\",\n )\n for field in docling_fields:\n if field in build_config:\n build_config[field][\"show\"] = False\n\n # Docling Processing\n elif field_name == \"advanced_mode\":\n # Disable in cloud environments - don't show Docling fields even if advanced_mode is toggled\n if is_astra_cloud_environment():\n self._disable_docling_fields_in_cloud(build_config)\n else:\n docling_fields = (\n \"pipeline\",\n \"ocr_engine\",\n \"doc_key\",\n \"md_image_placeholder\",\n \"md_page_break_placeholder\",\n )\n for field in docling_fields:\n if field in build_config:\n build_config[field][\"show\"] = bool(field_value)\n if field == \"pipeline\":\n build_config[field][\"advanced\"] = not bool(field_value)\n\n elif field_name == \"pipeline\":\n # Disable in cloud environments - don't show OCR engine even if pipeline is changed\n if is_astra_cloud_environment():\n self._disable_docling_fields_in_cloud(build_config)\n elif field_value == \"standard\":\n build_config[\"ocr_engine\"][\"show\"] = True\n build_config[\"ocr_engine\"][\"value\"] = \"easyocr\"\n else:\n build_config[\"ocr_engine\"][\"show\"] = False\n build_config[\"ocr_engine\"][\"value\"] = \"None\"\n\n return build_config\n\n def update_outputs(self, frontend_node: dict[str, Any], field_name: str, field_value: Any) -> dict[str, Any]: # noqa: ARG002\n \"\"\"Dynamically show outputs based on file count/type and advanced mode.\"\"\"\n if field_name not in [\"path\", \"advanced_mode\", \"pipeline\"]:\n return frontend_node\n\n template = frontend_node.get(\"template\", {})\n paths = self._path_value(template)\n if not paths:\n return frontend_node\n\n frontend_node[\"outputs\"] = []\n if len(paths) == 1:\n file_path = paths[0] if field_name == \"path\" else frontend_node[\"template\"][\"path\"][\"file_path\"][0]\n if file_path.endswith((\".csv\", \".xlsx\", \".parquet\")):\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Content\",\n name=\"dataframe\",\n method=\"load_files_structured\",\n tool_mode=True,\n ),\n )\n elif file_path.endswith(\".json\"):\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Content\", name=\"json\", method=\"load_files_json\", tool_mode=True),\n )\n\n advanced_mode = frontend_node.get(\"template\", {}).get(\"advanced_mode\", {}).get(\"value\", False)\n if advanced_mode:\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Output\",\n name=\"advanced_dataframe\",\n method=\"load_files_dataframe\",\n tool_mode=True,\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Markdown\", name=\"advanced_markdown\", method=\"load_files_markdown\", tool_mode=True\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n # Multiple files => DataFrame output; advanced parser disabled\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Files\", name=\"dataframe\", method=\"load_files\", tool_mode=True)\n )\n\n return frontend_node\n\n # ------------------------------ Core processing ----------------------------------\n\n def _get_selected_storage_location(self) -> str:\n \"\"\"Get the selected storage location from the SortableListInput.\"\"\"\n if hasattr(self, \"storage_location\") and self.storage_location:\n if isinstance(self.storage_location, list) and len(self.storage_location) > 0:\n return self.storage_location[0].get(\"name\", \"\")\n if isinstance(self.storage_location, dict):\n return self.storage_location.get(\"name\", \"\")\n return \"Local\" # Default to Local if not specified\n\n def _validate_and_resolve_paths(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Override to handle file_path_str input from tool mode and cloud storage.\n\n Priority:\n 1. Cloud storage (AWS/Google Drive) if selected\n 2. file_path_str (if provided by the tool call)\n 3. path (uploaded file from UI)\n \"\"\"\n storage_location = self._get_selected_storage_location()\n\n # Handle AWS S3\n if storage_location == \"AWS\":\n return self._read_from_aws_s3()\n\n # Handle Google Drive\n if storage_location == \"Google Drive\":\n return self._read_from_google_drive()\n\n # Handle Local storage\n # Check if file_path_str is provided (from tool mode)\n file_path_str = getattr(self, \"file_path_str\", None)\n if file_path_str:\n # Use the string path from tool mode\n from pathlib import Path\n\n from lfx.schema.data import Data\n\n resolved_path = Path(self.resolve_path(file_path_str))\n if not resolved_path.exists():\n msg = f\"File or directory not found: {file_path_str}\"\n self.log(msg)\n if not self.silent_errors:\n raise ValueError(msg)\n return []\n\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(resolved_path)})\n return [BaseFileComponent.BaseFile(data_obj, resolved_path, delete_after_processing=False)]\n\n # Otherwise use the default implementation (uses path FileInput)\n return super()._validate_and_resolve_paths()\n\n def _read_from_aws_s3(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Read file from AWS S3.\"\"\"\n from lfx.base.data.cloud_storage_utils import create_s3_client, validate_aws_credentials\n\n # Validate AWS credentials\n validate_aws_credentials(self)\n if not getattr(self, \"s3_file_key\", None):\n msg = \"S3 File Key is required\"\n raise ValueError(msg)\n\n # Create S3 client\n s3_client = create_s3_client(self)\n\n # Download file to temp location\n import tempfile\n\n # Get file extension from S3 key\n file_extension = Path(self.s3_file_key).suffix or \"\"\n\n with tempfile.NamedTemporaryFile(mode=\"wb\", suffix=file_extension, delete=False) as temp_file:\n temp_file_path = temp_file.name\n try:\n s3_client.download_fileobj(self.bucket_name, self.s3_file_key, temp_file)\n except Exception as e:\n # Clean up temp file on failure\n with contextlib.suppress(OSError):\n Path(temp_file_path).unlink()\n msg = f\"Failed to download file from S3: {e}\"\n raise RuntimeError(msg) from e\n\n # Create BaseFile object\n from lfx.schema.data import Data\n\n temp_path = Path(temp_file_path)\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(temp_path)})\n return [BaseFileComponent.BaseFile(data_obj, temp_path, delete_after_processing=True)]\n\n def _read_from_google_drive(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Read file from Google Drive.\"\"\"\n import tempfile\n\n from googleapiclient.http import MediaIoBaseDownload\n\n from lfx.base.data.cloud_storage_utils import create_google_drive_service\n\n # Validate Google Drive credentials\n if not getattr(self, \"service_account_key\", None):\n msg = \"GCP Credentials Secret Key is required for Google Drive storage\"\n raise ValueError(msg)\n if not getattr(self, \"file_id\", None):\n msg = \"Google Drive File ID is required\"\n raise ValueError(msg)\n\n # Create Google Drive service with read-only scope\n drive_service = create_google_drive_service(\n self.service_account_key, scopes=[\"https://www.googleapis.com/auth/drive.readonly\"]\n )\n\n # Get file metadata to determine file name and extension\n try:\n file_metadata = drive_service.files().get(fileId=self.file_id, fields=\"name,mimeType\").execute()\n file_name = file_metadata.get(\"name\", \"download\")\n except Exception as e:\n msg = (\n f\"Unable to access file with ID '{self.file_id}'. \"\n f\"Error: {e!s}. \"\n \"Please ensure: 1) The file ID is correct, 2) The file exists, \"\n \"3) The service account has been granted access to this file.\"\n )\n raise ValueError(msg) from e\n\n # Download file to temp location\n file_extension = Path(file_name).suffix or \"\"\n with tempfile.NamedTemporaryFile(mode=\"wb\", suffix=file_extension, delete=False) as temp_file:\n temp_file_path = temp_file.name\n try:\n request = drive_service.files().get_media(fileId=self.file_id)\n downloader = MediaIoBaseDownload(temp_file, request)\n done = False\n while not done:\n _status, done = downloader.next_chunk()\n except Exception as e:\n # Clean up temp file on failure\n with contextlib.suppress(OSError):\n Path(temp_file_path).unlink()\n msg = f\"Failed to download file from Google Drive: {e}\"\n raise RuntimeError(msg) from e\n\n # Create BaseFile object\n from lfx.schema.data import Data\n\n temp_path = Path(temp_file_path)\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(temp_path)})\n return [BaseFileComponent.BaseFile(data_obj, temp_path, delete_after_processing=True)]\n\n def _is_docling_compatible(self, file_path: str) -> bool:\n \"\"\"Lightweight extension gate for Docling-compatible types.\"\"\"\n docling_exts = (\n \".adoc\",\n \".asciidoc\",\n \".asc\",\n \".bmp\",\n \".csv\",\n \".dotx\",\n \".dotm\",\n \".docm\",\n \".docx\",\n \".htm\",\n \".html\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".md\",\n \".pdf\",\n \".png\",\n \".potx\",\n \".ppsx\",\n \".pptm\",\n \".potm\",\n \".ppsm\",\n \".pptx\",\n \".tiff\",\n \".txt\",\n \".xls\",\n \".xlsx\",\n \".xhtml\",\n \".xml\",\n \".webp\",\n )\n return file_path.lower().endswith(docling_exts)\n\n async def _get_local_file_for_docling(self, file_path: str) -> tuple[str, bool]:\n \"\"\"Get a local file path for Docling processing, downloading from S3 if needed.\n\n Args:\n file_path: Either a local path or S3 key (format \"flow_id/filename\")\n\n Returns:\n tuple[str, bool]: (local_path, should_delete) where should_delete indicates\n if this is a temporary file that should be cleaned up\n \"\"\"\n settings = get_settings_service().settings\n if settings.storage_type == \"local\":\n return file_path, False\n\n # S3 storage - download to temp file\n parsed = parse_storage_path(file_path)\n if not parsed:\n msg = f\"Invalid S3 path format: {file_path}. Expected 'flow_id/filename'\"\n raise ValueError(msg)\n\n storage_service = get_storage_service()\n flow_id, filename = parsed\n\n # Get file content from S3\n content = await storage_service.get_file(flow_id, filename)\n\n suffix = Path(filename).suffix\n with NamedTemporaryFile(mode=\"wb\", suffix=suffix, delete=False) as tmp_file:\n tmp_file.write(content)\n temp_path = tmp_file.name\n\n return temp_path, True\n\n def _process_docling_in_subprocess(self, file_path: str) -> Data | None:\n \"\"\"Run Docling in a separate OS process and map the result to a Data object.\n\n We avoid multiprocessing pickling by launching `python -c \"<script>\"` and\n passing JSON config via stdin. The child prints a JSON result to stdout.\n\n For S3 storage, the file is downloaded to a temp file first.\n \"\"\"\n if not file_path:\n return None\n\n settings = get_settings_service().settings\n if settings.storage_type == \"s3\":\n local_path, should_delete = run_until_complete(self._get_local_file_for_docling(file_path))\n else:\n local_path = file_path\n should_delete = False\n\n try:\n return self._process_docling_subprocess_impl(local_path, file_path)\n finally:\n # Clean up temp file if we created one\n if should_delete:\n with contextlib.suppress(Exception):\n Path(local_path).unlink() # Ignore cleanup errors\n\n def _process_docling_subprocess_impl(self, local_file_path: str, original_file_path: str) -> Data | None:\n \"\"\"Implementation of Docling subprocess processing.\n\n Args:\n local_file_path: Path to local file to process\n original_file_path: Original file path to include in metadata\n Returns:\n Data object with processed content\n \"\"\"\n args: dict[str, Any] = {\n \"file_path\": local_file_path,\n \"markdown\": bool(self.markdown),\n \"image_mode\": str(self.IMAGE_MODE),\n \"md_image_placeholder\": str(self.md_image_placeholder),\n \"md_page_break_placeholder\": str(self.md_page_break_placeholder),\n \"pipeline\": str(self.pipeline),\n \"ocr_engine\": (\n self.ocr_engine if self.ocr_engine and self.ocr_engine != \"None\" and self.pipeline != \"vlm\" else None\n ),\n }\n\n # Child script for isolating the docling processing\n child_script = textwrap.dedent(\n r\"\"\"\n import json, sys\n\n def try_imports():\n try:\n from docling.datamodel.base_models import ConversionStatus, InputFormat # type: ignore\n from docling.document_converter import DocumentConverter # type: ignore\n from docling_core.types.doc import ImageRefMode # type: ignore\n return ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, \"latest\"\n except Exception as e:\n raise e\n\n def create_converter(strategy, input_format, DocumentConverter, pipeline, ocr_engine):\n # --- Standard PDF/IMAGE pipeline (your existing behavior), with optional OCR ---\n if pipeline == \"standard\":\n try:\n from docling.datamodel.pipeline_options import PdfPipelineOptions # type: ignore\n from docling.document_converter import PdfFormatOption # type: ignore\n\n pipe = PdfPipelineOptions()\n pipe.do_ocr = False\n\n if ocr_engine:\n try:\n from docling.models.factories import get_ocr_factory # type: ignore\n pipe.do_ocr = True\n fac = get_ocr_factory(allow_external_plugins=False)\n pipe.ocr_options = fac.create_options(kind=ocr_engine)\n except Exception:\n # If OCR setup fails, disable it\n pipe.do_ocr = False\n\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(pipeline_options=pipe)\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(pipeline_options=pipe)\n\n return DocumentConverter(format_options=fmt)\n except Exception:\n return DocumentConverter()\n\n # --- Vision-Language Model (VLM) pipeline ---\n if pipeline == \"vlm\":\n try:\n from docling.datamodel.pipeline_options import VlmPipelineOptions\n from docling.datamodel.vlm_model_specs import GRANITEDOCLING_MLX, GRANITEDOCLING_TRANSFORMERS\n from docling.document_converter import PdfFormatOption\n from docling.pipeline.vlm_pipeline import VlmPipeline\n\n vl_pipe = VlmPipelineOptions(\n vlm_options=GRANITEDOCLING_TRANSFORMERS,\n )\n\n if sys.platform == \"darwin\":\n try:\n import mlx_vlm\n vl_pipe.vlm_options = GRANITEDOCLING_MLX\n except ImportError as e:\n raise e\n\n # VLM paths generally don't need OCR; keep OCR off by default here.\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n\n return DocumentConverter(format_options=fmt)\n except Exception as e:\n raise e\n\n # --- Fallback: default converter with no special options ---\n return DocumentConverter()\n\n def export_markdown(document, ImageRefMode, image_mode, img_ph, pg_ph):\n try:\n mode = getattr(ImageRefMode, image_mode.upper(), image_mode)\n return document.export_to_markdown(\n image_mode=mode,\n image_placeholder=img_ph,\n page_break_placeholder=pg_ph,\n )\n except Exception:\n try:\n return document.export_to_text()\n except Exception:\n return str(document)\n\n def to_rows(doc_dict):\n rows = []\n for t in doc_dict.get(\"texts\", []):\n prov = t.get(\"prov\") or []\n page_no = None\n if prov and isinstance(prov, list) and isinstance(prov[0], dict):\n page_no = prov[0].get(\"page_no\")\n rows.append({\n \"page_no\": page_no,\n \"label\": t.get(\"label\"),\n \"text\": t.get(\"text\"),\n \"level\": t.get(\"level\"),\n })\n return rows\n\n def main():\n cfg = json.loads(sys.stdin.read())\n file_path = cfg[\"file_path\"]\n markdown = cfg[\"markdown\"]\n image_mode = cfg[\"image_mode\"]\n img_ph = cfg[\"md_image_placeholder\"]\n pg_ph = cfg[\"md_page_break_placeholder\"]\n pipeline = cfg[\"pipeline\"]\n ocr_engine = cfg.get(\"ocr_engine\")\n meta = {\"file_path\": file_path}\n\n try:\n ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, strategy = try_imports()\n converter = create_converter(strategy, InputFormat, DocumentConverter, pipeline, ocr_engine)\n try:\n res = converter.convert(file_path)\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling conversion error: {e}\", \"meta\": meta}))\n return\n\n ok = False\n if hasattr(res, \"status\"):\n try:\n ok = (res.status == ConversionStatus.SUCCESS) or (str(res.status).lower() == \"success\")\n except Exception:\n ok = (str(res.status).lower() == \"success\")\n if not ok and hasattr(res, \"document\"):\n ok = getattr(res, \"document\", None) is not None\n if not ok:\n print(json.dumps({\"ok\": False, \"error\": \"Docling conversion failed\", \"meta\": meta}))\n return\n\n doc = getattr(res, \"document\", None)\n if doc is None:\n print(json.dumps({\"ok\": False, \"error\": \"Docling produced no document\", \"meta\": meta}))\n return\n\n if markdown:\n text = export_markdown(doc, ImageRefMode, image_mode, img_ph, pg_ph)\n print(json.dumps({\"ok\": True, \"mode\": \"markdown\", \"text\": text, \"meta\": meta}))\n return\n\n # structured\n try:\n doc_dict = doc.export_to_dict()\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling export_to_dict failed: {e}\", \"meta\": meta}))\n return\n\n rows = to_rows(doc_dict)\n print(json.dumps({\"ok\": True, \"mode\": \"structured\", \"doc\": rows, \"meta\": meta}))\n except Exception as e:\n print(\n json.dumps({\n \"ok\": False,\n \"error\": f\"Docling processing error: {e}\",\n \"meta\": {\"file_path\": file_path},\n })\n )\n\n if __name__ == \"__main__\":\n main()\n \"\"\"\n )\n\n # Validate file_path to avoid command injection or unsafe input\n if not isinstance(args[\"file_path\"], str) or any(c in args[\"file_path\"] for c in [\";\", \"|\", \"&\", \"$\", \"`\"]):\n return Data(data={\"error\": \"Unsafe file path detected.\", \"file_path\": args[\"file_path\"]})\n\n proc = subprocess.run( # noqa: S603\n [sys.executable, \"-u\", \"-c\", child_script],\n input=json.dumps(args).encode(\"utf-8\"),\n capture_output=True,\n check=False,\n )\n\n if not proc.stdout:\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\") if proc.stderr else \"no output from child process\"\n return Data(data={\"error\": f\"Docling subprocess error: {err_msg}\", \"file_path\": original_file_path})\n\n try:\n result = json.loads(proc.stdout.decode(\"utf-8\"))\n except Exception as e: # noqa: BLE001\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\")\n return Data(\n data={\n \"error\": f\"Invalid JSON from Docling subprocess: {e}. stderr={err_msg}\",\n \"file_path\": original_file_path,\n },\n )\n\n if not result.get(\"ok\"):\n error_msg = result.get(\"error\", \"Unknown Docling error\")\n # Override meta file_path with original_file_path to ensure correct path matching\n meta = result.get(\"meta\", {})\n meta[\"file_path\"] = original_file_path\n return Data(data={\"error\": error_msg, **meta})\n\n meta = result.get(\"meta\", {})\n # Override meta file_path with original_file_path to ensure correct path matching\n # The subprocess returns the temp file path, but we need the original S3/local path for rollup_data\n meta[\"file_path\"] = original_file_path\n if result.get(\"mode\") == \"markdown\":\n exported_content = str(result.get(\"text\", \"\"))\n return Data(\n text=exported_content,\n data={\"exported_content\": exported_content, \"export_format\": self.EXPORT_FORMAT, **meta},\n )\n\n rows = list(result.get(\"doc\", []))\n return Data(data={\"doc\": rows, \"export_format\": self.EXPORT_FORMAT, **meta})\n\n def process_files(\n self,\n file_list: list[BaseFileComponent.BaseFile],\n ) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Process input files.\n\n - advanced_mode => Docling in a separate process.\n - Otherwise => standard parsing in current process (optionally threaded).\n \"\"\"\n if not file_list:\n msg = \"No files to process.\"\n raise ValueError(msg)\n\n # Validate image files to detect content/extension mismatches\n # This prevents API errors like \"Image does not match the provided media type\"\n image_extensions = {\"jpeg\", \"jpg\", \"png\", \"gif\", \"webp\", \"bmp\", \"tiff\"}\n settings = get_settings_service().settings\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in image_extensions:\n # Read bytes based on storage type\n try:\n if settings.storage_type == \"s3\":\n # For S3 storage, use storage service to read file bytes\n file_path_str = str(file.path)\n content = run_until_complete(read_file_bytes(file_path_str))\n else:\n # For local storage, read bytes directly from filesystem\n content = file.path.read_bytes()\n\n is_valid, error_msg = validate_image_content_type(\n str(file.path),\n content=content,\n )\n if not is_valid:\n self.log(error_msg)\n if not self.silent_errors:\n raise ValueError(error_msg)\n except (OSError, FileNotFoundError) as e:\n self.log(f\"Could not read file for validation: {e}\")\n # Continue - let it fail later with better error\n\n # Validate that files requiring Docling are only processed when advanced mode is enabled\n if not self.advanced_mode:\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in self.DOCLING_ONLY_EXTENSIONS:\n if is_astra_cloud_environment():\n msg = (\n f\"File '{file.path.name}' has extension '.{extension}' which requires \"\n f\"Advanced Parser mode. Advanced Parser is not available in cloud environments.\"\n )\n else:\n msg = (\n f\"File '{file.path.name}' has extension '.{extension}' which requires \"\n f\"Advanced Parser mode. Please enable 'Advanced Parser' to process this file.\"\n )\n self.log(msg)\n raise ValueError(msg)\n\n def process_file_standard(file_path: str, *, silent_errors: bool = False) -> Data | None:\n try:\n return parse_text_file_to_data(file_path, silent_errors=silent_errors)\n except FileNotFoundError as e:\n self.log(f\"File not found: {file_path}. Error: {e}\")\n if not silent_errors:\n raise\n return None\n except Exception as e:\n self.log(f\"Unexpected error processing {file_path}: {e}\")\n if not silent_errors:\n raise\n return None\n\n docling_compatible = all(self._is_docling_compatible(str(f.path)) for f in file_list)\n\n # Advanced path: Check if ALL files are compatible with Docling\n if self.advanced_mode and docling_compatible:\n final_return: list[BaseFileComponent.BaseFile] = []\n for file in file_list:\n file_path = str(file.path)\n advanced_data: Data | None = self._process_docling_in_subprocess(file_path)\n\n # Handle None case - Docling processing failed or returned None\n if advanced_data is None:\n error_data = Data(\n data={\n \"file_path\": file_path,\n \"error\": \"Docling processing returned no result. Check logs for details.\",\n },\n )\n final_return.extend(self.rollup_data([file], [error_data]))\n continue\n\n # --- UNNEST: expand each element in `doc` to its own Data row\n payload = getattr(advanced_data, \"data\", {}) or {}\n\n # Check for errors first\n if \"error\" in payload:\n error_msg = payload.get(\"error\", \"Unknown error\")\n error_data = Data(\n data={\n \"file_path\": file_path,\n \"error\": error_msg,\n **{k: v for k, v in payload.items() if k not in (\"error\", \"file_path\")},\n },\n )\n final_return.extend(self.rollup_data([file], [error_data]))\n continue\n\n doc_rows = payload.get(\"doc\")\n if isinstance(doc_rows, list) and doc_rows:\n # Non-empty list of structured rows\n rows: list[Data | None] = [\n Data(\n data={\n \"file_path\": file_path,\n **(item if isinstance(item, dict) else {\"value\": item}),\n },\n )\n for item in doc_rows\n ]\n final_return.extend(self.rollup_data([file], rows))\n elif isinstance(doc_rows, list) and not doc_rows:\n # Empty list - file was processed but no text content found\n # Create a Data object indicating no content was extracted\n self.log(f\"No text extracted from '{file_path}', creating placeholder data\")\n empty_data = Data(\n data={\n \"file_path\": file_path,\n \"text\": \"(No text content extracted from image)\",\n \"info\": \"Image processed successfully but contained no extractable text\",\n **{k: v for k, v in payload.items() if k != \"doc\"},\n },\n )\n final_return.extend(self.rollup_data([file], [empty_data]))\n else:\n # If not structured, keep as-is (e.g., markdown export or error dict)\n # Ensure file_path is set for proper rollup matching\n if not payload.get(\"file_path\"):\n payload[\"file_path\"] = file_path\n # Create new Data with file_path\n advanced_data = Data(\n data=payload,\n text=getattr(advanced_data, \"text\", None),\n )\n final_return.extend(self.rollup_data([file], [advanced_data]))\n return final_return\n\n # Standard multi-file (or single non-advanced) path\n concurrency = 1 if not self.use_multithreading else max(1, self.concurrency_multithreading)\n\n file_paths = [str(f.path) for f in file_list]\n self.log(f\"Starting parallel processing of {len(file_paths)} files with concurrency: {concurrency}.\")\n my_data = parallel_load_data(\n file_paths,\n silent_errors=self.silent_errors,\n load_function=process_file_standard,\n max_concurrency=concurrency,\n )\n return self.rollup_data(file_list, my_data)\n\n # ------------------------------ Output helpers -----------------------------------\n\n def load_files_helper(self) -> DataFrame:\n result = self.load_files()\n\n # Result is a DataFrame - check if it has any rows\n if result.empty:\n msg = \"Could not extract content from the provided file(s).\"\n raise ValueError(msg)\n\n # Check for error column with error messages\n if \"error\" in result.columns:\n errors = result[\"error\"].dropna().tolist()\n if errors and not any(col in result.columns for col in [\"text\", \"doc\", \"exported_content\"]):\n raise ValueError(errors[0])\n\n return result\n\n def load_files_dataframe(self) -> DataFrame:\n \"\"\"Load files using advanced Docling processing and export to DataFrame format.\"\"\"\n self.markdown = False\n return self.load_files_helper()\n\n def load_files_markdown(self) -> Message:\n \"\"\"Load files using advanced Docling processing and export to Markdown format.\"\"\"\n self.markdown = True\n result = self.load_files_helper()\n\n # Result is a DataFrame - check for text or exported_content columns\n if \"text\" in result.columns and not result[\"text\"].isna().all():\n text_values = result[\"text\"].dropna().tolist()\n if text_values:\n return Message(text=str(text_values[0]))\n\n if \"exported_content\" in result.columns and not result[\"exported_content\"].isna().all():\n content_values = result[\"exported_content\"].dropna().tolist()\n if content_values:\n return Message(text=str(content_values[0]))\n\n # Return empty message with info that no text was found\n return Message(text=\"(No text content extracted from file)\")\n"
|
|
2807
2827
|
},
|
|
2808
|
-
"
|
|
2809
|
-
"_input_type": "
|
|
2810
|
-
"advanced":
|
|
2811
|
-
"display_name": "
|
|
2828
|
+
"concurrency_multithreading": {
|
|
2829
|
+
"_input_type": "IntInput",
|
|
2830
|
+
"advanced": true,
|
|
2831
|
+
"display_name": "Processing Concurrency",
|
|
2812
2832
|
"dynamic": false,
|
|
2813
|
-
"info": "
|
|
2814
|
-
"input_types": [
|
|
2815
|
-
"Message"
|
|
2816
|
-
],
|
|
2833
|
+
"info": "When multiple files are being processed, the number of files to process concurrently.",
|
|
2817
2834
|
"list": false,
|
|
2818
2835
|
"list_add_label": "Add More",
|
|
2819
|
-
"
|
|
2820
|
-
"name": "input_value",
|
|
2821
|
-
"override_skip": false,
|
|
2836
|
+
"name": "concurrency_multithreading",
|
|
2822
2837
|
"placeholder": "",
|
|
2823
2838
|
"required": false,
|
|
2824
2839
|
"show": true,
|
|
2825
2840
|
"title_case": false,
|
|
2826
2841
|
"tool_mode": false,
|
|
2827
|
-
"trace_as_input": true,
|
|
2828
2842
|
"trace_as_metadata": true,
|
|
2829
|
-
"
|
|
2830
|
-
"
|
|
2831
|
-
"value": ""
|
|
2843
|
+
"type": "int",
|
|
2844
|
+
"value": 1
|
|
2832
2845
|
},
|
|
2833
|
-
"
|
|
2834
|
-
|
|
2835
|
-
"
|
|
2836
|
-
"
|
|
2837
|
-
"display_name": "Language Model",
|
|
2846
|
+
"delete_server_file_after_processing": {
|
|
2847
|
+
"_input_type": "BoolInput",
|
|
2848
|
+
"advanced": true,
|
|
2849
|
+
"display_name": "Delete Server File After Processing",
|
|
2838
2850
|
"dynamic": false,
|
|
2839
|
-
"
|
|
2840
|
-
"fields": {
|
|
2841
|
-
"data": {
|
|
2842
|
-
"node": {
|
|
2843
|
-
"display_name": "Connect other models",
|
|
2844
|
-
"icon": "CornerDownLeft",
|
|
2845
|
-
"name": "connect_other_models"
|
|
2846
|
-
}
|
|
2847
|
-
}
|
|
2848
|
-
}
|
|
2849
|
-
},
|
|
2850
|
-
"info": "Select your model provider",
|
|
2851
|
-
"input_types": [],
|
|
2851
|
+
"info": "If true, the Server File Path will be deleted after processing.",
|
|
2852
2852
|
"list": false,
|
|
2853
2853
|
"list_add_label": "Add More",
|
|
2854
|
-
"
|
|
2855
|
-
"
|
|
2856
|
-
"
|
|
2857
|
-
{
|
|
2858
|
-
"category": "OpenAI",
|
|
2859
|
-
"icon": "OpenAI",
|
|
2860
|
-
"metadata": {
|
|
2861
|
-
"api_key_param": "api_key",
|
|
2862
|
-
"context_length": 128000,
|
|
2863
|
-
"model_class": "ChatOpenAI",
|
|
2864
|
-
"model_name_param": "model",
|
|
2865
|
-
"reasoning_models": [
|
|
2866
|
-
"gpt-5"
|
|
2867
|
-
]
|
|
2868
|
-
},
|
|
2869
|
-
"name": "gpt-5",
|
|
2870
|
-
"provider": "OpenAI"
|
|
2871
|
-
},
|
|
2872
|
-
{
|
|
2873
|
-
"category": "OpenAI",
|
|
2874
|
-
"icon": "OpenAI",
|
|
2875
|
-
"metadata": {
|
|
2876
|
-
"api_key_param": "api_key",
|
|
2877
|
-
"context_length": 128000,
|
|
2878
|
-
"model_class": "ChatOpenAI",
|
|
2879
|
-
"model_name_param": "model",
|
|
2880
|
-
"reasoning_models": [
|
|
2881
|
-
"gpt-5-mini"
|
|
2882
|
-
]
|
|
2883
|
-
},
|
|
2884
|
-
"name": "gpt-5-mini",
|
|
2885
|
-
"provider": "OpenAI"
|
|
2886
|
-
},
|
|
2887
|
-
{
|
|
2888
|
-
"category": "OpenAI",
|
|
2889
|
-
"icon": "OpenAI",
|
|
2890
|
-
"metadata": {
|
|
2891
|
-
"api_key_param": "api_key",
|
|
2892
|
-
"context_length": 128000,
|
|
2893
|
-
"model_class": "ChatOpenAI",
|
|
2894
|
-
"model_name_param": "model",
|
|
2895
|
-
"reasoning_models": [
|
|
2896
|
-
"gpt-5-nano"
|
|
2897
|
-
]
|
|
2898
|
-
},
|
|
2899
|
-
"name": "gpt-5-nano",
|
|
2900
|
-
"provider": "OpenAI"
|
|
2901
|
-
},
|
|
2902
|
-
{
|
|
2903
|
-
"category": "OpenAI",
|
|
2904
|
-
"icon": "OpenAI",
|
|
2905
|
-
"metadata": {
|
|
2906
|
-
"api_key_param": "api_key",
|
|
2907
|
-
"context_length": 128000,
|
|
2908
|
-
"model_class": "ChatOpenAI",
|
|
2909
|
-
"model_name_param": "model"
|
|
2910
|
-
},
|
|
2911
|
-
"name": "gpt-4o-mini",
|
|
2912
|
-
"provider": "OpenAI"
|
|
2913
|
-
},
|
|
2914
|
-
{
|
|
2915
|
-
"category": "OpenAI",
|
|
2916
|
-
"icon": "OpenAI",
|
|
2917
|
-
"metadata": {
|
|
2918
|
-
"api_key_param": "api_key",
|
|
2919
|
-
"context_length": 128000,
|
|
2920
|
-
"model_class": "ChatOpenAI",
|
|
2921
|
-
"model_name_param": "model"
|
|
2922
|
-
},
|
|
2923
|
-
"name": "gpt-4o",
|
|
2924
|
-
"provider": "OpenAI"
|
|
2925
|
-
},
|
|
2926
|
-
{
|
|
2927
|
-
"category": "Google Generative AI",
|
|
2928
|
-
"icon": "GoogleGenerativeAI",
|
|
2929
|
-
"metadata": {
|
|
2930
|
-
"is_disabled_provider": true,
|
|
2931
|
-
"variable_name": "GOOGLE_API_KEY"
|
|
2932
|
-
},
|
|
2933
|
-
"name": "__enable_provider_Google Generative AI__",
|
|
2934
|
-
"provider": "Google Generative AI"
|
|
2935
|
-
},
|
|
2936
|
-
{
|
|
2937
|
-
"category": "Ollama",
|
|
2938
|
-
"icon": "Ollama",
|
|
2939
|
-
"metadata": {
|
|
2940
|
-
"is_disabled_provider": true,
|
|
2941
|
-
"variable_name": "OLLAMA_BASE_URL"
|
|
2942
|
-
},
|
|
2943
|
-
"name": "__enable_provider_Ollama__",
|
|
2944
|
-
"provider": "Ollama"
|
|
2945
|
-
},
|
|
2946
|
-
{
|
|
2947
|
-
"category": "IBM Watsonx",
|
|
2948
|
-
"icon": "WatsonxAI",
|
|
2949
|
-
"metadata": {
|
|
2950
|
-
"is_disabled_provider": true,
|
|
2951
|
-
"variable_name": "WATSONX_APIKEY"
|
|
2952
|
-
},
|
|
2953
|
-
"name": "__enable_provider_IBM Watsonx__",
|
|
2954
|
-
"provider": "IBM Watsonx"
|
|
2955
|
-
}
|
|
2956
|
-
],
|
|
2957
|
-
"override_skip": false,
|
|
2958
|
-
"placeholder": "Setup Provider",
|
|
2959
|
-
"real_time_refresh": true,
|
|
2960
|
-
"refresh_button": true,
|
|
2961
|
-
"required": true,
|
|
2854
|
+
"name": "delete_server_file_after_processing",
|
|
2855
|
+
"placeholder": "",
|
|
2856
|
+
"required": false,
|
|
2962
2857
|
"show": true,
|
|
2963
2858
|
"title_case": false,
|
|
2964
2859
|
"tool_mode": false,
|
|
2965
|
-
"
|
|
2966
|
-
"
|
|
2967
|
-
"
|
|
2968
|
-
"value": [
|
|
2969
|
-
{
|
|
2970
|
-
"category": "OpenAI",
|
|
2971
|
-
"icon": "OpenAI",
|
|
2972
|
-
"metadata": {
|
|
2973
|
-
"api_key_param": "api_key",
|
|
2974
|
-
"context_length": 128000,
|
|
2975
|
-
"model_class": "ChatOpenAI",
|
|
2976
|
-
"model_name_param": "model",
|
|
2977
|
-
"reasoning_models": [
|
|
2978
|
-
"gpt-5"
|
|
2979
|
-
]
|
|
2980
|
-
},
|
|
2981
|
-
"name": "gpt-5",
|
|
2982
|
-
"provider": "OpenAI"
|
|
2983
|
-
}
|
|
2984
|
-
]
|
|
2860
|
+
"trace_as_metadata": true,
|
|
2861
|
+
"type": "bool",
|
|
2862
|
+
"value": true
|
|
2985
2863
|
},
|
|
2986
|
-
"
|
|
2987
|
-
"_input_type": "
|
|
2988
|
-
"advanced":
|
|
2989
|
-
"display_name": "
|
|
2864
|
+
"doc_key": {
|
|
2865
|
+
"_input_type": "MessageTextInput",
|
|
2866
|
+
"advanced": true,
|
|
2867
|
+
"display_name": "Doc Key",
|
|
2990
2868
|
"dynamic": false,
|
|
2991
|
-
"info": "
|
|
2869
|
+
"info": "The key to use for the DoclingDocument column.",
|
|
2992
2870
|
"input_types": [
|
|
2993
2871
|
"Message"
|
|
2994
2872
|
],
|
|
2995
2873
|
"list": false,
|
|
2996
2874
|
"list_add_label": "Add More",
|
|
2997
2875
|
"load_from_db": false,
|
|
2998
|
-
"name": "
|
|
2999
|
-
"override_skip": false,
|
|
2876
|
+
"name": "doc_key",
|
|
3000
2877
|
"placeholder": "",
|
|
3001
|
-
"real_time_refresh": true,
|
|
3002
2878
|
"required": false,
|
|
3003
2879
|
"show": false,
|
|
3004
2880
|
"title_case": false,
|
|
3005
2881
|
"tool_mode": false,
|
|
3006
2882
|
"trace_as_input": true,
|
|
3007
2883
|
"trace_as_metadata": true,
|
|
2884
|
+
"type": "str",
|
|
2885
|
+
"value": "doc"
|
|
2886
|
+
},
|
|
2887
|
+
"file_id": {
|
|
2888
|
+
"_input_type": "StrInput",
|
|
2889
|
+
"advanced": false,
|
|
2890
|
+
"display_name": "Google Drive File ID",
|
|
2891
|
+
"dynamic": false,
|
|
2892
|
+
"info": "The Google Drive file ID to read. The file must be shared with the service account email.",
|
|
2893
|
+
"list": false,
|
|
2894
|
+
"list_add_label": "Add More",
|
|
2895
|
+
"load_from_db": false,
|
|
2896
|
+
"name": "file_id",
|
|
2897
|
+
"override_skip": false,
|
|
2898
|
+
"placeholder": "",
|
|
2899
|
+
"required": true,
|
|
2900
|
+
"show": false,
|
|
2901
|
+
"title_case": false,
|
|
2902
|
+
"tool_mode": false,
|
|
2903
|
+
"trace_as_metadata": true,
|
|
3008
2904
|
"track_in_telemetry": false,
|
|
3009
2905
|
"type": "str",
|
|
3010
2906
|
"value": ""
|
|
3011
2907
|
},
|
|
3012
|
-
"
|
|
2908
|
+
"file_path": {
|
|
2909
|
+
"_input_type": "HandleInput",
|
|
2910
|
+
"advanced": true,
|
|
2911
|
+
"display_name": "Server File Path",
|
|
2912
|
+
"dynamic": false,
|
|
2913
|
+
"info": "Data object with a 'file_path' property pointing to server file or a Message object with a path to the file. Supercedes 'Path' but supports same file types.",
|
|
2914
|
+
"input_types": [
|
|
2915
|
+
"Data",
|
|
2916
|
+
"Message"
|
|
2917
|
+
],
|
|
2918
|
+
"list": true,
|
|
2919
|
+
"list_add_label": "Add More",
|
|
2920
|
+
"name": "file_path",
|
|
2921
|
+
"placeholder": "",
|
|
2922
|
+
"required": false,
|
|
2923
|
+
"show": true,
|
|
2924
|
+
"title_case": false,
|
|
2925
|
+
"trace_as_metadata": true,
|
|
2926
|
+
"type": "other",
|
|
2927
|
+
"value": ""
|
|
2928
|
+
},
|
|
2929
|
+
"file_path_str": {
|
|
3013
2930
|
"_input_type": "StrInput",
|
|
3014
|
-
"advanced":
|
|
3015
|
-
"display_name": "
|
|
2931
|
+
"advanced": true,
|
|
2932
|
+
"display_name": "File Path",
|
|
3016
2933
|
"dynamic": false,
|
|
3017
|
-
"info": "
|
|
2934
|
+
"info": "Path to the file to read. Used when component is called as a tool. If not provided, will use the uploaded file from 'path' input.",
|
|
3018
2935
|
"list": false,
|
|
3019
2936
|
"list_add_label": "Add More",
|
|
3020
2937
|
"load_from_db": false,
|
|
3021
|
-
"name": "
|
|
2938
|
+
"name": "file_path_str",
|
|
3022
2939
|
"override_skip": false,
|
|
3023
2940
|
"placeholder": "",
|
|
3024
2941
|
"required": false,
|
|
3025
2942
|
"show": false,
|
|
3026
2943
|
"title_case": false,
|
|
3027
|
-
"tool_mode":
|
|
2944
|
+
"tool_mode": true,
|
|
3028
2945
|
"trace_as_metadata": true,
|
|
3029
2946
|
"track_in_telemetry": false,
|
|
3030
2947
|
"type": "str",
|
|
3031
2948
|
"value": ""
|
|
3032
2949
|
},
|
|
3033
|
-
"
|
|
2950
|
+
"ignore_unspecified_files": {
|
|
3034
2951
|
"_input_type": "BoolInput",
|
|
3035
2952
|
"advanced": true,
|
|
3036
|
-
"display_name": "
|
|
2953
|
+
"display_name": "Ignore Unspecified Files",
|
|
3037
2954
|
"dynamic": false,
|
|
3038
|
-
"info": "
|
|
2955
|
+
"info": "If true, Data with no 'file_path' property will be ignored.",
|
|
3039
2956
|
"list": false,
|
|
3040
2957
|
"list_add_label": "Add More",
|
|
3041
|
-
"name": "
|
|
3042
|
-
"override_skip": false,
|
|
2958
|
+
"name": "ignore_unspecified_files",
|
|
3043
2959
|
"placeholder": "",
|
|
3044
2960
|
"required": false,
|
|
3045
2961
|
"show": true,
|
|
3046
2962
|
"title_case": false,
|
|
3047
2963
|
"tool_mode": false,
|
|
3048
2964
|
"trace_as_metadata": true,
|
|
3049
|
-
"track_in_telemetry": true,
|
|
3050
2965
|
"type": "bool",
|
|
3051
2966
|
"value": false
|
|
3052
2967
|
},
|
|
3053
|
-
"
|
|
3054
|
-
"_input_type": "
|
|
2968
|
+
"ignore_unsupported_extensions": {
|
|
2969
|
+
"_input_type": "BoolInput",
|
|
2970
|
+
"advanced": true,
|
|
2971
|
+
"display_name": "Ignore Unsupported Extensions",
|
|
2972
|
+
"dynamic": false,
|
|
2973
|
+
"info": "If true, files with unsupported extensions will not be processed.",
|
|
2974
|
+
"list": false,
|
|
2975
|
+
"list_add_label": "Add More",
|
|
2976
|
+
"name": "ignore_unsupported_extensions",
|
|
2977
|
+
"placeholder": "",
|
|
2978
|
+
"required": false,
|
|
2979
|
+
"show": true,
|
|
2980
|
+
"title_case": false,
|
|
2981
|
+
"tool_mode": false,
|
|
2982
|
+
"trace_as_metadata": true,
|
|
2983
|
+
"type": "bool",
|
|
2984
|
+
"value": true
|
|
2985
|
+
},
|
|
2986
|
+
"markdown": {
|
|
2987
|
+
"_input_type": "BoolInput",
|
|
3055
2988
|
"advanced": false,
|
|
3056
|
-
"
|
|
3057
|
-
"copy_field": false,
|
|
3058
|
-
"display_name": "System Message",
|
|
2989
|
+
"display_name": "Markdown Export",
|
|
3059
2990
|
"dynamic": false,
|
|
3060
|
-
"info": "
|
|
3061
|
-
"
|
|
3062
|
-
|
|
3063
|
-
|
|
2991
|
+
"info": "Export processed documents to Markdown format. Only available when advanced mode is enabled.",
|
|
2992
|
+
"list": false,
|
|
2993
|
+
"list_add_label": "Add More",
|
|
2994
|
+
"name": "markdown",
|
|
2995
|
+
"placeholder": "",
|
|
2996
|
+
"required": false,
|
|
2997
|
+
"show": false,
|
|
2998
|
+
"title_case": false,
|
|
2999
|
+
"tool_mode": false,
|
|
3000
|
+
"trace_as_metadata": true,
|
|
3001
|
+
"type": "bool",
|
|
3002
|
+
"value": false
|
|
3003
|
+
},
|
|
3004
|
+
"md_image_placeholder": {
|
|
3005
|
+
"_input_type": "StrInput",
|
|
3006
|
+
"advanced": true,
|
|
3007
|
+
"display_name": "Image placeholder",
|
|
3008
|
+
"dynamic": false,
|
|
3009
|
+
"info": "Specify the image placeholder for markdown exports.",
|
|
3064
3010
|
"list": false,
|
|
3065
3011
|
"list_add_label": "Add More",
|
|
3066
3012
|
"load_from_db": false,
|
|
3067
|
-
"
|
|
3068
|
-
"name": "system_message",
|
|
3069
|
-
"override_skip": false,
|
|
3013
|
+
"name": "md_image_placeholder",
|
|
3070
3014
|
"placeholder": "",
|
|
3071
3015
|
"required": false,
|
|
3072
|
-
"show":
|
|
3016
|
+
"show": false,
|
|
3017
|
+
"title_case": false,
|
|
3018
|
+
"tool_mode": false,
|
|
3019
|
+
"trace_as_metadata": true,
|
|
3020
|
+
"type": "str",
|
|
3021
|
+
"value": "<!-- image -->"
|
|
3022
|
+
},
|
|
3023
|
+
"md_page_break_placeholder": {
|
|
3024
|
+
"_input_type": "StrInput",
|
|
3025
|
+
"advanced": true,
|
|
3026
|
+
"display_name": "Page break placeholder",
|
|
3027
|
+
"dynamic": false,
|
|
3028
|
+
"info": "Add this placeholder between pages in the markdown output.",
|
|
3029
|
+
"list": false,
|
|
3030
|
+
"list_add_label": "Add More",
|
|
3031
|
+
"load_from_db": false,
|
|
3032
|
+
"name": "md_page_break_placeholder",
|
|
3033
|
+
"placeholder": "",
|
|
3034
|
+
"required": false,
|
|
3035
|
+
"show": false,
|
|
3073
3036
|
"title_case": false,
|
|
3074
3037
|
"tool_mode": false,
|
|
3075
|
-
"trace_as_input": true,
|
|
3076
3038
|
"trace_as_metadata": true,
|
|
3077
|
-
"track_in_telemetry": false,
|
|
3078
3039
|
"type": "str",
|
|
3079
3040
|
"value": ""
|
|
3080
3041
|
},
|
|
3081
|
-
"
|
|
3082
|
-
"_input_type": "
|
|
3042
|
+
"ocr_engine": {
|
|
3043
|
+
"_input_type": "DropdownInput",
|
|
3083
3044
|
"advanced": true,
|
|
3084
|
-
"
|
|
3045
|
+
"combobox": false,
|
|
3046
|
+
"dialog_inputs": {},
|
|
3047
|
+
"display_name": "OCR Engine",
|
|
3085
3048
|
"dynamic": false,
|
|
3086
|
-
"
|
|
3087
|
-
"
|
|
3088
|
-
"
|
|
3089
|
-
"
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3049
|
+
"external_options": {},
|
|
3050
|
+
"info": "OCR engine to use. Only available when pipeline is set to 'standard'.",
|
|
3051
|
+
"name": "ocr_engine",
|
|
3052
|
+
"options": [
|
|
3053
|
+
"None",
|
|
3054
|
+
"easyocr"
|
|
3055
|
+
],
|
|
3056
|
+
"options_metadata": [],
|
|
3093
3057
|
"placeholder": "",
|
|
3094
|
-
"range_spec": {
|
|
3095
|
-
"max": 1,
|
|
3096
|
-
"min": 0,
|
|
3097
|
-
"step": 0.01,
|
|
3098
|
-
"step_type": "float"
|
|
3099
|
-
},
|
|
3100
3058
|
"required": false,
|
|
3101
|
-
"show":
|
|
3102
|
-
"slider_buttons": false,
|
|
3103
|
-
"slider_buttons_options": [],
|
|
3104
|
-
"slider_input": false,
|
|
3059
|
+
"show": false,
|
|
3105
3060
|
"title_case": false,
|
|
3061
|
+
"toggle": false,
|
|
3106
3062
|
"tool_mode": false,
|
|
3107
|
-
"
|
|
3108
|
-
"type": "
|
|
3109
|
-
"value":
|
|
3110
|
-
}
|
|
3111
|
-
},
|
|
3112
|
-
"tool_mode": false
|
|
3113
|
-
},
|
|
3114
|
-
"selected_output": "text_output",
|
|
3115
|
-
"showNode": true,
|
|
3116
|
-
"type": "LanguageModelComponent"
|
|
3117
|
-
},
|
|
3118
|
-
"dragging": false,
|
|
3119
|
-
"id": "LanguageModelComponent-rL7g3",
|
|
3120
|
-
"measured": {
|
|
3121
|
-
"height": 369,
|
|
3122
|
-
"width": 320
|
|
3123
|
-
},
|
|
3124
|
-
"position": {
|
|
3125
|
-
"x": 2354.7612483129965,
|
|
3126
|
-
"y": 633.8261067248878
|
|
3127
|
-
},
|
|
3128
|
-
"selected": false,
|
|
3129
|
-
"type": "genericNode"
|
|
3130
|
-
},
|
|
3131
|
-
{
|
|
3132
|
-
"data": {
|
|
3133
|
-
"id": "AstraDB-ECtXX",
|
|
3134
|
-
"node": {
|
|
3135
|
-
"base_classes": [
|
|
3136
|
-
"Data",
|
|
3137
|
-
"DataFrame",
|
|
3138
|
-
"VectorStore"
|
|
3139
|
-
],
|
|
3140
|
-
"beta": false,
|
|
3141
|
-
"conditional_paths": [],
|
|
3142
|
-
"custom_fields": {},
|
|
3143
|
-
"description": "Ingest and search documents in Astra DB",
|
|
3144
|
-
"display_name": "Astra DB",
|
|
3145
|
-
"documentation": "https://docs.datastax.com/en/langflow/astra-components.html",
|
|
3146
|
-
"edited": false,
|
|
3147
|
-
"field_order": [
|
|
3148
|
-
"token",
|
|
3149
|
-
"environment",
|
|
3150
|
-
"database_name",
|
|
3151
|
-
"api_endpoint",
|
|
3152
|
-
"keyspace",
|
|
3153
|
-
"collection_name",
|
|
3154
|
-
"embedding_model",
|
|
3155
|
-
"ingest_data",
|
|
3156
|
-
"search_query",
|
|
3157
|
-
"should_cache_vector_store",
|
|
3158
|
-
"search_method",
|
|
3159
|
-
"reranker",
|
|
3160
|
-
"lexical_terms",
|
|
3161
|
-
"number_of_results",
|
|
3162
|
-
"search_type",
|
|
3163
|
-
"search_score_threshold",
|
|
3164
|
-
"advanced_search_filter",
|
|
3165
|
-
"autodetect_collection",
|
|
3166
|
-
"content_field",
|
|
3167
|
-
"deletion_field",
|
|
3168
|
-
"ignore_invalid_documents",
|
|
3169
|
-
"astradb_vectorstore_kwargs"
|
|
3170
|
-
],
|
|
3171
|
-
"frozen": false,
|
|
3172
|
-
"icon": "AstraDB",
|
|
3173
|
-
"last_updated": "2025-12-20T17:35:17.510Z",
|
|
3174
|
-
"legacy": false,
|
|
3175
|
-
"metadata": {
|
|
3176
|
-
"code_hash": "d52094e54e96",
|
|
3177
|
-
"dependencies": {
|
|
3178
|
-
"dependencies": [
|
|
3179
|
-
{
|
|
3180
|
-
"name": "astrapy",
|
|
3181
|
-
"version": "2.1.0"
|
|
3182
|
-
},
|
|
3183
|
-
{
|
|
3184
|
-
"name": "langchain_core",
|
|
3185
|
-
"version": "0.3.80"
|
|
3186
|
-
},
|
|
3187
|
-
{
|
|
3188
|
-
"name": "lfx",
|
|
3189
|
-
"version": null
|
|
3190
|
-
},
|
|
3191
|
-
{
|
|
3192
|
-
"name": "langchain_astradb",
|
|
3193
|
-
"version": "0.6.1"
|
|
3194
|
-
}
|
|
3195
|
-
],
|
|
3196
|
-
"total_dependencies": 4
|
|
3197
|
-
},
|
|
3198
|
-
"module": "lfx.components.datastax.astradb_vectorstore.AstraDBVectorStoreComponent"
|
|
3199
|
-
},
|
|
3200
|
-
"minimized": false,
|
|
3201
|
-
"output_types": [],
|
|
3202
|
-
"outputs": [
|
|
3203
|
-
{
|
|
3204
|
-
"allows_loop": false,
|
|
3205
|
-
"cache": true,
|
|
3206
|
-
"display_name": "Search Results",
|
|
3207
|
-
"group_outputs": false,
|
|
3208
|
-
"method": "search_documents",
|
|
3209
|
-
"name": "search_results",
|
|
3210
|
-
"selected": "Data",
|
|
3211
|
-
"tool_mode": true,
|
|
3212
|
-
"types": [
|
|
3213
|
-
"Data"
|
|
3214
|
-
],
|
|
3215
|
-
"value": "__UNDEFINED__"
|
|
3216
|
-
},
|
|
3217
|
-
{
|
|
3218
|
-
"allows_loop": false,
|
|
3219
|
-
"cache": true,
|
|
3220
|
-
"display_name": "DataFrame",
|
|
3221
|
-
"group_outputs": false,
|
|
3222
|
-
"method": "as_dataframe",
|
|
3223
|
-
"name": "dataframe",
|
|
3224
|
-
"selected": "DataFrame",
|
|
3225
|
-
"tool_mode": true,
|
|
3226
|
-
"types": [
|
|
3227
|
-
"DataFrame"
|
|
3228
|
-
],
|
|
3229
|
-
"value": "__UNDEFINED__"
|
|
3063
|
+
"trace_as_metadata": true,
|
|
3064
|
+
"type": "str",
|
|
3065
|
+
"value": "easyocr"
|
|
3230
3066
|
},
|
|
3231
|
-
{
|
|
3232
|
-
"
|
|
3233
|
-
"
|
|
3234
|
-
"display_name": "
|
|
3235
|
-
"group_outputs": false,
|
|
3236
|
-
"hidden": false,
|
|
3237
|
-
"method": "as_vector_store",
|
|
3238
|
-
"name": "vectorstoreconnection",
|
|
3239
|
-
"selected": "VectorStore",
|
|
3240
|
-
"tool_mode": true,
|
|
3241
|
-
"types": [
|
|
3242
|
-
"VectorStore"
|
|
3243
|
-
],
|
|
3244
|
-
"value": "__UNDEFINED__"
|
|
3245
|
-
}
|
|
3246
|
-
],
|
|
3247
|
-
"pinned": false,
|
|
3248
|
-
"template": {
|
|
3249
|
-
"_type": "Component",
|
|
3250
|
-
"advanced_search_filter": {
|
|
3251
|
-
"_input_type": "NestedDictInput",
|
|
3252
|
-
"advanced": true,
|
|
3253
|
-
"display_name": "Search Metadata Filter",
|
|
3067
|
+
"path": {
|
|
3068
|
+
"_input_type": "FileInput",
|
|
3069
|
+
"advanced": false,
|
|
3070
|
+
"display_name": "Files",
|
|
3254
3071
|
"dynamic": false,
|
|
3255
|
-
"
|
|
3256
|
-
|
|
3072
|
+
"fileTypes": [
|
|
3073
|
+
"csv",
|
|
3074
|
+
"json",
|
|
3075
|
+
"pdf",
|
|
3076
|
+
"txt",
|
|
3077
|
+
"md",
|
|
3078
|
+
"mdx",
|
|
3079
|
+
"yaml",
|
|
3080
|
+
"yml",
|
|
3081
|
+
"xml",
|
|
3082
|
+
"html",
|
|
3083
|
+
"htm",
|
|
3084
|
+
"docx",
|
|
3085
|
+
"py",
|
|
3086
|
+
"sh",
|
|
3087
|
+
"sql",
|
|
3088
|
+
"js",
|
|
3089
|
+
"ts",
|
|
3090
|
+
"tsx",
|
|
3091
|
+
"adoc",
|
|
3092
|
+
"asciidoc",
|
|
3093
|
+
"asc",
|
|
3094
|
+
"bmp",
|
|
3095
|
+
"dotx",
|
|
3096
|
+
"dotm",
|
|
3097
|
+
"docm",
|
|
3098
|
+
"jpg",
|
|
3099
|
+
"jpeg",
|
|
3100
|
+
"png",
|
|
3101
|
+
"potx",
|
|
3102
|
+
"ppsx",
|
|
3103
|
+
"pptm",
|
|
3104
|
+
"potm",
|
|
3105
|
+
"ppsm",
|
|
3106
|
+
"pptx",
|
|
3107
|
+
"tiff",
|
|
3108
|
+
"xls",
|
|
3109
|
+
"xlsx",
|
|
3110
|
+
"xhtml",
|
|
3111
|
+
"webp",
|
|
3112
|
+
"zip",
|
|
3113
|
+
"tar",
|
|
3114
|
+
"tgz",
|
|
3115
|
+
"bz2",
|
|
3116
|
+
"gz"
|
|
3117
|
+
],
|
|
3118
|
+
"file_path": [],
|
|
3119
|
+
"info": "Supported file extensions: csv, json, pdf, txt, md, mdx, yaml, yml, xml, html, htm, docx, py, sh, sql, js, ts, tsx, adoc, asciidoc, asc, bmp, dotx, dotm, docm, jpg, jpeg, png, potx, ppsx, pptm, potm, ppsm, pptx, tiff, xls, xlsx, xhtml, webp; optionally bundled in file extensions: zip, tar, tgz, bz2, gz",
|
|
3120
|
+
"list": true,
|
|
3257
3121
|
"list_add_label": "Add More",
|
|
3258
|
-
"name": "
|
|
3122
|
+
"name": "path",
|
|
3259
3123
|
"placeholder": "",
|
|
3124
|
+
"real_time_refresh": true,
|
|
3260
3125
|
"required": false,
|
|
3261
3126
|
"show": true,
|
|
3127
|
+
"temp_file": false,
|
|
3262
3128
|
"title_case": false,
|
|
3263
|
-
"tool_mode": false,
|
|
3264
|
-
"trace_as_input": true,
|
|
3265
3129
|
"trace_as_metadata": true,
|
|
3266
|
-
"type": "
|
|
3267
|
-
"value":
|
|
3130
|
+
"type": "file",
|
|
3131
|
+
"value": ""
|
|
3268
3132
|
},
|
|
3269
|
-
"
|
|
3133
|
+
"pipeline": {
|
|
3270
3134
|
"_input_type": "DropdownInput",
|
|
3271
3135
|
"advanced": true,
|
|
3272
3136
|
"combobox": false,
|
|
3273
3137
|
"dialog_inputs": {},
|
|
3274
|
-
"display_name": "
|
|
3138
|
+
"display_name": "Pipeline",
|
|
3275
3139
|
"dynamic": false,
|
|
3276
3140
|
"external_options": {},
|
|
3277
|
-
"info": "
|
|
3278
|
-
"name": "
|
|
3279
|
-
"options": [
|
|
3141
|
+
"info": "Docling pipeline to use",
|
|
3142
|
+
"name": "pipeline",
|
|
3143
|
+
"options": [
|
|
3144
|
+
"standard",
|
|
3145
|
+
"vlm"
|
|
3146
|
+
],
|
|
3280
3147
|
"options_metadata": [],
|
|
3281
3148
|
"placeholder": "",
|
|
3149
|
+
"real_time_refresh": true,
|
|
3282
3150
|
"required": false,
|
|
3283
|
-
"show":
|
|
3151
|
+
"show": false,
|
|
3284
3152
|
"title_case": false,
|
|
3285
3153
|
"toggle": false,
|
|
3286
3154
|
"tool_mode": false,
|
|
3287
3155
|
"trace_as_metadata": true,
|
|
3288
3156
|
"type": "str",
|
|
3289
|
-
"value": ""
|
|
3290
|
-
},
|
|
3291
|
-
"astradb_vectorstore_kwargs": {
|
|
3292
|
-
"_input_type": "NestedDictInput",
|
|
3293
|
-
"advanced": true,
|
|
3294
|
-
"display_name": "AstraDBVectorStore Parameters",
|
|
3295
|
-
"dynamic": false,
|
|
3296
|
-
"info": "Optional dictionary of additional parameters for the AstraDBVectorStore.",
|
|
3297
|
-
"list": false,
|
|
3298
|
-
"list_add_label": "Add More",
|
|
3299
|
-
"name": "astradb_vectorstore_kwargs",
|
|
3300
|
-
"placeholder": "",
|
|
3301
|
-
"required": false,
|
|
3302
|
-
"show": true,
|
|
3303
|
-
"title_case": false,
|
|
3304
|
-
"tool_mode": false,
|
|
3305
|
-
"trace_as_input": true,
|
|
3306
|
-
"trace_as_metadata": true,
|
|
3307
|
-
"type": "NestedDict",
|
|
3308
|
-
"value": {}
|
|
3157
|
+
"value": "standard"
|
|
3309
3158
|
},
|
|
3310
|
-
"
|
|
3311
|
-
"_input_type": "
|
|
3312
|
-
"advanced":
|
|
3313
|
-
"display_name": "
|
|
3159
|
+
"s3_file_key": {
|
|
3160
|
+
"_input_type": "StrInput",
|
|
3161
|
+
"advanced": false,
|
|
3162
|
+
"display_name": "S3 File Key",
|
|
3314
3163
|
"dynamic": false,
|
|
3315
|
-
"info": "
|
|
3164
|
+
"info": "The key (path) of the file in S3 bucket.",
|
|
3316
3165
|
"list": false,
|
|
3317
|
-
"list_add_label": "Add More",
|
|
3318
|
-
"
|
|
3319
|
-
"
|
|
3320
|
-
"
|
|
3321
|
-
"show": true,
|
|
3322
|
-
"title_case": false,
|
|
3323
|
-
"tool_mode": false,
|
|
3324
|
-
"trace_as_metadata": true,
|
|
3325
|
-
"type": "bool",
|
|
3326
|
-
"value": true
|
|
3327
|
-
},
|
|
3328
|
-
"code": {
|
|
3329
|
-
"advanced": true,
|
|
3330
|
-
"dynamic": true,
|
|
3331
|
-
"fileTypes": [],
|
|
3332
|
-
"file_path": "",
|
|
3333
|
-
"info": "",
|
|
3334
|
-
"list": false,
|
|
3335
|
-
"load_from_db": false,
|
|
3336
|
-
"multiline": true,
|
|
3337
|
-
"name": "code",
|
|
3338
|
-
"password": false,
|
|
3339
|
-
"placeholder": "",
|
|
3340
|
-
"required": true,
|
|
3341
|
-
"show": true,
|
|
3342
|
-
"title_case": false,
|
|
3343
|
-
"type": "code",
|
|
3344
|
-
"value": "from astrapy import DataAPIClient\nfrom langchain_core.documents import Document\n\nfrom lfx.base.datastax.astradb_base import AstraDBBaseComponent\nfrom lfx.base.vectorstores.model import LCVectorStoreComponent, check_cached_vector_store\nfrom lfx.base.vectorstores.vector_store_connection_decorator import vector_store_connection\nfrom lfx.helpers.data import docs_to_data\nfrom lfx.io import BoolInput, DropdownInput, FloatInput, HandleInput, IntInput, NestedDictInput, QueryInput, StrInput\nfrom lfx.schema.data import Data\nfrom lfx.serialization import serialize\nfrom lfx.utils.version import get_version_info\n\n\n@vector_store_connection\nclass AstraDBVectorStoreComponent(AstraDBBaseComponent, LCVectorStoreComponent):\n display_name: str = \"Astra DB\"\n description: str = \"Ingest and search documents in Astra DB\"\n documentation: str = \"https://docs.langflow.org/bundles-datastax\"\n name = \"AstraDB\"\n icon: str = \"AstraDB\"\n\n inputs = [\n *AstraDBBaseComponent.inputs,\n *LCVectorStoreComponent.inputs,\n HandleInput(\n name=\"embedding_model\",\n display_name=\"Embedding Model\",\n input_types=[\"Embeddings\"],\n info=\"Specify the Embedding Model. Not required for Astra Vectorize collections.\",\n required=False,\n show=True,\n ),\n StrInput(\n name=\"content_field\",\n display_name=\"Content Field\",\n info=\"Field to use as the text content field for the vector store.\",\n advanced=True,\n ),\n StrInput(\n name=\"deletion_field\",\n display_name=\"Deletion Based On Field\",\n info=\"When this parameter is provided, documents in the target collection with \"\n \"metadata field values matching the input metadata field value will be deleted \"\n \"before new data is loaded.\",\n advanced=True,\n ),\n BoolInput(\n name=\"ignore_invalid_documents\",\n display_name=\"Ignore Invalid Documents\",\n info=\"Boolean flag to determine whether to ignore invalid documents at runtime.\",\n advanced=True,\n ),\n NestedDictInput(\n name=\"astradb_vectorstore_kwargs\",\n display_name=\"AstraDBVectorStore Parameters\",\n info=\"Optional dictionary of additional parameters for the AstraDBVectorStore.\",\n advanced=True,\n ),\n DropdownInput(\n name=\"search_method\",\n display_name=\"Search Method\",\n info=(\n \"Determine how your content is matched: Vector finds semantic similarity, \"\n \"and Hybrid Search (suggested) combines both approaches \"\n \"with a reranker.\"\n ),\n options=[\"Hybrid Search\", \"Vector Search\"], # TODO: Restore Lexical Search?\n options_metadata=[{\"icon\": \"SearchHybrid\"}, {\"icon\": \"SearchVector\"}],\n value=\"Vector Search\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"reranker\",\n display_name=\"Reranker\",\n info=\"Post-retrieval model that re-scores results for optimal relevance ranking.\",\n show=False,\n toggle=True,\n ),\n QueryInput(\n name=\"lexical_terms\",\n display_name=\"Lexical Terms\",\n info=\"Add additional terms/keywords to augment search precision.\",\n placeholder=\"Enter terms to search...\",\n separator=\" \",\n show=False,\n value=\"\",\n ),\n IntInput(\n name=\"number_of_results\",\n display_name=\"Number of Search Results\",\n info=\"Number of search results to return.\",\n advanced=True,\n value=4,\n ),\n DropdownInput(\n name=\"search_type\",\n display_name=\"Search Type\",\n info=\"Search type to use\",\n options=[\"Similarity\", \"Similarity with score threshold\", \"MMR (Max Marginal Relevance)\"],\n value=\"Similarity\",\n advanced=True,\n ),\n FloatInput(\n name=\"search_score_threshold\",\n display_name=\"Search Score Threshold\",\n info=\"Minimum similarity score threshold for search results. \"\n \"(when using 'Similarity with score threshold')\",\n value=0,\n advanced=True,\n ),\n NestedDictInput(\n name=\"advanced_search_filter\",\n display_name=\"Search Metadata Filter\",\n info=\"Optional dictionary of filters to apply to the search query.\",\n advanced=True,\n ),\n ]\n\n async def update_build_config(\n self,\n build_config: dict,\n field_value: str | dict,\n field_name: str | None = None,\n ) -> dict:\n \"\"\"Update build configuration with proper handling of embedding and search options.\"\"\"\n # Handle base astra db build config updates\n build_config = await super().update_build_config(\n build_config,\n field_value=field_value,\n field_name=field_name,\n )\n\n # Set embedding model display based on provider selection\n if isinstance(field_value, dict) and \"02_embedding_generation_provider\" in field_value:\n embedding_provider = field_value.get(\"02_embedding_generation_provider\")\n is_custom_provider = embedding_provider and embedding_provider != \"Bring your own\"\n provider = embedding_provider.lower() if is_custom_provider and embedding_provider is not None else None\n\n build_config[\"embedding_model\"][\"show\"] = not bool(provider)\n build_config[\"embedding_model\"][\"required\"] = not bool(provider)\n\n # Early return if no API endpoint is configured\n if not self.get_api_endpoint():\n return build_config\n\n # Configure search method and related options\n return self._configure_search_options(build_config)\n\n def _configure_search_options(self, build_config: dict) -> dict:\n \"\"\"Configure hybrid search, reranker, and vector search options.\"\"\"\n # Detect available hybrid search capabilities\n hybrid_capabilities = self._detect_hybrid_capabilities()\n\n # Return if we haven't selected a collection\n if not build_config[\"collection_name\"][\"options\"] or not build_config[\"collection_name\"][\"value\"]:\n return build_config\n\n # Get collection options\n collection_options = self._get_collection_options(build_config)\n\n # Get the selected collection index\n index = build_config[\"collection_name\"][\"options\"].index(build_config[\"collection_name\"][\"value\"])\n provider = build_config[\"collection_name\"][\"options_metadata\"][index][\"provider\"]\n build_config[\"embedding_model\"][\"show\"] = not bool(provider)\n build_config[\"embedding_model\"][\"required\"] = not bool(provider)\n\n # Determine search configuration\n is_vector_search = build_config[\"search_method\"][\"value\"] == \"Vector Search\"\n is_autodetect = build_config[\"autodetect_collection\"][\"value\"]\n\n # Apply hybrid search configuration\n if hybrid_capabilities[\"available\"]:\n build_config[\"search_method\"][\"show\"] = True\n build_config[\"search_method\"][\"options\"] = [\"Hybrid Search\", \"Vector Search\"]\n build_config[\"search_method\"][\"value\"] = build_config[\"search_method\"].get(\"value\", \"Hybrid Search\")\n\n build_config[\"reranker\"][\"options\"] = hybrid_capabilities[\"reranker_models\"]\n build_config[\"reranker\"][\"options_metadata\"] = hybrid_capabilities[\"reranker_metadata\"]\n if hybrid_capabilities[\"reranker_models\"]:\n build_config[\"reranker\"][\"value\"] = hybrid_capabilities[\"reranker_models\"][0]\n else:\n build_config[\"search_method\"][\"show\"] = False\n build_config[\"search_method\"][\"options\"] = [\"Vector Search\"]\n build_config[\"search_method\"][\"value\"] = \"Vector Search\"\n build_config[\"reranker\"][\"options\"] = []\n build_config[\"reranker\"][\"options_metadata\"] = []\n\n # Configure reranker visibility and state\n hybrid_enabled = (\n collection_options[\"rerank_enabled\"] and build_config[\"search_method\"][\"value\"] == \"Hybrid Search\"\n )\n\n build_config[\"reranker\"][\"show\"] = hybrid_enabled\n build_config[\"reranker\"][\"toggle_value\"] = hybrid_enabled\n build_config[\"reranker\"][\"toggle_disable\"] = is_vector_search\n\n # Configure lexical terms\n lexical_visible = collection_options[\"lexical_enabled\"] and not is_vector_search\n build_config[\"lexical_terms\"][\"show\"] = lexical_visible\n build_config[\"lexical_terms\"][\"value\"] = \"\" if is_vector_search else build_config[\"lexical_terms\"][\"value\"]\n\n # Configure search type and score threshold\n build_config[\"search_type\"][\"show\"] = is_vector_search\n build_config[\"search_score_threshold\"][\"show\"] = is_vector_search\n\n # Force similarity search for hybrid mode or autodetect\n if hybrid_enabled or is_autodetect:\n build_config[\"search_type\"][\"value\"] = \"Similarity\"\n\n return build_config\n\n def _detect_hybrid_capabilities(self) -> dict:\n \"\"\"Detect available hybrid search and reranking capabilities.\"\"\"\n environment = self.get_environment(self.environment)\n client = DataAPIClient(environment=environment)\n admin_client = client.get_admin()\n db_admin = admin_client.get_database_admin(self.get_api_endpoint(), token=self.token)\n\n try:\n providers = db_admin.find_reranking_providers()\n reranker_models = [\n model.name for provider_data in providers.reranking_providers.values() for model in provider_data.models\n ]\n reranker_metadata = [\n {\"icon\": self.get_provider_icon(provider_name=model.name.split(\"/\")[0])}\n for provider in providers.reranking_providers.values()\n for model in provider.models\n ]\n except Exception as e: # noqa: BLE001\n self.log(f\"Hybrid search not available: {e}\")\n return {\n \"available\": False,\n \"reranker_models\": [],\n \"reranker_metadata\": [],\n }\n else:\n return {\n \"available\": True,\n \"reranker_models\": reranker_models,\n \"reranker_metadata\": reranker_metadata,\n }\n\n def _get_collection_options(self, build_config: dict) -> dict:\n \"\"\"Retrieve collection-level search options.\"\"\"\n database = self.get_database_object(api_endpoint=build_config[\"api_endpoint\"][\"value\"])\n collection = database.get_collection(\n name=build_config[\"collection_name\"][\"value\"],\n keyspace=build_config[\"keyspace\"][\"value\"],\n )\n\n col_options = collection.options()\n\n return {\n \"rerank_enabled\": bool(col_options.rerank and col_options.rerank.enabled),\n \"lexical_enabled\": bool(col_options.lexical and col_options.lexical.enabled),\n }\n\n @check_cached_vector_store\n def build_vector_store(self):\n try:\n from langchain_astradb import AstraDBVectorStore\n from langchain_astradb.utils.astradb import HybridSearchMode\n except ImportError as e:\n msg = (\n \"Could not import langchain Astra DB integration package. \"\n \"Please install it with `pip install langchain-astradb`.\"\n )\n raise ImportError(msg) from e\n\n # Get the embedding model and additional params\n embedding_params = {\"embedding\": self.embedding_model} if self.embedding_model else {}\n\n # Get the additional parameters\n additional_params = self.astradb_vectorstore_kwargs or {}\n\n # Get Langflow version and platform information\n __version__ = get_version_info()[\"version\"]\n langflow_prefix = \"\"\n # if os.getenv(\"AWS_EXECUTION_ENV\") == \"AWS_ECS_FARGATE\": # TODO: More precise way of detecting\n # langflow_prefix = \"ds-\"\n\n # Get the database object\n database = self.get_database_object()\n autodetect = self.collection_name in database.list_collection_names() and self.autodetect_collection\n\n # Bundle up the auto-detect parameters\n autodetect_params = {\n \"autodetect_collection\": autodetect,\n \"content_field\": (\n self.content_field\n if self.content_field and embedding_params\n else (\n \"page_content\"\n if embedding_params\n and self.collection_data(collection_name=self.collection_name, database=database) == 0\n else None\n )\n ),\n \"ignore_invalid_documents\": self.ignore_invalid_documents,\n }\n\n # Choose HybridSearchMode based on the selected param\n hybrid_search_mode = HybridSearchMode.DEFAULT if self.search_method == \"Hybrid Search\" else HybridSearchMode.OFF\n\n # Attempt to build the Vector Store object\n try:\n vector_store = AstraDBVectorStore(\n # Astra DB Authentication Parameters\n token=self.token,\n api_endpoint=database.api_endpoint,\n namespace=database.keyspace,\n collection_name=self.collection_name,\n environment=self.environment,\n # Hybrid Search Parameters\n hybrid_search=hybrid_search_mode,\n # Astra DB Usage Tracking Parameters\n ext_callers=[(f\"{langflow_prefix}langflow\", __version__)],\n # Astra DB Vector Store Parameters\n **autodetect_params,\n **embedding_params,\n **additional_params,\n )\n except ValueError as e:\n msg = f\"Error initializing AstraDBVectorStore: {e}\"\n raise ValueError(msg) from e\n\n # Add documents to the vector store\n self._add_documents_to_vector_store(vector_store)\n\n return vector_store\n\n def _add_documents_to_vector_store(self, vector_store) -> None:\n self.ingest_data = self._prepare_ingest_data()\n\n documents = []\n for _input in self.ingest_data or []:\n if isinstance(_input, Data):\n documents.append(_input.to_lc_document())\n else:\n msg = \"Vector Store Inputs must be Data objects.\"\n raise TypeError(msg)\n\n documents = [\n Document(page_content=doc.page_content, metadata=serialize(doc.metadata, to_str=True)) for doc in documents\n ]\n\n if documents and self.deletion_field:\n self.log(f\"Deleting documents where {self.deletion_field}\")\n try:\n database = self.get_database_object()\n collection = database.get_collection(self.collection_name, keyspace=database.keyspace)\n delete_values = list({doc.metadata[self.deletion_field] for doc in documents})\n self.log(f\"Deleting documents where {self.deletion_field} matches {delete_values}.\")\n collection.delete_many({f\"metadata.{self.deletion_field}\": {\"$in\": delete_values}})\n except ValueError as e:\n msg = f\"Error deleting documents from AstraDBVectorStore based on '{self.deletion_field}': {e}\"\n raise ValueError(msg) from e\n\n if documents:\n self.log(f\"Adding {len(documents)} documents to the Vector Store.\")\n try:\n vector_store.add_documents(documents)\n except ValueError as e:\n msg = f\"Error adding documents to AstraDBVectorStore: {e}\"\n raise ValueError(msg) from e\n else:\n self.log(\"No documents to add to the Vector Store.\")\n\n def _map_search_type(self) -> str:\n search_type_mapping = {\n \"Similarity with score threshold\": \"similarity_score_threshold\",\n \"MMR (Max Marginal Relevance)\": \"mmr\",\n }\n\n return search_type_mapping.get(self.search_type, \"similarity\")\n\n def _build_search_args(self):\n # Clean up the search query\n query = self.search_query if isinstance(self.search_query, str) and self.search_query.strip() else None\n lexical_terms = self.lexical_terms or None\n\n # Check if we have a search query, and if so set the args\n if query:\n args = {\n \"query\": query,\n \"search_type\": self._map_search_type(),\n \"k\": self.number_of_results,\n \"score_threshold\": self.search_score_threshold,\n \"lexical_query\": lexical_terms,\n }\n elif self.advanced_search_filter:\n args = {\n \"n\": self.number_of_results,\n }\n else:\n return {}\n\n filter_arg = self.advanced_search_filter or {}\n if filter_arg:\n args[\"filter\"] = filter_arg\n\n return args\n\n def search_documents(self, vector_store=None) -> list[Data]:\n vector_store = vector_store or self.build_vector_store()\n\n self.log(f\"Search input: {self.search_query}\")\n self.log(f\"Search type: {self.search_type}\")\n self.log(f\"Number of results: {self.number_of_results}\")\n self.log(f\"store.hybrid_search: {vector_store.hybrid_search}\")\n self.log(f\"Lexical terms: {self.lexical_terms}\")\n self.log(f\"Reranker: {self.reranker}\")\n\n try:\n search_args = self._build_search_args()\n except ValueError as e:\n msg = f\"Error in AstraDBVectorStore._build_search_args: {e}\"\n raise ValueError(msg) from e\n\n if not search_args:\n self.log(\"No search input or filters provided. Skipping search.\")\n return []\n\n docs = []\n search_method = \"search\" if \"query\" in search_args else \"metadata_search\"\n\n try:\n self.log(f\"Calling vector_store.{search_method} with args: {search_args}\")\n docs = getattr(vector_store, search_method)(**search_args)\n except ValueError as e:\n msg = f\"Error performing {search_method} in AstraDBVectorStore: {e}\"\n raise ValueError(msg) from e\n\n self.log(f\"Retrieved documents: {len(docs)}\")\n\n data = docs_to_data(docs)\n self.log(f\"Converted documents to data: {len(data)}\")\n self.status = data\n\n return data\n\n def get_retriever_kwargs(self):\n search_args = self._build_search_args()\n\n return {\n \"search_type\": self._map_search_type(),\n \"search_kwargs\": search_args,\n }\n"
|
|
3345
|
-
},
|
|
3346
|
-
"collection_name": {
|
|
3347
|
-
"_input_type": "DropdownInput",
|
|
3348
|
-
"advanced": false,
|
|
3349
|
-
"combobox": true,
|
|
3350
|
-
"dialog_inputs": {
|
|
3351
|
-
"fields": {
|
|
3352
|
-
"data": {
|
|
3353
|
-
"node": {
|
|
3354
|
-
"description": "Please allow several seconds for creation to complete.",
|
|
3355
|
-
"display_name": "Create new collection",
|
|
3356
|
-
"field_order": [
|
|
3357
|
-
"01_new_collection_name",
|
|
3358
|
-
"02_embedding_generation_provider",
|
|
3359
|
-
"03_embedding_generation_model",
|
|
3360
|
-
"04_dimension"
|
|
3361
|
-
],
|
|
3362
|
-
"name": "create_collection",
|
|
3363
|
-
"template": {
|
|
3364
|
-
"01_new_collection_name": {
|
|
3365
|
-
"_input_type": "StrInput",
|
|
3366
|
-
"advanced": false,
|
|
3367
|
-
"display_name": "Name",
|
|
3368
|
-
"dynamic": false,
|
|
3369
|
-
"info": "Name of the new collection to create in Astra DB.",
|
|
3370
|
-
"list": false,
|
|
3371
|
-
"list_add_label": "Add More",
|
|
3372
|
-
"load_from_db": false,
|
|
3373
|
-
"name": "new_collection_name",
|
|
3374
|
-
"placeholder": "",
|
|
3375
|
-
"required": true,
|
|
3376
|
-
"show": true,
|
|
3377
|
-
"title_case": false,
|
|
3378
|
-
"tool_mode": false,
|
|
3379
|
-
"trace_as_metadata": true,
|
|
3380
|
-
"type": "str",
|
|
3381
|
-
"value": ""
|
|
3382
|
-
},
|
|
3383
|
-
"02_embedding_generation_provider": {
|
|
3384
|
-
"_input_type": "DropdownInput",
|
|
3385
|
-
"advanced": false,
|
|
3386
|
-
"combobox": false,
|
|
3387
|
-
"dialog_inputs": {},
|
|
3388
|
-
"display_name": "Embedding generation method",
|
|
3389
|
-
"dynamic": false,
|
|
3390
|
-
"external_options": {},
|
|
3391
|
-
"helper_text": "To create collections with more embedding provider options, go to <a class=\"underline\" href=\"https://astra.datastax.com/\" target=\" _blank\" rel=\"noopener noreferrer\">your database in Astra DB</a>",
|
|
3392
|
-
"info": "Provider to use for generating embeddings.",
|
|
3393
|
-
"name": "embedding_generation_provider",
|
|
3394
|
-
"options": [],
|
|
3395
|
-
"options_metadata": [],
|
|
3396
|
-
"placeholder": "",
|
|
3397
|
-
"real_time_refresh": true,
|
|
3398
|
-
"required": true,
|
|
3399
|
-
"show": true,
|
|
3400
|
-
"title_case": false,
|
|
3401
|
-
"toggle": false,
|
|
3402
|
-
"tool_mode": false,
|
|
3403
|
-
"trace_as_metadata": true,
|
|
3404
|
-
"type": "str",
|
|
3405
|
-
"value": ""
|
|
3406
|
-
},
|
|
3407
|
-
"03_embedding_generation_model": {
|
|
3408
|
-
"_input_type": "DropdownInput",
|
|
3409
|
-
"advanced": false,
|
|
3410
|
-
"combobox": false,
|
|
3411
|
-
"dialog_inputs": {},
|
|
3412
|
-
"display_name": "Embedding model",
|
|
3413
|
-
"dynamic": false,
|
|
3414
|
-
"external_options": {},
|
|
3415
|
-
"info": "Model to use for generating embeddings.",
|
|
3416
|
-
"name": "embedding_generation_model",
|
|
3417
|
-
"options": [],
|
|
3418
|
-
"options_metadata": [],
|
|
3419
|
-
"placeholder": "",
|
|
3420
|
-
"real_time_refresh": true,
|
|
3421
|
-
"required": false,
|
|
3422
|
-
"show": true,
|
|
3423
|
-
"title_case": false,
|
|
3424
|
-
"toggle": false,
|
|
3425
|
-
"tool_mode": false,
|
|
3426
|
-
"trace_as_metadata": true,
|
|
3427
|
-
"type": "str",
|
|
3428
|
-
"value": ""
|
|
3429
|
-
},
|
|
3430
|
-
"04_dimension": {
|
|
3431
|
-
"_input_type": "IntInput",
|
|
3432
|
-
"advanced": false,
|
|
3433
|
-
"display_name": "Dimensions",
|
|
3434
|
-
"dynamic": false,
|
|
3435
|
-
"info": "Dimensions of the embeddings to generate.",
|
|
3436
|
-
"list": false,
|
|
3437
|
-
"list_add_label": "Add More",
|
|
3438
|
-
"name": "dimension",
|
|
3439
|
-
"placeholder": "",
|
|
3440
|
-
"required": false,
|
|
3441
|
-
"show": true,
|
|
3442
|
-
"title_case": false,
|
|
3443
|
-
"tool_mode": false,
|
|
3444
|
-
"trace_as_metadata": true,
|
|
3445
|
-
"type": "int"
|
|
3446
|
-
}
|
|
3447
|
-
}
|
|
3448
|
-
}
|
|
3449
|
-
}
|
|
3450
|
-
},
|
|
3451
|
-
"functionality": "create"
|
|
3452
|
-
},
|
|
3453
|
-
"display_name": "Collection",
|
|
3454
|
-
"dynamic": false,
|
|
3455
|
-
"external_options": {},
|
|
3456
|
-
"info": "The name of the collection within Astra DB where the vectors will be stored.",
|
|
3457
|
-
"name": "collection_name",
|
|
3458
|
-
"options": [],
|
|
3459
|
-
"options_metadata": [],
|
|
3460
|
-
"placeholder": "",
|
|
3461
|
-
"real_time_refresh": true,
|
|
3462
|
-
"refresh_button": true,
|
|
3463
|
-
"required": true,
|
|
3464
|
-
"show": false,
|
|
3465
|
-
"title_case": false,
|
|
3466
|
-
"toggle": false,
|
|
3467
|
-
"tool_mode": false,
|
|
3468
|
-
"trace_as_metadata": true,
|
|
3469
|
-
"type": "str",
|
|
3470
|
-
"value": ""
|
|
3471
|
-
},
|
|
3472
|
-
"content_field": {
|
|
3473
|
-
"_input_type": "StrInput",
|
|
3474
|
-
"advanced": true,
|
|
3475
|
-
"display_name": "Content Field",
|
|
3476
|
-
"dynamic": false,
|
|
3477
|
-
"info": "Field to use as the text content field for the vector store.",
|
|
3478
|
-
"list": false,
|
|
3479
|
-
"list_add_label": "Add More",
|
|
3480
|
-
"load_from_db": false,
|
|
3481
|
-
"name": "content_field",
|
|
3482
|
-
"placeholder": "",
|
|
3483
|
-
"required": false,
|
|
3484
|
-
"show": true,
|
|
3485
|
-
"title_case": false,
|
|
3486
|
-
"tool_mode": false,
|
|
3487
|
-
"trace_as_metadata": true,
|
|
3488
|
-
"type": "str",
|
|
3489
|
-
"value": ""
|
|
3490
|
-
},
|
|
3491
|
-
"database_name": {
|
|
3492
|
-
"_input_type": "DropdownInput",
|
|
3493
|
-
"advanced": false,
|
|
3494
|
-
"combobox": true,
|
|
3495
|
-
"dialog_inputs": {
|
|
3496
|
-
"fields": {
|
|
3497
|
-
"data": {
|
|
3498
|
-
"node": {
|
|
3499
|
-
"description": "Please allow several minutes for creation to complete.",
|
|
3500
|
-
"display_name": "Create new database",
|
|
3501
|
-
"field_order": [
|
|
3502
|
-
"01_new_database_name",
|
|
3503
|
-
"02_cloud_provider",
|
|
3504
|
-
"03_region"
|
|
3505
|
-
],
|
|
3506
|
-
"name": "create_database",
|
|
3507
|
-
"template": {
|
|
3508
|
-
"01_new_database_name": {
|
|
3509
|
-
"_input_type": "StrInput",
|
|
3510
|
-
"advanced": false,
|
|
3511
|
-
"display_name": "Name",
|
|
3512
|
-
"dynamic": false,
|
|
3513
|
-
"info": "Name of the new database to create in Astra DB.",
|
|
3514
|
-
"list": false,
|
|
3515
|
-
"list_add_label": "Add More",
|
|
3516
|
-
"load_from_db": false,
|
|
3517
|
-
"name": "new_database_name",
|
|
3518
|
-
"placeholder": "",
|
|
3519
|
-
"required": true,
|
|
3520
|
-
"show": true,
|
|
3521
|
-
"title_case": false,
|
|
3522
|
-
"tool_mode": false,
|
|
3523
|
-
"trace_as_metadata": true,
|
|
3524
|
-
"type": "str",
|
|
3525
|
-
"value": ""
|
|
3526
|
-
},
|
|
3527
|
-
"02_cloud_provider": {
|
|
3528
|
-
"_input_type": "DropdownInput",
|
|
3529
|
-
"advanced": false,
|
|
3530
|
-
"combobox": false,
|
|
3531
|
-
"dialog_inputs": {},
|
|
3532
|
-
"display_name": "Cloud provider",
|
|
3533
|
-
"dynamic": false,
|
|
3534
|
-
"external_options": {},
|
|
3535
|
-
"info": "Cloud provider for the new database.",
|
|
3536
|
-
"name": "cloud_provider",
|
|
3537
|
-
"options": [
|
|
3538
|
-
"Google Cloud Platform",
|
|
3539
|
-
"Amazon Web Services"
|
|
3540
|
-
],
|
|
3541
|
-
"options_metadata": [],
|
|
3542
|
-
"placeholder": "",
|
|
3543
|
-
"real_time_refresh": true,
|
|
3544
|
-
"required": true,
|
|
3545
|
-
"show": true,
|
|
3546
|
-
"title_case": false,
|
|
3547
|
-
"toggle": false,
|
|
3548
|
-
"tool_mode": false,
|
|
3549
|
-
"trace_as_metadata": true,
|
|
3550
|
-
"type": "str",
|
|
3551
|
-
"value": ""
|
|
3552
|
-
},
|
|
3553
|
-
"03_region": {
|
|
3554
|
-
"_input_type": "DropdownInput",
|
|
3555
|
-
"advanced": false,
|
|
3556
|
-
"combobox": false,
|
|
3557
|
-
"dialog_inputs": {},
|
|
3558
|
-
"display_name": "Region",
|
|
3559
|
-
"dynamic": false,
|
|
3560
|
-
"external_options": {},
|
|
3561
|
-
"info": "Region for the new database.",
|
|
3562
|
-
"name": "region",
|
|
3563
|
-
"options": [],
|
|
3564
|
-
"options_metadata": [],
|
|
3565
|
-
"placeholder": "",
|
|
3566
|
-
"required": true,
|
|
3567
|
-
"show": true,
|
|
3568
|
-
"title_case": false,
|
|
3569
|
-
"toggle": false,
|
|
3570
|
-
"tool_mode": false,
|
|
3571
|
-
"trace_as_metadata": true,
|
|
3572
|
-
"type": "str",
|
|
3573
|
-
"value": ""
|
|
3574
|
-
}
|
|
3575
|
-
}
|
|
3576
|
-
}
|
|
3577
|
-
}
|
|
3578
|
-
},
|
|
3579
|
-
"functionality": "create"
|
|
3580
|
-
},
|
|
3581
|
-
"display_name": "Database",
|
|
3582
|
-
"dynamic": false,
|
|
3583
|
-
"external_options": {},
|
|
3584
|
-
"info": "The Database name for the Astra DB instance.",
|
|
3585
|
-
"name": "database_name",
|
|
3586
|
-
"options": [],
|
|
3587
|
-
"options_metadata": [],
|
|
3166
|
+
"list_add_label": "Add More",
|
|
3167
|
+
"load_from_db": false,
|
|
3168
|
+
"name": "s3_file_key",
|
|
3169
|
+
"override_skip": false,
|
|
3588
3170
|
"placeholder": "",
|
|
3589
|
-
"real_time_refresh": true,
|
|
3590
|
-
"refresh_button": true,
|
|
3591
3171
|
"required": true,
|
|
3592
3172
|
"show": false,
|
|
3593
3173
|
"title_case": false,
|
|
3594
|
-
"toggle": false,
|
|
3595
3174
|
"tool_mode": false,
|
|
3596
3175
|
"trace_as_metadata": true,
|
|
3176
|
+
"track_in_telemetry": false,
|
|
3597
3177
|
"type": "str",
|
|
3598
3178
|
"value": ""
|
|
3599
3179
|
},
|
|
3600
|
-
"
|
|
3180
|
+
"separator": {
|
|
3601
3181
|
"_input_type": "StrInput",
|
|
3602
3182
|
"advanced": true,
|
|
3603
|
-
"display_name": "
|
|
3183
|
+
"display_name": "Separator",
|
|
3604
3184
|
"dynamic": false,
|
|
3605
|
-
"info": "
|
|
3185
|
+
"info": "Specify the separator to use between multiple outputs in Message format.",
|
|
3606
3186
|
"list": false,
|
|
3607
3187
|
"list_add_label": "Add More",
|
|
3608
3188
|
"load_from_db": false,
|
|
3609
|
-
"name": "
|
|
3189
|
+
"name": "separator",
|
|
3610
3190
|
"placeholder": "",
|
|
3611
3191
|
"required": false,
|
|
3612
3192
|
"show": true,
|
|
@@ -3614,64 +3194,89 @@
|
|
|
3614
3194
|
"tool_mode": false,
|
|
3615
3195
|
"trace_as_metadata": true,
|
|
3616
3196
|
"type": "str",
|
|
3617
|
-
"value": ""
|
|
3197
|
+
"value": "\n\n"
|
|
3618
3198
|
},
|
|
3619
|
-
"
|
|
3620
|
-
"_input_type": "
|
|
3199
|
+
"service_account_key": {
|
|
3200
|
+
"_input_type": "SecretStrInput",
|
|
3621
3201
|
"advanced": false,
|
|
3622
|
-
"display_name": "
|
|
3202
|
+
"display_name": "GCP Credentials Secret Key",
|
|
3623
3203
|
"dynamic": false,
|
|
3624
|
-
"info": "
|
|
3625
|
-
"input_types": [
|
|
3626
|
-
|
|
3627
|
-
|
|
3204
|
+
"info": "Your Google Cloud Platform service account JSON key as a secret string (complete JSON content).",
|
|
3205
|
+
"input_types": [],
|
|
3206
|
+
"load_from_db": true,
|
|
3207
|
+
"name": "service_account_key",
|
|
3208
|
+
"override_skip": false,
|
|
3209
|
+
"password": true,
|
|
3210
|
+
"placeholder": "",
|
|
3211
|
+
"required": true,
|
|
3212
|
+
"show": false,
|
|
3213
|
+
"title_case": false,
|
|
3214
|
+
"track_in_telemetry": false,
|
|
3215
|
+
"type": "str",
|
|
3216
|
+
"value": ""
|
|
3217
|
+
},
|
|
3218
|
+
"silent_errors": {
|
|
3219
|
+
"_input_type": "BoolInput",
|
|
3220
|
+
"advanced": true,
|
|
3221
|
+
"display_name": "Silent Errors",
|
|
3222
|
+
"dynamic": false,
|
|
3223
|
+
"info": "If true, errors will not raise an exception.",
|
|
3628
3224
|
"list": false,
|
|
3629
3225
|
"list_add_label": "Add More",
|
|
3630
|
-
"name": "
|
|
3226
|
+
"name": "silent_errors",
|
|
3631
3227
|
"placeholder": "",
|
|
3632
3228
|
"required": false,
|
|
3633
3229
|
"show": true,
|
|
3634
3230
|
"title_case": false,
|
|
3231
|
+
"tool_mode": false,
|
|
3635
3232
|
"trace_as_metadata": true,
|
|
3636
|
-
"type": "
|
|
3637
|
-
"value":
|
|
3233
|
+
"type": "bool",
|
|
3234
|
+
"value": false
|
|
3638
3235
|
},
|
|
3639
|
-
"
|
|
3640
|
-
"_input_type": "
|
|
3641
|
-
"advanced":
|
|
3642
|
-
"
|
|
3643
|
-
"dialog_inputs": {},
|
|
3644
|
-
"display_name": "Environment",
|
|
3236
|
+
"storage_location": {
|
|
3237
|
+
"_input_type": "SortableListInput",
|
|
3238
|
+
"advanced": false,
|
|
3239
|
+
"display_name": "Storage Location",
|
|
3645
3240
|
"dynamic": false,
|
|
3646
|
-
"
|
|
3647
|
-
"
|
|
3648
|
-
"name": "
|
|
3241
|
+
"info": "Choose where to read the file from.",
|
|
3242
|
+
"limit": 1,
|
|
3243
|
+
"name": "storage_location",
|
|
3649
3244
|
"options": [
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
|
|
3245
|
+
{
|
|
3246
|
+
"icon": "hard-drive",
|
|
3247
|
+
"name": "Local"
|
|
3248
|
+
},
|
|
3249
|
+
{
|
|
3250
|
+
"icon": "Amazon",
|
|
3251
|
+
"name": "AWS"
|
|
3252
|
+
},
|
|
3253
|
+
{
|
|
3254
|
+
"icon": "google",
|
|
3255
|
+
"name": "Google Drive"
|
|
3256
|
+
}
|
|
3653
3257
|
],
|
|
3654
|
-
"
|
|
3655
|
-
"placeholder": "",
|
|
3258
|
+
"override_skip": false,
|
|
3259
|
+
"placeholder": "Select Location",
|
|
3656
3260
|
"real_time_refresh": true,
|
|
3657
3261
|
"required": false,
|
|
3262
|
+
"search_category": [],
|
|
3658
3263
|
"show": true,
|
|
3659
3264
|
"title_case": false,
|
|
3660
|
-
"toggle": false,
|
|
3661
3265
|
"tool_mode": false,
|
|
3662
3266
|
"trace_as_metadata": true,
|
|
3663
|
-
"
|
|
3664
|
-
"
|
|
3267
|
+
"track_in_telemetry": false,
|
|
3268
|
+
"type": "sortableList",
|
|
3269
|
+
"value": ""
|
|
3665
3270
|
},
|
|
3666
|
-
"
|
|
3271
|
+
"use_multithreading": {
|
|
3667
3272
|
"_input_type": "BoolInput",
|
|
3668
3273
|
"advanced": true,
|
|
3669
|
-
"display_name": "
|
|
3274
|
+
"display_name": "[Deprecated] Use Multithreading",
|
|
3670
3275
|
"dynamic": false,
|
|
3671
|
-
"info": "
|
|
3276
|
+
"info": "Set 'Processing Concurrency' greater than 1 to enable multithreading.",
|
|
3672
3277
|
"list": false,
|
|
3673
3278
|
"list_add_label": "Add More",
|
|
3674
|
-
"name": "
|
|
3279
|
+
"name": "use_multithreading",
|
|
3675
3280
|
"placeholder": "",
|
|
3676
3281
|
"required": false,
|
|
3677
3282
|
"show": true,
|
|
@@ -3679,275 +3284,407 @@
|
|
|
3679
3284
|
"tool_mode": false,
|
|
3680
3285
|
"trace_as_metadata": true,
|
|
3681
3286
|
"type": "bool",
|
|
3682
|
-
"value":
|
|
3287
|
+
"value": true
|
|
3288
|
+
}
|
|
3289
|
+
},
|
|
3290
|
+
"tool_mode": false
|
|
3291
|
+
},
|
|
3292
|
+
"showNode": true,
|
|
3293
|
+
"type": "File"
|
|
3294
|
+
},
|
|
3295
|
+
"dragging": false,
|
|
3296
|
+
"id": "File-7D3hP",
|
|
3297
|
+
"measured": {
|
|
3298
|
+
"height": 256,
|
|
3299
|
+
"width": 320
|
|
3300
|
+
},
|
|
3301
|
+
"position": {
|
|
3302
|
+
"x": 1330.7650978046952,
|
|
3303
|
+
"y": 1431.5905495627503
|
|
3304
|
+
},
|
|
3305
|
+
"selected": false,
|
|
3306
|
+
"type": "genericNode"
|
|
3307
|
+
},
|
|
3308
|
+
{
|
|
3309
|
+
"data": {
|
|
3310
|
+
"id": "LanguageModelComponent-Wqbva",
|
|
3311
|
+
"node": {
|
|
3312
|
+
"base_classes": [
|
|
3313
|
+
"LanguageModel",
|
|
3314
|
+
"Message"
|
|
3315
|
+
],
|
|
3316
|
+
"beta": false,
|
|
3317
|
+
"conditional_paths": [],
|
|
3318
|
+
"custom_fields": {},
|
|
3319
|
+
"description": "Runs a language model given a specified provider.",
|
|
3320
|
+
"display_name": "Language Model",
|
|
3321
|
+
"documentation": "https://docs.langflow.org/components-models",
|
|
3322
|
+
"edited": false,
|
|
3323
|
+
"field_order": [
|
|
3324
|
+
"model",
|
|
3325
|
+
"api_key",
|
|
3326
|
+
"base_url_ibm_watsonx",
|
|
3327
|
+
"project_id",
|
|
3328
|
+
"ollama_base_url",
|
|
3329
|
+
"input_value",
|
|
3330
|
+
"system_message",
|
|
3331
|
+
"stream",
|
|
3332
|
+
"temperature"
|
|
3333
|
+
],
|
|
3334
|
+
"frozen": false,
|
|
3335
|
+
"icon": "brain-circuit",
|
|
3336
|
+
"last_updated": "2025-12-11T21:29:10.202Z",
|
|
3337
|
+
"legacy": false,
|
|
3338
|
+
"lf_version": "1.7.0",
|
|
3339
|
+
"metadata": {
|
|
3340
|
+
"code_hash": "7fe3257f2169",
|
|
3341
|
+
"dependencies": {
|
|
3342
|
+
"dependencies": [
|
|
3343
|
+
{
|
|
3344
|
+
"name": "lfx",
|
|
3345
|
+
"version": null
|
|
3346
|
+
}
|
|
3347
|
+
],
|
|
3348
|
+
"total_dependencies": 1
|
|
3683
3349
|
},
|
|
3684
|
-
"
|
|
3685
|
-
"
|
|
3686
|
-
"
|
|
3687
|
-
"
|
|
3688
|
-
"
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
3350
|
+
"keywords": [
|
|
3351
|
+
"model",
|
|
3352
|
+
"llm",
|
|
3353
|
+
"language model",
|
|
3354
|
+
"large language model"
|
|
3355
|
+
],
|
|
3356
|
+
"module": "lfx.components.models_and_agents.language_model.LanguageModelComponent"
|
|
3357
|
+
},
|
|
3358
|
+
"minimized": false,
|
|
3359
|
+
"output_types": [],
|
|
3360
|
+
"outputs": [
|
|
3361
|
+
{
|
|
3362
|
+
"allows_loop": false,
|
|
3363
|
+
"cache": true,
|
|
3364
|
+
"display_name": "Model Response",
|
|
3365
|
+
"group_outputs": false,
|
|
3366
|
+
"loop_types": null,
|
|
3367
|
+
"method": "text_response",
|
|
3368
|
+
"name": "text_output",
|
|
3369
|
+
"options": null,
|
|
3370
|
+
"required_inputs": null,
|
|
3371
|
+
"selected": "Message",
|
|
3372
|
+
"tool_mode": true,
|
|
3373
|
+
"types": [
|
|
3374
|
+
"Message"
|
|
3693
3375
|
],
|
|
3694
|
-
"
|
|
3695
|
-
"list_add_label": "Add More",
|
|
3696
|
-
"name": "ingest_data",
|
|
3697
|
-
"placeholder": "",
|
|
3698
|
-
"required": false,
|
|
3699
|
-
"show": true,
|
|
3700
|
-
"title_case": false,
|
|
3701
|
-
"trace_as_metadata": true,
|
|
3702
|
-
"type": "other",
|
|
3703
|
-
"value": ""
|
|
3376
|
+
"value": "__UNDEFINED__"
|
|
3704
3377
|
},
|
|
3705
|
-
|
|
3706
|
-
"
|
|
3378
|
+
{
|
|
3379
|
+
"allows_loop": false,
|
|
3380
|
+
"cache": true,
|
|
3381
|
+
"display_name": "Language Model",
|
|
3382
|
+
"group_outputs": false,
|
|
3383
|
+
"loop_types": null,
|
|
3384
|
+
"method": "build_model",
|
|
3385
|
+
"name": "model_output",
|
|
3386
|
+
"options": null,
|
|
3387
|
+
"required_inputs": null,
|
|
3388
|
+
"selected": "LanguageModel",
|
|
3389
|
+
"tool_mode": true,
|
|
3390
|
+
"types": [
|
|
3391
|
+
"LanguageModel"
|
|
3392
|
+
],
|
|
3393
|
+
"value": "__UNDEFINED__"
|
|
3394
|
+
}
|
|
3395
|
+
],
|
|
3396
|
+
"pinned": false,
|
|
3397
|
+
"priority": 0,
|
|
3398
|
+
"template": {
|
|
3399
|
+
"_frontend_node_flow_id": {
|
|
3400
|
+
"value": "524f71dc-cc58-441a-a009-c71d6755765f"
|
|
3401
|
+
},
|
|
3402
|
+
"_frontend_node_folder_id": {
|
|
3403
|
+
"value": "afaca9ee-97e3-4211-8569-722a4058ea5e"
|
|
3404
|
+
},
|
|
3405
|
+
"_type": "Component",
|
|
3406
|
+
"api_key": {
|
|
3407
|
+
"_input_type": "SecretStrInput",
|
|
3707
3408
|
"advanced": true,
|
|
3708
|
-
"
|
|
3709
|
-
"dialog_inputs": {},
|
|
3710
|
-
"display_name": "Keyspace",
|
|
3409
|
+
"display_name": "API Key",
|
|
3711
3410
|
"dynamic": false,
|
|
3712
|
-
"
|
|
3713
|
-
"
|
|
3714
|
-
"
|
|
3715
|
-
"
|
|
3716
|
-
"
|
|
3411
|
+
"info": "Model Provider API key",
|
|
3412
|
+
"input_types": [],
|
|
3413
|
+
"load_from_db": false,
|
|
3414
|
+
"name": "api_key",
|
|
3415
|
+
"override_skip": false,
|
|
3416
|
+
"password": true,
|
|
3717
3417
|
"placeholder": "",
|
|
3718
3418
|
"real_time_refresh": true,
|
|
3719
3419
|
"required": false,
|
|
3720
3420
|
"show": true,
|
|
3721
3421
|
"title_case": false,
|
|
3722
|
-
"
|
|
3723
|
-
"tool_mode": false,
|
|
3724
|
-
"trace_as_metadata": true,
|
|
3422
|
+
"track_in_telemetry": false,
|
|
3725
3423
|
"type": "str",
|
|
3726
3424
|
"value": ""
|
|
3727
3425
|
},
|
|
3728
|
-
"
|
|
3729
|
-
"_input_type": "
|
|
3426
|
+
"base_url_ibm_watsonx": {
|
|
3427
|
+
"_input_type": "DropdownInput",
|
|
3730
3428
|
"advanced": false,
|
|
3731
|
-
"
|
|
3429
|
+
"combobox": false,
|
|
3430
|
+
"dialog_inputs": {},
|
|
3431
|
+
"display_name": "watsonx API Endpoint",
|
|
3732
3432
|
"dynamic": false,
|
|
3733
|
-
"
|
|
3734
|
-
"
|
|
3735
|
-
|
|
3433
|
+
"external_options": {},
|
|
3434
|
+
"info": "The base URL of the API (IBM watsonx.ai only)",
|
|
3435
|
+
"name": "base_url_ibm_watsonx",
|
|
3436
|
+
"options": [
|
|
3437
|
+
"https://us-south.ml.cloud.ibm.com",
|
|
3438
|
+
"https://eu-de.ml.cloud.ibm.com",
|
|
3439
|
+
"https://eu-gb.ml.cloud.ibm.com",
|
|
3440
|
+
"https://au-syd.ml.cloud.ibm.com",
|
|
3441
|
+
"https://jp-tok.ml.cloud.ibm.com",
|
|
3442
|
+
"https://ca-tor.ml.cloud.ibm.com"
|
|
3736
3443
|
],
|
|
3737
|
-
"
|
|
3738
|
-
"
|
|
3739
|
-
"
|
|
3740
|
-
"
|
|
3741
|
-
"placeholder": "Enter terms to search...",
|
|
3444
|
+
"options_metadata": [],
|
|
3445
|
+
"override_skip": false,
|
|
3446
|
+
"placeholder": "",
|
|
3447
|
+
"real_time_refresh": true,
|
|
3742
3448
|
"required": false,
|
|
3743
|
-
"separator": " ",
|
|
3744
3449
|
"show": false,
|
|
3745
3450
|
"title_case": false,
|
|
3451
|
+
"toggle": false,
|
|
3746
3452
|
"tool_mode": false,
|
|
3747
|
-
"trace_as_input": true,
|
|
3748
3453
|
"trace_as_metadata": true,
|
|
3749
|
-
"
|
|
3750
|
-
"
|
|
3454
|
+
"track_in_telemetry": true,
|
|
3455
|
+
"type": "str",
|
|
3456
|
+
"value": "https://us-south.ml.cloud.ibm.com"
|
|
3751
3457
|
},
|
|
3752
|
-
"
|
|
3753
|
-
"_input_type": "IntInput",
|
|
3458
|
+
"code": {
|
|
3754
3459
|
"advanced": true,
|
|
3755
|
-
"
|
|
3756
|
-
"
|
|
3757
|
-
"
|
|
3460
|
+
"dynamic": true,
|
|
3461
|
+
"fileTypes": [],
|
|
3462
|
+
"file_path": "",
|
|
3463
|
+
"info": "",
|
|
3758
3464
|
"list": false,
|
|
3759
|
-
"
|
|
3760
|
-
"
|
|
3465
|
+
"load_from_db": false,
|
|
3466
|
+
"multiline": true,
|
|
3467
|
+
"name": "code",
|
|
3468
|
+
"password": false,
|
|
3761
3469
|
"placeholder": "",
|
|
3762
|
-
"required":
|
|
3470
|
+
"required": true,
|
|
3763
3471
|
"show": true,
|
|
3764
3472
|
"title_case": false,
|
|
3765
|
-
"
|
|
3766
|
-
"
|
|
3767
|
-
"type": "int",
|
|
3768
|
-
"value": 4
|
|
3473
|
+
"type": "code",
|
|
3474
|
+
"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 watsonx_url=getattr(self, \"base_url_ibm_watsonx\", None),\n watsonx_project_id=getattr(self, \"project_id\", None),\n ollama_base_url=getattr(self, \"ollama_base_url\", None),\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 # Update model options\n build_config = 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\n # Show/hide provider-specific fields based on selected model\n if field_name == \"model\" and isinstance(field_value, list) and len(field_value) > 0:\n selected_model = field_value[0]\n provider = selected_model.get(\"provider\", \"\")\n\n # Show/hide watsonx fields\n is_watsonx = provider == \"IBM WatsonX\"\n build_config[\"base_url_ibm_watsonx\"][\"show\"] = is_watsonx\n build_config[\"project_id\"][\"show\"] = is_watsonx\n build_config[\"base_url_ibm_watsonx\"][\"required\"] = is_watsonx\n build_config[\"project_id\"][\"required\"] = is_watsonx\n\n # Show/hide Ollama fields\n is_ollama = provider == \"Ollama\"\n build_config[\"ollama_base_url\"][\"show\"] = is_ollama\n\n return build_config\n"
|
|
3769
3475
|
},
|
|
3770
|
-
"
|
|
3771
|
-
"_input_type": "
|
|
3476
|
+
"input_value": {
|
|
3477
|
+
"_input_type": "MessageInput",
|
|
3772
3478
|
"advanced": false,
|
|
3773
|
-
"
|
|
3774
|
-
"dialog_inputs": {},
|
|
3775
|
-
"display_name": "Reranker",
|
|
3479
|
+
"display_name": "Input",
|
|
3776
3480
|
"dynamic": false,
|
|
3777
|
-
"
|
|
3778
|
-
"
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
"
|
|
3481
|
+
"info": "The input text to send to the model",
|
|
3482
|
+
"input_types": [
|
|
3483
|
+
"Message"
|
|
3484
|
+
],
|
|
3485
|
+
"list": false,
|
|
3486
|
+
"list_add_label": "Add More",
|
|
3487
|
+
"load_from_db": false,
|
|
3488
|
+
"name": "input_value",
|
|
3489
|
+
"override_skip": false,
|
|
3782
3490
|
"placeholder": "",
|
|
3783
3491
|
"required": false,
|
|
3784
|
-
"show":
|
|
3492
|
+
"show": true,
|
|
3785
3493
|
"title_case": false,
|
|
3786
|
-
"toggle": true,
|
|
3787
3494
|
"tool_mode": false,
|
|
3495
|
+
"trace_as_input": true,
|
|
3788
3496
|
"trace_as_metadata": true,
|
|
3497
|
+
"track_in_telemetry": false,
|
|
3789
3498
|
"type": "str",
|
|
3790
3499
|
"value": ""
|
|
3791
3500
|
},
|
|
3792
|
-
"
|
|
3793
|
-
|
|
3794
|
-
"
|
|
3795
|
-
"
|
|
3796
|
-
"
|
|
3797
|
-
"display_name": "Search Method",
|
|
3501
|
+
"is_refresh": false,
|
|
3502
|
+
"model": {
|
|
3503
|
+
"_input_type": "ModelInput",
|
|
3504
|
+
"advanced": false,
|
|
3505
|
+
"display_name": "Language Model",
|
|
3798
3506
|
"dynamic": false,
|
|
3799
|
-
"external_options": {
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
"icon": "SearchHybrid"
|
|
3809
|
-
},
|
|
3810
|
-
{
|
|
3811
|
-
"icon": "SearchVector"
|
|
3507
|
+
"external_options": {
|
|
3508
|
+
"fields": {
|
|
3509
|
+
"data": {
|
|
3510
|
+
"node": {
|
|
3511
|
+
"display_name": "Connect other models",
|
|
3512
|
+
"icon": "CornerDownLeft",
|
|
3513
|
+
"name": "connect_other_models"
|
|
3514
|
+
}
|
|
3515
|
+
}
|
|
3812
3516
|
}
|
|
3517
|
+
},
|
|
3518
|
+
"info": "Select your model provider",
|
|
3519
|
+
"input_types": [
|
|
3520
|
+
"LanguageModel"
|
|
3813
3521
|
],
|
|
3814
|
-
"
|
|
3522
|
+
"list": false,
|
|
3523
|
+
"list_add_label": "Add More",
|
|
3524
|
+
"model_type": "language",
|
|
3525
|
+
"name": "model",
|
|
3526
|
+
"options": [],
|
|
3527
|
+
"override_skip": false,
|
|
3528
|
+
"placeholder": "Setup Provider",
|
|
3815
3529
|
"real_time_refresh": true,
|
|
3816
|
-
"
|
|
3530
|
+
"refresh_button": true,
|
|
3531
|
+
"required": true,
|
|
3817
3532
|
"show": true,
|
|
3818
3533
|
"title_case": false,
|
|
3819
|
-
"toggle": false,
|
|
3820
3534
|
"tool_mode": false,
|
|
3821
|
-
"
|
|
3822
|
-
"
|
|
3823
|
-
"
|
|
3535
|
+
"trace_as_input": true,
|
|
3536
|
+
"track_in_telemetry": false,
|
|
3537
|
+
"type": "model",
|
|
3538
|
+
"value": []
|
|
3824
3539
|
},
|
|
3825
|
-
"
|
|
3826
|
-
"_input_type": "
|
|
3540
|
+
"ollama_base_url": {
|
|
3541
|
+
"_input_type": "MessageInput",
|
|
3827
3542
|
"advanced": false,
|
|
3828
|
-
"display_name": "
|
|
3543
|
+
"display_name": "Ollama API URL",
|
|
3829
3544
|
"dynamic": false,
|
|
3830
|
-
"info": "
|
|
3545
|
+
"info": "Endpoint of the Ollama API (Ollama only). Defaults to http://localhost:11434",
|
|
3831
3546
|
"input_types": [
|
|
3832
3547
|
"Message"
|
|
3833
3548
|
],
|
|
3834
3549
|
"list": false,
|
|
3835
3550
|
"list_add_label": "Add More",
|
|
3836
3551
|
"load_from_db": false,
|
|
3837
|
-
"name": "
|
|
3838
|
-
"
|
|
3552
|
+
"name": "ollama_base_url",
|
|
3553
|
+
"override_skip": false,
|
|
3554
|
+
"placeholder": "",
|
|
3555
|
+
"real_time_refresh": true,
|
|
3839
3556
|
"required": false,
|
|
3840
|
-
"show":
|
|
3557
|
+
"show": false,
|
|
3841
3558
|
"title_case": false,
|
|
3842
|
-
"tool_mode":
|
|
3559
|
+
"tool_mode": false,
|
|
3843
3560
|
"trace_as_input": true,
|
|
3844
3561
|
"trace_as_metadata": true,
|
|
3845
|
-
"
|
|
3562
|
+
"track_in_telemetry": false,
|
|
3563
|
+
"type": "str",
|
|
3846
3564
|
"value": ""
|
|
3847
3565
|
},
|
|
3848
|
-
"
|
|
3849
|
-
"_input_type": "
|
|
3850
|
-
"advanced":
|
|
3851
|
-
"display_name": "
|
|
3566
|
+
"project_id": {
|
|
3567
|
+
"_input_type": "StrInput",
|
|
3568
|
+
"advanced": false,
|
|
3569
|
+
"display_name": "watsonx Project ID",
|
|
3852
3570
|
"dynamic": false,
|
|
3853
|
-
"info": "
|
|
3571
|
+
"info": "The project ID associated with the foundation model (IBM watsonx.ai only)",
|
|
3854
3572
|
"list": false,
|
|
3855
3573
|
"list_add_label": "Add More",
|
|
3856
|
-
"
|
|
3574
|
+
"load_from_db": false,
|
|
3575
|
+
"name": "project_id",
|
|
3576
|
+
"override_skip": false,
|
|
3857
3577
|
"placeholder": "",
|
|
3858
3578
|
"required": false,
|
|
3859
|
-
"show":
|
|
3579
|
+
"show": false,
|
|
3860
3580
|
"title_case": false,
|
|
3861
3581
|
"tool_mode": false,
|
|
3862
3582
|
"trace_as_metadata": true,
|
|
3863
|
-
"
|
|
3864
|
-
"
|
|
3583
|
+
"track_in_telemetry": false,
|
|
3584
|
+
"type": "str",
|
|
3585
|
+
"value": ""
|
|
3865
3586
|
},
|
|
3866
|
-
"
|
|
3867
|
-
"_input_type": "
|
|
3587
|
+
"stream": {
|
|
3588
|
+
"_input_type": "BoolInput",
|
|
3868
3589
|
"advanced": true,
|
|
3869
|
-
"
|
|
3870
|
-
"dialog_inputs": {},
|
|
3871
|
-
"display_name": "Search Type",
|
|
3590
|
+
"display_name": "Stream",
|
|
3872
3591
|
"dynamic": false,
|
|
3873
|
-
"
|
|
3874
|
-
"
|
|
3875
|
-
"
|
|
3876
|
-
"
|
|
3877
|
-
|
|
3878
|
-
"Similarity with score threshold",
|
|
3879
|
-
"MMR (Max Marginal Relevance)"
|
|
3880
|
-
],
|
|
3881
|
-
"options_metadata": [],
|
|
3592
|
+
"info": "Whether to stream the response",
|
|
3593
|
+
"list": false,
|
|
3594
|
+
"list_add_label": "Add More",
|
|
3595
|
+
"name": "stream",
|
|
3596
|
+
"override_skip": false,
|
|
3882
3597
|
"placeholder": "",
|
|
3883
3598
|
"required": false,
|
|
3884
3599
|
"show": true,
|
|
3885
3600
|
"title_case": false,
|
|
3886
|
-
"toggle": false,
|
|
3887
3601
|
"tool_mode": false,
|
|
3888
3602
|
"trace_as_metadata": true,
|
|
3889
|
-
"
|
|
3890
|
-
"
|
|
3603
|
+
"track_in_telemetry": true,
|
|
3604
|
+
"type": "bool",
|
|
3605
|
+
"value": false
|
|
3891
3606
|
},
|
|
3892
|
-
"
|
|
3893
|
-
"_input_type": "
|
|
3894
|
-
"advanced":
|
|
3895
|
-
"
|
|
3607
|
+
"system_message": {
|
|
3608
|
+
"_input_type": "MultilineInput",
|
|
3609
|
+
"advanced": false,
|
|
3610
|
+
"ai_enabled": false,
|
|
3611
|
+
"copy_field": false,
|
|
3612
|
+
"display_name": "System Message",
|
|
3896
3613
|
"dynamic": false,
|
|
3897
|
-
"info": "
|
|
3614
|
+
"info": "A system message that helps set the behavior of the assistant",
|
|
3615
|
+
"input_types": [
|
|
3616
|
+
"Message"
|
|
3617
|
+
],
|
|
3898
3618
|
"list": false,
|
|
3899
3619
|
"list_add_label": "Add More",
|
|
3900
|
-
"
|
|
3620
|
+
"load_from_db": false,
|
|
3621
|
+
"multiline": true,
|
|
3622
|
+
"name": "system_message",
|
|
3623
|
+
"override_skip": false,
|
|
3901
3624
|
"placeholder": "",
|
|
3902
3625
|
"required": false,
|
|
3903
3626
|
"show": true,
|
|
3904
3627
|
"title_case": false,
|
|
3905
3628
|
"tool_mode": false,
|
|
3629
|
+
"trace_as_input": true,
|
|
3906
3630
|
"trace_as_metadata": true,
|
|
3907
|
-
"
|
|
3908
|
-
"
|
|
3631
|
+
"track_in_telemetry": false,
|
|
3632
|
+
"type": "str",
|
|
3633
|
+
"value": ""
|
|
3909
3634
|
},
|
|
3910
|
-
"
|
|
3911
|
-
"_input_type": "
|
|
3912
|
-
"advanced":
|
|
3913
|
-
"display_name": "
|
|
3635
|
+
"temperature": {
|
|
3636
|
+
"_input_type": "SliderInput",
|
|
3637
|
+
"advanced": true,
|
|
3638
|
+
"display_name": "Temperature",
|
|
3914
3639
|
"dynamic": false,
|
|
3915
|
-
"info": "
|
|
3916
|
-
"
|
|
3917
|
-
"
|
|
3918
|
-
"
|
|
3919
|
-
"
|
|
3640
|
+
"info": "Controls randomness in responses",
|
|
3641
|
+
"max_label": "",
|
|
3642
|
+
"max_label_icon": "",
|
|
3643
|
+
"min_label": "",
|
|
3644
|
+
"min_label_icon": "",
|
|
3645
|
+
"name": "temperature",
|
|
3646
|
+
"override_skip": false,
|
|
3920
3647
|
"placeholder": "",
|
|
3921
|
-
"
|
|
3922
|
-
|
|
3648
|
+
"range_spec": {
|
|
3649
|
+
"max": 1,
|
|
3650
|
+
"min": 0,
|
|
3651
|
+
"step": 0.01,
|
|
3652
|
+
"step_type": "float"
|
|
3653
|
+
},
|
|
3654
|
+
"required": false,
|
|
3923
3655
|
"show": true,
|
|
3656
|
+
"slider_buttons": false,
|
|
3657
|
+
"slider_buttons_options": [],
|
|
3658
|
+
"slider_input": false,
|
|
3924
3659
|
"title_case": false,
|
|
3925
|
-
"
|
|
3926
|
-
"
|
|
3660
|
+
"tool_mode": false,
|
|
3661
|
+
"track_in_telemetry": false,
|
|
3662
|
+
"type": "slider",
|
|
3663
|
+
"value": 0.1
|
|
3927
3664
|
}
|
|
3928
3665
|
},
|
|
3929
3666
|
"tool_mode": false
|
|
3930
3667
|
},
|
|
3931
|
-
"selected_output": "
|
|
3668
|
+
"selected_output": "text_output",
|
|
3932
3669
|
"showNode": true,
|
|
3933
|
-
"type": "
|
|
3670
|
+
"type": "LanguageModelComponent"
|
|
3934
3671
|
},
|
|
3935
3672
|
"dragging": false,
|
|
3936
|
-
"id": "
|
|
3673
|
+
"id": "LanguageModelComponent-Wqbva",
|
|
3937
3674
|
"measured": {
|
|
3938
|
-
"height":
|
|
3675
|
+
"height": 451,
|
|
3939
3676
|
"width": 320
|
|
3940
3677
|
},
|
|
3941
3678
|
"position": {
|
|
3942
|
-
"x":
|
|
3943
|
-
"y":
|
|
3679
|
+
"x": 2354.7612483129965,
|
|
3680
|
+
"y": 633.8261067248878
|
|
3944
3681
|
},
|
|
3945
3682
|
"selected": false,
|
|
3946
3683
|
"type": "genericNode"
|
|
3947
3684
|
},
|
|
3948
3685
|
{
|
|
3949
3686
|
"data": {
|
|
3950
|
-
"id": "AstraDB-
|
|
3687
|
+
"id": "AstraDB-TCSqR",
|
|
3951
3688
|
"node": {
|
|
3952
3689
|
"base_classes": [
|
|
3953
3690
|
"Data",
|
|
@@ -3987,7 +3724,6 @@
|
|
|
3987
3724
|
],
|
|
3988
3725
|
"frozen": false,
|
|
3989
3726
|
"icon": "AstraDB",
|
|
3990
|
-
"last_updated": "2025-12-20T17:35:17.511Z",
|
|
3991
3727
|
"legacy": false,
|
|
3992
3728
|
"metadata": {
|
|
3993
3729
|
"code_hash": "d52094e54e96",
|
|
@@ -4351,10 +4087,7 @@
|
|
|
4351
4087
|
"external_options": {},
|
|
4352
4088
|
"info": "Cloud provider for the new database.",
|
|
4353
4089
|
"name": "cloud_provider",
|
|
4354
|
-
"options": [
|
|
4355
|
-
"Google Cloud Platform",
|
|
4356
|
-
"Amazon Web Services"
|
|
4357
|
-
],
|
|
4090
|
+
"options": [],
|
|
4358
4091
|
"options_metadata": [],
|
|
4359
4092
|
"placeholder": "",
|
|
4360
4093
|
"real_time_refresh": true,
|
|
@@ -4406,7 +4139,7 @@
|
|
|
4406
4139
|
"real_time_refresh": true,
|
|
4407
4140
|
"refresh_button": true,
|
|
4408
4141
|
"required": true,
|
|
4409
|
-
"show":
|
|
4142
|
+
"show": true,
|
|
4410
4143
|
"title_case": false,
|
|
4411
4144
|
"toggle": false,
|
|
4412
4145
|
"tool_mode": false,
|
|
@@ -4731,7 +4464,7 @@
|
|
|
4731
4464
|
"dynamic": false,
|
|
4732
4465
|
"info": "Authentication token for accessing Astra DB.",
|
|
4733
4466
|
"input_types": [],
|
|
4734
|
-
"load_from_db":
|
|
4467
|
+
"load_from_db": true,
|
|
4735
4468
|
"name": "token",
|
|
4736
4469
|
"password": true,
|
|
4737
4470
|
"placeholder": "",
|
|
@@ -4740,97 +4473,95 @@
|
|
|
4740
4473
|
"show": true,
|
|
4741
4474
|
"title_case": false,
|
|
4742
4475
|
"type": "str",
|
|
4743
|
-
"value": ""
|
|
4476
|
+
"value": "ASTRA_DB_APPLICATION_TOKEN"
|
|
4744
4477
|
}
|
|
4745
4478
|
},
|
|
4746
4479
|
"tool_mode": false
|
|
4747
4480
|
},
|
|
4748
|
-
"selected_output": "
|
|
4481
|
+
"selected_output": "search_results",
|
|
4749
4482
|
"showNode": true,
|
|
4750
4483
|
"type": "AstraDB"
|
|
4751
4484
|
},
|
|
4752
4485
|
"dragging": false,
|
|
4753
|
-
"id": "AstraDB-
|
|
4486
|
+
"id": "AstraDB-TCSqR",
|
|
4754
4487
|
"measured": {
|
|
4755
|
-
"height":
|
|
4488
|
+
"height": 458,
|
|
4756
4489
|
"width": 320
|
|
4757
4490
|
},
|
|
4758
4491
|
"position": {
|
|
4759
|
-
"x":
|
|
4760
|
-
"y":
|
|
4492
|
+
"x": 2095.3200255891484,
|
|
4493
|
+
"y": 1501.719729125222
|
|
4761
4494
|
},
|
|
4762
4495
|
"selected": false,
|
|
4763
4496
|
"type": "genericNode"
|
|
4764
4497
|
},
|
|
4765
4498
|
{
|
|
4766
4499
|
"data": {
|
|
4767
|
-
"id": "
|
|
4500
|
+
"id": "AstraDB-BteL9",
|
|
4768
4501
|
"node": {
|
|
4769
4502
|
"base_classes": [
|
|
4770
|
-
"
|
|
4503
|
+
"Data",
|
|
4504
|
+
"DataFrame",
|
|
4505
|
+
"VectorStore"
|
|
4771
4506
|
],
|
|
4772
4507
|
"beta": false,
|
|
4773
4508
|
"conditional_paths": [],
|
|
4774
4509
|
"custom_fields": {},
|
|
4775
|
-
"description": "
|
|
4776
|
-
"display_name": "
|
|
4777
|
-
"documentation": "https://docs.
|
|
4510
|
+
"description": "Ingest and search documents in Astra DB",
|
|
4511
|
+
"display_name": "Astra DB",
|
|
4512
|
+
"documentation": "https://docs.datastax.com/en/langflow/astra-components.html",
|
|
4778
4513
|
"edited": false,
|
|
4779
4514
|
"field_order": [
|
|
4780
|
-
"
|
|
4781
|
-
"
|
|
4782
|
-
"
|
|
4783
|
-
"
|
|
4784
|
-
"
|
|
4785
|
-
"
|
|
4786
|
-
"
|
|
4787
|
-
"
|
|
4788
|
-
"
|
|
4789
|
-
"
|
|
4790
|
-
"
|
|
4791
|
-
"
|
|
4792
|
-
"
|
|
4793
|
-
"
|
|
4794
|
-
"
|
|
4795
|
-
"
|
|
4796
|
-
"
|
|
4797
|
-
"
|
|
4798
|
-
"
|
|
4799
|
-
"
|
|
4800
|
-
"
|
|
4801
|
-
"
|
|
4802
|
-
"use_multithreading",
|
|
4803
|
-
"concurrency_multithreading",
|
|
4804
|
-
"markdown"
|
|
4515
|
+
"token",
|
|
4516
|
+
"environment",
|
|
4517
|
+
"database_name",
|
|
4518
|
+
"api_endpoint",
|
|
4519
|
+
"keyspace",
|
|
4520
|
+
"collection_name",
|
|
4521
|
+
"embedding_model",
|
|
4522
|
+
"ingest_data",
|
|
4523
|
+
"search_query",
|
|
4524
|
+
"should_cache_vector_store",
|
|
4525
|
+
"search_method",
|
|
4526
|
+
"reranker",
|
|
4527
|
+
"lexical_terms",
|
|
4528
|
+
"number_of_results",
|
|
4529
|
+
"search_type",
|
|
4530
|
+
"search_score_threshold",
|
|
4531
|
+
"advanced_search_filter",
|
|
4532
|
+
"autodetect_collection",
|
|
4533
|
+
"content_field",
|
|
4534
|
+
"deletion_field",
|
|
4535
|
+
"ignore_invalid_documents",
|
|
4536
|
+
"astradb_vectorstore_kwargs"
|
|
4805
4537
|
],
|
|
4806
4538
|
"frozen": false,
|
|
4807
|
-
"icon": "
|
|
4808
|
-
"last_updated": "2025-12-20T17:35:27.280Z",
|
|
4539
|
+
"icon": "AstraDB",
|
|
4809
4540
|
"legacy": false,
|
|
4810
4541
|
"metadata": {
|
|
4811
|
-
"code_hash": "
|
|
4542
|
+
"code_hash": "d52094e54e96",
|
|
4812
4543
|
"dependencies": {
|
|
4813
4544
|
"dependencies": [
|
|
4814
4545
|
{
|
|
4815
|
-
"name": "
|
|
4816
|
-
"version":
|
|
4546
|
+
"name": "astrapy",
|
|
4547
|
+
"version": "2.1.0"
|
|
4817
4548
|
},
|
|
4818
4549
|
{
|
|
4819
4550
|
"name": "langchain_core",
|
|
4820
4551
|
"version": "0.3.80"
|
|
4821
4552
|
},
|
|
4822
4553
|
{
|
|
4823
|
-
"name": "
|
|
4824
|
-
"version":
|
|
4554
|
+
"name": "lfx",
|
|
4555
|
+
"version": null
|
|
4825
4556
|
},
|
|
4826
4557
|
{
|
|
4827
|
-
"name": "
|
|
4828
|
-
"version": "
|
|
4558
|
+
"name": "langchain_astradb",
|
|
4559
|
+
"version": "0.6.1"
|
|
4829
4560
|
}
|
|
4830
4561
|
],
|
|
4831
4562
|
"total_dependencies": 4
|
|
4832
4563
|
},
|
|
4833
|
-
"module": "lfx.components.
|
|
4564
|
+
"module": "lfx.components.datastax.astradb_vectorstore.AstraDBVectorStoreComponent"
|
|
4834
4565
|
},
|
|
4835
4566
|
"minimized": false,
|
|
4836
4567
|
"output_types": [],
|
|
@@ -4838,14 +4569,43 @@
|
|
|
4838
4569
|
{
|
|
4839
4570
|
"allows_loop": false,
|
|
4840
4571
|
"cache": true,
|
|
4841
|
-
"display_name": "
|
|
4572
|
+
"display_name": "Search Results",
|
|
4842
4573
|
"group_outputs": false,
|
|
4843
|
-
"method": "
|
|
4844
|
-
"name": "
|
|
4845
|
-
"selected": "
|
|
4574
|
+
"method": "search_documents",
|
|
4575
|
+
"name": "search_results",
|
|
4576
|
+
"selected": "Data",
|
|
4846
4577
|
"tool_mode": true,
|
|
4847
4578
|
"types": [
|
|
4848
|
-
"
|
|
4579
|
+
"Data"
|
|
4580
|
+
],
|
|
4581
|
+
"value": "__UNDEFINED__"
|
|
4582
|
+
},
|
|
4583
|
+
{
|
|
4584
|
+
"allows_loop": false,
|
|
4585
|
+
"cache": true,
|
|
4586
|
+
"display_name": "DataFrame",
|
|
4587
|
+
"group_outputs": false,
|
|
4588
|
+
"method": "as_dataframe",
|
|
4589
|
+
"name": "dataframe",
|
|
4590
|
+
"selected": "DataFrame",
|
|
4591
|
+
"tool_mode": true,
|
|
4592
|
+
"types": [
|
|
4593
|
+
"DataFrame"
|
|
4594
|
+
],
|
|
4595
|
+
"value": "__UNDEFINED__"
|
|
4596
|
+
},
|
|
4597
|
+
{
|
|
4598
|
+
"allows_loop": false,
|
|
4599
|
+
"cache": true,
|
|
4600
|
+
"display_name": "Vector Store Connection",
|
|
4601
|
+
"group_outputs": false,
|
|
4602
|
+
"hidden": false,
|
|
4603
|
+
"method": "as_vector_store",
|
|
4604
|
+
"name": "vectorstoreconnection",
|
|
4605
|
+
"selected": "VectorStore",
|
|
4606
|
+
"tool_mode": true,
|
|
4607
|
+
"types": [
|
|
4608
|
+
"VectorStore"
|
|
4849
4609
|
],
|
|
4850
4610
|
"value": "__UNDEFINED__"
|
|
4851
4611
|
}
|
|
@@ -4853,469 +4613,470 @@
|
|
|
4853
4613
|
"pinned": false,
|
|
4854
4614
|
"template": {
|
|
4855
4615
|
"_type": "Component",
|
|
4856
|
-
"
|
|
4857
|
-
"_input_type": "
|
|
4858
|
-
"advanced": false,
|
|
4859
|
-
"display_name": "Advanced Parser",
|
|
4860
|
-
"dynamic": false,
|
|
4861
|
-
"info": "Enable advanced document processing and export with Docling for PDFs, images, and office documents. Note that advanced document processing can consume significant resources.",
|
|
4862
|
-
"list": false,
|
|
4863
|
-
"list_add_label": "Add More",
|
|
4864
|
-
"name": "advanced_mode",
|
|
4865
|
-
"override_skip": false,
|
|
4866
|
-
"placeholder": "",
|
|
4867
|
-
"real_time_refresh": true,
|
|
4868
|
-
"required": false,
|
|
4869
|
-
"show": true,
|
|
4870
|
-
"title_case": false,
|
|
4871
|
-
"tool_mode": false,
|
|
4872
|
-
"trace_as_metadata": true,
|
|
4873
|
-
"track_in_telemetry": true,
|
|
4874
|
-
"type": "bool",
|
|
4875
|
-
"value": false
|
|
4876
|
-
},
|
|
4877
|
-
"aws_access_key_id": {
|
|
4878
|
-
"_input_type": "SecretStrInput",
|
|
4879
|
-
"advanced": false,
|
|
4880
|
-
"display_name": "AWS Access Key ID",
|
|
4881
|
-
"dynamic": false,
|
|
4882
|
-
"info": "AWS Access key ID.",
|
|
4883
|
-
"input_types": [],
|
|
4884
|
-
"load_from_db": true,
|
|
4885
|
-
"name": "aws_access_key_id",
|
|
4886
|
-
"override_skip": false,
|
|
4887
|
-
"password": true,
|
|
4888
|
-
"placeholder": "",
|
|
4889
|
-
"required": true,
|
|
4890
|
-
"show": false,
|
|
4891
|
-
"title_case": false,
|
|
4892
|
-
"track_in_telemetry": false,
|
|
4893
|
-
"type": "str",
|
|
4894
|
-
"value": ""
|
|
4895
|
-
},
|
|
4896
|
-
"aws_region": {
|
|
4897
|
-
"_input_type": "StrInput",
|
|
4898
|
-
"advanced": false,
|
|
4899
|
-
"display_name": "AWS Region",
|
|
4900
|
-
"dynamic": false,
|
|
4901
|
-
"info": "AWS region (e.g., us-east-1, eu-west-1).",
|
|
4902
|
-
"list": false,
|
|
4903
|
-
"list_add_label": "Add More",
|
|
4904
|
-
"load_from_db": false,
|
|
4905
|
-
"name": "aws_region",
|
|
4906
|
-
"override_skip": false,
|
|
4907
|
-
"placeholder": "",
|
|
4908
|
-
"required": false,
|
|
4909
|
-
"show": false,
|
|
4910
|
-
"title_case": false,
|
|
4911
|
-
"tool_mode": false,
|
|
4912
|
-
"trace_as_metadata": true,
|
|
4913
|
-
"track_in_telemetry": false,
|
|
4914
|
-
"type": "str",
|
|
4915
|
-
"value": ""
|
|
4916
|
-
},
|
|
4917
|
-
"aws_secret_access_key": {
|
|
4918
|
-
"_input_type": "SecretStrInput",
|
|
4919
|
-
"advanced": false,
|
|
4920
|
-
"display_name": "AWS Secret Key",
|
|
4921
|
-
"dynamic": false,
|
|
4922
|
-
"info": "AWS Secret Key.",
|
|
4923
|
-
"input_types": [],
|
|
4924
|
-
"load_from_db": true,
|
|
4925
|
-
"name": "aws_secret_access_key",
|
|
4926
|
-
"override_skip": false,
|
|
4927
|
-
"password": true,
|
|
4928
|
-
"placeholder": "",
|
|
4929
|
-
"required": true,
|
|
4930
|
-
"show": false,
|
|
4931
|
-
"title_case": false,
|
|
4932
|
-
"track_in_telemetry": false,
|
|
4933
|
-
"type": "str",
|
|
4934
|
-
"value": ""
|
|
4935
|
-
},
|
|
4936
|
-
"bucket_name": {
|
|
4937
|
-
"_input_type": "StrInput",
|
|
4938
|
-
"advanced": false,
|
|
4939
|
-
"display_name": "S3 Bucket Name",
|
|
4940
|
-
"dynamic": false,
|
|
4941
|
-
"info": "Enter the name of the S3 bucket.",
|
|
4942
|
-
"list": false,
|
|
4943
|
-
"list_add_label": "Add More",
|
|
4944
|
-
"load_from_db": false,
|
|
4945
|
-
"name": "bucket_name",
|
|
4946
|
-
"override_skip": false,
|
|
4947
|
-
"placeholder": "",
|
|
4948
|
-
"required": true,
|
|
4949
|
-
"show": false,
|
|
4950
|
-
"title_case": false,
|
|
4951
|
-
"tool_mode": false,
|
|
4952
|
-
"trace_as_metadata": true,
|
|
4953
|
-
"track_in_telemetry": false,
|
|
4954
|
-
"type": "str",
|
|
4955
|
-
"value": ""
|
|
4956
|
-
},
|
|
4957
|
-
"code": {
|
|
4958
|
-
"advanced": true,
|
|
4959
|
-
"dynamic": true,
|
|
4960
|
-
"fileTypes": [],
|
|
4961
|
-
"file_path": "",
|
|
4962
|
-
"info": "",
|
|
4963
|
-
"list": false,
|
|
4964
|
-
"load_from_db": false,
|
|
4965
|
-
"multiline": true,
|
|
4966
|
-
"name": "code",
|
|
4967
|
-
"password": false,
|
|
4968
|
-
"placeholder": "",
|
|
4969
|
-
"required": true,
|
|
4970
|
-
"show": true,
|
|
4971
|
-
"title_case": false,
|
|
4972
|
-
"type": "code",
|
|
4973
|
-
"value": "\"\"\"Enhanced file component with Docling support and process isolation.\n\nNotes:\n-----\n- ALL Docling parsing/export runs in a separate OS process to prevent memory\n growth and native library state from impacting the main Langflow process.\n- Standard text/structured parsing continues to use existing BaseFileComponent\n utilities (and optional threading via `parallel_load_data`).\n\"\"\"\n\nfrom __future__ import annotations\n\nimport contextlib\nimport json\nimport subprocess\nimport sys\nimport textwrap\nfrom copy import deepcopy\nfrom pathlib import Path\nfrom tempfile import NamedTemporaryFile\nfrom typing import Any\n\nfrom lfx.base.data.base_file import BaseFileComponent\nfrom lfx.base.data.storage_utils import parse_storage_path, read_file_bytes, validate_image_content_type\nfrom lfx.base.data.utils import TEXT_FILE_TYPES, parallel_load_data, parse_text_file_to_data\nfrom lfx.inputs import SortableListInput\nfrom lfx.inputs.inputs import DropdownInput, MessageTextInput, StrInput\nfrom lfx.io import BoolInput, FileInput, IntInput, Output, SecretStrInput\nfrom lfx.schema.data import Data\nfrom lfx.schema.dataframe import DataFrame # noqa: TC001\nfrom lfx.schema.message import Message\nfrom lfx.services.deps import get_settings_service, get_storage_service\nfrom lfx.utils.async_helpers import run_until_complete\nfrom lfx.utils.validate_cloud import is_astra_cloud_environment\n\n\ndef _get_storage_location_options():\n \"\"\"Get storage location options, filtering out Local if in Astra cloud environment.\"\"\"\n all_options = [{\"name\": \"AWS\", \"icon\": \"Amazon\"}, {\"name\": \"Google Drive\", \"icon\": \"google\"}]\n if is_astra_cloud_environment():\n return all_options\n return [{\"name\": \"Local\", \"icon\": \"hard-drive\"}, *all_options]\n\n\nclass FileComponent(BaseFileComponent):\n \"\"\"File component with optional Docling processing (isolated in a subprocess).\"\"\"\n\n display_name = \"Read File\"\n # description is now a dynamic property - see get_tool_description()\n _base_description = \"Loads content from one or more files.\"\n documentation: str = \"https://docs.langflow.org/read-file\"\n icon = \"file-text\"\n name = \"File\"\n add_tool_output = True # Enable tool mode toggle without requiring tool_mode inputs\n\n # Extensions that can be processed without Docling (using standard text parsing)\n TEXT_EXTENSIONS = TEXT_FILE_TYPES\n\n # Extensions that require Docling for processing (images, advanced office formats, etc.)\n DOCLING_ONLY_EXTENSIONS = [\n \"adoc\",\n \"asciidoc\",\n \"asc\",\n \"bmp\",\n \"dotx\",\n \"dotm\",\n \"docm\",\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"potx\",\n \"ppsx\",\n \"pptm\",\n \"potm\",\n \"ppsm\",\n \"pptx\",\n \"tiff\",\n \"xls\",\n \"xlsx\",\n \"xhtml\",\n \"webp\",\n ]\n\n # Docling-supported/compatible extensions; TEXT_FILE_TYPES are supported by the base loader.\n VALID_EXTENSIONS = [\n *TEXT_EXTENSIONS,\n *DOCLING_ONLY_EXTENSIONS,\n ]\n\n # Fixed export settings used when markdown export is requested.\n EXPORT_FORMAT = \"Markdown\"\n IMAGE_MODE = \"placeholder\"\n\n _base_inputs = deepcopy(BaseFileComponent.get_base_inputs())\n\n for input_item in _base_inputs:\n if isinstance(input_item, FileInput) and input_item.name == \"path\":\n input_item.real_time_refresh = True\n input_item.tool_mode = False # Disable tool mode for file upload input\n input_item.required = False # Make it optional so it doesn't error in tool mode\n break\n\n inputs = [\n SortableListInput(\n name=\"storage_location\",\n display_name=\"Storage Location\",\n placeholder=\"Select Location\",\n info=\"Choose where to read the file from.\",\n options=_get_storage_location_options(),\n real_time_refresh=True,\n limit=1,\n ),\n *_base_inputs,\n StrInput(\n name=\"file_path_str\",\n display_name=\"File Path\",\n info=(\n \"Path to the file to read. Used when component is called as a tool. \"\n \"If not provided, will use the uploaded file from 'path' input.\"\n ),\n show=False,\n advanced=True,\n tool_mode=True, # Required for Toolset toggle, but _get_tools() ignores this parameter\n required=False,\n ),\n # AWS S3 specific inputs\n SecretStrInput(\n name=\"aws_access_key_id\",\n display_name=\"AWS Access Key ID\",\n info=\"AWS Access key ID.\",\n show=False,\n advanced=False,\n required=True,\n ),\n SecretStrInput(\n name=\"aws_secret_access_key\",\n display_name=\"AWS Secret Key\",\n info=\"AWS Secret Key.\",\n show=False,\n advanced=False,\n required=True,\n ),\n StrInput(\n name=\"bucket_name\",\n display_name=\"S3 Bucket Name\",\n info=\"Enter the name of the S3 bucket.\",\n show=False,\n advanced=False,\n required=True,\n ),\n StrInput(\n name=\"aws_region\",\n display_name=\"AWS Region\",\n info=\"AWS region (e.g., us-east-1, eu-west-1).\",\n show=False,\n advanced=False,\n ),\n StrInput(\n name=\"s3_file_key\",\n display_name=\"S3 File Key\",\n info=\"The key (path) of the file in S3 bucket.\",\n show=False,\n advanced=False,\n required=True,\n ),\n # Google Drive specific inputs\n SecretStrInput(\n name=\"service_account_key\",\n display_name=\"GCP Credentials Secret Key\",\n info=\"Your Google Cloud Platform service account JSON key as a secret string (complete JSON content).\",\n show=False,\n advanced=False,\n required=True,\n ),\n StrInput(\n name=\"file_id\",\n display_name=\"Google Drive File ID\",\n info=(\"The Google Drive file ID to read. The file must be shared with the service account email.\"),\n show=False,\n advanced=False,\n required=True,\n ),\n BoolInput(\n name=\"advanced_mode\",\n display_name=\"Advanced Parser\",\n value=False,\n real_time_refresh=True,\n info=(\n \"Enable advanced document processing and export with Docling for PDFs, images, and office documents. \"\n \"Note that advanced document processing can consume significant resources.\"\n ),\n show=True,\n ),\n DropdownInput(\n name=\"pipeline\",\n display_name=\"Pipeline\",\n info=\"Docling pipeline to use\",\n options=[\"standard\", \"vlm\"],\n value=\"standard\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"ocr_engine\",\n display_name=\"OCR Engine\",\n info=\"OCR engine to use. Only available when pipeline is set to 'standard'.\",\n options=[\"None\", \"easyocr\"],\n value=\"easyocr\",\n show=False,\n advanced=True,\n ),\n StrInput(\n name=\"md_image_placeholder\",\n display_name=\"Image placeholder\",\n info=\"Specify the image placeholder for markdown exports.\",\n value=\"<!-- image -->\",\n advanced=True,\n show=False,\n ),\n StrInput(\n name=\"md_page_break_placeholder\",\n display_name=\"Page break placeholder\",\n info=\"Add this placeholder between pages in the markdown output.\",\n value=\"\",\n advanced=True,\n show=False,\n ),\n MessageTextInput(\n name=\"doc_key\",\n display_name=\"Doc Key\",\n info=\"The key to use for the DoclingDocument column.\",\n value=\"doc\",\n advanced=True,\n show=False,\n ),\n # Deprecated input retained for backward-compatibility.\n BoolInput(\n name=\"use_multithreading\",\n display_name=\"[Deprecated] Use Multithreading\",\n advanced=True,\n value=True,\n info=\"Set 'Processing Concurrency' greater than 1 to enable multithreading.\",\n ),\n IntInput(\n name=\"concurrency_multithreading\",\n display_name=\"Processing Concurrency\",\n advanced=True,\n info=\"When multiple files are being processed, the number of files to process concurrently.\",\n value=1,\n ),\n BoolInput(\n name=\"markdown\",\n display_name=\"Markdown Export\",\n info=\"Export processed documents to Markdown format. Only available when advanced mode is enabled.\",\n value=False,\n show=False,\n ),\n ]\n\n outputs = [\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n ]\n\n # ------------------------------ Tool description with file names --------------\n\n def get_tool_description(self) -> str:\n \"\"\"Return a dynamic description that includes the names of uploaded files.\n\n This helps the Agent understand which files are available to read.\n \"\"\"\n base_description = \"Loads and returns the content from uploaded files.\"\n\n # Get the list of uploaded file paths\n file_paths = getattr(self, \"path\", None)\n if not file_paths:\n return base_description\n\n # Ensure it's a list\n if not isinstance(file_paths, list):\n file_paths = [file_paths]\n\n # Extract just the file names from the paths\n file_names = []\n for fp in file_paths:\n if fp:\n name = Path(fp).name\n file_names.append(name)\n\n if file_names:\n files_str = \", \".join(file_names)\n return f\"{base_description} Available files: {files_str}. Call this tool to read these files.\"\n\n return base_description\n\n @property\n def description(self) -> str:\n \"\"\"Dynamic description property that includes uploaded file names.\"\"\"\n return self.get_tool_description()\n\n async def _get_tools(self) -> list:\n \"\"\"Override to create a tool without parameters.\n\n The Read File component should use the files already uploaded via UI,\n not accept file paths from the Agent (which wouldn't know the internal paths).\n \"\"\"\n from langchain_core.tools import StructuredTool\n from pydantic import BaseModel\n\n # Empty schema - no parameters needed\n class EmptySchema(BaseModel):\n \"\"\"No parameters required - uses pre-uploaded files.\"\"\"\n\n async def read_files_tool() -> str:\n \"\"\"Read the content of uploaded files.\"\"\"\n try:\n result = self.load_files_message()\n if hasattr(result, \"get_text\"):\n return result.get_text()\n if hasattr(result, \"text\"):\n return result.text\n return str(result)\n except (FileNotFoundError, ValueError, OSError, RuntimeError) as e:\n return f\"Error reading files: {e}\"\n\n description = self.get_tool_description()\n\n tool = StructuredTool(\n name=\"load_files_message\",\n description=description,\n coroutine=read_files_tool,\n args_schema=EmptySchema,\n handle_tool_error=True,\n tags=[\"load_files_message\"],\n metadata={\n \"display_name\": \"Read File\",\n \"display_description\": description,\n },\n )\n\n return [tool]\n\n # ------------------------------ UI helpers --------------------------------------\n\n def _path_value(self, template: dict) -> list[str]:\n \"\"\"Return the list of currently selected file paths from the template.\"\"\"\n return template.get(\"path\", {}).get(\"file_path\", [])\n\n def update_build_config(\n self,\n build_config: dict[str, Any],\n field_value: Any,\n field_name: str | None = None,\n ) -> dict[str, Any]:\n \"\"\"Show/hide Advanced Parser and related fields based on selection context.\"\"\"\n # Update storage location options dynamically based on cloud environment\n if \"storage_location\" in build_config:\n updated_options = _get_storage_location_options()\n build_config[\"storage_location\"][\"options\"] = updated_options\n\n # Handle storage location selection\n if field_name == \"storage_location\":\n # Extract selected storage location\n selected = [location[\"name\"] for location in field_value] if isinstance(field_value, list) else []\n\n # Hide all storage-specific fields first\n storage_fields = [\n \"aws_access_key_id\",\n \"aws_secret_access_key\",\n \"bucket_name\",\n \"aws_region\",\n \"s3_file_key\",\n \"service_account_key\",\n \"file_id\",\n ]\n\n for f_name in storage_fields:\n if f_name in build_config:\n build_config[f_name][\"show\"] = False\n\n # Show fields based on selected storage location\n if len(selected) == 1:\n location = selected[0]\n\n if location == \"Local\":\n # Show file upload input for local storage\n if \"path\" in build_config:\n build_config[\"path\"][\"show\"] = True\n\n elif location == \"AWS\":\n # Hide file upload input, show AWS fields\n if \"path\" in build_config:\n build_config[\"path\"][\"show\"] = False\n\n aws_fields = [\n \"aws_access_key_id\",\n \"aws_secret_access_key\",\n \"bucket_name\",\n \"aws_region\",\n \"s3_file_key\",\n ]\n for f_name in aws_fields:\n if f_name in build_config:\n build_config[f_name][\"show\"] = True\n build_config[f_name][\"advanced\"] = False\n\n elif location == \"Google Drive\":\n # Hide file upload input, show Google Drive fields\n if \"path\" in build_config:\n build_config[\"path\"][\"show\"] = False\n\n gdrive_fields = [\"service_account_key\", \"file_id\"]\n for f_name in gdrive_fields:\n if f_name in build_config:\n build_config[f_name][\"show\"] = True\n build_config[f_name][\"advanced\"] = False\n # No storage location selected - show file upload by default\n elif \"path\" in build_config:\n build_config[\"path\"][\"show\"] = True\n\n return build_config\n\n if field_name == \"path\":\n paths = self._path_value(build_config)\n\n # If all files can be processed by docling, do so\n allow_advanced = all(not file_path.endswith((\".csv\", \".xlsx\", \".parquet\")) for file_path in paths)\n build_config[\"advanced_mode\"][\"show\"] = allow_advanced\n if not allow_advanced:\n build_config[\"advanced_mode\"][\"value\"] = False\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = False\n\n # Docling Processing\n elif field_name == \"advanced_mode\":\n for f in (\"pipeline\", \"ocr_engine\", \"doc_key\", \"md_image_placeholder\", \"md_page_break_placeholder\"):\n if f in build_config:\n build_config[f][\"show\"] = bool(field_value)\n if f == \"pipeline\":\n build_config[f][\"advanced\"] = not bool(field_value)\n\n elif field_name == \"pipeline\":\n if field_value == \"standard\":\n build_config[\"ocr_engine\"][\"show\"] = True\n build_config[\"ocr_engine\"][\"value\"] = \"easyocr\"\n else:\n build_config[\"ocr_engine\"][\"show\"] = False\n build_config[\"ocr_engine\"][\"value\"] = \"None\"\n\n return build_config\n\n def update_outputs(self, frontend_node: dict[str, Any], field_name: str, field_value: Any) -> dict[str, Any]: # noqa: ARG002\n \"\"\"Dynamically show outputs based on file count/type and advanced mode.\"\"\"\n if field_name not in [\"path\", \"advanced_mode\", \"pipeline\"]:\n return frontend_node\n\n template = frontend_node.get(\"template\", {})\n paths = self._path_value(template)\n if not paths:\n return frontend_node\n\n frontend_node[\"outputs\"] = []\n if len(paths) == 1:\n file_path = paths[0] if field_name == \"path\" else frontend_node[\"template\"][\"path\"][\"file_path\"][0]\n if file_path.endswith((\".csv\", \".xlsx\", \".parquet\")):\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Content\",\n name=\"dataframe\",\n method=\"load_files_structured\",\n tool_mode=True,\n ),\n )\n elif file_path.endswith(\".json\"):\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Structured Content\", name=\"json\", method=\"load_files_json\", tool_mode=True),\n )\n\n advanced_mode = frontend_node.get(\"template\", {}).get(\"advanced_mode\", {}).get(\"value\", False)\n if advanced_mode:\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Structured Output\",\n name=\"advanced_dataframe\",\n method=\"load_files_dataframe\",\n tool_mode=True,\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(\n display_name=\"Markdown\", name=\"advanced_markdown\", method=\"load_files_markdown\", tool_mode=True\n ),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Raw Content\", name=\"message\", method=\"load_files_message\", tool_mode=True),\n )\n frontend_node[\"outputs\"].append(\n Output(display_name=\"File Path\", name=\"path\", method=\"load_files_path\", tool_mode=True),\n )\n else:\n # Multiple files => DataFrame output; advanced parser disabled\n frontend_node[\"outputs\"].append(\n Output(display_name=\"Files\", name=\"dataframe\", method=\"load_files\", tool_mode=True)\n )\n\n return frontend_node\n\n # ------------------------------ Core processing ----------------------------------\n\n def _get_selected_storage_location(self) -> str:\n \"\"\"Get the selected storage location from the SortableListInput.\"\"\"\n if hasattr(self, \"storage_location\") and self.storage_location:\n if isinstance(self.storage_location, list) and len(self.storage_location) > 0:\n return self.storage_location[0].get(\"name\", \"\")\n if isinstance(self.storage_location, dict):\n return self.storage_location.get(\"name\", \"\")\n return \"Local\" # Default to Local if not specified\n\n def _validate_and_resolve_paths(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Override to handle file_path_str input from tool mode and cloud storage.\n\n Priority:\n 1. Cloud storage (AWS/Google Drive) if selected\n 2. file_path_str (if provided by the tool call)\n 3. path (uploaded file from UI)\n \"\"\"\n storage_location = self._get_selected_storage_location()\n\n # Handle AWS S3\n if storage_location == \"AWS\":\n return self._read_from_aws_s3()\n\n # Handle Google Drive\n if storage_location == \"Google Drive\":\n return self._read_from_google_drive()\n\n # Handle Local storage\n # Check if file_path_str is provided (from tool mode)\n file_path_str = getattr(self, \"file_path_str\", None)\n if file_path_str:\n # Use the string path from tool mode\n from pathlib import Path\n\n from lfx.schema.data import Data\n\n resolved_path = Path(self.resolve_path(file_path_str))\n if not resolved_path.exists():\n msg = f\"File or directory not found: {file_path_str}\"\n self.log(msg)\n if not self.silent_errors:\n raise ValueError(msg)\n return []\n\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(resolved_path)})\n return [BaseFileComponent.BaseFile(data_obj, resolved_path, delete_after_processing=False)]\n\n # Otherwise use the default implementation (uses path FileInput)\n return super()._validate_and_resolve_paths()\n\n def _read_from_aws_s3(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Read file from AWS S3.\"\"\"\n from lfx.base.data.cloud_storage_utils import create_s3_client, validate_aws_credentials\n\n # Validate AWS credentials\n validate_aws_credentials(self)\n if not getattr(self, \"s3_file_key\", None):\n msg = \"S3 File Key is required\"\n raise ValueError(msg)\n\n # Create S3 client\n s3_client = create_s3_client(self)\n\n # Download file to temp location\n import tempfile\n\n # Get file extension from S3 key\n file_extension = Path(self.s3_file_key).suffix or \"\"\n\n with tempfile.NamedTemporaryFile(mode=\"wb\", suffix=file_extension, delete=False) as temp_file:\n temp_file_path = temp_file.name\n try:\n s3_client.download_fileobj(self.bucket_name, self.s3_file_key, temp_file)\n except Exception as e:\n # Clean up temp file on failure\n with contextlib.suppress(OSError):\n Path(temp_file_path).unlink()\n msg = f\"Failed to download file from S3: {e}\"\n raise RuntimeError(msg) from e\n\n # Create BaseFile object\n from lfx.schema.data import Data\n\n temp_path = Path(temp_file_path)\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(temp_path)})\n return [BaseFileComponent.BaseFile(data_obj, temp_path, delete_after_processing=True)]\n\n def _read_from_google_drive(self) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Read file from Google Drive.\"\"\"\n import tempfile\n\n from googleapiclient.http import MediaIoBaseDownload\n\n from lfx.base.data.cloud_storage_utils import create_google_drive_service\n\n # Validate Google Drive credentials\n if not getattr(self, \"service_account_key\", None):\n msg = \"GCP Credentials Secret Key is required for Google Drive storage\"\n raise ValueError(msg)\n if not getattr(self, \"file_id\", None):\n msg = \"Google Drive File ID is required\"\n raise ValueError(msg)\n\n # Create Google Drive service with read-only scope\n drive_service = create_google_drive_service(\n self.service_account_key, scopes=[\"https://www.googleapis.com/auth/drive.readonly\"]\n )\n\n # Get file metadata to determine file name and extension\n try:\n file_metadata = drive_service.files().get(fileId=self.file_id, fields=\"name,mimeType\").execute()\n file_name = file_metadata.get(\"name\", \"download\")\n except Exception as e:\n msg = (\n f\"Unable to access file with ID '{self.file_id}'. \"\n f\"Error: {e!s}. \"\n \"Please ensure: 1) The file ID is correct, 2) The file exists, \"\n \"3) The service account has been granted access to this file.\"\n )\n raise ValueError(msg) from e\n\n # Download file to temp location\n file_extension = Path(file_name).suffix or \"\"\n with tempfile.NamedTemporaryFile(mode=\"wb\", suffix=file_extension, delete=False) as temp_file:\n temp_file_path = temp_file.name\n try:\n request = drive_service.files().get_media(fileId=self.file_id)\n downloader = MediaIoBaseDownload(temp_file, request)\n done = False\n while not done:\n _status, done = downloader.next_chunk()\n except Exception as e:\n # Clean up temp file on failure\n with contextlib.suppress(OSError):\n Path(temp_file_path).unlink()\n msg = f\"Failed to download file from Google Drive: {e}\"\n raise RuntimeError(msg) from e\n\n # Create BaseFile object\n from lfx.schema.data import Data\n\n temp_path = Path(temp_file_path)\n data_obj = Data(data={self.SERVER_FILE_PATH_FIELDNAME: str(temp_path)})\n return [BaseFileComponent.BaseFile(data_obj, temp_path, delete_after_processing=True)]\n\n def _is_docling_compatible(self, file_path: str) -> bool:\n \"\"\"Lightweight extension gate for Docling-compatible types.\"\"\"\n docling_exts = (\n \".adoc\",\n \".asciidoc\",\n \".asc\",\n \".bmp\",\n \".csv\",\n \".dotx\",\n \".dotm\",\n \".docm\",\n \".docx\",\n \".htm\",\n \".html\",\n \".jpg\",\n \".jpeg\",\n \".json\",\n \".md\",\n \".pdf\",\n \".png\",\n \".potx\",\n \".ppsx\",\n \".pptm\",\n \".potm\",\n \".ppsm\",\n \".pptx\",\n \".tiff\",\n \".txt\",\n \".xls\",\n \".xlsx\",\n \".xhtml\",\n \".xml\",\n \".webp\",\n )\n return file_path.lower().endswith(docling_exts)\n\n async def _get_local_file_for_docling(self, file_path: str) -> tuple[str, bool]:\n \"\"\"Get a local file path for Docling processing, downloading from S3 if needed.\n\n Args:\n file_path: Either a local path or S3 key (format \"flow_id/filename\")\n\n Returns:\n tuple[str, bool]: (local_path, should_delete) where should_delete indicates\n if this is a temporary file that should be cleaned up\n \"\"\"\n settings = get_settings_service().settings\n if settings.storage_type == \"local\":\n return file_path, False\n\n # S3 storage - download to temp file\n parsed = parse_storage_path(file_path)\n if not parsed:\n msg = f\"Invalid S3 path format: {file_path}. Expected 'flow_id/filename'\"\n raise ValueError(msg)\n\n storage_service = get_storage_service()\n flow_id, filename = parsed\n\n # Get file content from S3\n content = await storage_service.get_file(flow_id, filename)\n\n suffix = Path(filename).suffix\n with NamedTemporaryFile(mode=\"wb\", suffix=suffix, delete=False) as tmp_file:\n tmp_file.write(content)\n temp_path = tmp_file.name\n\n return temp_path, True\n\n def _process_docling_in_subprocess(self, file_path: str) -> Data | None:\n \"\"\"Run Docling in a separate OS process and map the result to a Data object.\n\n We avoid multiprocessing pickling by launching `python -c \"<script>\"` and\n passing JSON config via stdin. The child prints a JSON result to stdout.\n\n For S3 storage, the file is downloaded to a temp file first.\n \"\"\"\n if not file_path:\n return None\n\n settings = get_settings_service().settings\n if settings.storage_type == \"s3\":\n local_path, should_delete = run_until_complete(self._get_local_file_for_docling(file_path))\n else:\n local_path = file_path\n should_delete = False\n\n try:\n return self._process_docling_subprocess_impl(local_path, file_path)\n finally:\n # Clean up temp file if we created one\n if should_delete:\n with contextlib.suppress(Exception):\n Path(local_path).unlink() # Ignore cleanup errors\n\n def _process_docling_subprocess_impl(self, local_file_path: str, original_file_path: str) -> Data | None:\n \"\"\"Implementation of Docling subprocess processing.\n\n Args:\n local_file_path: Path to local file to process\n original_file_path: Original file path to include in metadata\n Returns:\n Data object with processed content\n \"\"\"\n args: dict[str, Any] = {\n \"file_path\": local_file_path,\n \"markdown\": bool(self.markdown),\n \"image_mode\": str(self.IMAGE_MODE),\n \"md_image_placeholder\": str(self.md_image_placeholder),\n \"md_page_break_placeholder\": str(self.md_page_break_placeholder),\n \"pipeline\": str(self.pipeline),\n \"ocr_engine\": (\n self.ocr_engine if self.ocr_engine and self.ocr_engine != \"None\" and self.pipeline != \"vlm\" else None\n ),\n }\n\n # Child script for isolating the docling processing\n child_script = textwrap.dedent(\n r\"\"\"\n import json, sys\n\n def try_imports():\n try:\n from docling.datamodel.base_models import ConversionStatus, InputFormat # type: ignore\n from docling.document_converter import DocumentConverter # type: ignore\n from docling_core.types.doc import ImageRefMode # type: ignore\n return ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, \"latest\"\n except Exception as e:\n raise e\n\n def create_converter(strategy, input_format, DocumentConverter, pipeline, ocr_engine):\n # --- Standard PDF/IMAGE pipeline (your existing behavior), with optional OCR ---\n if pipeline == \"standard\":\n try:\n from docling.datamodel.pipeline_options import PdfPipelineOptions # type: ignore\n from docling.document_converter import PdfFormatOption # type: ignore\n\n pipe = PdfPipelineOptions()\n pipe.do_ocr = False\n\n if ocr_engine:\n try:\n from docling.models.factories import get_ocr_factory # type: ignore\n pipe.do_ocr = True\n fac = get_ocr_factory(allow_external_plugins=False)\n pipe.ocr_options = fac.create_options(kind=ocr_engine)\n except Exception:\n # If OCR setup fails, disable it\n pipe.do_ocr = False\n\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(pipeline_options=pipe)\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(pipeline_options=pipe)\n\n return DocumentConverter(format_options=fmt)\n except Exception:\n return DocumentConverter()\n\n # --- Vision-Language Model (VLM) pipeline ---\n if pipeline == \"vlm\":\n try:\n from docling.datamodel.pipeline_options import VlmPipelineOptions\n from docling.datamodel.vlm_model_specs import GRANITEDOCLING_MLX, GRANITEDOCLING_TRANSFORMERS\n from docling.document_converter import PdfFormatOption\n from docling.pipeline.vlm_pipeline import VlmPipeline\n\n vl_pipe = VlmPipelineOptions(\n vlm_options=GRANITEDOCLING_TRANSFORMERS,\n )\n\n if sys.platform == \"darwin\":\n try:\n import mlx_vlm\n vl_pipe.vlm_options = GRANITEDOCLING_MLX\n except ImportError as e:\n raise e\n\n # VLM paths generally don't need OCR; keep OCR off by default here.\n fmt = {}\n if hasattr(input_format, \"PDF\"):\n fmt[getattr(input_format, \"PDF\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n if hasattr(input_format, \"IMAGE\"):\n fmt[getattr(input_format, \"IMAGE\")] = PdfFormatOption(\n pipeline_cls=VlmPipeline,\n pipeline_options=vl_pipe\n )\n\n return DocumentConverter(format_options=fmt)\n except Exception as e:\n raise e\n\n # --- Fallback: default converter with no special options ---\n return DocumentConverter()\n\n def export_markdown(document, ImageRefMode, image_mode, img_ph, pg_ph):\n try:\n mode = getattr(ImageRefMode, image_mode.upper(), image_mode)\n return document.export_to_markdown(\n image_mode=mode,\n image_placeholder=img_ph,\n page_break_placeholder=pg_ph,\n )\n except Exception:\n try:\n return document.export_to_text()\n except Exception:\n return str(document)\n\n def to_rows(doc_dict):\n rows = []\n for t in doc_dict.get(\"texts\", []):\n prov = t.get(\"prov\") or []\n page_no = None\n if prov and isinstance(prov, list) and isinstance(prov[0], dict):\n page_no = prov[0].get(\"page_no\")\n rows.append({\n \"page_no\": page_no,\n \"label\": t.get(\"label\"),\n \"text\": t.get(\"text\"),\n \"level\": t.get(\"level\"),\n })\n return rows\n\n def main():\n cfg = json.loads(sys.stdin.read())\n file_path = cfg[\"file_path\"]\n markdown = cfg[\"markdown\"]\n image_mode = cfg[\"image_mode\"]\n img_ph = cfg[\"md_image_placeholder\"]\n pg_ph = cfg[\"md_page_break_placeholder\"]\n pipeline = cfg[\"pipeline\"]\n ocr_engine = cfg.get(\"ocr_engine\")\n meta = {\"file_path\": file_path}\n\n try:\n ConversionStatus, InputFormat, DocumentConverter, ImageRefMode, strategy = try_imports()\n converter = create_converter(strategy, InputFormat, DocumentConverter, pipeline, ocr_engine)\n try:\n res = converter.convert(file_path)\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling conversion error: {e}\", \"meta\": meta}))\n return\n\n ok = False\n if hasattr(res, \"status\"):\n try:\n ok = (res.status == ConversionStatus.SUCCESS) or (str(res.status).lower() == \"success\")\n except Exception:\n ok = (str(res.status).lower() == \"success\")\n if not ok and hasattr(res, \"document\"):\n ok = getattr(res, \"document\", None) is not None\n if not ok:\n print(json.dumps({\"ok\": False, \"error\": \"Docling conversion failed\", \"meta\": meta}))\n return\n\n doc = getattr(res, \"document\", None)\n if doc is None:\n print(json.dumps({\"ok\": False, \"error\": \"Docling produced no document\", \"meta\": meta}))\n return\n\n if markdown:\n text = export_markdown(doc, ImageRefMode, image_mode, img_ph, pg_ph)\n print(json.dumps({\"ok\": True, \"mode\": \"markdown\", \"text\": text, \"meta\": meta}))\n return\n\n # structured\n try:\n doc_dict = doc.export_to_dict()\n except Exception as e:\n print(json.dumps({\"ok\": False, \"error\": f\"Docling export_to_dict failed: {e}\", \"meta\": meta}))\n return\n\n rows = to_rows(doc_dict)\n print(json.dumps({\"ok\": True, \"mode\": \"structured\", \"doc\": rows, \"meta\": meta}))\n except Exception as e:\n print(\n json.dumps({\n \"ok\": False,\n \"error\": f\"Docling processing error: {e}\",\n \"meta\": {\"file_path\": file_path},\n })\n )\n\n if __name__ == \"__main__\":\n main()\n \"\"\"\n )\n\n # Validate file_path to avoid command injection or unsafe input\n if not isinstance(args[\"file_path\"], str) or any(c in args[\"file_path\"] for c in [\";\", \"|\", \"&\", \"$\", \"`\"]):\n return Data(data={\"error\": \"Unsafe file path detected.\", \"file_path\": args[\"file_path\"]})\n\n proc = subprocess.run( # noqa: S603\n [sys.executable, \"-u\", \"-c\", child_script],\n input=json.dumps(args).encode(\"utf-8\"),\n capture_output=True,\n check=False,\n )\n\n if not proc.stdout:\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\") if proc.stderr else \"no output from child process\"\n return Data(data={\"error\": f\"Docling subprocess error: {err_msg}\", \"file_path\": original_file_path})\n\n try:\n result = json.loads(proc.stdout.decode(\"utf-8\"))\n except Exception as e: # noqa: BLE001\n err_msg = proc.stderr.decode(\"utf-8\", errors=\"replace\")\n return Data(\n data={\n \"error\": f\"Invalid JSON from Docling subprocess: {e}. stderr={err_msg}\",\n \"file_path\": original_file_path,\n },\n )\n\n if not result.get(\"ok\"):\n error_msg = result.get(\"error\", \"Unknown Docling error\")\n # Override meta file_path with original_file_path to ensure correct path matching\n meta = result.get(\"meta\", {})\n meta[\"file_path\"] = original_file_path\n return Data(data={\"error\": error_msg, **meta})\n\n meta = result.get(\"meta\", {})\n # Override meta file_path with original_file_path to ensure correct path matching\n # The subprocess returns the temp file path, but we need the original S3/local path for rollup_data\n meta[\"file_path\"] = original_file_path\n if result.get(\"mode\") == \"markdown\":\n exported_content = str(result.get(\"text\", \"\"))\n return Data(\n text=exported_content,\n data={\"exported_content\": exported_content, \"export_format\": self.EXPORT_FORMAT, **meta},\n )\n\n rows = list(result.get(\"doc\", []))\n return Data(data={\"doc\": rows, \"export_format\": self.EXPORT_FORMAT, **meta})\n\n def process_files(\n self,\n file_list: list[BaseFileComponent.BaseFile],\n ) -> list[BaseFileComponent.BaseFile]:\n \"\"\"Process input files.\n\n - advanced_mode => Docling in a separate process.\n - Otherwise => standard parsing in current process (optionally threaded).\n \"\"\"\n if not file_list:\n msg = \"No files to process.\"\n raise ValueError(msg)\n\n # Validate image files to detect content/extension mismatches\n # This prevents API errors like \"Image does not match the provided media type\"\n image_extensions = {\"jpeg\", \"jpg\", \"png\", \"gif\", \"webp\", \"bmp\", \"tiff\"}\n settings = get_settings_service().settings\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in image_extensions:\n # Read bytes based on storage type\n try:\n if settings.storage_type == \"s3\":\n # For S3 storage, use storage service to read file bytes\n file_path_str = str(file.path)\n content = run_until_complete(read_file_bytes(file_path_str))\n else:\n # For local storage, read bytes directly from filesystem\n content = file.path.read_bytes()\n\n is_valid, error_msg = validate_image_content_type(\n str(file.path),\n content=content,\n )\n if not is_valid:\n self.log(error_msg)\n if not self.silent_errors:\n raise ValueError(error_msg)\n except (OSError, FileNotFoundError) as e:\n self.log(f\"Could not read file for validation: {e}\")\n # Continue - let it fail later with better error\n\n # Validate that files requiring Docling are only processed when advanced mode is enabled\n if not self.advanced_mode:\n for file in file_list:\n extension = file.path.suffix[1:].lower()\n if extension in self.DOCLING_ONLY_EXTENSIONS:\n msg = (\n f\"File '{file.path.name}' has extension '.{extension}' which requires \"\n f\"Advanced Parser mode. Please enable 'Advanced Parser' to process this file.\"\n )\n self.log(msg)\n raise ValueError(msg)\n\n def process_file_standard(file_path: str, *, silent_errors: bool = False) -> Data | None:\n try:\n return parse_text_file_to_data(file_path, silent_errors=silent_errors)\n except FileNotFoundError as e:\n self.log(f\"File not found: {file_path}. Error: {e}\")\n if not silent_errors:\n raise\n return None\n except Exception as e:\n self.log(f\"Unexpected error processing {file_path}: {e}\")\n if not silent_errors:\n raise\n return None\n\n docling_compatible = all(self._is_docling_compatible(str(f.path)) for f in file_list)\n\n # Advanced path: Check if ALL files are compatible with Docling\n if self.advanced_mode and docling_compatible:\n final_return: list[BaseFileComponent.BaseFile] = []\n for file in file_list:\n file_path = str(file.path)\n advanced_data: Data | None = self._process_docling_in_subprocess(file_path)\n\n # Handle None case - Docling processing failed or returned None\n if advanced_data is None:\n error_data = Data(\n data={\n \"file_path\": file_path,\n \"error\": \"Docling processing returned no result. Check logs for details.\",\n },\n )\n final_return.extend(self.rollup_data([file], [error_data]))\n continue\n\n # --- UNNEST: expand each element in `doc` to its own Data row\n payload = getattr(advanced_data, \"data\", {}) or {}\n\n # Check for errors first\n if \"error\" in payload:\n error_msg = payload.get(\"error\", \"Unknown error\")\n error_data = Data(\n data={\n \"file_path\": file_path,\n \"error\": error_msg,\n **{k: v for k, v in payload.items() if k not in (\"error\", \"file_path\")},\n },\n )\n final_return.extend(self.rollup_data([file], [error_data]))\n continue\n\n doc_rows = payload.get(\"doc\")\n if isinstance(doc_rows, list) and doc_rows:\n # Non-empty list of structured rows\n rows: list[Data | None] = [\n Data(\n data={\n \"file_path\": file_path,\n **(item if isinstance(item, dict) else {\"value\": item}),\n },\n )\n for item in doc_rows\n ]\n final_return.extend(self.rollup_data([file], rows))\n elif isinstance(doc_rows, list) and not doc_rows:\n # Empty list - file was processed but no text content found\n # Create a Data object indicating no content was extracted\n self.log(f\"No text extracted from '{file_path}', creating placeholder data\")\n empty_data = Data(\n data={\n \"file_path\": file_path,\n \"text\": \"(No text content extracted from image)\",\n \"info\": \"Image processed successfully but contained no extractable text\",\n **{k: v for k, v in payload.items() if k != \"doc\"},\n },\n )\n final_return.extend(self.rollup_data([file], [empty_data]))\n else:\n # If not structured, keep as-is (e.g., markdown export or error dict)\n # Ensure file_path is set for proper rollup matching\n if not payload.get(\"file_path\"):\n payload[\"file_path\"] = file_path\n # Create new Data with file_path\n advanced_data = Data(\n data=payload,\n text=getattr(advanced_data, \"text\", None),\n )\n final_return.extend(self.rollup_data([file], [advanced_data]))\n return final_return\n\n # Standard multi-file (or single non-advanced) path\n concurrency = 1 if not self.use_multithreading else max(1, self.concurrency_multithreading)\n\n file_paths = [str(f.path) for f in file_list]\n self.log(f\"Starting parallel processing of {len(file_paths)} files with concurrency: {concurrency}.\")\n my_data = parallel_load_data(\n file_paths,\n silent_errors=self.silent_errors,\n load_function=process_file_standard,\n max_concurrency=concurrency,\n )\n return self.rollup_data(file_list, my_data)\n\n # ------------------------------ Output helpers -----------------------------------\n\n def load_files_helper(self) -> DataFrame:\n result = self.load_files()\n\n # Result is a DataFrame - check if it has any rows\n if result.empty:\n msg = \"Could not extract content from the provided file(s).\"\n raise ValueError(msg)\n\n # Check for error column with error messages\n if \"error\" in result.columns:\n errors = result[\"error\"].dropna().tolist()\n if errors and not any(col in result.columns for col in [\"text\", \"doc\", \"exported_content\"]):\n raise ValueError(errors[0])\n\n return result\n\n def load_files_dataframe(self) -> DataFrame:\n \"\"\"Load files using advanced Docling processing and export to DataFrame format.\"\"\"\n self.markdown = False\n return self.load_files_helper()\n\n def load_files_markdown(self) -> Message:\n \"\"\"Load files using advanced Docling processing and export to Markdown format.\"\"\"\n self.markdown = True\n result = self.load_files_helper()\n\n # Result is a DataFrame - check for text or exported_content columns\n if \"text\" in result.columns and not result[\"text\"].isna().all():\n text_values = result[\"text\"].dropna().tolist()\n if text_values:\n return Message(text=str(text_values[0]))\n\n if \"exported_content\" in result.columns and not result[\"exported_content\"].isna().all():\n content_values = result[\"exported_content\"].dropna().tolist()\n if content_values:\n return Message(text=str(content_values[0]))\n\n # Return empty message with info that no text was found\n return Message(text=\"(No text content extracted from file)\")\n"
|
|
4974
|
-
},
|
|
4975
|
-
"concurrency_multithreading": {
|
|
4976
|
-
"_input_type": "IntInput",
|
|
4616
|
+
"advanced_search_filter": {
|
|
4617
|
+
"_input_type": "NestedDictInput",
|
|
4977
4618
|
"advanced": true,
|
|
4978
|
-
"display_name": "
|
|
4619
|
+
"display_name": "Search Metadata Filter",
|
|
4979
4620
|
"dynamic": false,
|
|
4980
|
-
"info": "
|
|
4621
|
+
"info": "Optional dictionary of filters to apply to the search query.",
|
|
4981
4622
|
"list": false,
|
|
4982
4623
|
"list_add_label": "Add More",
|
|
4983
|
-
"name": "
|
|
4984
|
-
"override_skip": false,
|
|
4624
|
+
"name": "advanced_search_filter",
|
|
4985
4625
|
"placeholder": "",
|
|
4986
4626
|
"required": false,
|
|
4987
4627
|
"show": true,
|
|
4988
4628
|
"title_case": false,
|
|
4989
4629
|
"tool_mode": false,
|
|
4630
|
+
"trace_as_input": true,
|
|
4990
4631
|
"trace_as_metadata": true,
|
|
4991
|
-
"
|
|
4992
|
-
"
|
|
4993
|
-
"value": 1
|
|
4632
|
+
"type": "NestedDict",
|
|
4633
|
+
"value": {}
|
|
4994
4634
|
},
|
|
4995
|
-
"
|
|
4996
|
-
"_input_type": "
|
|
4635
|
+
"api_endpoint": {
|
|
4636
|
+
"_input_type": "DropdownInput",
|
|
4997
4637
|
"advanced": true,
|
|
4998
|
-
"
|
|
4638
|
+
"combobox": false,
|
|
4639
|
+
"dialog_inputs": {},
|
|
4640
|
+
"display_name": "Astra DB API Endpoint",
|
|
4999
4641
|
"dynamic": false,
|
|
5000
|
-
"
|
|
5001
|
-
"
|
|
5002
|
-
"
|
|
5003
|
-
"
|
|
5004
|
-
"
|
|
4642
|
+
"external_options": {},
|
|
4643
|
+
"info": "The API Endpoint for the Astra DB instance. Supercedes database selection.",
|
|
4644
|
+
"name": "api_endpoint",
|
|
4645
|
+
"options": [],
|
|
4646
|
+
"options_metadata": [],
|
|
5005
4647
|
"placeholder": "",
|
|
5006
4648
|
"required": false,
|
|
5007
4649
|
"show": true,
|
|
5008
4650
|
"title_case": false,
|
|
4651
|
+
"toggle": false,
|
|
5009
4652
|
"tool_mode": false,
|
|
5010
4653
|
"trace_as_metadata": true,
|
|
5011
|
-
"
|
|
5012
|
-
"
|
|
5013
|
-
"value": true
|
|
4654
|
+
"type": "str",
|
|
4655
|
+
"value": ""
|
|
5014
4656
|
},
|
|
5015
|
-
"
|
|
5016
|
-
"_input_type": "
|
|
4657
|
+
"astradb_vectorstore_kwargs": {
|
|
4658
|
+
"_input_type": "NestedDictInput",
|
|
5017
4659
|
"advanced": true,
|
|
5018
|
-
"display_name": "
|
|
4660
|
+
"display_name": "AstraDBVectorStore Parameters",
|
|
5019
4661
|
"dynamic": false,
|
|
5020
|
-
"info": "
|
|
5021
|
-
"input_types": [
|
|
5022
|
-
"Message"
|
|
5023
|
-
],
|
|
4662
|
+
"info": "Optional dictionary of additional parameters for the AstraDBVectorStore.",
|
|
5024
4663
|
"list": false,
|
|
5025
4664
|
"list_add_label": "Add More",
|
|
5026
|
-
"
|
|
5027
|
-
"name": "doc_key",
|
|
5028
|
-
"override_skip": false,
|
|
4665
|
+
"name": "astradb_vectorstore_kwargs",
|
|
5029
4666
|
"placeholder": "",
|
|
5030
4667
|
"required": false,
|
|
5031
|
-
"show":
|
|
4668
|
+
"show": true,
|
|
5032
4669
|
"title_case": false,
|
|
5033
4670
|
"tool_mode": false,
|
|
5034
4671
|
"trace_as_input": true,
|
|
5035
4672
|
"trace_as_metadata": true,
|
|
5036
|
-
"
|
|
5037
|
-
"
|
|
5038
|
-
"value": "doc"
|
|
5039
|
-
},
|
|
5040
|
-
"file_id": {
|
|
5041
|
-
"_input_type": "StrInput",
|
|
5042
|
-
"advanced": false,
|
|
5043
|
-
"display_name": "Google Drive File ID",
|
|
5044
|
-
"dynamic": false,
|
|
5045
|
-
"info": "The Google Drive file ID to read. The file must be shared with the service account email.",
|
|
5046
|
-
"list": false,
|
|
5047
|
-
"list_add_label": "Add More",
|
|
5048
|
-
"load_from_db": false,
|
|
5049
|
-
"name": "file_id",
|
|
5050
|
-
"override_skip": false,
|
|
5051
|
-
"placeholder": "",
|
|
5052
|
-
"required": true,
|
|
5053
|
-
"show": false,
|
|
5054
|
-
"title_case": false,
|
|
5055
|
-
"tool_mode": false,
|
|
5056
|
-
"trace_as_metadata": true,
|
|
5057
|
-
"track_in_telemetry": false,
|
|
5058
|
-
"type": "str",
|
|
5059
|
-
"value": ""
|
|
4673
|
+
"type": "NestedDict",
|
|
4674
|
+
"value": {}
|
|
5060
4675
|
},
|
|
5061
|
-
"
|
|
5062
|
-
"_input_type": "
|
|
4676
|
+
"autodetect_collection": {
|
|
4677
|
+
"_input_type": "BoolInput",
|
|
5063
4678
|
"advanced": true,
|
|
5064
|
-
"display_name": "
|
|
4679
|
+
"display_name": "Autodetect Collection",
|
|
5065
4680
|
"dynamic": false,
|
|
5066
|
-
"info": "
|
|
5067
|
-
"
|
|
5068
|
-
"Data",
|
|
5069
|
-
"Message"
|
|
5070
|
-
],
|
|
5071
|
-
"list": true,
|
|
4681
|
+
"info": "Boolean flag to determine whether to autodetect the collection.",
|
|
4682
|
+
"list": false,
|
|
5072
4683
|
"list_add_label": "Add More",
|
|
5073
|
-
"name": "
|
|
5074
|
-
"override_skip": false,
|
|
4684
|
+
"name": "autodetect_collection",
|
|
5075
4685
|
"placeholder": "",
|
|
5076
4686
|
"required": false,
|
|
5077
4687
|
"show": true,
|
|
5078
4688
|
"title_case": false,
|
|
4689
|
+
"tool_mode": false,
|
|
5079
4690
|
"trace_as_metadata": true,
|
|
5080
|
-
"
|
|
5081
|
-
"
|
|
5082
|
-
"value": ""
|
|
4691
|
+
"type": "bool",
|
|
4692
|
+
"value": true
|
|
5083
4693
|
},
|
|
5084
|
-
"
|
|
5085
|
-
"_input_type": "StrInput",
|
|
4694
|
+
"code": {
|
|
5086
4695
|
"advanced": true,
|
|
5087
|
-
"
|
|
5088
|
-
"
|
|
5089
|
-
"
|
|
4696
|
+
"dynamic": true,
|
|
4697
|
+
"fileTypes": [],
|
|
4698
|
+
"file_path": "",
|
|
4699
|
+
"info": "",
|
|
5090
4700
|
"list": false,
|
|
5091
|
-
"list_add_label": "Add More",
|
|
5092
4701
|
"load_from_db": false,
|
|
5093
|
-
"
|
|
5094
|
-
"
|
|
4702
|
+
"multiline": true,
|
|
4703
|
+
"name": "code",
|
|
4704
|
+
"password": false,
|
|
5095
4705
|
"placeholder": "",
|
|
5096
|
-
"required":
|
|
5097
|
-
"show":
|
|
4706
|
+
"required": true,
|
|
4707
|
+
"show": true,
|
|
5098
4708
|
"title_case": false,
|
|
5099
|
-
"
|
|
5100
|
-
"trace_as_metadata": true,
|
|
5101
|
-
"track_in_telemetry": false,
|
|
5102
|
-
"type": "str",
|
|
5103
|
-
"value": ""
|
|
4709
|
+
"type": "code",
|
|
4710
|
+
"value": "from astrapy import DataAPIClient\nfrom langchain_core.documents import Document\n\nfrom lfx.base.datastax.astradb_base import AstraDBBaseComponent\nfrom lfx.base.vectorstores.model import LCVectorStoreComponent, check_cached_vector_store\nfrom lfx.base.vectorstores.vector_store_connection_decorator import vector_store_connection\nfrom lfx.helpers.data import docs_to_data\nfrom lfx.io import BoolInput, DropdownInput, FloatInput, HandleInput, IntInput, NestedDictInput, QueryInput, StrInput\nfrom lfx.schema.data import Data\nfrom lfx.serialization import serialize\nfrom lfx.utils.version import get_version_info\n\n\n@vector_store_connection\nclass AstraDBVectorStoreComponent(AstraDBBaseComponent, LCVectorStoreComponent):\n display_name: str = \"Astra DB\"\n description: str = \"Ingest and search documents in Astra DB\"\n documentation: str = \"https://docs.langflow.org/bundles-datastax\"\n name = \"AstraDB\"\n icon: str = \"AstraDB\"\n\n inputs = [\n *AstraDBBaseComponent.inputs,\n *LCVectorStoreComponent.inputs,\n HandleInput(\n name=\"embedding_model\",\n display_name=\"Embedding Model\",\n input_types=[\"Embeddings\"],\n info=\"Specify the Embedding Model. Not required for Astra Vectorize collections.\",\n required=False,\n show=True,\n ),\n StrInput(\n name=\"content_field\",\n display_name=\"Content Field\",\n info=\"Field to use as the text content field for the vector store.\",\n advanced=True,\n ),\n StrInput(\n name=\"deletion_field\",\n display_name=\"Deletion Based On Field\",\n info=\"When this parameter is provided, documents in the target collection with \"\n \"metadata field values matching the input metadata field value will be deleted \"\n \"before new data is loaded.\",\n advanced=True,\n ),\n BoolInput(\n name=\"ignore_invalid_documents\",\n display_name=\"Ignore Invalid Documents\",\n info=\"Boolean flag to determine whether to ignore invalid documents at runtime.\",\n advanced=True,\n ),\n NestedDictInput(\n name=\"astradb_vectorstore_kwargs\",\n display_name=\"AstraDBVectorStore Parameters\",\n info=\"Optional dictionary of additional parameters for the AstraDBVectorStore.\",\n advanced=True,\n ),\n DropdownInput(\n name=\"search_method\",\n display_name=\"Search Method\",\n info=(\n \"Determine how your content is matched: Vector finds semantic similarity, \"\n \"and Hybrid Search (suggested) combines both approaches \"\n \"with a reranker.\"\n ),\n options=[\"Hybrid Search\", \"Vector Search\"], # TODO: Restore Lexical Search?\n options_metadata=[{\"icon\": \"SearchHybrid\"}, {\"icon\": \"SearchVector\"}],\n value=\"Vector Search\",\n advanced=True,\n real_time_refresh=True,\n ),\n DropdownInput(\n name=\"reranker\",\n display_name=\"Reranker\",\n info=\"Post-retrieval model that re-scores results for optimal relevance ranking.\",\n show=False,\n toggle=True,\n ),\n QueryInput(\n name=\"lexical_terms\",\n display_name=\"Lexical Terms\",\n info=\"Add additional terms/keywords to augment search precision.\",\n placeholder=\"Enter terms to search...\",\n separator=\" \",\n show=False,\n value=\"\",\n ),\n IntInput(\n name=\"number_of_results\",\n display_name=\"Number of Search Results\",\n info=\"Number of search results to return.\",\n advanced=True,\n value=4,\n ),\n DropdownInput(\n name=\"search_type\",\n display_name=\"Search Type\",\n info=\"Search type to use\",\n options=[\"Similarity\", \"Similarity with score threshold\", \"MMR (Max Marginal Relevance)\"],\n value=\"Similarity\",\n advanced=True,\n ),\n FloatInput(\n name=\"search_score_threshold\",\n display_name=\"Search Score Threshold\",\n info=\"Minimum similarity score threshold for search results. \"\n \"(when using 'Similarity with score threshold')\",\n value=0,\n advanced=True,\n ),\n NestedDictInput(\n name=\"advanced_search_filter\",\n display_name=\"Search Metadata Filter\",\n info=\"Optional dictionary of filters to apply to the search query.\",\n advanced=True,\n ),\n ]\n\n async def update_build_config(\n self,\n build_config: dict,\n field_value: str | dict,\n field_name: str | None = None,\n ) -> dict:\n \"\"\"Update build configuration with proper handling of embedding and search options.\"\"\"\n # Handle base astra db build config updates\n build_config = await super().update_build_config(\n build_config,\n field_value=field_value,\n field_name=field_name,\n )\n\n # Set embedding model display based on provider selection\n if isinstance(field_value, dict) and \"02_embedding_generation_provider\" in field_value:\n embedding_provider = field_value.get(\"02_embedding_generation_provider\")\n is_custom_provider = embedding_provider and embedding_provider != \"Bring your own\"\n provider = embedding_provider.lower() if is_custom_provider and embedding_provider is not None else None\n\n build_config[\"embedding_model\"][\"show\"] = not bool(provider)\n build_config[\"embedding_model\"][\"required\"] = not bool(provider)\n\n # Early return if no API endpoint is configured\n if not self.get_api_endpoint():\n return build_config\n\n # Configure search method and related options\n return self._configure_search_options(build_config)\n\n def _configure_search_options(self, build_config: dict) -> dict:\n \"\"\"Configure hybrid search, reranker, and vector search options.\"\"\"\n # Detect available hybrid search capabilities\n hybrid_capabilities = self._detect_hybrid_capabilities()\n\n # Return if we haven't selected a collection\n if not build_config[\"collection_name\"][\"options\"] or not build_config[\"collection_name\"][\"value\"]:\n return build_config\n\n # Get collection options\n collection_options = self._get_collection_options(build_config)\n\n # Get the selected collection index\n index = build_config[\"collection_name\"][\"options\"].index(build_config[\"collection_name\"][\"value\"])\n provider = build_config[\"collection_name\"][\"options_metadata\"][index][\"provider\"]\n build_config[\"embedding_model\"][\"show\"] = not bool(provider)\n build_config[\"embedding_model\"][\"required\"] = not bool(provider)\n\n # Determine search configuration\n is_vector_search = build_config[\"search_method\"][\"value\"] == \"Vector Search\"\n is_autodetect = build_config[\"autodetect_collection\"][\"value\"]\n\n # Apply hybrid search configuration\n if hybrid_capabilities[\"available\"]:\n build_config[\"search_method\"][\"show\"] = True\n build_config[\"search_method\"][\"options\"] = [\"Hybrid Search\", \"Vector Search\"]\n build_config[\"search_method\"][\"value\"] = build_config[\"search_method\"].get(\"value\", \"Hybrid Search\")\n\n build_config[\"reranker\"][\"options\"] = hybrid_capabilities[\"reranker_models\"]\n build_config[\"reranker\"][\"options_metadata\"] = hybrid_capabilities[\"reranker_metadata\"]\n if hybrid_capabilities[\"reranker_models\"]:\n build_config[\"reranker\"][\"value\"] = hybrid_capabilities[\"reranker_models\"][0]\n else:\n build_config[\"search_method\"][\"show\"] = False\n build_config[\"search_method\"][\"options\"] = [\"Vector Search\"]\n build_config[\"search_method\"][\"value\"] = \"Vector Search\"\n build_config[\"reranker\"][\"options\"] = []\n build_config[\"reranker\"][\"options_metadata\"] = []\n\n # Configure reranker visibility and state\n hybrid_enabled = (\n collection_options[\"rerank_enabled\"] and build_config[\"search_method\"][\"value\"] == \"Hybrid Search\"\n )\n\n build_config[\"reranker\"][\"show\"] = hybrid_enabled\n build_config[\"reranker\"][\"toggle_value\"] = hybrid_enabled\n build_config[\"reranker\"][\"toggle_disable\"] = is_vector_search\n\n # Configure lexical terms\n lexical_visible = collection_options[\"lexical_enabled\"] and not is_vector_search\n build_config[\"lexical_terms\"][\"show\"] = lexical_visible\n build_config[\"lexical_terms\"][\"value\"] = \"\" if is_vector_search else build_config[\"lexical_terms\"][\"value\"]\n\n # Configure search type and score threshold\n build_config[\"search_type\"][\"show\"] = is_vector_search\n build_config[\"search_score_threshold\"][\"show\"] = is_vector_search\n\n # Force similarity search for hybrid mode or autodetect\n if hybrid_enabled or is_autodetect:\n build_config[\"search_type\"][\"value\"] = \"Similarity\"\n\n return build_config\n\n def _detect_hybrid_capabilities(self) -> dict:\n \"\"\"Detect available hybrid search and reranking capabilities.\"\"\"\n environment = self.get_environment(self.environment)\n client = DataAPIClient(environment=environment)\n admin_client = client.get_admin()\n db_admin = admin_client.get_database_admin(self.get_api_endpoint(), token=self.token)\n\n try:\n providers = db_admin.find_reranking_providers()\n reranker_models = [\n model.name for provider_data in providers.reranking_providers.values() for model in provider_data.models\n ]\n reranker_metadata = [\n {\"icon\": self.get_provider_icon(provider_name=model.name.split(\"/\")[0])}\n for provider in providers.reranking_providers.values()\n for model in provider.models\n ]\n except Exception as e: # noqa: BLE001\n self.log(f\"Hybrid search not available: {e}\")\n return {\n \"available\": False,\n \"reranker_models\": [],\n \"reranker_metadata\": [],\n }\n else:\n return {\n \"available\": True,\n \"reranker_models\": reranker_models,\n \"reranker_metadata\": reranker_metadata,\n }\n\n def _get_collection_options(self, build_config: dict) -> dict:\n \"\"\"Retrieve collection-level search options.\"\"\"\n database = self.get_database_object(api_endpoint=build_config[\"api_endpoint\"][\"value\"])\n collection = database.get_collection(\n name=build_config[\"collection_name\"][\"value\"],\n keyspace=build_config[\"keyspace\"][\"value\"],\n )\n\n col_options = collection.options()\n\n return {\n \"rerank_enabled\": bool(col_options.rerank and col_options.rerank.enabled),\n \"lexical_enabled\": bool(col_options.lexical and col_options.lexical.enabled),\n }\n\n @check_cached_vector_store\n def build_vector_store(self):\n try:\n from langchain_astradb import AstraDBVectorStore\n from langchain_astradb.utils.astradb import HybridSearchMode\n except ImportError as e:\n msg = (\n \"Could not import langchain Astra DB integration package. \"\n \"Please install it with `pip install langchain-astradb`.\"\n )\n raise ImportError(msg) from e\n\n # Get the embedding model and additional params\n embedding_params = {\"embedding\": self.embedding_model} if self.embedding_model else {}\n\n # Get the additional parameters\n additional_params = self.astradb_vectorstore_kwargs or {}\n\n # Get Langflow version and platform information\n __version__ = get_version_info()[\"version\"]\n langflow_prefix = \"\"\n # if os.getenv(\"AWS_EXECUTION_ENV\") == \"AWS_ECS_FARGATE\": # TODO: More precise way of detecting\n # langflow_prefix = \"ds-\"\n\n # Get the database object\n database = self.get_database_object()\n autodetect = self.collection_name in database.list_collection_names() and self.autodetect_collection\n\n # Bundle up the auto-detect parameters\n autodetect_params = {\n \"autodetect_collection\": autodetect,\n \"content_field\": (\n self.content_field\n if self.content_field and embedding_params\n else (\n \"page_content\"\n if embedding_params\n and self.collection_data(collection_name=self.collection_name, database=database) == 0\n else None\n )\n ),\n \"ignore_invalid_documents\": self.ignore_invalid_documents,\n }\n\n # Choose HybridSearchMode based on the selected param\n hybrid_search_mode = HybridSearchMode.DEFAULT if self.search_method == \"Hybrid Search\" else HybridSearchMode.OFF\n\n # Attempt to build the Vector Store object\n try:\n vector_store = AstraDBVectorStore(\n # Astra DB Authentication Parameters\n token=self.token,\n api_endpoint=database.api_endpoint,\n namespace=database.keyspace,\n collection_name=self.collection_name,\n environment=self.environment,\n # Hybrid Search Parameters\n hybrid_search=hybrid_search_mode,\n # Astra DB Usage Tracking Parameters\n ext_callers=[(f\"{langflow_prefix}langflow\", __version__)],\n # Astra DB Vector Store Parameters\n **autodetect_params,\n **embedding_params,\n **additional_params,\n )\n except ValueError as e:\n msg = f\"Error initializing AstraDBVectorStore: {e}\"\n raise ValueError(msg) from e\n\n # Add documents to the vector store\n self._add_documents_to_vector_store(vector_store)\n\n return vector_store\n\n def _add_documents_to_vector_store(self, vector_store) -> None:\n self.ingest_data = self._prepare_ingest_data()\n\n documents = []\n for _input in self.ingest_data or []:\n if isinstance(_input, Data):\n documents.append(_input.to_lc_document())\n else:\n msg = \"Vector Store Inputs must be Data objects.\"\n raise TypeError(msg)\n\n documents = [\n Document(page_content=doc.page_content, metadata=serialize(doc.metadata, to_str=True)) for doc in documents\n ]\n\n if documents and self.deletion_field:\n self.log(f\"Deleting documents where {self.deletion_field}\")\n try:\n database = self.get_database_object()\n collection = database.get_collection(self.collection_name, keyspace=database.keyspace)\n delete_values = list({doc.metadata[self.deletion_field] for doc in documents})\n self.log(f\"Deleting documents where {self.deletion_field} matches {delete_values}.\")\n collection.delete_many({f\"metadata.{self.deletion_field}\": {\"$in\": delete_values}})\n except ValueError as e:\n msg = f\"Error deleting documents from AstraDBVectorStore based on '{self.deletion_field}': {e}\"\n raise ValueError(msg) from e\n\n if documents:\n self.log(f\"Adding {len(documents)} documents to the Vector Store.\")\n try:\n vector_store.add_documents(documents)\n except ValueError as e:\n msg = f\"Error adding documents to AstraDBVectorStore: {e}\"\n raise ValueError(msg) from e\n else:\n self.log(\"No documents to add to the Vector Store.\")\n\n def _map_search_type(self) -> str:\n search_type_mapping = {\n \"Similarity with score threshold\": \"similarity_score_threshold\",\n \"MMR (Max Marginal Relevance)\": \"mmr\",\n }\n\n return search_type_mapping.get(self.search_type, \"similarity\")\n\n def _build_search_args(self):\n # Clean up the search query\n query = self.search_query if isinstance(self.search_query, str) and self.search_query.strip() else None\n lexical_terms = self.lexical_terms or None\n\n # Check if we have a search query, and if so set the args\n if query:\n args = {\n \"query\": query,\n \"search_type\": self._map_search_type(),\n \"k\": self.number_of_results,\n \"score_threshold\": self.search_score_threshold,\n \"lexical_query\": lexical_terms,\n }\n elif self.advanced_search_filter:\n args = {\n \"n\": self.number_of_results,\n }\n else:\n return {}\n\n filter_arg = self.advanced_search_filter or {}\n if filter_arg:\n args[\"filter\"] = filter_arg\n\n return args\n\n def search_documents(self, vector_store=None) -> list[Data]:\n vector_store = vector_store or self.build_vector_store()\n\n self.log(f\"Search input: {self.search_query}\")\n self.log(f\"Search type: {self.search_type}\")\n self.log(f\"Number of results: {self.number_of_results}\")\n self.log(f\"store.hybrid_search: {vector_store.hybrid_search}\")\n self.log(f\"Lexical terms: {self.lexical_terms}\")\n self.log(f\"Reranker: {self.reranker}\")\n\n try:\n search_args = self._build_search_args()\n except ValueError as e:\n msg = f\"Error in AstraDBVectorStore._build_search_args: {e}\"\n raise ValueError(msg) from e\n\n if not search_args:\n self.log(\"No search input or filters provided. Skipping search.\")\n return []\n\n docs = []\n search_method = \"search\" if \"query\" in search_args else \"metadata_search\"\n\n try:\n self.log(f\"Calling vector_store.{search_method} with args: {search_args}\")\n docs = getattr(vector_store, search_method)(**search_args)\n except ValueError as e:\n msg = f\"Error performing {search_method} in AstraDBVectorStore: {e}\"\n raise ValueError(msg) from e\n\n self.log(f\"Retrieved documents: {len(docs)}\")\n\n data = docs_to_data(docs)\n self.log(f\"Converted documents to data: {len(data)}\")\n self.status = data\n\n return data\n\n def get_retriever_kwargs(self):\n search_args = self._build_search_args()\n\n return {\n \"search_type\": self._map_search_type(),\n \"search_kwargs\": search_args,\n }\n"
|
|
5104
4711
|
},
|
|
5105
|
-
"
|
|
5106
|
-
"_input_type": "
|
|
5107
|
-
"advanced":
|
|
5108
|
-
"
|
|
4712
|
+
"collection_name": {
|
|
4713
|
+
"_input_type": "DropdownInput",
|
|
4714
|
+
"advanced": false,
|
|
4715
|
+
"combobox": true,
|
|
4716
|
+
"dialog_inputs": {
|
|
4717
|
+
"fields": {
|
|
4718
|
+
"data": {
|
|
4719
|
+
"node": {
|
|
4720
|
+
"description": "Please allow several seconds for creation to complete.",
|
|
4721
|
+
"display_name": "Create new collection",
|
|
4722
|
+
"field_order": [
|
|
4723
|
+
"01_new_collection_name",
|
|
4724
|
+
"02_embedding_generation_provider",
|
|
4725
|
+
"03_embedding_generation_model",
|
|
4726
|
+
"04_dimension"
|
|
4727
|
+
],
|
|
4728
|
+
"name": "create_collection",
|
|
4729
|
+
"template": {
|
|
4730
|
+
"01_new_collection_name": {
|
|
4731
|
+
"_input_type": "StrInput",
|
|
4732
|
+
"advanced": false,
|
|
4733
|
+
"display_name": "Name",
|
|
4734
|
+
"dynamic": false,
|
|
4735
|
+
"info": "Name of the new collection to create in Astra DB.",
|
|
4736
|
+
"list": false,
|
|
4737
|
+
"list_add_label": "Add More",
|
|
4738
|
+
"load_from_db": false,
|
|
4739
|
+
"name": "new_collection_name",
|
|
4740
|
+
"placeholder": "",
|
|
4741
|
+
"required": true,
|
|
4742
|
+
"show": true,
|
|
4743
|
+
"title_case": false,
|
|
4744
|
+
"tool_mode": false,
|
|
4745
|
+
"trace_as_metadata": true,
|
|
4746
|
+
"type": "str",
|
|
4747
|
+
"value": ""
|
|
4748
|
+
},
|
|
4749
|
+
"02_embedding_generation_provider": {
|
|
4750
|
+
"_input_type": "DropdownInput",
|
|
4751
|
+
"advanced": false,
|
|
4752
|
+
"combobox": false,
|
|
4753
|
+
"dialog_inputs": {},
|
|
4754
|
+
"display_name": "Embedding generation method",
|
|
4755
|
+
"dynamic": false,
|
|
4756
|
+
"external_options": {},
|
|
4757
|
+
"helper_text": "To create collections with more embedding provider options, go to <a class=\"underline\" href=\"https://astra.datastax.com/\" target=\" _blank\" rel=\"noopener noreferrer\">your database in Astra DB</a>",
|
|
4758
|
+
"info": "Provider to use for generating embeddings.",
|
|
4759
|
+
"name": "embedding_generation_provider",
|
|
4760
|
+
"options": [],
|
|
4761
|
+
"options_metadata": [],
|
|
4762
|
+
"placeholder": "",
|
|
4763
|
+
"real_time_refresh": true,
|
|
4764
|
+
"required": true,
|
|
4765
|
+
"show": true,
|
|
4766
|
+
"title_case": false,
|
|
4767
|
+
"toggle": false,
|
|
4768
|
+
"tool_mode": false,
|
|
4769
|
+
"trace_as_metadata": true,
|
|
4770
|
+
"type": "str",
|
|
4771
|
+
"value": ""
|
|
4772
|
+
},
|
|
4773
|
+
"03_embedding_generation_model": {
|
|
4774
|
+
"_input_type": "DropdownInput",
|
|
4775
|
+
"advanced": false,
|
|
4776
|
+
"combobox": false,
|
|
4777
|
+
"dialog_inputs": {},
|
|
4778
|
+
"display_name": "Embedding model",
|
|
4779
|
+
"dynamic": false,
|
|
4780
|
+
"external_options": {},
|
|
4781
|
+
"info": "Model to use for generating embeddings.",
|
|
4782
|
+
"name": "embedding_generation_model",
|
|
4783
|
+
"options": [],
|
|
4784
|
+
"options_metadata": [],
|
|
4785
|
+
"placeholder": "",
|
|
4786
|
+
"real_time_refresh": true,
|
|
4787
|
+
"required": false,
|
|
4788
|
+
"show": true,
|
|
4789
|
+
"title_case": false,
|
|
4790
|
+
"toggle": false,
|
|
4791
|
+
"tool_mode": false,
|
|
4792
|
+
"trace_as_metadata": true,
|
|
4793
|
+
"type": "str",
|
|
4794
|
+
"value": ""
|
|
4795
|
+
},
|
|
4796
|
+
"04_dimension": {
|
|
4797
|
+
"_input_type": "IntInput",
|
|
4798
|
+
"advanced": false,
|
|
4799
|
+
"display_name": "Dimensions",
|
|
4800
|
+
"dynamic": false,
|
|
4801
|
+
"info": "Dimensions of the embeddings to generate.",
|
|
4802
|
+
"list": false,
|
|
4803
|
+
"list_add_label": "Add More",
|
|
4804
|
+
"name": "dimension",
|
|
4805
|
+
"placeholder": "",
|
|
4806
|
+
"required": false,
|
|
4807
|
+
"show": true,
|
|
4808
|
+
"title_case": false,
|
|
4809
|
+
"tool_mode": false,
|
|
4810
|
+
"trace_as_metadata": true,
|
|
4811
|
+
"type": "int"
|
|
4812
|
+
}
|
|
4813
|
+
}
|
|
4814
|
+
}
|
|
4815
|
+
}
|
|
4816
|
+
},
|
|
4817
|
+
"functionality": "create"
|
|
4818
|
+
},
|
|
4819
|
+
"display_name": "Collection",
|
|
5109
4820
|
"dynamic": false,
|
|
5110
|
-
"
|
|
5111
|
-
"
|
|
5112
|
-
"
|
|
5113
|
-
"
|
|
5114
|
-
"
|
|
4821
|
+
"external_options": {},
|
|
4822
|
+
"info": "The name of the collection within Astra DB where the vectors will be stored.",
|
|
4823
|
+
"name": "collection_name",
|
|
4824
|
+
"options": [],
|
|
4825
|
+
"options_metadata": [],
|
|
5115
4826
|
"placeholder": "",
|
|
5116
|
-
"
|
|
5117
|
-
"
|
|
4827
|
+
"real_time_refresh": true,
|
|
4828
|
+
"refresh_button": true,
|
|
4829
|
+
"required": true,
|
|
4830
|
+
"show": false,
|
|
5118
4831
|
"title_case": false,
|
|
4832
|
+
"toggle": false,
|
|
5119
4833
|
"tool_mode": false,
|
|
5120
4834
|
"trace_as_metadata": true,
|
|
5121
|
-
"
|
|
5122
|
-
"
|
|
5123
|
-
"value": false
|
|
4835
|
+
"type": "str",
|
|
4836
|
+
"value": ""
|
|
5124
4837
|
},
|
|
5125
|
-
"
|
|
5126
|
-
"_input_type": "
|
|
4838
|
+
"content_field": {
|
|
4839
|
+
"_input_type": "StrInput",
|
|
5127
4840
|
"advanced": true,
|
|
5128
|
-
"display_name": "
|
|
4841
|
+
"display_name": "Content Field",
|
|
5129
4842
|
"dynamic": false,
|
|
5130
|
-
"info": "
|
|
4843
|
+
"info": "Field to use as the text content field for the vector store.",
|
|
5131
4844
|
"list": false,
|
|
5132
4845
|
"list_add_label": "Add More",
|
|
5133
|
-
"
|
|
5134
|
-
"
|
|
4846
|
+
"load_from_db": false,
|
|
4847
|
+
"name": "content_field",
|
|
5135
4848
|
"placeholder": "",
|
|
5136
4849
|
"required": false,
|
|
5137
4850
|
"show": true,
|
|
5138
4851
|
"title_case": false,
|
|
5139
4852
|
"tool_mode": false,
|
|
5140
4853
|
"trace_as_metadata": true,
|
|
5141
|
-
"
|
|
5142
|
-
"
|
|
5143
|
-
"value": true
|
|
4854
|
+
"type": "str",
|
|
4855
|
+
"value": ""
|
|
5144
4856
|
},
|
|
5145
|
-
"
|
|
5146
|
-
"_input_type": "
|
|
4857
|
+
"database_name": {
|
|
4858
|
+
"_input_type": "DropdownInput",
|
|
5147
4859
|
"advanced": false,
|
|
5148
|
-
"
|
|
4860
|
+
"combobox": true,
|
|
4861
|
+
"dialog_inputs": {
|
|
4862
|
+
"fields": {
|
|
4863
|
+
"data": {
|
|
4864
|
+
"node": {
|
|
4865
|
+
"description": "Please allow several minutes for creation to complete.",
|
|
4866
|
+
"display_name": "Create new database",
|
|
4867
|
+
"field_order": [
|
|
4868
|
+
"01_new_database_name",
|
|
4869
|
+
"02_cloud_provider",
|
|
4870
|
+
"03_region"
|
|
4871
|
+
],
|
|
4872
|
+
"name": "create_database",
|
|
4873
|
+
"template": {
|
|
4874
|
+
"01_new_database_name": {
|
|
4875
|
+
"_input_type": "StrInput",
|
|
4876
|
+
"advanced": false,
|
|
4877
|
+
"display_name": "Name",
|
|
4878
|
+
"dynamic": false,
|
|
4879
|
+
"info": "Name of the new database to create in Astra DB.",
|
|
4880
|
+
"list": false,
|
|
4881
|
+
"list_add_label": "Add More",
|
|
4882
|
+
"load_from_db": false,
|
|
4883
|
+
"name": "new_database_name",
|
|
4884
|
+
"placeholder": "",
|
|
4885
|
+
"required": true,
|
|
4886
|
+
"show": true,
|
|
4887
|
+
"title_case": false,
|
|
4888
|
+
"tool_mode": false,
|
|
4889
|
+
"trace_as_metadata": true,
|
|
4890
|
+
"type": "str",
|
|
4891
|
+
"value": ""
|
|
4892
|
+
},
|
|
4893
|
+
"02_cloud_provider": {
|
|
4894
|
+
"_input_type": "DropdownInput",
|
|
4895
|
+
"advanced": false,
|
|
4896
|
+
"combobox": false,
|
|
4897
|
+
"dialog_inputs": {},
|
|
4898
|
+
"display_name": "Cloud provider",
|
|
4899
|
+
"dynamic": false,
|
|
4900
|
+
"external_options": {},
|
|
4901
|
+
"info": "Cloud provider for the new database.",
|
|
4902
|
+
"name": "cloud_provider",
|
|
4903
|
+
"options": [],
|
|
4904
|
+
"options_metadata": [],
|
|
4905
|
+
"placeholder": "",
|
|
4906
|
+
"real_time_refresh": true,
|
|
4907
|
+
"required": true,
|
|
4908
|
+
"show": true,
|
|
4909
|
+
"title_case": false,
|
|
4910
|
+
"toggle": false,
|
|
4911
|
+
"tool_mode": false,
|
|
4912
|
+
"trace_as_metadata": true,
|
|
4913
|
+
"type": "str",
|
|
4914
|
+
"value": ""
|
|
4915
|
+
},
|
|
4916
|
+
"03_region": {
|
|
4917
|
+
"_input_type": "DropdownInput",
|
|
4918
|
+
"advanced": false,
|
|
4919
|
+
"combobox": false,
|
|
4920
|
+
"dialog_inputs": {},
|
|
4921
|
+
"display_name": "Region",
|
|
4922
|
+
"dynamic": false,
|
|
4923
|
+
"external_options": {},
|
|
4924
|
+
"info": "Region for the new database.",
|
|
4925
|
+
"name": "region",
|
|
4926
|
+
"options": [],
|
|
4927
|
+
"options_metadata": [],
|
|
4928
|
+
"placeholder": "",
|
|
4929
|
+
"required": true,
|
|
4930
|
+
"show": true,
|
|
4931
|
+
"title_case": false,
|
|
4932
|
+
"toggle": false,
|
|
4933
|
+
"tool_mode": false,
|
|
4934
|
+
"trace_as_metadata": true,
|
|
4935
|
+
"type": "str",
|
|
4936
|
+
"value": ""
|
|
4937
|
+
}
|
|
4938
|
+
}
|
|
4939
|
+
}
|
|
4940
|
+
}
|
|
4941
|
+
},
|
|
4942
|
+
"functionality": "create"
|
|
4943
|
+
},
|
|
4944
|
+
"display_name": "Database",
|
|
5149
4945
|
"dynamic": false,
|
|
5150
|
-
"
|
|
5151
|
-
"
|
|
5152
|
-
"
|
|
5153
|
-
"
|
|
5154
|
-
"
|
|
4946
|
+
"external_options": {},
|
|
4947
|
+
"info": "The Database name for the Astra DB instance.",
|
|
4948
|
+
"name": "database_name",
|
|
4949
|
+
"options": [],
|
|
4950
|
+
"options_metadata": [],
|
|
5155
4951
|
"placeholder": "",
|
|
5156
|
-
"
|
|
5157
|
-
"
|
|
4952
|
+
"real_time_refresh": true,
|
|
4953
|
+
"refresh_button": true,
|
|
4954
|
+
"required": true,
|
|
4955
|
+
"show": true,
|
|
5158
4956
|
"title_case": false,
|
|
4957
|
+
"toggle": false,
|
|
5159
4958
|
"tool_mode": false,
|
|
5160
4959
|
"trace_as_metadata": true,
|
|
5161
|
-
"
|
|
5162
|
-
"
|
|
5163
|
-
"value": false
|
|
4960
|
+
"type": "str",
|
|
4961
|
+
"value": ""
|
|
5164
4962
|
},
|
|
5165
|
-
"
|
|
4963
|
+
"deletion_field": {
|
|
5166
4964
|
"_input_type": "StrInput",
|
|
5167
4965
|
"advanced": true,
|
|
5168
|
-
"display_name": "
|
|
4966
|
+
"display_name": "Deletion Based On Field",
|
|
5169
4967
|
"dynamic": false,
|
|
5170
|
-
"info": "
|
|
4968
|
+
"info": "When this parameter is provided, documents in the target collection with metadata field values matching the input metadata field value will be deleted before new data is loaded.",
|
|
5171
4969
|
"list": false,
|
|
5172
4970
|
"list_add_label": "Add More",
|
|
5173
4971
|
"load_from_db": false,
|
|
5174
|
-
"name": "
|
|
5175
|
-
"override_skip": false,
|
|
4972
|
+
"name": "deletion_field",
|
|
5176
4973
|
"placeholder": "",
|
|
5177
4974
|
"required": false,
|
|
5178
|
-
"show":
|
|
4975
|
+
"show": true,
|
|
5179
4976
|
"title_case": false,
|
|
5180
4977
|
"tool_mode": false,
|
|
5181
4978
|
"trace_as_metadata": true,
|
|
5182
|
-
"track_in_telemetry": false,
|
|
5183
4979
|
"type": "str",
|
|
5184
|
-
"value": "
|
|
4980
|
+
"value": ""
|
|
5185
4981
|
},
|
|
5186
|
-
"
|
|
5187
|
-
"_input_type": "
|
|
5188
|
-
"advanced":
|
|
5189
|
-
"display_name": "
|
|
4982
|
+
"embedding_model": {
|
|
4983
|
+
"_input_type": "HandleInput",
|
|
4984
|
+
"advanced": false,
|
|
4985
|
+
"display_name": "Embedding Model",
|
|
5190
4986
|
"dynamic": false,
|
|
5191
|
-
"info": "
|
|
4987
|
+
"info": "Specify the Embedding Model. Not required for Astra Vectorize collections.",
|
|
4988
|
+
"input_types": [
|
|
4989
|
+
"Embeddings"
|
|
4990
|
+
],
|
|
5192
4991
|
"list": false,
|
|
5193
4992
|
"list_add_label": "Add More",
|
|
5194
|
-
"
|
|
5195
|
-
"name": "md_page_break_placeholder",
|
|
5196
|
-
"override_skip": false,
|
|
4993
|
+
"name": "embedding_model",
|
|
5197
4994
|
"placeholder": "",
|
|
5198
4995
|
"required": false,
|
|
5199
|
-
"show":
|
|
4996
|
+
"show": true,
|
|
5200
4997
|
"title_case": false,
|
|
5201
|
-
"tool_mode": false,
|
|
5202
4998
|
"trace_as_metadata": true,
|
|
5203
|
-
"
|
|
5204
|
-
"type": "str",
|
|
4999
|
+
"type": "other",
|
|
5205
5000
|
"value": ""
|
|
5206
5001
|
},
|
|
5207
|
-
"
|
|
5002
|
+
"environment": {
|
|
5208
5003
|
"_input_type": "DropdownInput",
|
|
5209
5004
|
"advanced": true,
|
|
5210
|
-
"combobox":
|
|
5005
|
+
"combobox": true,
|
|
5211
5006
|
"dialog_inputs": {},
|
|
5212
|
-
"display_name": "
|
|
5007
|
+
"display_name": "Environment",
|
|
5213
5008
|
"dynamic": false,
|
|
5214
5009
|
"external_options": {},
|
|
5215
|
-
"info": "
|
|
5216
|
-
"name": "
|
|
5010
|
+
"info": "The environment for the Astra DB API Endpoint.",
|
|
5011
|
+
"name": "environment",
|
|
5217
5012
|
"options": [
|
|
5218
|
-
"
|
|
5219
|
-
"
|
|
5013
|
+
"prod",
|
|
5014
|
+
"test",
|
|
5015
|
+
"dev"
|
|
5220
5016
|
],
|
|
5221
5017
|
"options_metadata": [],
|
|
5222
|
-
"override_skip": false,
|
|
5223
5018
|
"placeholder": "",
|
|
5019
|
+
"real_time_refresh": true,
|
|
5224
5020
|
"required": false,
|
|
5225
|
-
"show":
|
|
5021
|
+
"show": true,
|
|
5226
5022
|
"title_case": false,
|
|
5227
5023
|
"toggle": false,
|
|
5228
5024
|
"tool_mode": false,
|
|
5229
5025
|
"trace_as_metadata": true,
|
|
5230
|
-
"track_in_telemetry": true,
|
|
5231
5026
|
"type": "str",
|
|
5232
|
-
"value": "
|
|
5027
|
+
"value": "prod"
|
|
5233
5028
|
},
|
|
5234
|
-
"
|
|
5235
|
-
"_input_type": "
|
|
5236
|
-
"advanced":
|
|
5237
|
-
"display_name": "
|
|
5029
|
+
"ignore_invalid_documents": {
|
|
5030
|
+
"_input_type": "BoolInput",
|
|
5031
|
+
"advanced": true,
|
|
5032
|
+
"display_name": "Ignore Invalid Documents",
|
|
5238
5033
|
"dynamic": false,
|
|
5239
|
-
"
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
|
|
5248
|
-
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
"
|
|
5260
|
-
"
|
|
5261
|
-
"bmp",
|
|
5262
|
-
"dotx",
|
|
5263
|
-
"dotm",
|
|
5264
|
-
"docm",
|
|
5265
|
-
"jpg",
|
|
5266
|
-
"jpeg",
|
|
5267
|
-
"png",
|
|
5268
|
-
"potx",
|
|
5269
|
-
"ppsx",
|
|
5270
|
-
"pptm",
|
|
5271
|
-
"potm",
|
|
5272
|
-
"ppsm",
|
|
5273
|
-
"pptx",
|
|
5274
|
-
"tiff",
|
|
5275
|
-
"xls",
|
|
5276
|
-
"xlsx",
|
|
5277
|
-
"xhtml",
|
|
5278
|
-
"webp",
|
|
5279
|
-
"zip",
|
|
5280
|
-
"tar",
|
|
5281
|
-
"tgz",
|
|
5282
|
-
"bz2",
|
|
5283
|
-
"gz"
|
|
5034
|
+
"info": "Boolean flag to determine whether to ignore invalid documents at runtime.",
|
|
5035
|
+
"list": false,
|
|
5036
|
+
"list_add_label": "Add More",
|
|
5037
|
+
"name": "ignore_invalid_documents",
|
|
5038
|
+
"placeholder": "",
|
|
5039
|
+
"required": false,
|
|
5040
|
+
"show": true,
|
|
5041
|
+
"title_case": false,
|
|
5042
|
+
"tool_mode": false,
|
|
5043
|
+
"trace_as_metadata": true,
|
|
5044
|
+
"type": "bool",
|
|
5045
|
+
"value": false
|
|
5046
|
+
},
|
|
5047
|
+
"ingest_data": {
|
|
5048
|
+
"_input_type": "HandleInput",
|
|
5049
|
+
"advanced": false,
|
|
5050
|
+
"display_name": "Ingest Data",
|
|
5051
|
+
"dynamic": false,
|
|
5052
|
+
"info": "",
|
|
5053
|
+
"input_types": [
|
|
5054
|
+
"Data",
|
|
5055
|
+
"DataFrame"
|
|
5284
5056
|
],
|
|
5285
|
-
"file_path": [],
|
|
5286
|
-
"info": "Supported file extensions: csv, json, pdf, txt, md, mdx, yaml, yml, xml, html, htm, docx, py, sh, sql, js, ts, tsx, adoc, asciidoc, asc, bmp, dotx, dotm, docm, jpg, jpeg, png, potx, ppsx, pptm, potm, ppsm, pptx, tiff, xls, xlsx, xhtml, webp; optionally bundled in file extensions: zip, tar, tgz, bz2, gz",
|
|
5287
5057
|
"list": true,
|
|
5288
5058
|
"list_add_label": "Add More",
|
|
5289
|
-
"name": "
|
|
5290
|
-
"override_skip": false,
|
|
5059
|
+
"name": "ingest_data",
|
|
5291
5060
|
"placeholder": "",
|
|
5292
|
-
"real_time_refresh": true,
|
|
5293
5061
|
"required": false,
|
|
5294
5062
|
"show": true,
|
|
5295
|
-
"temp_file": false,
|
|
5296
5063
|
"title_case": false,
|
|
5297
|
-
"tool_mode": false,
|
|
5298
5064
|
"trace_as_metadata": true,
|
|
5299
|
-
"
|
|
5300
|
-
"type": "file",
|
|
5065
|
+
"type": "other",
|
|
5301
5066
|
"value": ""
|
|
5302
5067
|
},
|
|
5303
|
-
"
|
|
5068
|
+
"keyspace": {
|
|
5304
5069
|
"_input_type": "DropdownInput",
|
|
5305
5070
|
"advanced": true,
|
|
5306
5071
|
"combobox": false,
|
|
5307
5072
|
"dialog_inputs": {},
|
|
5308
|
-
"display_name": "
|
|
5073
|
+
"display_name": "Keyspace",
|
|
5309
5074
|
"dynamic": false,
|
|
5310
5075
|
"external_options": {},
|
|
5311
|
-
"info": "
|
|
5312
|
-
"name": "
|
|
5313
|
-
"options": [
|
|
5314
|
-
"standard",
|
|
5315
|
-
"vlm"
|
|
5316
|
-
],
|
|
5076
|
+
"info": "Optional keyspace within Astra DB to use for the collection.",
|
|
5077
|
+
"name": "keyspace",
|
|
5078
|
+
"options": [],
|
|
5317
5079
|
"options_metadata": [],
|
|
5318
|
-
"override_skip": false,
|
|
5319
5080
|
"placeholder": "",
|
|
5320
5081
|
"real_time_refresh": true,
|
|
5321
5082
|
"required": false,
|
|
@@ -5324,177 +5085,241 @@
|
|
|
5324
5085
|
"toggle": false,
|
|
5325
5086
|
"tool_mode": false,
|
|
5326
5087
|
"trace_as_metadata": true,
|
|
5327
|
-
"track_in_telemetry": true,
|
|
5328
5088
|
"type": "str",
|
|
5329
|
-
"value": "
|
|
5089
|
+
"value": ""
|
|
5330
5090
|
},
|
|
5331
|
-
"
|
|
5332
|
-
"_input_type": "
|
|
5091
|
+
"lexical_terms": {
|
|
5092
|
+
"_input_type": "QueryInput",
|
|
5333
5093
|
"advanced": false,
|
|
5334
|
-
"display_name": "
|
|
5094
|
+
"display_name": "Lexical Terms",
|
|
5335
5095
|
"dynamic": false,
|
|
5336
|
-
"info": "
|
|
5096
|
+
"info": "Add additional terms/keywords to augment search precision.",
|
|
5097
|
+
"input_types": [
|
|
5098
|
+
"Message"
|
|
5099
|
+
],
|
|
5337
5100
|
"list": false,
|
|
5338
5101
|
"list_add_label": "Add More",
|
|
5339
5102
|
"load_from_db": false,
|
|
5340
|
-
"name": "
|
|
5341
|
-
"
|
|
5342
|
-
"
|
|
5343
|
-
"
|
|
5103
|
+
"name": "lexical_terms",
|
|
5104
|
+
"placeholder": "Enter terms to search...",
|
|
5105
|
+
"required": false,
|
|
5106
|
+
"separator": " ",
|
|
5344
5107
|
"show": false,
|
|
5345
5108
|
"title_case": false,
|
|
5346
5109
|
"tool_mode": false,
|
|
5110
|
+
"trace_as_input": true,
|
|
5347
5111
|
"trace_as_metadata": true,
|
|
5348
|
-
"
|
|
5349
|
-
"type": "str",
|
|
5112
|
+
"type": "query",
|
|
5350
5113
|
"value": ""
|
|
5351
5114
|
},
|
|
5352
|
-
"
|
|
5353
|
-
"_input_type": "
|
|
5115
|
+
"number_of_results": {
|
|
5116
|
+
"_input_type": "IntInput",
|
|
5354
5117
|
"advanced": true,
|
|
5355
|
-
"display_name": "
|
|
5118
|
+
"display_name": "Number of Search Results",
|
|
5356
5119
|
"dynamic": false,
|
|
5357
|
-
"info": "
|
|
5120
|
+
"info": "Number of search results to return.",
|
|
5358
5121
|
"list": false,
|
|
5359
5122
|
"list_add_label": "Add More",
|
|
5360
|
-
"
|
|
5361
|
-
"name": "separator",
|
|
5362
|
-
"override_skip": false,
|
|
5123
|
+
"name": "number_of_results",
|
|
5363
5124
|
"placeholder": "",
|
|
5364
5125
|
"required": false,
|
|
5365
5126
|
"show": true,
|
|
5366
5127
|
"title_case": false,
|
|
5367
5128
|
"tool_mode": false,
|
|
5368
5129
|
"trace_as_metadata": true,
|
|
5369
|
-
"
|
|
5370
|
-
"
|
|
5371
|
-
"value": "\n\n"
|
|
5130
|
+
"type": "int",
|
|
5131
|
+
"value": 4
|
|
5372
5132
|
},
|
|
5373
|
-
"
|
|
5374
|
-
"_input_type": "
|
|
5133
|
+
"reranker": {
|
|
5134
|
+
"_input_type": "DropdownInput",
|
|
5375
5135
|
"advanced": false,
|
|
5376
|
-
"
|
|
5136
|
+
"combobox": false,
|
|
5137
|
+
"dialog_inputs": {},
|
|
5138
|
+
"display_name": "Reranker",
|
|
5377
5139
|
"dynamic": false,
|
|
5378
|
-
"
|
|
5379
|
-
"
|
|
5380
|
-
"
|
|
5381
|
-
"
|
|
5382
|
-
"
|
|
5383
|
-
"password": true,
|
|
5140
|
+
"external_options": {},
|
|
5141
|
+
"info": "Post-retrieval model that re-scores results for optimal relevance ranking.",
|
|
5142
|
+
"name": "reranker",
|
|
5143
|
+
"options": [],
|
|
5144
|
+
"options_metadata": [],
|
|
5384
5145
|
"placeholder": "",
|
|
5385
|
-
"required":
|
|
5146
|
+
"required": false,
|
|
5386
5147
|
"show": false,
|
|
5387
5148
|
"title_case": false,
|
|
5388
|
-
"
|
|
5149
|
+
"toggle": true,
|
|
5150
|
+
"tool_mode": false,
|
|
5151
|
+
"trace_as_metadata": true,
|
|
5389
5152
|
"type": "str",
|
|
5390
5153
|
"value": ""
|
|
5391
5154
|
},
|
|
5392
|
-
"
|
|
5393
|
-
"_input_type": "
|
|
5155
|
+
"search_method": {
|
|
5156
|
+
"_input_type": "DropdownInput",
|
|
5394
5157
|
"advanced": true,
|
|
5395
|
-
"
|
|
5158
|
+
"combobox": false,
|
|
5159
|
+
"dialog_inputs": {},
|
|
5160
|
+
"display_name": "Search Method",
|
|
5396
5161
|
"dynamic": false,
|
|
5397
|
-
"
|
|
5162
|
+
"external_options": {},
|
|
5163
|
+
"info": "Determine how your content is matched: Vector finds semantic similarity, and Hybrid Search (suggested) combines both approaches with a reranker.",
|
|
5164
|
+
"name": "search_method",
|
|
5165
|
+
"options": [
|
|
5166
|
+
"Hybrid Search",
|
|
5167
|
+
"Vector Search"
|
|
5168
|
+
],
|
|
5169
|
+
"options_metadata": [
|
|
5170
|
+
{
|
|
5171
|
+
"icon": "SearchHybrid"
|
|
5172
|
+
},
|
|
5173
|
+
{
|
|
5174
|
+
"icon": "SearchVector"
|
|
5175
|
+
}
|
|
5176
|
+
],
|
|
5177
|
+
"placeholder": "",
|
|
5178
|
+
"real_time_refresh": true,
|
|
5179
|
+
"required": false,
|
|
5180
|
+
"show": true,
|
|
5181
|
+
"title_case": false,
|
|
5182
|
+
"toggle": false,
|
|
5183
|
+
"tool_mode": false,
|
|
5184
|
+
"trace_as_metadata": true,
|
|
5185
|
+
"type": "str",
|
|
5186
|
+
"value": "Vector Search"
|
|
5187
|
+
},
|
|
5188
|
+
"search_query": {
|
|
5189
|
+
"_input_type": "QueryInput",
|
|
5190
|
+
"advanced": false,
|
|
5191
|
+
"display_name": "Search Query",
|
|
5192
|
+
"dynamic": false,
|
|
5193
|
+
"info": "Enter a query to run a similarity search.",
|
|
5194
|
+
"input_types": [
|
|
5195
|
+
"Message"
|
|
5196
|
+
],
|
|
5398
5197
|
"list": false,
|
|
5399
5198
|
"list_add_label": "Add More",
|
|
5400
|
-
"
|
|
5401
|
-
"
|
|
5199
|
+
"load_from_db": false,
|
|
5200
|
+
"name": "search_query",
|
|
5201
|
+
"placeholder": "Enter a query...",
|
|
5202
|
+
"required": false,
|
|
5203
|
+
"show": true,
|
|
5204
|
+
"title_case": false,
|
|
5205
|
+
"tool_mode": true,
|
|
5206
|
+
"trace_as_input": true,
|
|
5207
|
+
"trace_as_metadata": true,
|
|
5208
|
+
"type": "query",
|
|
5209
|
+
"value": ""
|
|
5210
|
+
},
|
|
5211
|
+
"search_score_threshold": {
|
|
5212
|
+
"_input_type": "FloatInput",
|
|
5213
|
+
"advanced": true,
|
|
5214
|
+
"display_name": "Search Score Threshold",
|
|
5215
|
+
"dynamic": false,
|
|
5216
|
+
"info": "Minimum similarity score threshold for search results. (when using 'Similarity with score threshold')",
|
|
5217
|
+
"list": false,
|
|
5218
|
+
"list_add_label": "Add More",
|
|
5219
|
+
"name": "search_score_threshold",
|
|
5402
5220
|
"placeholder": "",
|
|
5403
5221
|
"required": false,
|
|
5404
5222
|
"show": true,
|
|
5405
5223
|
"title_case": false,
|
|
5406
5224
|
"tool_mode": false,
|
|
5407
5225
|
"trace_as_metadata": true,
|
|
5408
|
-
"
|
|
5409
|
-
"
|
|
5410
|
-
"value": false
|
|
5226
|
+
"type": "float",
|
|
5227
|
+
"value": 0
|
|
5411
5228
|
},
|
|
5412
|
-
"
|
|
5413
|
-
"_input_type": "
|
|
5414
|
-
"advanced":
|
|
5415
|
-
"
|
|
5229
|
+
"search_type": {
|
|
5230
|
+
"_input_type": "DropdownInput",
|
|
5231
|
+
"advanced": true,
|
|
5232
|
+
"combobox": false,
|
|
5233
|
+
"dialog_inputs": {},
|
|
5234
|
+
"display_name": "Search Type",
|
|
5416
5235
|
"dynamic": false,
|
|
5417
|
-
"
|
|
5418
|
-
"
|
|
5419
|
-
"name": "
|
|
5236
|
+
"external_options": {},
|
|
5237
|
+
"info": "Search type to use",
|
|
5238
|
+
"name": "search_type",
|
|
5420
5239
|
"options": [
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
},
|
|
5425
|
-
{
|
|
5426
|
-
"icon": "Amazon",
|
|
5427
|
-
"name": "AWS"
|
|
5428
|
-
},
|
|
5429
|
-
{
|
|
5430
|
-
"icon": "google",
|
|
5431
|
-
"name": "Google Drive"
|
|
5432
|
-
}
|
|
5240
|
+
"Similarity",
|
|
5241
|
+
"Similarity with score threshold",
|
|
5242
|
+
"MMR (Max Marginal Relevance)"
|
|
5433
5243
|
],
|
|
5434
|
-
"
|
|
5435
|
-
"placeholder": "
|
|
5436
|
-
"real_time_refresh": true,
|
|
5244
|
+
"options_metadata": [],
|
|
5245
|
+
"placeholder": "",
|
|
5437
5246
|
"required": false,
|
|
5438
|
-
"search_category": [],
|
|
5439
5247
|
"show": true,
|
|
5440
5248
|
"title_case": false,
|
|
5249
|
+
"toggle": false,
|
|
5441
5250
|
"tool_mode": false,
|
|
5442
5251
|
"trace_as_metadata": true,
|
|
5443
|
-
"
|
|
5444
|
-
"
|
|
5445
|
-
"value": ""
|
|
5252
|
+
"type": "str",
|
|
5253
|
+
"value": "Similarity"
|
|
5446
5254
|
},
|
|
5447
|
-
"
|
|
5255
|
+
"should_cache_vector_store": {
|
|
5448
5256
|
"_input_type": "BoolInput",
|
|
5449
5257
|
"advanced": true,
|
|
5450
|
-
"display_name": "
|
|
5258
|
+
"display_name": "Cache Vector Store",
|
|
5451
5259
|
"dynamic": false,
|
|
5452
|
-
"info": "
|
|
5260
|
+
"info": "If True, the vector store will be cached for the current build of the component. This is useful for components that have multiple output methods and want to share the same vector store.",
|
|
5453
5261
|
"list": false,
|
|
5454
5262
|
"list_add_label": "Add More",
|
|
5455
|
-
"name": "
|
|
5456
|
-
"override_skip": false,
|
|
5263
|
+
"name": "should_cache_vector_store",
|
|
5457
5264
|
"placeholder": "",
|
|
5458
5265
|
"required": false,
|
|
5459
5266
|
"show": true,
|
|
5460
5267
|
"title_case": false,
|
|
5461
5268
|
"tool_mode": false,
|
|
5462
5269
|
"trace_as_metadata": true,
|
|
5463
|
-
"track_in_telemetry": true,
|
|
5464
5270
|
"type": "bool",
|
|
5465
5271
|
"value": true
|
|
5272
|
+
},
|
|
5273
|
+
"token": {
|
|
5274
|
+
"_input_type": "SecretStrInput",
|
|
5275
|
+
"advanced": false,
|
|
5276
|
+
"display_name": "Astra DB Application Token",
|
|
5277
|
+
"dynamic": false,
|
|
5278
|
+
"info": "Authentication token for accessing Astra DB.",
|
|
5279
|
+
"input_types": [],
|
|
5280
|
+
"load_from_db": true,
|
|
5281
|
+
"name": "token",
|
|
5282
|
+
"password": true,
|
|
5283
|
+
"placeholder": "",
|
|
5284
|
+
"real_time_refresh": true,
|
|
5285
|
+
"required": true,
|
|
5286
|
+
"show": true,
|
|
5287
|
+
"title_case": false,
|
|
5288
|
+
"type": "str",
|
|
5289
|
+
"value": "ASTRA_DB_APPLICATION_TOKEN"
|
|
5466
5290
|
}
|
|
5467
5291
|
},
|
|
5468
5292
|
"tool_mode": false
|
|
5469
5293
|
},
|
|
5294
|
+
"selected_output": "dataframe",
|
|
5470
5295
|
"showNode": true,
|
|
5471
|
-
"type": "
|
|
5296
|
+
"type": "AstraDB"
|
|
5472
5297
|
},
|
|
5473
5298
|
"dragging": false,
|
|
5474
|
-
"id": "
|
|
5299
|
+
"id": "AstraDB-BteL9",
|
|
5475
5300
|
"measured": {
|
|
5476
|
-
"height":
|
|
5301
|
+
"height": 458,
|
|
5477
5302
|
"width": 320
|
|
5478
5303
|
},
|
|
5479
5304
|
"position": {
|
|
5480
|
-
"x":
|
|
5481
|
-
"y":
|
|
5305
|
+
"x": 1210.9603958451855,
|
|
5306
|
+
"y": 519.26557834351
|
|
5482
5307
|
},
|
|
5483
|
-
"selected":
|
|
5308
|
+
"selected": false,
|
|
5484
5309
|
"type": "genericNode"
|
|
5485
5310
|
}
|
|
5486
5311
|
],
|
|
5487
5312
|
"viewport": {
|
|
5488
|
-
"x": -
|
|
5489
|
-
"y": -
|
|
5490
|
-
"zoom": 0.
|
|
5313
|
+
"x": -242.44739610333954,
|
|
5314
|
+
"y": -59.21391294314947,
|
|
5315
|
+
"zoom": 0.4677494046491174
|
|
5491
5316
|
}
|
|
5492
5317
|
},
|
|
5493
5318
|
"description": "Load your data for chat context with Retrieval Augmented Generation.",
|
|
5494
5319
|
"endpoint_name": null,
|
|
5495
|
-
"id": "
|
|
5320
|
+
"id": "64f82d31-c711-441d-8082-fdb46cda7cdd",
|
|
5496
5321
|
"is_component": false,
|
|
5497
|
-
"last_tested_version": "1.
|
|
5322
|
+
"last_tested_version": "1.6.4",
|
|
5498
5323
|
"name": "Vector Store RAG",
|
|
5499
5324
|
"tags": [
|
|
5500
5325
|
"openai",
|