langflow-base-nightly 0.5.1.dev2__py3-none-any.whl → 0.5.1.dev4__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/__init__.py +215 -0
- langflow/__main__.py +16 -2
- langflow/alembic/versions/006b3990db50_add_unique_constraints.py +4 -7
- langflow/alembic/versions/012fb73ac359_add_folder_table.py +4 -5
- langflow/alembic/versions/0ae3a2674f32_update_the_columns_that_need_to_change_.py +11 -20
- langflow/alembic/versions/0b8757876a7c_.py +4 -7
- langflow/alembic/versions/0d60fcbd4e8e_create_vertex_builds_table.py +4 -6
- langflow/alembic/versions/1a110b568907_replace_credential_table_with_variable.py +4 -5
- langflow/alembic/versions/1b8b740a6fa3_remove_fk_constraint_in_message_.py +32 -27
- langflow/alembic/versions/1c79524817ed_add_unique_constraints_per_user_in_.py +4 -5
- langflow/alembic/versions/1d90f8a0efe1_update_description_columns_type.py +4 -5
- langflow/alembic/versions/1eab2c3eb45e_event_error.py +14 -15
- langflow/alembic/versions/1ef9c4f3765d_.py +5 -10
- langflow/alembic/versions/1f4d6df60295_add_default_fields_column.py +4 -5
- langflow/alembic/versions/260dbcc8b680_adds_tables.py +4 -5
- langflow/alembic/versions/29fe8f1f806b_add_missing_index.py +4 -5
- langflow/alembic/versions/2ac71eb9c3ae_adds_credential_table.py +4 -7
- langflow/alembic/versions/3bb0ddf32dfb_add_unique_constraints_per_user_in_flow_.py +4 -5
- langflow/alembic/versions/4e5980a44eaa_fix_date_times_again.py +1 -2
- langflow/alembic/versions/58b28437a398_modify_nullable.py +1 -2
- langflow/alembic/versions/5ace73a7f223_new_remove_table_upgrade_op.py +6 -12
- langflow/alembic/versions/631faacf5da2_add_webhook_columns.py +4 -5
- langflow/alembic/versions/63b9c451fd30_add_icon_and_icon_bg_color_to_flow.py +4 -5
- langflow/alembic/versions/66f72f04a1de_add_mcp_support_with_project_settings_.py +21 -23
- langflow/alembic/versions/67cc006d50bf_add_profile_image_column.py +4 -5
- langflow/alembic/versions/6e7b581b5648_fix_nullable.py +4 -5
- langflow/alembic/versions/7843803a87b5_store_updates.py +4 -6
- langflow/alembic/versions/79e675cb6752_change_datetime_type.py +1 -2
- langflow/alembic/versions/7d2162acc8b2_adds_updated_at_and_folder_cols.py +4 -10
- langflow/alembic/versions/90be8e2ed91e_create_transactions_table.py +4 -6
- langflow/alembic/versions/93e2705fa8d6_add_column_save_path_to_flow.py +7 -9
- langflow/alembic/versions/a72f5cf9c2f9_add_endpoint_name_col.py +4 -5
- langflow/alembic/versions/b2fa308044b5_add_unique_constraints.py +1 -2
- langflow/alembic/versions/bc2f01c40e4a_new_fixes.py +4 -5
- langflow/alembic/versions/c153816fd85f_set_name_and_value_to_not_nullable.py +4 -5
- langflow/alembic/versions/d066bfd22890_add_message_table.py +4 -4
- langflow/alembic/versions/d2d475a1f7c0_add_tags_column_to_flow.py +12 -13
- langflow/alembic/versions/d3dbf656a499_add_gradient_column_in_flow.py +12 -12
- langflow/alembic/versions/d9a6ea21edcd_rename_default_folder.py +7 -10
- langflow/alembic/versions/dd9e0804ebd1_add_v2_file_table.py +8 -7
- langflow/alembic/versions/e3162c1804e6_add_persistent_locked_state.py +10 -10
- langflow/alembic/versions/e3bc869fa272_fix_nullable.py +4 -5
- langflow/alembic/versions/e56d87f8994a_add_optins_column_to_user.py +13 -14
- langflow/alembic/versions/e5a65ecff2cd_nullable_in_vertex_build.py +4 -5
- langflow/alembic/versions/eb5866d51fd2_change_columns_to_be_nullable.py +4 -5
- langflow/alembic/versions/eb5e72293a8e_add_error_and_edit_flags_to_message.py +4 -5
- langflow/alembic/versions/f3b2d1f1002d_add_column_access_type_to_flow.py +19 -15
- langflow/alembic/versions/f5ee9749d1a6_user_id_can_be_null_in_flow.py +4 -6
- langflow/alembic/versions/fd531f8868b1_fix_credential_table.py +5 -8
- langflow/api/build.py +5 -4
- langflow/api/health_check_router.py +1 -1
- langflow/api/limited_background_tasks.py +1 -1
- langflow/api/log_router.py +1 -2
- langflow/api/utils.py +2 -2
- langflow/api/v1/base.py +1 -2
- langflow/api/v1/callback.py +4 -9
- langflow/api/v1/chat.py +6 -7
- langflow/api/v1/endpoints.py +15 -15
- langflow/api/v1/files.py +1 -1
- langflow/api/v1/flows.py +1 -1
- langflow/api/v1/knowledge_bases.py +1 -1
- langflow/api/v1/mcp.py +1 -1
- langflow/api/v1/mcp_projects.py +14 -5
- langflow/api/v1/mcp_utils.py +3 -3
- langflow/api/v1/openai_responses.py +4 -4
- langflow/api/v1/schemas.py +3 -38
- langflow/api/v1/starter_projects.py +61 -3
- langflow/api/v1/store.py +1 -1
- langflow/api/v1/validate.py +3 -3
- langflow/api/v1/voice_mode.py +2 -2
- langflow/api/v2/files.py +1 -1
- langflow/api/v2/mcp.py +2 -2
- langflow/base/__init__.py +11 -0
- langflow/base/agents/__init__.py +3 -0
- langflow/base/data/__init__.py +2 -4
- langflow/base/data/utils.py +2 -197
- langflow/base/embeddings/__init__.py +3 -0
- langflow/base/io/__init__.py +7 -0
- langflow/base/io/chat.py +5 -18
- langflow/base/io/text.py +2 -21
- langflow/base/knowledge_bases/__init__.py +3 -0
- langflow/base/memory/__init__.py +3 -0
- langflow/base/models/__init__.py +2 -2
- langflow/base/models/openai_constants.py +6 -120
- langflow/base/prompts/__init__.py +3 -0
- langflow/base/prompts/api_utils.py +2 -223
- langflow/base/textsplitters/__init__.py +3 -0
- langflow/base/tools/__init__.py +3 -0
- langflow/base/vectorstores/__init__.py +3 -0
- langflow/components/__init__.py +7 -259
- langflow/components/agents.py +6 -0
- langflow/components/anthropic.py +6 -0
- langflow/components/data.py +6 -0
- langflow/components/helpers.py +6 -0
- langflow/components/knowledge_bases/ingestion.py +13 -14
- langflow/components/knowledge_bases/retrieval.py +8 -7
- langflow/components/openai.py +6 -0
- langflow/components/processing/__init__.py +1 -117
- langflow/components/processing/converter.py +3 -149
- langflow/custom/__init__.py +26 -3
- langflow/custom/custom_component/__init__.py +4 -0
- langflow/custom/custom_component/component.py +20 -1738
- langflow/custom/custom_component/component_with_cache.py +1 -8
- langflow/custom/custom_component/custom_component.py +1 -552
- langflow/custom/utils.py +1 -872
- langflow/custom/validate.py +1 -0
- langflow/events/event_manager.py +18 -108
- langflow/field_typing/__init__.py +6 -6
- langflow/field_typing/constants.py +87 -122
- langflow/field_typing/range_spec.py +2 -32
- langflow/frontend/assets/{SlackIcon-Cc7Qnzki.js → SlackIcon-v88osOTA.js} +1 -1
- langflow/frontend/assets/{Wikipedia-7ulMZY46.js → Wikipedia-DD_S2k00.js} +1 -1
- langflow/frontend/assets/{Wolfram-By9PGsHS.js → Wolfram-EO2C5noN.js} +1 -1
- langflow/frontend/assets/{index-DVLIDc2_.js → index-1Gv1mfvk.js} +1 -1
- langflow/frontend/assets/{index-MVW4HTEk.js → index-7v-bzlzf.js} +1 -1
- langflow/frontend/assets/{index-CUzlcce2.js → index-9CbMazbV.js} +1 -1
- langflow/frontend/assets/{index-CU16NJD7.js → index-B8ZHP8g2.js} +1 -1
- langflow/frontend/assets/{index-v8eXbWlM.js → index-B8y2e6vN.js} +1 -1
- langflow/frontend/assets/{index-BX_asvRB.js → index-BBRUGsyr.js} +1 -1
- langflow/frontend/assets/{index-9FL5xjkL.js → index-BGwqQwlh.js} +1 -1
- langflow/frontend/assets/{index-BAn-AzCS.js → index-BIq-k-FG.js} +1 -1
- langflow/frontend/assets/{index-D5c2nNvp.js → index-BSN73YP8.js} +1 -1
- langflow/frontend/assets/{index-DMCerPJM.js → index-BU8R8jRn.js} +1 -1
- langflow/frontend/assets/{index-CvSoff-8.js → index-BV6yx8ey.js} +1 -1
- langflow/frontend/assets/{index-BISPW-f6.js → index-BYIsg-Eh.js} +1 -1
- langflow/frontend/assets/{index-GzOGB_fo.js → index-B_ksDBSQ.js} +1 -1
- langflow/frontend/assets/{index-BIqEYjNT.js → index-Ba1UOZ9A.js} +1 -1
- langflow/frontend/assets/{index-ByxGmq5p.js → index-Ba9tKRQg.js} +1 -1
- langflow/frontend/assets/{index-BLEWsL1U.js → index-Bbfaw8ca.js} +1 -1
- langflow/frontend/assets/{index-C_MhBX6R.js → index-BbuGqvAx.js} +1 -1
- langflow/frontend/assets/{index-RH_I78z_.js → index-BeoXu1YX.js} +1 -1
- langflow/frontend/assets/{index-cYFKmtmg.js → index-BfjZmOnH.js} +1 -1
- langflow/frontend/assets/{index-Bm9i8F4W.js → index-Bjzy_HZB.js} +1 -1
- langflow/frontend/assets/{index-_szO7sta.js → index-BofEkpYB.js} +1 -1
- langflow/frontend/assets/{index-DP1oE6QB.js → index-Bp7Mty2H.js} +1 -1
- langflow/frontend/assets/{index-CeswGUz3.js → index-BqX1H6yK.js} +1 -1
- langflow/frontend/assets/{index-C8pI0lzi.js → index-BqtBAJAN.js} +1 -1
- langflow/frontend/assets/{index-BusCv3bR.js → index-Bsfraj7A.js} +1 -1
- langflow/frontend/assets/{index-BWnKMRFJ.js → index-BtFl7fER.js} +1 -1
- langflow/frontend/assets/{index-DnlVWWU8.js → index-BvX993Sv.js} +1 -1
- langflow/frontend/assets/{index-C676MS3I.js → index-BvgQ2vzM.js} +1 -1
- langflow/frontend/assets/{index-DJ6HD14g.js → index-BwY98u8n.js} +1 -1
- langflow/frontend/assets/{index-C51yNvIL.js → index-C-RIJAOS.js} +1 -1
- langflow/frontend/assets/{index-DiblXWmk.js → index-C1K6A38P.js} +1 -1
- langflow/frontend/assets/{index-Co__gFM1.js → index-C3Vwhx0t.js} +1 -1
- langflow/frontend/assets/{index-Coi86oqP.js → index-C5XUG_gr.js} +1 -1
- langflow/frontend/assets/{index-jwzN3Jd_.js → index-C6ouLG9o.js} +1 -1
- langflow/frontend/assets/{index-CQQ-4XMS.js → index-C7ZJ_Z6f.js} +1 -1
- langflow/frontend/assets/{index-Bl7RpmrB.js → index-CCOGIwGY.js} +1 -1
- langflow/frontend/assets/{index-CVkIdc6y.js → index-CCcye2rt.js} +1 -1
- langflow/frontend/assets/{index-bMhyLtgS.js → index-CFR4yJQB.js} +1 -1
- langflow/frontend/assets/{index-aAgSKWb3.js → index-CIGmPP0H.js} +1 -1
- langflow/frontend/assets/{index-BGt6jQ4x.js → index-CJmMEa6d.js} +1 -1
- langflow/frontend/assets/{index-DX7JcSMz.js → index-CJxD7lyU.js} +1 -1
- langflow/frontend/assets/{index-BZ-A4K98.js → index-CL_vu6ut.js} +1 -1
- langflow/frontend/assets/{index-BMpKFGhI.js → index-COf3UnBn.js} +1 -1
- langflow/frontend/assets/{index-xN8ogFdo.js → index-CV9650h_.js} +1 -1
- langflow/frontend/assets/{index-OsUvqIUr.js → index-CVDzych0.js} +1 -1
- langflow/frontend/assets/{index-BH7AyHxp.js → index-CWIHsC4D.js} +1 -1
- langflow/frontend/assets/{index-mjwtJmkP.js → index-CXCnFZ0L.js} +1 -1
- langflow/frontend/assets/{index-3jlSQi5Y.js → index-Ca_Pw_Dn.js} +1 -1
- langflow/frontend/assets/{index-D-SnFlhU.js → index-Cbb3bX9e.js} +1 -1
- langflow/frontend/assets/{index--e0oQqZh.js → index-CcJtOz-Z.js} +1 -1
- langflow/frontend/assets/{index-S-sc0Cm9.js → index-CfTbTHEv.js} +1 -1
- langflow/frontend/assets/{index-Deu8rlaZ.js → index-ChoxDAgX.js} +1 -1
- langflow/frontend/assets/{index-lnF9Eqr2.js → index-Cn4gw8aE.js} +1 -1
- langflow/frontend/assets/{index-C_NwzK6j.js → index-CnpLg4zX.js} +1 -1
- langflow/frontend/assets/{index-DznH7Jbq.js → index-Cpao2omG.js} +1 -1
- langflow/frontend/assets/{index-DpWrk8mA.js → index-CqoxM01j.js} +1 -1
- langflow/frontend/assets/{index-Bw-TIIC6.js → index-CrHf2Ic1.js} +1 -1
- langflow/frontend/assets/{index-DmYLDQag.js → index-CrV0uIjp.js} +1 -1
- langflow/frontend/assets/{index-Dp7ZQyL3.js → index-CssADaak.js} +1 -1
- langflow/frontend/assets/{index-CNh0rwur.js → index-CtJdNLy9.js} +1 -1
- langflow/frontend/assets/{index-Ca1b7Iag.js → index-CyeWD2dh.js} +1 -1
- langflow/frontend/assets/{index-DcApTyZ7.js → index-D1xzD7uc.js} +1 -1
- langflow/frontend/assets/{index-B3GvPjhD.js → index-D6MuXC4L.js} +1 -1
- langflow/frontend/assets/{index-Cw0UComa.js → index-D8w9zvIF.js} +1 -1
- langflow/frontend/assets/{index-C-2MRYoJ.js → index-D98Gn0A6.js} +1 -1
- langflow/frontend/assets/{index-aWnZIwHd.js → index-DBhjpWkf.js} +1 -1
- langflow/frontend/assets/{index-nw3WF9lY.js → index-DCCRJzcY.js} +1 -1
- langflow/frontend/assets/{index-RjeC0kaX.js → index-DCTRSkEW.js} +1 -1
- langflow/frontend/assets/{index-B_kBTgxV.js → index-DCUfitVj.js} +1 -1
- langflow/frontend/assets/{index-ChsGhZn3.js → index-DDdz-Xcl.js} +1 -1
- langflow/frontend/assets/{index-7yAHPRxv.js → index-DGdMwZjG.js} +1 -1
- langflow/frontend/assets/{index-DjQElpEg.js → index-DGtl2vMw.js} +1 -1
- langflow/frontend/assets/{index-BCXhKCOK.js → index-DHVdkrni.js} +1 -1
- langflow/frontend/assets/{index-S8uJXTOq.js → index-DJBWwjgl.js} +1 -1
- langflow/frontend/assets/{index-qiVTWUuf.js → index-DMAkJ_qX.js} +1 -1
- langflow/frontend/assets/{index-D-WStJI6.js → index-DMEvEQI5.js} +1 -1
- langflow/frontend/assets/{index-BhqVw9WQ.js → index-DNGRoOsp.js} +1 -1
- langflow/frontend/assets/{index-Cu7vC48Y.js → index-DNT_TUTa.js} +1 -1
- langflow/frontend/assets/{index-Bhcv5M0n.js → index-DQKOH_9K.js} +1 -1
- langflow/frontend/assets/{index-CLcaktde.js → index-DQhqqtqQ.js} +1 -1
- langflow/frontend/assets/{index-DZVgPCio.js → index-DRM7KKnG.js} +1 -1
- langflow/frontend/assets/{index-uybez8MR.js → index-DSCtl3a5.js} +1 -1
- langflow/frontend/assets/{index-CJ5A6STv.js → index-DSLNlm0Z.js} +1 -1
- langflow/frontend/assets/{index-Drg8me2a.js → index-DT-PspE-.js} +1 -1
- langflow/frontend/assets/{index-DsEZjOcp.js → index-DTpbH-p8.js} +1 -1
- langflow/frontend/assets/{index-DrXXKzpD.js → index-DWV6MsIq.js} +1 -1
- langflow/frontend/assets/{index-4JIEdyIM.js → index-DWeL4US_.js} +1 -1
- langflow/frontend/assets/{index-BlDsBQ_1.js → index-DYKZHhpU.js} +1 -1
- langflow/frontend/assets/{index-DFY8YFbC.js → index-DZyQHiMR.js} +1 -1
- langflow/frontend/assets/{index-CKPZpkQk.js → index-Dc6qVuSa.js} +1 -1
- langflow/frontend/assets/{index-yyAaYjLR.js → index-DkYuicnC.js} +1 -1
- langflow/frontend/assets/{index-DmVt5Jlx.js → index-Dlj_2mMs.js} +1 -1
- langflow/frontend/assets/{index-BvRIG6P5.js → index-DmGJUrEp.js} +1 -1
- langflow/frontend/assets/{index-BWFIrwW1.js → index-Dn6hpCAZ.js} +1 -1
- langflow/frontend/assets/{index-Cb5G9Ifd.js → index-DrJU8Fgb.js} +1 -1
- langflow/frontend/assets/{index-COoTCxvs.js → index-DsWfdCzp.js} +1 -1
- langflow/frontend/assets/{index-ZjeocHyu.js → index-DvCPWs2_.js} +1 -1
- langflow/frontend/assets/{index-B5LHnuQR.js → index-DvPVq7OP.js} +1 -1
- langflow/frontend/assets/{index-BnCnYnao.js → index-Dw71ufW4.js} +1 -1
- langflow/frontend/assets/{index-AALDfCyt.js → index-DxkJactf.js} +1 -1
- langflow/frontend/assets/{index-k9jP5chN.js → index-Dz2GTphU.js} +1 -1
- langflow/frontend/assets/{index-BdjfHsrf.js → index-Fvd524_c.js} +1 -1
- langflow/frontend/assets/{index-AKVkmT4S.js → index-GAQ0Mk2M.js} +1 -1
- langflow/frontend/assets/{index-BZSa2qz7.js → index-Hm5-4ItD.js} +1 -1
- langflow/frontend/assets/{index-DbfS_UH-.js → index-IT67FzsK.js} +1 -1
- langflow/frontend/assets/{index-BLXN681C.js → index-ItYiij1i.js} +1 -1
- langflow/frontend/assets/{index-CiklyQU3.js → index-IuR_FEdB.js} +1 -1
- langflow/frontend/assets/{index-xV6ystWy.js → index-Jj60FQkv.js} +1 -1
- langflow/frontend/assets/{index-C_157Mb-.js → index-LlvshmVz.js} +1 -1
- langflow/frontend/assets/{index-CDphUsa3.js → index-LwKh3I_W.js} +1 -1
- langflow/frontend/assets/{index-BrDz-PxE.js → index-N-xxmKKH.js} +1 -1
- langflow/frontend/assets/{index-BsdLyYMY.js → index-RwpaHIAH.js} +1 -1
- langflow/frontend/assets/{index-Cu2Xr6_j.js → index-TVvsp-xh.js} +1 -1
- langflow/frontend/assets/{index-CPiM2oyj.js → index-TdE2u9zP.js} +1 -1
- langflow/frontend/assets/{index-DOj_QWqG.js → index-_x-NkYeW.js} +1 -1
- langflow/frontend/assets/{index-YJsAl7vm.js → index-a-YclEbW.js} +1 -1
- langflow/frontend/assets/{index-5-CSw2-z.js → index-e9MFKUCo.js} +1 -1
- langflow/frontend/assets/{index-BSwBVwyF.js → index-krPr8f2F.js} +1 -1
- langflow/frontend/assets/{index-Df6psZEj.js → index-kveiUWuL.js} +1 -1
- langflow/frontend/assets/{index-CF4_Og1m.js → index-lE3oSjJi.js} +1 -1
- langflow/frontend/assets/{index-C6nzdeYx.js → index-lM3UYg7F.js} +1 -1
- langflow/frontend/assets/{index-C-wnbBBY.js → index-nsRk3qgA.js} +1 -1
- langflow/frontend/assets/{index-D234yKNJ.js → index-pBO0SZLD.js} +4 -4
- langflow/frontend/assets/{index-BMvp94tO.js → index-pbZHsbuE.js} +1 -1
- langflow/frontend/assets/{index-hg2y9OAt.js → index-sfX3aWyp.js} +1 -1
- langflow/frontend/assets/{index-DTCrijba.js → index-xQz-VJ0-.js} +1 -1
- langflow/frontend/assets/{index-SB4rw8D5.js → index-yfcsaHS6.js} +1 -1
- langflow/frontend/assets/{index-C-bjC2sz.js → index-zcGjo9fx.js} +1 -1
- langflow/frontend/assets/lazyIconImports-BjqDmNYG.js +2 -0
- langflow/frontend/assets/{use-post-add-user-JUeLDErC.js → use-post-add-user-w3vpKSOB.js} +1 -1
- langflow/frontend/index.html +1 -1
- langflow/graph/__init__.py +4 -4
- langflow/helpers/data.py +2 -2
- langflow/helpers/flow.py +9 -7
- langflow/helpers/user.py +2 -2
- langflow/initial_setup/setup.py +9 -9
- langflow/initial_setup/starter_projects/Basic Prompt Chaining.json +119 -41
- langflow/initial_setup/starter_projects/Basic Prompting.json +45 -19
- langflow/initial_setup/starter_projects/Blog Writer.json +53 -21
- langflow/initial_setup/starter_projects/Custom Component Generator.json +121 -97
- langflow/initial_setup/starter_projects/Document Q&A.json +46 -18
- langflow/initial_setup/starter_projects/Financial Report Parser.json +49 -17
- langflow/initial_setup/starter_projects/Hybrid Search RAG.json +89 -50
- langflow/initial_setup/starter_projects/Image Sentiment Analysis.json +86 -22
- langflow/initial_setup/starter_projects/Instagram Copywriter.json +210 -57
- langflow/initial_setup/starter_projects/Invoice Summarizer.json +132 -35
- langflow/initial_setup/starter_projects/Knowledge Ingestion.json +8 -8
- langflow/initial_setup/starter_projects/Knowledge Retrieval.json +8 -8
- langflow/initial_setup/starter_projects/Market Research.json +174 -48
- langflow/initial_setup/starter_projects/Meeting Summary.json +102 -38
- langflow/initial_setup/starter_projects/Memory Chatbot.json +49 -21
- langflow/initial_setup/starter_projects/News Aggregator.json +140 -39
- langflow/initial_setup/starter_projects/Nvidia Remix.json +153 -181
- langflow/initial_setup/starter_projects/Pok/303/251dex Agent.json" +132 -35
- langflow/initial_setup/starter_projects/Portfolio Website Code Generator.json +106 -43
- langflow/initial_setup/starter_projects/Price Deal Finder.json +136 -39
- langflow/initial_setup/starter_projects/Research Agent.json +206 -53
- langflow/initial_setup/starter_projects/Research Translation Loop.json +66 -34
- langflow/initial_setup/starter_projects/SEO Keyword Generator.json +41 -15
- langflow/initial_setup/starter_projects/SaaS Pricing.json +128 -31
- langflow/initial_setup/starter_projects/Search agent.json +132 -35
- langflow/initial_setup/starter_projects/Sequential Tasks Agents.json +422 -98
- langflow/initial_setup/starter_projects/Simple Agent.json +150 -42
- langflow/initial_setup/starter_projects/Social Media Agent.json +150 -42
- langflow/initial_setup/starter_projects/Text Sentiment Analysis.json +120 -24
- langflow/initial_setup/starter_projects/Travel Planning Agents.json +418 -94
- langflow/initial_setup/starter_projects/Twitter Thread Generator.json +69 -37
- langflow/initial_setup/starter_projects/Vector Store RAG.json +66 -38
- langflow/initial_setup/starter_projects/Youtube Analysis.json +191 -51
- langflow/initial_setup/starter_projects/basic_prompting.py +4 -4
- langflow/initial_setup/starter_projects/blog_writer.py +5 -5
- langflow/initial_setup/starter_projects/complex_agent.py +8 -8
- langflow/initial_setup/starter_projects/document_qa.py +5 -5
- langflow/initial_setup/starter_projects/hierarchical_tasks_agent.py +8 -8
- langflow/initial_setup/starter_projects/memory_chatbot.py +6 -6
- langflow/initial_setup/starter_projects/sequential_tasks_agent.py +7 -7
- langflow/initial_setup/starter_projects/vector_store_rag.py +8 -8
- langflow/inputs/__init__.py +3 -2
- langflow/inputs/constants.py +3 -2
- langflow/inputs/input_mixin.py +49 -310
- langflow/inputs/inputs.py +72 -703
- langflow/inputs/validators.py +2 -18
- langflow/interface/__init__.py +4 -0
- langflow/interface/components.py +3 -491
- langflow/interface/initialize/loading.py +7 -6
- langflow/interface/listing.py +3 -25
- langflow/interface/run.py +1 -1
- langflow/interface/utils.py +3 -111
- langflow/io/__init__.py +2 -2
- langflow/io/schema.py +11 -302
- langflow/load/__init__.py +4 -2
- langflow/load/utils.py +2 -96
- langflow/logging/__init__.py +2 -1
- langflow/logging/setup.py +1 -1
- langflow/main.py +8 -5
- langflow/memory.py +12 -6
- langflow/middleware.py +1 -1
- langflow/processing/process.py +7 -7
- langflow/schema/__init__.py +22 -5
- langflow/schema/artifact.py +1 -1
- langflow/schema/data.py +5 -303
- langflow/schema/dataframe.py +2 -205
- langflow/schema/graph.py +4 -45
- langflow/schema/image.py +2 -67
- langflow/schema/message.py +6 -470
- langflow/schema/playground_events.py +5 -6
- langflow/schema/schema.py +24 -117
- langflow/serialization/constants.py +3 -2
- langflow/serialization/serialization.py +1 -1
- langflow/server.py +1 -2
- langflow/services/__init__.py +1 -2
- langflow/services/auth/mcp_encryption.py +1 -1
- langflow/services/auth/service.py +1 -1
- langflow/services/auth/utils.py +5 -5
- langflow/services/cache/disk.py +2 -2
- langflow/services/cache/factory.py +2 -2
- langflow/services/cache/service.py +2 -2
- langflow/services/cache/utils.py +0 -11
- langflow/services/database/factory.py +1 -1
- langflow/services/database/models/flow/model.py +1 -1
- langflow/services/database/models/message/crud.py +2 -1
- langflow/services/database/models/transactions/crud.py +1 -1
- langflow/services/database/models/user/crud.py +1 -1
- langflow/services/database/service.py +2 -2
- langflow/services/database/utils.py +1 -2
- langflow/services/deps.py +12 -17
- langflow/services/enhanced_manager.py +71 -0
- langflow/services/factory.py +14 -7
- langflow/services/flow/flow_runner.py +4 -4
- langflow/services/job_queue/service.py +2 -1
- langflow/services/manager.py +14 -130
- langflow/services/schema.py +0 -1
- langflow/services/session/service.py +3 -2
- langflow/services/settings/__init__.py +0 -3
- langflow/services/settings/base.py +16 -549
- langflow/services/settings/factory.py +2 -21
- langflow/services/settings/feature_flags.py +2 -11
- langflow/services/settings/service.py +2 -31
- langflow/services/shared_component_cache/factory.py +1 -1
- langflow/services/socket/service.py +1 -1
- langflow/services/socket/utils.py +1 -8
- langflow/services/state/factory.py +1 -1
- langflow/services/state/service.py +3 -2
- langflow/services/storage/factory.py +2 -2
- langflow/services/storage/local.py +1 -2
- langflow/services/storage/s3.py +1 -2
- langflow/services/storage/service.py +2 -1
- langflow/services/store/factory.py +1 -1
- langflow/services/store/service.py +2 -2
- langflow/services/store/utils.py +1 -2
- langflow/services/task/service.py +2 -1
- langflow/services/task/temp_flow_cleanup.py +1 -1
- langflow/services/telemetry/factory.py +1 -1
- langflow/services/telemetry/service.py +2 -3
- langflow/services/tracing/arize_phoenix.py +3 -3
- langflow/services/tracing/base.py +1 -1
- langflow/services/tracing/factory.py +1 -1
- langflow/services/tracing/langfuse.py +2 -2
- langflow/services/tracing/langsmith.py +2 -2
- langflow/services/tracing/langwatch.py +4 -4
- langflow/services/tracing/opik.py +2 -2
- langflow/services/tracing/service.py +17 -11
- langflow/services/tracing/traceloop.py +2 -2
- langflow/services/tracing/utils.py +1 -1
- langflow/services/utils.py +54 -9
- langflow/services/variable/factory.py +1 -1
- langflow/services/variable/kubernetes.py +2 -3
- langflow/services/variable/kubernetes_secrets.py +1 -2
- langflow/services/variable/service.py +2 -3
- langflow/template/__init__.py +2 -9
- langflow/template/field/__init__.py +3 -0
- langflow/template/field/base.py +2 -256
- langflow/template/frontend_node.py +3 -0
- langflow/template/utils.py +2 -216
- langflow/utils/constants.py +28 -204
- langflow/utils/lazy_load.py +3 -14
- langflow/utils/schemas.py +2 -3
- langflow/utils/template_validation.py +2 -2
- langflow/utils/util.py +59 -479
- langflow/utils/validate.py +2 -488
- langflow/utils/voice_utils.py +1 -2
- langflow/worker.py +1 -1
- {langflow_base_nightly-0.5.1.dev2.dist-info → langflow_base_nightly-0.5.1.dev4.dist-info}/METADATA +2 -1
- langflow_base_nightly-0.5.1.dev4.dist-info/RECORD +633 -0
- langflow/base/agents/agent.py +0 -267
- langflow/base/agents/callback.py +0 -130
- langflow/base/agents/context.py +0 -109
- langflow/base/agents/crewai/__init__.py +0 -0
- langflow/base/agents/crewai/crew.py +0 -231
- langflow/base/agents/crewai/tasks.py +0 -12
- langflow/base/agents/default_prompts.py +0 -23
- langflow/base/agents/errors.py +0 -15
- langflow/base/agents/events.py +0 -346
- langflow/base/agents/utils.py +0 -205
- langflow/base/astra_assistants/__init__.py +0 -0
- langflow/base/astra_assistants/util.py +0 -171
- langflow/base/chains/__init__.py +0 -0
- langflow/base/chains/model.py +0 -19
- langflow/base/composio/__init__.py +0 -0
- langflow/base/composio/composio_base.py +0 -1297
- langflow/base/compressors/__init__.py +0 -0
- langflow/base/compressors/model.py +0 -60
- langflow/base/constants.py +0 -46
- langflow/base/curl/__init__.py +0 -0
- langflow/base/curl/parse.py +0 -188
- langflow/base/data/base_file.py +0 -685
- langflow/base/data/docling_utils.py +0 -245
- langflow/base/document_transformers/__init__.py +0 -0
- langflow/base/document_transformers/model.py +0 -43
- langflow/base/embeddings/aiml_embeddings.py +0 -62
- langflow/base/embeddings/model.py +0 -26
- langflow/base/flow_processing/__init__.py +0 -0
- langflow/base/flow_processing/utils.py +0 -86
- langflow/base/huggingface/__init__.py +0 -0
- langflow/base/huggingface/model_bridge.py +0 -133
- langflow/base/langchain_utilities/__init__.py +0 -0
- langflow/base/langchain_utilities/model.py +0 -35
- langflow/base/langchain_utilities/spider_constants.py +0 -1
- langflow/base/langwatch/__init__.py +0 -0
- langflow/base/langwatch/utils.py +0 -18
- langflow/base/mcp/__init__.py +0 -0
- langflow/base/mcp/constants.py +0 -2
- langflow/base/mcp/util.py +0 -1524
- langflow/base/memory/memory.py +0 -49
- langflow/base/memory/model.py +0 -38
- langflow/base/models/aiml_constants.py +0 -51
- langflow/base/models/anthropic_constants.py +0 -47
- langflow/base/models/aws_constants.py +0 -151
- langflow/base/models/chat_result.py +0 -76
- langflow/base/models/google_generative_ai_constants.py +0 -70
- langflow/base/models/groq_constants.py +0 -134
- langflow/base/models/model.py +0 -375
- langflow/base/models/model_input_constants.py +0 -299
- langflow/base/models/model_metadata.py +0 -41
- langflow/base/models/model_utils.py +0 -8
- langflow/base/models/novita_constants.py +0 -35
- langflow/base/models/ollama_constants.py +0 -49
- langflow/base/models/sambanova_constants.py +0 -18
- langflow/base/processing/__init__.py +0 -0
- langflow/base/prompts/utils.py +0 -61
- langflow/base/textsplitters/model.py +0 -28
- langflow/base/tools/base.py +0 -26
- langflow/base/tools/component_tool.py +0 -324
- langflow/base/tools/constants.py +0 -49
- langflow/base/tools/flow_tool.py +0 -131
- langflow/base/tools/run_flow.py +0 -227
- langflow/base/vectorstores/model.py +0 -193
- langflow/base/vectorstores/utils.py +0 -22
- langflow/base/vectorstores/vector_store_connection_decorator.py +0 -52
- langflow/components/FAISS/__init__.py +0 -34
- langflow/components/FAISS/faiss.py +0 -111
- langflow/components/Notion/__init__.py +0 -19
- langflow/components/Notion/add_content_to_page.py +0 -269
- langflow/components/Notion/create_page.py +0 -94
- langflow/components/Notion/list_database_properties.py +0 -68
- langflow/components/Notion/list_pages.py +0 -122
- langflow/components/Notion/list_users.py +0 -77
- langflow/components/Notion/page_content_viewer.py +0 -93
- langflow/components/Notion/search.py +0 -111
- langflow/components/Notion/update_page_property.py +0 -114
- langflow/components/_importing.py +0 -37
- langflow/components/agentql/__init__.py +0 -3
- langflow/components/agentql/agentql_api.py +0 -151
- langflow/components/agents/__init__.py +0 -4
- langflow/components/agents/agent.py +0 -554
- langflow/components/agents/mcp_component.py +0 -501
- langflow/components/aiml/__init__.py +0 -37
- langflow/components/aiml/aiml.py +0 -112
- langflow/components/aiml/aiml_embeddings.py +0 -37
- langflow/components/amazon/__init__.py +0 -36
- langflow/components/amazon/amazon_bedrock_embedding.py +0 -109
- langflow/components/amazon/amazon_bedrock_model.py +0 -124
- langflow/components/amazon/s3_bucket_uploader.py +0 -211
- langflow/components/anthropic/__init__.py +0 -34
- langflow/components/anthropic/anthropic.py +0 -187
- langflow/components/apify/__init__.py +0 -5
- langflow/components/apify/apify_actor.py +0 -325
- langflow/components/arxiv/__init__.py +0 -3
- langflow/components/arxiv/arxiv.py +0 -163
- langflow/components/assemblyai/__init__.py +0 -46
- langflow/components/assemblyai/assemblyai_get_subtitles.py +0 -83
- langflow/components/assemblyai/assemblyai_lemur.py +0 -183
- langflow/components/assemblyai/assemblyai_list_transcripts.py +0 -95
- langflow/components/assemblyai/assemblyai_poll_transcript.py +0 -72
- langflow/components/assemblyai/assemblyai_start_transcript.py +0 -188
- langflow/components/azure/__init__.py +0 -37
- langflow/components/azure/azure_openai.py +0 -95
- langflow/components/azure/azure_openai_embeddings.py +0 -83
- langflow/components/baidu/__init__.py +0 -32
- langflow/components/baidu/baidu_qianfan_chat.py +0 -113
- langflow/components/bing/__init__.py +0 -3
- langflow/components/bing/bing_search_api.py +0 -61
- langflow/components/cassandra/__init__.py +0 -40
- langflow/components/cassandra/cassandra.py +0 -264
- langflow/components/cassandra/cassandra_chat.py +0 -92
- langflow/components/cassandra/cassandra_graph.py +0 -238
- langflow/components/chains/__init__.py +0 -0
- langflow/components/chroma/__init__.py +0 -34
- langflow/components/chroma/chroma.py +0 -167
- langflow/components/cleanlab/__init__.py +0 -40
- langflow/components/cleanlab/cleanlab_evaluator.py +0 -157
- langflow/components/cleanlab/cleanlab_rag_evaluator.py +0 -254
- langflow/components/cleanlab/cleanlab_remediator.py +0 -131
- langflow/components/clickhouse/__init__.py +0 -34
- langflow/components/clickhouse/clickhouse.py +0 -135
- langflow/components/cloudflare/__init__.py +0 -32
- langflow/components/cloudflare/cloudflare.py +0 -81
- langflow/components/cohere/__init__.py +0 -40
- langflow/components/cohere/cohere_embeddings.py +0 -81
- langflow/components/cohere/cohere_models.py +0 -46
- langflow/components/cohere/cohere_rerank.py +0 -51
- langflow/components/composio/__init__.py +0 -73
- langflow/components/composio/composio_api.py +0 -268
- langflow/components/composio/dropbox_compnent.py +0 -11
- langflow/components/composio/github_composio.py +0 -11
- langflow/components/composio/gmail_composio.py +0 -38
- langflow/components/composio/googlecalendar_composio.py +0 -11
- langflow/components/composio/googlemeet_composio.py +0 -11
- langflow/components/composio/googletasks_composio.py +0 -8
- langflow/components/composio/linear_composio.py +0 -11
- langflow/components/composio/outlook_composio.py +0 -11
- langflow/components/composio/reddit_composio.py +0 -11
- langflow/components/composio/slack_composio.py +0 -11
- langflow/components/composio/slackbot_composio.py +0 -11
- langflow/components/composio/supabase_composio.py +0 -11
- langflow/components/composio/todoist_composio.py +0 -11
- langflow/components/composio/youtube_composio.py +0 -11
- langflow/components/confluence/__init__.py +0 -3
- langflow/components/confluence/confluence.py +0 -84
- langflow/components/couchbase/__init__.py +0 -34
- langflow/components/couchbase/couchbase.py +0 -102
- langflow/components/crewai/__init__.py +0 -49
- langflow/components/crewai/crewai.py +0 -107
- langflow/components/crewai/hierarchical_crew.py +0 -46
- langflow/components/crewai/hierarchical_task.py +0 -44
- langflow/components/crewai/sequential_crew.py +0 -52
- langflow/components/crewai/sequential_task.py +0 -73
- langflow/components/crewai/sequential_task_agent.py +0 -143
- langflow/components/custom_component/__init__.py +0 -34
- langflow/components/custom_component/custom_component.py +0 -31
- langflow/components/data/__init__.py +0 -25
- langflow/components/data/api_request.py +0 -545
- langflow/components/data/csv_to_data.py +0 -95
- langflow/components/data/directory.py +0 -113
- langflow/components/data/file.py +0 -586
- langflow/components/data/json_to_data.py +0 -98
- langflow/components/data/news_search.py +0 -164
- langflow/components/data/rss.py +0 -69
- langflow/components/data/sql_executor.py +0 -99
- langflow/components/data/url.py +0 -299
- langflow/components/data/web_search.py +0 -112
- langflow/components/data/webhook.py +0 -56
- langflow/components/datastax/__init__.py +0 -70
- langflow/components/datastax/astra_assistant_manager.py +0 -306
- langflow/components/datastax/astra_db.py +0 -69
- langflow/components/datastax/astra_vectorize.py +0 -124
- langflow/components/datastax/astradb_cql.py +0 -314
- langflow/components/datastax/astradb_graph.py +0 -319
- langflow/components/datastax/astradb_tool.py +0 -414
- langflow/components/datastax/astradb_vectorstore.py +0 -1285
- langflow/components/datastax/create_assistant.py +0 -58
- langflow/components/datastax/create_thread.py +0 -32
- langflow/components/datastax/dotenv.py +0 -35
- langflow/components/datastax/get_assistant.py +0 -37
- langflow/components/datastax/getenvvar.py +0 -30
- langflow/components/datastax/graph_rag.py +0 -141
- langflow/components/datastax/hcd.py +0 -314
- langflow/components/datastax/list_assistants.py +0 -25
- langflow/components/datastax/run.py +0 -89
- langflow/components/deactivated/__init__.py +0 -19
- langflow/components/deactivated/amazon_kendra.py +0 -66
- langflow/components/deactivated/chat_litellm_model.py +0 -158
- langflow/components/deactivated/code_block_extractor.py +0 -26
- langflow/components/deactivated/documents_to_data.py +0 -22
- langflow/components/deactivated/embed.py +0 -16
- langflow/components/deactivated/extract_key_from_data.py +0 -46
- langflow/components/deactivated/json_document_builder.py +0 -59
- langflow/components/deactivated/list_flows.py +0 -20
- langflow/components/deactivated/mcp_sse.py +0 -61
- langflow/components/deactivated/mcp_stdio.py +0 -62
- langflow/components/deactivated/merge_data.py +0 -93
- langflow/components/deactivated/message.py +0 -37
- langflow/components/deactivated/metal.py +0 -54
- langflow/components/deactivated/multi_query.py +0 -59
- langflow/components/deactivated/retriever.py +0 -43
- langflow/components/deactivated/selective_passthrough.py +0 -77
- langflow/components/deactivated/should_run_next.py +0 -40
- langflow/components/deactivated/split_text.py +0 -63
- langflow/components/deactivated/store_message.py +0 -24
- langflow/components/deactivated/sub_flow.py +0 -124
- langflow/components/deactivated/vectara_self_query.py +0 -76
- langflow/components/deactivated/vector_store.py +0 -24
- langflow/components/deepseek/__init__.py +0 -34
- langflow/components/deepseek/deepseek.py +0 -136
- langflow/components/docling/__init__.py +0 -43
- langflow/components/docling/chunk_docling_document.py +0 -186
- langflow/components/docling/docling_inline.py +0 -235
- langflow/components/docling/docling_remote.py +0 -193
- langflow/components/docling/export_docling_document.py +0 -117
- langflow/components/documentloaders/__init__.py +0 -0
- langflow/components/duckduckgo/__init__.py +0 -3
- langflow/components/duckduckgo/duck_duck_go_search_run.py +0 -92
- langflow/components/elastic/__init__.py +0 -37
- langflow/components/elastic/elasticsearch.py +0 -267
- langflow/components/elastic/opensearch.py +0 -243
- langflow/components/embeddings/__init__.py +0 -37
- langflow/components/embeddings/similarity.py +0 -76
- langflow/components/embeddings/text_embedder.py +0 -64
- langflow/components/exa/__init__.py +0 -3
- langflow/components/exa/exa_search.py +0 -68
- langflow/components/firecrawl/__init__.py +0 -43
- langflow/components/firecrawl/firecrawl_crawl_api.py +0 -88
- langflow/components/firecrawl/firecrawl_extract_api.py +0 -136
- langflow/components/firecrawl/firecrawl_map_api.py +0 -89
- langflow/components/firecrawl/firecrawl_scrape_api.py +0 -73
- langflow/components/git/__init__.py +0 -4
- langflow/components/git/git.py +0 -262
- langflow/components/git/gitextractor.py +0 -196
- langflow/components/glean/__init__.py +0 -3
- langflow/components/glean/glean_search_api.py +0 -173
- langflow/components/google/__init__.py +0 -17
- langflow/components/google/gmail.py +0 -192
- langflow/components/google/google_bq_sql_executor.py +0 -157
- langflow/components/google/google_drive.py +0 -92
- langflow/components/google/google_drive_search.py +0 -152
- langflow/components/google/google_generative_ai.py +0 -147
- langflow/components/google/google_generative_ai_embeddings.py +0 -141
- langflow/components/google/google_oauth_token.py +0 -89
- langflow/components/google/google_search_api_core.py +0 -68
- langflow/components/google/google_serper_api_core.py +0 -74
- langflow/components/groq/__init__.py +0 -34
- langflow/components/groq/groq.py +0 -140
- langflow/components/helpers/__init__.py +0 -52
- langflow/components/helpers/calculator_core.py +0 -89
- langflow/components/helpers/create_list.py +0 -40
- langflow/components/helpers/current_date.py +0 -42
- langflow/components/helpers/id_generator.py +0 -42
- langflow/components/helpers/memory.py +0 -251
- langflow/components/helpers/output_parser.py +0 -45
- langflow/components/helpers/store_message.py +0 -90
- langflow/components/homeassistant/__init__.py +0 -7
- langflow/components/homeassistant/home_assistant_control.py +0 -152
- langflow/components/homeassistant/list_home_assistant_states.py +0 -137
- langflow/components/huggingface/__init__.py +0 -37
- langflow/components/huggingface/huggingface.py +0 -197
- langflow/components/huggingface/huggingface_inference_api.py +0 -106
- langflow/components/ibm/__init__.py +0 -34
- langflow/components/ibm/watsonx.py +0 -203
- langflow/components/ibm/watsonx_embeddings.py +0 -135
- langflow/components/icosacomputing/__init__.py +0 -5
- langflow/components/icosacomputing/combinatorial_reasoner.py +0 -84
- langflow/components/input_output/__init__.py +0 -38
- langflow/components/input_output/chat.py +0 -120
- langflow/components/input_output/chat_output.py +0 -200
- langflow/components/input_output/text.py +0 -27
- langflow/components/input_output/text_output.py +0 -29
- langflow/components/jigsawstack/__init__.py +0 -23
- langflow/components/jigsawstack/ai_scrape.py +0 -126
- langflow/components/jigsawstack/ai_web_search.py +0 -136
- langflow/components/jigsawstack/file_read.py +0 -115
- langflow/components/jigsawstack/file_upload.py +0 -94
- langflow/components/jigsawstack/image_generation.py +0 -205
- langflow/components/jigsawstack/nsfw.py +0 -60
- langflow/components/jigsawstack/object_detection.py +0 -124
- langflow/components/jigsawstack/sentiment.py +0 -112
- langflow/components/jigsawstack/text_to_sql.py +0 -90
- langflow/components/jigsawstack/text_translate.py +0 -77
- langflow/components/jigsawstack/vocr.py +0 -107
- langflow/components/langchain_utilities/__init__.py +0 -109
- langflow/components/langchain_utilities/character.py +0 -53
- langflow/components/langchain_utilities/conversation.py +0 -52
- langflow/components/langchain_utilities/csv_agent.py +0 -107
- langflow/components/langchain_utilities/fake_embeddings.py +0 -26
- langflow/components/langchain_utilities/html_link_extractor.py +0 -35
- langflow/components/langchain_utilities/json_agent.py +0 -45
- langflow/components/langchain_utilities/langchain_hub.py +0 -126
- langflow/components/langchain_utilities/language_recursive.py +0 -49
- langflow/components/langchain_utilities/language_semantic.py +0 -138
- langflow/components/langchain_utilities/llm_checker.py +0 -39
- langflow/components/langchain_utilities/llm_math.py +0 -42
- langflow/components/langchain_utilities/natural_language.py +0 -61
- langflow/components/langchain_utilities/openai_tools.py +0 -53
- langflow/components/langchain_utilities/openapi.py +0 -48
- langflow/components/langchain_utilities/recursive_character.py +0 -60
- langflow/components/langchain_utilities/retrieval_qa.py +0 -83
- langflow/components/langchain_utilities/runnable_executor.py +0 -137
- langflow/components/langchain_utilities/self_query.py +0 -80
- langflow/components/langchain_utilities/spider.py +0 -142
- langflow/components/langchain_utilities/sql.py +0 -40
- langflow/components/langchain_utilities/sql_database.py +0 -35
- langflow/components/langchain_utilities/sql_generator.py +0 -78
- langflow/components/langchain_utilities/tool_calling.py +0 -59
- langflow/components/langchain_utilities/vector_store_info.py +0 -49
- langflow/components/langchain_utilities/vector_store_router.py +0 -33
- langflow/components/langchain_utilities/xml_agent.py +0 -71
- langflow/components/langwatch/__init__.py +0 -3
- langflow/components/langwatch/langwatch.py +0 -278
- langflow/components/link_extractors/__init__.py +0 -0
- langflow/components/lmstudio/__init__.py +0 -34
- langflow/components/lmstudio/lmstudioembeddings.py +0 -89
- langflow/components/lmstudio/lmstudiomodel.py +0 -129
- langflow/components/logic/__init__.py +0 -52
- langflow/components/logic/conditional_router.py +0 -171
- langflow/components/logic/data_conditional_router.py +0 -125
- langflow/components/logic/flow_tool.py +0 -110
- langflow/components/logic/listen.py +0 -29
- langflow/components/logic/loop.py +0 -125
- langflow/components/logic/notify.py +0 -88
- langflow/components/logic/pass_message.py +0 -35
- langflow/components/logic/run_flow.py +0 -71
- langflow/components/logic/sub_flow.py +0 -114
- langflow/components/maritalk/__init__.py +0 -32
- langflow/components/maritalk/maritalk.py +0 -52
- langflow/components/mem0/__init__.py +0 -3
- langflow/components/mem0/mem0_chat_memory.py +0 -136
- langflow/components/milvus/__init__.py +0 -34
- langflow/components/milvus/milvus.py +0 -115
- langflow/components/mistral/__init__.py +0 -37
- langflow/components/mistral/mistral.py +0 -114
- langflow/components/mistral/mistral_embeddings.py +0 -58
- langflow/components/models/__init__.py +0 -34
- langflow/components/models/embedding_model.py +0 -114
- langflow/components/models/language_model.py +0 -144
- langflow/components/mongodb/__init__.py +0 -34
- langflow/components/mongodb/mongodb_atlas.py +0 -213
- langflow/components/needle/__init__.py +0 -3
- langflow/components/needle/needle.py +0 -104
- langflow/components/notdiamond/__init__.py +0 -36
- langflow/components/notdiamond/notdiamond.py +0 -228
- langflow/components/novita/__init__.py +0 -32
- langflow/components/novita/novita.py +0 -130
- langflow/components/nvidia/__init__.py +0 -57
- langflow/components/nvidia/nvidia.py +0 -157
- langflow/components/nvidia/nvidia_embedding.py +0 -77
- langflow/components/nvidia/nvidia_ingest.py +0 -317
- langflow/components/nvidia/nvidia_rerank.py +0 -63
- langflow/components/nvidia/system_assist.py +0 -65
- langflow/components/olivya/__init__.py +0 -3
- langflow/components/olivya/olivya.py +0 -116
- langflow/components/ollama/__init__.py +0 -37
- langflow/components/ollama/ollama.py +0 -330
- langflow/components/ollama/ollama_embeddings.py +0 -106
- langflow/components/openai/__init__.py +0 -37
- langflow/components/openai/openai.py +0 -100
- langflow/components/openai/openai_chat_model.py +0 -158
- langflow/components/openrouter/__init__.py +0 -32
- langflow/components/openrouter/openrouter.py +0 -202
- langflow/components/output_parsers/__init__.py +0 -0
- langflow/components/perplexity/__init__.py +0 -34
- langflow/components/perplexity/perplexity.py +0 -75
- langflow/components/pgvector/__init__.py +0 -34
- langflow/components/pgvector/pgvector.py +0 -72
- langflow/components/pinecone/__init__.py +0 -34
- langflow/components/pinecone/pinecone.py +0 -134
- langflow/components/processing/alter_metadata.py +0 -108
- langflow/components/processing/batch_run.py +0 -205
- langflow/components/processing/combine_text.py +0 -39
- langflow/components/processing/create_data.py +0 -110
- langflow/components/processing/data_operations.py +0 -438
- langflow/components/processing/data_to_dataframe.py +0 -70
- langflow/components/processing/dataframe_operations.py +0 -321
- langflow/components/processing/extract_key.py +0 -53
- langflow/components/processing/filter_data.py +0 -42
- langflow/components/processing/filter_data_values.py +0 -88
- langflow/components/processing/json_cleaner.py +0 -103
- langflow/components/processing/lambda_filter.py +0 -154
- langflow/components/processing/llm_router.py +0 -499
- langflow/components/processing/merge_data.py +0 -90
- langflow/components/processing/message_to_data.py +0 -36
- langflow/components/processing/parse_data.py +0 -70
- langflow/components/processing/parse_dataframe.py +0 -68
- langflow/components/processing/parse_json_data.py +0 -90
- langflow/components/processing/parser.py +0 -143
- langflow/components/processing/prompt.py +0 -67
- langflow/components/processing/python_repl_core.py +0 -98
- langflow/components/processing/regex.py +0 -82
- langflow/components/processing/save_file.py +0 -208
- langflow/components/processing/select_data.py +0 -48
- langflow/components/processing/split_text.py +0 -141
- langflow/components/processing/structured_output.py +0 -202
- langflow/components/processing/update_data.py +0 -160
- langflow/components/prototypes/__init__.py +0 -34
- langflow/components/prototypes/python_function.py +0 -73
- langflow/components/qdrant/__init__.py +0 -34
- langflow/components/qdrant/qdrant.py +0 -109
- langflow/components/redis/__init__.py +0 -37
- langflow/components/redis/redis.py +0 -89
- langflow/components/redis/redis_chat.py +0 -43
- langflow/components/sambanova/__init__.py +0 -32
- langflow/components/sambanova/sambanova.py +0 -84
- langflow/components/scrapegraph/__init__.py +0 -40
- langflow/components/scrapegraph/scrapegraph_markdownify_api.py +0 -64
- langflow/components/scrapegraph/scrapegraph_search_api.py +0 -64
- langflow/components/scrapegraph/scrapegraph_smart_scraper_api.py +0 -71
- langflow/components/searchapi/__init__.py +0 -36
- langflow/components/searchapi/search.py +0 -79
- langflow/components/serpapi/__init__.py +0 -3
- langflow/components/serpapi/serp.py +0 -115
- langflow/components/serper/__init__.py +0 -3
- langflow/components/serper/google_serper_api_core.py +0 -74
- langflow/components/supabase/__init__.py +0 -37
- langflow/components/supabase/supabase.py +0 -76
- langflow/components/tavily/__init__.py +0 -4
- langflow/components/tavily/tavily_extract.py +0 -117
- langflow/components/tavily/tavily_search.py +0 -212
- langflow/components/textsplitters/__init__.py +0 -0
- langflow/components/toolkits/__init__.py +0 -0
- langflow/components/tools/__init__.py +0 -72
- langflow/components/tools/calculator.py +0 -103
- langflow/components/tools/google_search_api.py +0 -45
- langflow/components/tools/google_serper_api.py +0 -115
- langflow/components/tools/python_code_structured_tool.py +0 -327
- langflow/components/tools/python_repl.py +0 -97
- langflow/components/tools/search_api.py +0 -87
- langflow/components/tools/searxng.py +0 -145
- langflow/components/tools/serp_api.py +0 -119
- langflow/components/tools/tavily_search_tool.py +0 -344
- langflow/components/tools/wikidata_api.py +0 -102
- langflow/components/tools/wikipedia_api.py +0 -49
- langflow/components/tools/yahoo_finance.py +0 -124
- langflow/components/twelvelabs/__init__.py +0 -52
- langflow/components/twelvelabs/convert_astra_results.py +0 -84
- langflow/components/twelvelabs/pegasus_index.py +0 -311
- langflow/components/twelvelabs/split_video.py +0 -291
- langflow/components/twelvelabs/text_embeddings.py +0 -57
- langflow/components/twelvelabs/twelvelabs_pegasus.py +0 -408
- langflow/components/twelvelabs/video_embeddings.py +0 -100
- langflow/components/twelvelabs/video_file.py +0 -179
- langflow/components/unstructured/__init__.py +0 -3
- langflow/components/unstructured/unstructured.py +0 -121
- langflow/components/upstash/__init__.py +0 -34
- langflow/components/upstash/upstash.py +0 -124
- langflow/components/vectara/__init__.py +0 -37
- langflow/components/vectara/vectara.py +0 -97
- langflow/components/vectara/vectara_rag.py +0 -164
- langflow/components/vectorstores/__init__.py +0 -34
- langflow/components/vectorstores/local_db.py +0 -261
- langflow/components/vertexai/__init__.py +0 -37
- langflow/components/vertexai/vertexai.py +0 -71
- langflow/components/vertexai/vertexai_embeddings.py +0 -67
- langflow/components/weaviate/__init__.py +0 -34
- langflow/components/weaviate/weaviate.py +0 -89
- langflow/components/wikipedia/__init__.py +0 -4
- langflow/components/wikipedia/wikidata.py +0 -86
- langflow/components/wikipedia/wikipedia.py +0 -53
- langflow/components/wolframalpha/__init__.py +0 -3
- langflow/components/wolframalpha/wolfram_alpha_api.py +0 -54
- langflow/components/xai/__init__.py +0 -32
- langflow/components/xai/xai.py +0 -167
- langflow/components/yahoosearch/__init__.py +0 -3
- langflow/components/yahoosearch/yahoo.py +0 -137
- langflow/components/youtube/__init__.py +0 -52
- langflow/components/youtube/channel.py +0 -227
- langflow/components/youtube/comments.py +0 -231
- langflow/components/youtube/playlist.py +0 -33
- langflow/components/youtube/search.py +0 -120
- langflow/components/youtube/trending.py +0 -285
- langflow/components/youtube/video_details.py +0 -263
- langflow/components/youtube/youtube_transcripts.py +0 -118
- langflow/components/zep/__init__.py +0 -3
- langflow/components/zep/zep.py +0 -44
- langflow/custom/attributes.py +0 -86
- langflow/custom/code_parser/__init__.py +0 -3
- langflow/custom/code_parser/code_parser.py +0 -361
- langflow/custom/custom_component/base_component.py +0 -118
- langflow/custom/dependency_analyzer.py +0 -165
- langflow/custom/directory_reader/__init__.py +0 -3
- langflow/custom/directory_reader/directory_reader.py +0 -359
- langflow/custom/directory_reader/utils.py +0 -171
- langflow/custom/eval.py +0 -12
- langflow/custom/schema.py +0 -32
- langflow/custom/tree_visitor.py +0 -21
- langflow/frontend/assets/lazyIconImports-Ci-S9xBA.js +0 -2
- langflow/graph/edge/__init__.py +0 -0
- langflow/graph/edge/base.py +0 -277
- langflow/graph/edge/schema.py +0 -119
- langflow/graph/edge/utils.py +0 -0
- langflow/graph/graph/__init__.py +0 -0
- langflow/graph/graph/ascii.py +0 -202
- langflow/graph/graph/base.py +0 -2185
- langflow/graph/graph/constants.py +0 -58
- langflow/graph/graph/runnable_vertices_manager.py +0 -133
- langflow/graph/graph/schema.py +0 -53
- langflow/graph/graph/state_model.py +0 -66
- langflow/graph/graph/utils.py +0 -1024
- langflow/graph/schema.py +0 -75
- langflow/graph/state/__init__.py +0 -0
- langflow/graph/state/model.py +0 -237
- langflow/graph/utils.py +0 -229
- langflow/graph/vertex/__init__.py +0 -0
- langflow/graph/vertex/base.py +0 -811
- langflow/graph/vertex/constants.py +0 -0
- langflow/graph/vertex/exceptions.py +0 -4
- langflow/graph/vertex/param_handler.py +0 -255
- langflow/graph/vertex/schema.py +0 -26
- langflow/graph/vertex/utils.py +0 -19
- langflow/graph/vertex/vertex_types.py +0 -489
- langflow/legacy_custom/__init__.py +0 -0
- langflow/legacy_custom/customs.py +0 -16
- langflow/load/load.py +0 -250
- langflow/logging/logger.py +0 -369
- langflow/processing/utils.py +0 -25
- langflow/schema/openai_responses_schemas.py +0 -74
- langflow/schema/serialize.py +0 -13
- langflow/services/chat/config.py +0 -2
- langflow/services/settings/auth.py +0 -130
- langflow/services/settings/constants.py +0 -31
- langflow/services/settings/manager.py +0 -49
- langflow/services/settings/utils.py +0 -40
- langflow/template/field/prompt.py +0 -2
- langflow/template/frontend_node/__init__.py +0 -6
- langflow/template/frontend_node/base.py +0 -212
- langflow/template/frontend_node/constants.py +0 -65
- langflow/template/frontend_node/custom_components.py +0 -97
- langflow/template/template/__init__.py +0 -0
- langflow/template/template/base.py +0 -99
- langflow/utils/async_helpers.py +0 -42
- langflow/utils/concurrency.py +0 -60
- langflow/utils/util_strings.py +0 -56
- langflow_base_nightly-0.5.1.dev2.dist-info/RECORD +0 -1159
- {langflow_base_nightly-0.5.1.dev2.dist-info → langflow_base_nightly-0.5.1.dev4.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-0.5.1.dev2.dist-info → langflow_base_nightly-0.5.1.dev4.dist-info}/entry_points.txt +0 -0
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
from langflow.custom import Component
|
|
2
|
-
from langflow.field_typing.range_spec import RangeSpec
|
|
3
|
-
from langflow.io import BoolInput, FloatInput, HandleInput, MessageTextInput, Output, PromptInput
|
|
4
|
-
from langflow.schema.message import Message
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class CleanlabRemediator(Component):
|
|
8
|
-
"""Remediates potentially untrustworthy LLM responses based on trust scores computed by the Cleanlab Evaluator.
|
|
9
|
-
|
|
10
|
-
This component takes a response and its associated trust score,
|
|
11
|
-
and applies remediation strategies based on configurable thresholds and settings.
|
|
12
|
-
|
|
13
|
-
Inputs:
|
|
14
|
-
- response (MessageTextInput): The original LLM-generated response to be evaluated and possibly remediated.
|
|
15
|
-
The CleanlabEvaluator passes this response through.
|
|
16
|
-
- score (HandleInput): The trust score output from CleanlabEvaluator (expected to be a float between 0 and 1).
|
|
17
|
-
- explanation (MessageTextInput): Optional textual explanation for the trust score, to be included in the
|
|
18
|
-
output.
|
|
19
|
-
- threshold (Input[float]): Minimum trust score required to accept the response. If the score is lower, the
|
|
20
|
-
response is remediated.
|
|
21
|
-
- show_untrustworthy_response (BoolInput): If true, returns the original response with a warning; if false,
|
|
22
|
-
returns fallback text.
|
|
23
|
-
- untrustworthy_warning_text (PromptInput): Text warning to append to responses deemed untrustworthy (when
|
|
24
|
-
showing them).
|
|
25
|
-
- fallback_text (PromptInput): Replacement message returned if the response is untrustworthy and should be
|
|
26
|
-
hidden.
|
|
27
|
-
|
|
28
|
-
Outputs:
|
|
29
|
-
- remediated_response (Message): Either:
|
|
30
|
-
• the original response,
|
|
31
|
-
• the original response with appended warning, or
|
|
32
|
-
• the fallback response,
|
|
33
|
-
depending on the trust score and configuration.
|
|
34
|
-
|
|
35
|
-
This component is typically used downstream of CleanlabEvaluator or CleanlabRagValidator
|
|
36
|
-
to take appropriate action on low-trust responses and inform users accordingly.
|
|
37
|
-
"""
|
|
38
|
-
|
|
39
|
-
display_name = "Cleanlab Remediator"
|
|
40
|
-
description = (
|
|
41
|
-
"Remediates an untrustworthy response based on trust score from the Cleanlab Evaluator, "
|
|
42
|
-
"score threshold, and message handling settings."
|
|
43
|
-
)
|
|
44
|
-
icon = "Cleanlab"
|
|
45
|
-
name = "CleanlabRemediator"
|
|
46
|
-
|
|
47
|
-
inputs = [
|
|
48
|
-
MessageTextInput(
|
|
49
|
-
name="response",
|
|
50
|
-
display_name="Response",
|
|
51
|
-
info="The response to the user's query.",
|
|
52
|
-
required=True,
|
|
53
|
-
),
|
|
54
|
-
HandleInput(
|
|
55
|
-
name="score",
|
|
56
|
-
display_name="Trust Score",
|
|
57
|
-
info="The trustworthiness score output from the Cleanlab Evaluator.",
|
|
58
|
-
input_types=["number"],
|
|
59
|
-
required=True,
|
|
60
|
-
),
|
|
61
|
-
MessageTextInput(
|
|
62
|
-
name="explanation",
|
|
63
|
-
display_name="Explanation",
|
|
64
|
-
info="The explanation from the Cleanlab Evaluator.",
|
|
65
|
-
required=False,
|
|
66
|
-
),
|
|
67
|
-
FloatInput(
|
|
68
|
-
name="threshold",
|
|
69
|
-
display_name="Threshold",
|
|
70
|
-
field_type="float",
|
|
71
|
-
value=0.7,
|
|
72
|
-
range_spec=RangeSpec(min=0.0, max=1.0, step=0.05),
|
|
73
|
-
info="Minimum score required to show the response unmodified. Reponses with scores above this threshold "
|
|
74
|
-
"are considered trustworthy. Reponses with scores below this threshold are considered untrustworthy and "
|
|
75
|
-
"will be remediated based on the settings below.",
|
|
76
|
-
required=True,
|
|
77
|
-
show=True,
|
|
78
|
-
),
|
|
79
|
-
BoolInput(
|
|
80
|
-
name="show_untrustworthy_response",
|
|
81
|
-
display_name="Show Untrustworthy Response",
|
|
82
|
-
info="If enabled, and the trust score is below the threshold, the original response is shown with the "
|
|
83
|
-
"added warning. If disabled, and the trust score is below the threshold, the fallback answer is returned.",
|
|
84
|
-
value=True,
|
|
85
|
-
),
|
|
86
|
-
PromptInput(
|
|
87
|
-
name="untrustworthy_warning_text",
|
|
88
|
-
display_name="Warning for Untrustworthy Response",
|
|
89
|
-
info="Warning to append to the response if Show Untrustworthy Response is enabled and trust score is "
|
|
90
|
-
"below the threshold.",
|
|
91
|
-
value="⚠️ WARNING: The following response is potentially untrustworthy.",
|
|
92
|
-
),
|
|
93
|
-
PromptInput(
|
|
94
|
-
name="fallback_text",
|
|
95
|
-
display_name="Fallback Answer",
|
|
96
|
-
info="Response returned if the trust score is below the threshold and 'Show Untrustworthy Response' is "
|
|
97
|
-
"disabled.",
|
|
98
|
-
value="Based on the available information, I cannot provide a complete answer to this question.",
|
|
99
|
-
),
|
|
100
|
-
]
|
|
101
|
-
|
|
102
|
-
outputs = [
|
|
103
|
-
Output(
|
|
104
|
-
display_name="Remediated Message",
|
|
105
|
-
name="remediated_response",
|
|
106
|
-
method="remediate_response",
|
|
107
|
-
types=["Message"],
|
|
108
|
-
),
|
|
109
|
-
]
|
|
110
|
-
|
|
111
|
-
def remediate_response(self) -> Message:
|
|
112
|
-
if self.score >= self.threshold:
|
|
113
|
-
self.status = f"Score {self.score:.2f} ≥ threshold {self.threshold:.2f} → accepted"
|
|
114
|
-
return Message(
|
|
115
|
-
text=f"{self.response}\n\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n**Trust Score:** {self.score:.2f}"
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
self.status = f"Score {self.score:.2f} < threshold {self.threshold:.2f} → flagged"
|
|
119
|
-
|
|
120
|
-
if self.show_untrustworthy_response:
|
|
121
|
-
parts = [
|
|
122
|
-
self.response,
|
|
123
|
-
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
|
|
124
|
-
f"**{self.untrustworthy_warning_text.strip()}**",
|
|
125
|
-
f"**Trust Score:** {self.score:.2f}",
|
|
126
|
-
]
|
|
127
|
-
if self.explanation:
|
|
128
|
-
parts.append(f"**Explanation:** {self.explanation}")
|
|
129
|
-
return Message(text="\n\n".join(parts))
|
|
130
|
-
|
|
131
|
-
return Message(text=self.fallback_text)
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import TYPE_CHECKING, Any
|
|
4
|
-
|
|
5
|
-
from langflow.components._importing import import_mod
|
|
6
|
-
|
|
7
|
-
if TYPE_CHECKING:
|
|
8
|
-
from .clickhouse import ClickhouseVectorStoreComponent
|
|
9
|
-
|
|
10
|
-
_dynamic_imports = {
|
|
11
|
-
"ClickhouseVectorStoreComponent": "clickhouse",
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
__all__ = [
|
|
15
|
-
"ClickhouseVectorStoreComponent",
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
def __getattr__(attr_name: str) -> Any:
|
|
20
|
-
"""Lazily import ClickHouse components on attribute access."""
|
|
21
|
-
if attr_name not in _dynamic_imports:
|
|
22
|
-
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
23
|
-
raise AttributeError(msg)
|
|
24
|
-
try:
|
|
25
|
-
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
26
|
-
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
27
|
-
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
28
|
-
raise AttributeError(msg) from e
|
|
29
|
-
globals()[attr_name] = result
|
|
30
|
-
return result
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def __dir__() -> list[str]:
|
|
34
|
-
return list(__all__)
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
from langchain_community.vectorstores import Clickhouse, ClickhouseSettings
|
|
2
|
-
|
|
3
|
-
from langflow.base.vectorstores.model import LCVectorStoreComponent, check_cached_vector_store
|
|
4
|
-
from langflow.helpers.data import docs_to_data
|
|
5
|
-
from langflow.inputs.inputs import BoolInput, FloatInput
|
|
6
|
-
from langflow.io import (
|
|
7
|
-
DictInput,
|
|
8
|
-
DropdownInput,
|
|
9
|
-
HandleInput,
|
|
10
|
-
IntInput,
|
|
11
|
-
SecretStrInput,
|
|
12
|
-
StrInput,
|
|
13
|
-
)
|
|
14
|
-
from langflow.schema.data import Data
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
class ClickhouseVectorStoreComponent(LCVectorStoreComponent):
|
|
18
|
-
display_name = "Clickhouse"
|
|
19
|
-
description = "Clickhouse Vector Store with search capabilities"
|
|
20
|
-
name = "Clickhouse"
|
|
21
|
-
icon = "Clickhouse"
|
|
22
|
-
|
|
23
|
-
inputs = [
|
|
24
|
-
StrInput(name="host", display_name="hostname", required=True, value="localhost"),
|
|
25
|
-
IntInput(name="port", display_name="port", required=True, value=8123),
|
|
26
|
-
StrInput(name="database", display_name="database", required=True),
|
|
27
|
-
StrInput(name="table", display_name="Table name", required=True),
|
|
28
|
-
StrInput(name="username", display_name="The ClickHouse user name.", required=True),
|
|
29
|
-
SecretStrInput(name="password", display_name="The password for username.", required=True),
|
|
30
|
-
DropdownInput(
|
|
31
|
-
name="index_type",
|
|
32
|
-
display_name="index_type",
|
|
33
|
-
options=["annoy", "vector_similarity"],
|
|
34
|
-
info="Type of the index.",
|
|
35
|
-
value="annoy",
|
|
36
|
-
advanced=True,
|
|
37
|
-
),
|
|
38
|
-
DropdownInput(
|
|
39
|
-
name="metric",
|
|
40
|
-
display_name="metric",
|
|
41
|
-
options=["angular", "euclidean", "manhattan", "hamming", "dot"],
|
|
42
|
-
info="Metric to compute distance.",
|
|
43
|
-
value="angular",
|
|
44
|
-
advanced=True,
|
|
45
|
-
),
|
|
46
|
-
BoolInput(
|
|
47
|
-
name="secure",
|
|
48
|
-
display_name="Use https/TLS. This overrides inferred values from the interface or port arguments.",
|
|
49
|
-
value=False,
|
|
50
|
-
advanced=True,
|
|
51
|
-
),
|
|
52
|
-
StrInput(name="index_param", display_name="Param of the index", value="100,'L2Distance'", advanced=True),
|
|
53
|
-
DictInput(name="index_query_params", display_name="index query params", advanced=True),
|
|
54
|
-
*LCVectorStoreComponent.inputs,
|
|
55
|
-
HandleInput(name="embedding", display_name="Embedding", input_types=["Embeddings"]),
|
|
56
|
-
IntInput(
|
|
57
|
-
name="number_of_results",
|
|
58
|
-
display_name="Number of Results",
|
|
59
|
-
info="Number of results to return.",
|
|
60
|
-
value=4,
|
|
61
|
-
advanced=True,
|
|
62
|
-
),
|
|
63
|
-
FloatInput(name="score_threshold", display_name="Score threshold", advanced=True),
|
|
64
|
-
]
|
|
65
|
-
|
|
66
|
-
@check_cached_vector_store
|
|
67
|
-
def build_vector_store(self) -> Clickhouse:
|
|
68
|
-
try:
|
|
69
|
-
import clickhouse_connect
|
|
70
|
-
except ImportError as e:
|
|
71
|
-
msg = (
|
|
72
|
-
"Failed to import Clickhouse dependencies. "
|
|
73
|
-
"Install it using `uv pip install langflow[clickhouse-connect] --pre`"
|
|
74
|
-
)
|
|
75
|
-
raise ImportError(msg) from e
|
|
76
|
-
|
|
77
|
-
try:
|
|
78
|
-
client = clickhouse_connect.get_client(
|
|
79
|
-
host=self.host, port=self.port, username=self.username, password=self.password
|
|
80
|
-
)
|
|
81
|
-
client.command("SELECT 1")
|
|
82
|
-
except Exception as e:
|
|
83
|
-
msg = f"Failed to connect to Clickhouse: {e}"
|
|
84
|
-
raise ValueError(msg) from e
|
|
85
|
-
|
|
86
|
-
# Convert DataFrame to Data if needed using parent's method
|
|
87
|
-
self.ingest_data = self._prepare_ingest_data()
|
|
88
|
-
|
|
89
|
-
documents = []
|
|
90
|
-
for _input in self.ingest_data or []:
|
|
91
|
-
if isinstance(_input, Data):
|
|
92
|
-
documents.append(_input.to_lc_document())
|
|
93
|
-
else:
|
|
94
|
-
documents.append(_input)
|
|
95
|
-
|
|
96
|
-
kwargs = {}
|
|
97
|
-
if self.index_param:
|
|
98
|
-
kwargs["index_param"] = self.index_param.split(",")
|
|
99
|
-
if self.index_query_params:
|
|
100
|
-
kwargs["index_query_params"] = self.index_query_params
|
|
101
|
-
|
|
102
|
-
settings = ClickhouseSettings(
|
|
103
|
-
table=self.table,
|
|
104
|
-
database=self.database,
|
|
105
|
-
host=self.host,
|
|
106
|
-
index_type=self.index_type,
|
|
107
|
-
metric=self.metric,
|
|
108
|
-
password=self.password,
|
|
109
|
-
port=self.port,
|
|
110
|
-
secure=self.secure,
|
|
111
|
-
username=self.username,
|
|
112
|
-
**kwargs,
|
|
113
|
-
)
|
|
114
|
-
if documents:
|
|
115
|
-
clickhouse_vs = Clickhouse.from_documents(documents=documents, embedding=self.embedding, config=settings)
|
|
116
|
-
|
|
117
|
-
else:
|
|
118
|
-
clickhouse_vs = Clickhouse(embedding=self.embedding, config=settings)
|
|
119
|
-
|
|
120
|
-
return clickhouse_vs
|
|
121
|
-
|
|
122
|
-
def search_documents(self) -> list[Data]:
|
|
123
|
-
vector_store = self.build_vector_store()
|
|
124
|
-
|
|
125
|
-
if self.search_query and isinstance(self.search_query, str) and self.search_query.strip():
|
|
126
|
-
kwargs = {}
|
|
127
|
-
if self.score_threshold:
|
|
128
|
-
kwargs["score_threshold"] = self.score_threshold
|
|
129
|
-
|
|
130
|
-
docs = vector_store.similarity_search(query=self.search_query, k=self.number_of_results, **kwargs)
|
|
131
|
-
|
|
132
|
-
data = docs_to_data(docs)
|
|
133
|
-
self.status = data
|
|
134
|
-
return data
|
|
135
|
-
return []
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import TYPE_CHECKING, Any
|
|
4
|
-
|
|
5
|
-
from langflow.components._importing import import_mod
|
|
6
|
-
|
|
7
|
-
if TYPE_CHECKING:
|
|
8
|
-
from langflow.components.cloudflare.cloudflare import CloudflareWorkersAIEmbeddingsComponent
|
|
9
|
-
|
|
10
|
-
_dynamic_imports = {
|
|
11
|
-
"CloudflareWorkersAIEmbeddingsComponent": "cloudflare",
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
__all__ = ["CloudflareWorkersAIEmbeddingsComponent"]
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def __getattr__(attr_name: str) -> Any:
|
|
18
|
-
"""Lazily import cloudflare components on attribute access."""
|
|
19
|
-
if attr_name not in _dynamic_imports:
|
|
20
|
-
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
21
|
-
raise AttributeError(msg)
|
|
22
|
-
try:
|
|
23
|
-
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
24
|
-
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
25
|
-
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
26
|
-
raise AttributeError(msg) from e
|
|
27
|
-
globals()[attr_name] = result
|
|
28
|
-
return result
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def __dir__() -> list[str]:
|
|
32
|
-
return list(__all__)
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
from langchain_community.embeddings.cloudflare_workersai import CloudflareWorkersAIEmbeddings
|
|
2
|
-
|
|
3
|
-
from langflow.base.models.model import LCModelComponent
|
|
4
|
-
from langflow.field_typing import Embeddings
|
|
5
|
-
from langflow.io import BoolInput, DictInput, IntInput, MessageTextInput, Output, SecretStrInput
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class CloudflareWorkersAIEmbeddingsComponent(LCModelComponent):
|
|
9
|
-
display_name: str = "Cloudflare Workers AI Embeddings"
|
|
10
|
-
description: str = "Generate embeddings using Cloudflare Workers AI models."
|
|
11
|
-
documentation: str = "https://python.langchain.com/docs/integrations/text_embedding/cloudflare_workersai/"
|
|
12
|
-
icon = "Cloudflare"
|
|
13
|
-
name = "CloudflareWorkersAIEmbeddings"
|
|
14
|
-
|
|
15
|
-
inputs = [
|
|
16
|
-
MessageTextInput(
|
|
17
|
-
name="account_id",
|
|
18
|
-
display_name="Cloudflare account ID",
|
|
19
|
-
info="Find your account ID https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/#find-account-id-workers-and-pages",
|
|
20
|
-
required=True,
|
|
21
|
-
),
|
|
22
|
-
SecretStrInput(
|
|
23
|
-
name="api_token",
|
|
24
|
-
display_name="Cloudflare API token",
|
|
25
|
-
info="Create an API token https://developers.cloudflare.com/fundamentals/api/get-started/create-token/",
|
|
26
|
-
required=True,
|
|
27
|
-
),
|
|
28
|
-
MessageTextInput(
|
|
29
|
-
name="model_name",
|
|
30
|
-
display_name="Model Name",
|
|
31
|
-
info="List of supported models https://developers.cloudflare.com/workers-ai/models/#text-embeddings",
|
|
32
|
-
required=True,
|
|
33
|
-
value="@cf/baai/bge-base-en-v1.5",
|
|
34
|
-
),
|
|
35
|
-
BoolInput(
|
|
36
|
-
name="strip_new_lines",
|
|
37
|
-
display_name="Strip New Lines",
|
|
38
|
-
advanced=True,
|
|
39
|
-
value=True,
|
|
40
|
-
),
|
|
41
|
-
IntInput(
|
|
42
|
-
name="batch_size",
|
|
43
|
-
display_name="Batch Size",
|
|
44
|
-
advanced=True,
|
|
45
|
-
value=50,
|
|
46
|
-
),
|
|
47
|
-
MessageTextInput(
|
|
48
|
-
name="api_base_url",
|
|
49
|
-
display_name="Cloudflare API base URL",
|
|
50
|
-
advanced=True,
|
|
51
|
-
value="https://api.cloudflare.com/client/v4/accounts",
|
|
52
|
-
),
|
|
53
|
-
DictInput(
|
|
54
|
-
name="headers",
|
|
55
|
-
display_name="Headers",
|
|
56
|
-
info="Additional request headers",
|
|
57
|
-
is_list=True,
|
|
58
|
-
advanced=True,
|
|
59
|
-
),
|
|
60
|
-
]
|
|
61
|
-
|
|
62
|
-
outputs = [
|
|
63
|
-
Output(display_name="Embeddings", name="embeddings", method="build_embeddings"),
|
|
64
|
-
]
|
|
65
|
-
|
|
66
|
-
def build_embeddings(self) -> Embeddings:
|
|
67
|
-
try:
|
|
68
|
-
embeddings = CloudflareWorkersAIEmbeddings(
|
|
69
|
-
account_id=self.account_id,
|
|
70
|
-
api_base_url=self.api_base_url,
|
|
71
|
-
api_token=self.api_token,
|
|
72
|
-
batch_size=self.batch_size,
|
|
73
|
-
headers=self.headers,
|
|
74
|
-
model_name=self.model_name,
|
|
75
|
-
strip_new_lines=self.strip_new_lines,
|
|
76
|
-
)
|
|
77
|
-
except Exception as e:
|
|
78
|
-
msg = f"Could not connect to CloudflareWorkersAIEmbeddings API: {e!s}"
|
|
79
|
-
raise ValueError(msg) from e
|
|
80
|
-
|
|
81
|
-
return embeddings
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import TYPE_CHECKING, Any
|
|
4
|
-
|
|
5
|
-
from langflow.components._importing import import_mod
|
|
6
|
-
|
|
7
|
-
if TYPE_CHECKING:
|
|
8
|
-
from .cohere_embeddings import CohereEmbeddingsComponent
|
|
9
|
-
from .cohere_models import CohereComponent
|
|
10
|
-
from .cohere_rerank import CohereRerankComponent
|
|
11
|
-
|
|
12
|
-
_dynamic_imports = {
|
|
13
|
-
"CohereComponent": "cohere_models",
|
|
14
|
-
"CohereEmbeddingsComponent": "cohere_embeddings",
|
|
15
|
-
"CohereRerankComponent": "cohere_rerank",
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
__all__ = [
|
|
19
|
-
"CohereComponent",
|
|
20
|
-
"CohereEmbeddingsComponent",
|
|
21
|
-
"CohereRerankComponent",
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def __getattr__(attr_name: str) -> Any:
|
|
26
|
-
"""Lazily import cohere components on attribute access."""
|
|
27
|
-
if attr_name not in _dynamic_imports:
|
|
28
|
-
msg = f"module '{__name__}' has no attribute '{attr_name}'"
|
|
29
|
-
raise AttributeError(msg)
|
|
30
|
-
try:
|
|
31
|
-
result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
|
|
32
|
-
except (ModuleNotFoundError, ImportError, AttributeError) as e:
|
|
33
|
-
msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
|
|
34
|
-
raise AttributeError(msg) from e
|
|
35
|
-
globals()[attr_name] = result
|
|
36
|
-
return result
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def __dir__() -> list[str]:
|
|
40
|
-
return list(__all__)
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
from typing import Any
|
|
2
|
-
|
|
3
|
-
import cohere
|
|
4
|
-
from langchain_cohere import CohereEmbeddings
|
|
5
|
-
|
|
6
|
-
from langflow.base.models.model import LCModelComponent
|
|
7
|
-
from langflow.field_typing import Embeddings
|
|
8
|
-
from langflow.io import DropdownInput, FloatInput, IntInput, MessageTextInput, Output, SecretStrInput
|
|
9
|
-
|
|
10
|
-
HTTP_STATUS_OK = 200
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class CohereEmbeddingsComponent(LCModelComponent):
|
|
14
|
-
display_name = "Cohere Embeddings"
|
|
15
|
-
description = "Generate embeddings using Cohere models."
|
|
16
|
-
icon = "Cohere"
|
|
17
|
-
name = "CohereEmbeddings"
|
|
18
|
-
|
|
19
|
-
inputs = [
|
|
20
|
-
SecretStrInput(name="api_key", display_name="Cohere API Key", required=True, real_time_refresh=True),
|
|
21
|
-
DropdownInput(
|
|
22
|
-
name="model_name",
|
|
23
|
-
display_name="Model",
|
|
24
|
-
advanced=False,
|
|
25
|
-
options=[
|
|
26
|
-
"embed-english-v2.0",
|
|
27
|
-
"embed-multilingual-v2.0",
|
|
28
|
-
"embed-english-light-v2.0",
|
|
29
|
-
"embed-multilingual-light-v2.0",
|
|
30
|
-
],
|
|
31
|
-
value="embed-english-v2.0",
|
|
32
|
-
refresh_button=True,
|
|
33
|
-
combobox=True,
|
|
34
|
-
),
|
|
35
|
-
MessageTextInput(name="truncate", display_name="Truncate", advanced=True),
|
|
36
|
-
IntInput(name="max_retries", display_name="Max Retries", value=3, advanced=True),
|
|
37
|
-
MessageTextInput(name="user_agent", display_name="User Agent", advanced=True, value="langchain"),
|
|
38
|
-
FloatInput(name="request_timeout", display_name="Request Timeout", advanced=True),
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
outputs = [
|
|
42
|
-
Output(display_name="Embeddings", name="embeddings", method="build_embeddings"),
|
|
43
|
-
]
|
|
44
|
-
|
|
45
|
-
def build_embeddings(self) -> Embeddings:
|
|
46
|
-
data = None
|
|
47
|
-
try:
|
|
48
|
-
data = CohereEmbeddings(
|
|
49
|
-
cohere_api_key=self.api_key,
|
|
50
|
-
model=self.model_name,
|
|
51
|
-
truncate=self.truncate,
|
|
52
|
-
max_retries=self.max_retries,
|
|
53
|
-
user_agent=self.user_agent,
|
|
54
|
-
request_timeout=self.request_timeout or None,
|
|
55
|
-
)
|
|
56
|
-
except Exception as e:
|
|
57
|
-
msg = (
|
|
58
|
-
"Unable to create Cohere Embeddings. ",
|
|
59
|
-
"Please verify the API key and model parameters, and try again.",
|
|
60
|
-
)
|
|
61
|
-
raise ValueError(msg) from e
|
|
62
|
-
# added status if not the return data would be serialised to create the status
|
|
63
|
-
return data
|
|
64
|
-
|
|
65
|
-
def get_model(self):
|
|
66
|
-
try:
|
|
67
|
-
co = cohere.ClientV2(self.api_key)
|
|
68
|
-
response = co.models.list(endpoint="embed")
|
|
69
|
-
models = response.models
|
|
70
|
-
return [model.name for model in models]
|
|
71
|
-
except Exception as e:
|
|
72
|
-
msg = f"Failed to fetch Cohere models. Error: {e}"
|
|
73
|
-
raise ValueError(msg) from e
|
|
74
|
-
|
|
75
|
-
async def update_build_config(self, build_config: dict, field_value: Any, field_name: str | None = None):
|
|
76
|
-
if field_name in {"model_name", "api_key"}:
|
|
77
|
-
if build_config.get("api_key", {}).get("value", None):
|
|
78
|
-
build_config["model_name"]["options"] = self.get_model()
|
|
79
|
-
else:
|
|
80
|
-
build_config["model_name"]["options"] = field_value
|
|
81
|
-
return build_config
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
from langchain_cohere import ChatCohere
|
|
2
|
-
from pydantic.v1 import SecretStr
|
|
3
|
-
|
|
4
|
-
from langflow.base.models.model import LCModelComponent
|
|
5
|
-
from langflow.field_typing import LanguageModel
|
|
6
|
-
from langflow.field_typing.range_spec import RangeSpec
|
|
7
|
-
from langflow.io import SecretStrInput, SliderInput
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class CohereComponent(LCModelComponent):
|
|
11
|
-
display_name = "Cohere Language Models"
|
|
12
|
-
description = "Generate text using Cohere LLMs."
|
|
13
|
-
documentation = "https://python.langchain.com/docs/modules/model_io/models/llms/integrations/cohere"
|
|
14
|
-
icon = "Cohere"
|
|
15
|
-
name = "CohereModel"
|
|
16
|
-
|
|
17
|
-
inputs = [
|
|
18
|
-
*LCModelComponent._base_inputs,
|
|
19
|
-
SecretStrInput(
|
|
20
|
-
name="cohere_api_key",
|
|
21
|
-
display_name="Cohere API Key",
|
|
22
|
-
info="The Cohere API Key to use for the Cohere model.",
|
|
23
|
-
advanced=False,
|
|
24
|
-
value="COHERE_API_KEY",
|
|
25
|
-
required=True,
|
|
26
|
-
),
|
|
27
|
-
SliderInput(
|
|
28
|
-
name="temperature",
|
|
29
|
-
display_name="Temperature",
|
|
30
|
-
value=0.75,
|
|
31
|
-
range_spec=RangeSpec(min=0, max=2, step=0.01),
|
|
32
|
-
info="Controls randomness. Lower values are more deterministic, higher values are more creative.",
|
|
33
|
-
advanced=True,
|
|
34
|
-
),
|
|
35
|
-
]
|
|
36
|
-
|
|
37
|
-
def build_model(self) -> LanguageModel: # type: ignore[type-var]
|
|
38
|
-
cohere_api_key = self.cohere_api_key
|
|
39
|
-
temperature = self.temperature
|
|
40
|
-
|
|
41
|
-
api_key = SecretStr(cohere_api_key).get_secret_value() if cohere_api_key else None
|
|
42
|
-
|
|
43
|
-
return ChatCohere(
|
|
44
|
-
temperature=temperature or 0.75,
|
|
45
|
-
cohere_api_key=api_key,
|
|
46
|
-
)
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
from langflow.base.compressors.model import LCCompressorComponent
|
|
2
|
-
from langflow.field_typing import BaseDocumentCompressor
|
|
3
|
-
from langflow.inputs.inputs import SecretStrInput
|
|
4
|
-
from langflow.io import DropdownInput
|
|
5
|
-
from langflow.template.field.base import Output
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class CohereRerankComponent(LCCompressorComponent):
|
|
9
|
-
display_name = "Cohere Rerank"
|
|
10
|
-
description = "Rerank documents using the Cohere API."
|
|
11
|
-
name = "CohereRerank"
|
|
12
|
-
icon = "Cohere"
|
|
13
|
-
|
|
14
|
-
inputs = [
|
|
15
|
-
*LCCompressorComponent.inputs,
|
|
16
|
-
SecretStrInput(
|
|
17
|
-
name="api_key",
|
|
18
|
-
display_name="Cohere API Key",
|
|
19
|
-
),
|
|
20
|
-
DropdownInput(
|
|
21
|
-
name="model",
|
|
22
|
-
display_name="Model",
|
|
23
|
-
options=[
|
|
24
|
-
"rerank-english-v3.0",
|
|
25
|
-
"rerank-multilingual-v3.0",
|
|
26
|
-
"rerank-english-v2.0",
|
|
27
|
-
"rerank-multilingual-v2.0",
|
|
28
|
-
],
|
|
29
|
-
value="rerank-english-v3.0",
|
|
30
|
-
),
|
|
31
|
-
]
|
|
32
|
-
|
|
33
|
-
outputs = [
|
|
34
|
-
Output(
|
|
35
|
-
display_name="Reranked Documents",
|
|
36
|
-
name="reranked_documents",
|
|
37
|
-
method="compress_documents",
|
|
38
|
-
),
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
def build_compressor(self) -> BaseDocumentCompressor: # type: ignore[type-var]
|
|
42
|
-
try:
|
|
43
|
-
from langchain_cohere import CohereRerank
|
|
44
|
-
except ImportError as e:
|
|
45
|
-
msg = "Please install langchain-cohere to use the Cohere model."
|
|
46
|
-
raise ImportError(msg) from e
|
|
47
|
-
return CohereRerank(
|
|
48
|
-
cohere_api_key=self.api_key,
|
|
49
|
-
model=self.model,
|
|
50
|
-
top_n=self.top_n,
|
|
51
|
-
)
|