langflow-base-nightly 0.5.1.dev3__py3-none-any.whl → 0.5.1.dev5__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.dev3.dist-info → langflow_base_nightly-0.5.1.dev5.dist-info}/METADATA +2 -1
- langflow_base_nightly-0.5.1.dev5.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.dev3.dist-info/RECORD +0 -1159
- {langflow_base_nightly-0.5.1.dev3.dist-info → langflow_base_nightly-0.5.1.dev5.dist-info}/WHEEL +0 -0
- {langflow_base_nightly-0.5.1.dev3.dist-info → langflow_base_nightly-0.5.1.dev5.dist-info}/entry_points.txt +0 -0
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
from langflow.base.astra_assistants.util import get_patched_openai_client
|
|
2
|
-
from langflow.custom.custom_component.component_with_cache import ComponentWithCache
|
|
3
|
-
from langflow.inputs.inputs import MultilineInput, StrInput
|
|
4
|
-
from langflow.logging.logger import logger
|
|
5
|
-
from langflow.schema.message import Message
|
|
6
|
-
from langflow.template.field.base import Output
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class AssistantsCreateAssistant(ComponentWithCache):
|
|
10
|
-
icon = "AstraDB"
|
|
11
|
-
display_name = "Create Assistant"
|
|
12
|
-
description = "Creates an Assistant and returns it's id"
|
|
13
|
-
|
|
14
|
-
inputs = [
|
|
15
|
-
StrInput(
|
|
16
|
-
name="assistant_name",
|
|
17
|
-
display_name="Assistant Name",
|
|
18
|
-
info="Name for the assistant being created",
|
|
19
|
-
),
|
|
20
|
-
StrInput(
|
|
21
|
-
name="instructions",
|
|
22
|
-
display_name="Instructions",
|
|
23
|
-
info="Instructions for the assistant, think of these as the system prompt.",
|
|
24
|
-
),
|
|
25
|
-
StrInput(
|
|
26
|
-
name="model",
|
|
27
|
-
display_name="Model name",
|
|
28
|
-
info=(
|
|
29
|
-
"Model for the assistant.\n\n"
|
|
30
|
-
"Environment variables for provider credentials can be set with the Dotenv Component.\n\n"
|
|
31
|
-
"Models are supported via LiteLLM, "
|
|
32
|
-
"see (https://docs.litellm.ai/docs/providers) for supported model names and env vars."
|
|
33
|
-
),
|
|
34
|
-
# refresh_model=True
|
|
35
|
-
),
|
|
36
|
-
MultilineInput(
|
|
37
|
-
name="env_set",
|
|
38
|
-
display_name="Environment Set",
|
|
39
|
-
info="Dummy input to allow chaining with Dotenv Component.",
|
|
40
|
-
),
|
|
41
|
-
]
|
|
42
|
-
|
|
43
|
-
outputs = [
|
|
44
|
-
Output(display_name="Assistant ID", name="assistant_id", method="process_inputs"),
|
|
45
|
-
]
|
|
46
|
-
|
|
47
|
-
def __init__(self, **kwargs) -> None:
|
|
48
|
-
super().__init__(**kwargs)
|
|
49
|
-
self.client = get_patched_openai_client(self._shared_component_cache)
|
|
50
|
-
|
|
51
|
-
def process_inputs(self) -> Message:
|
|
52
|
-
logger.info(f"env_set is {self.env_set}")
|
|
53
|
-
assistant = self.client.beta.assistants.create(
|
|
54
|
-
name=self.assistant_name,
|
|
55
|
-
instructions=self.instructions,
|
|
56
|
-
model=self.model,
|
|
57
|
-
)
|
|
58
|
-
return Message(text=assistant.id)
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
from langflow.base.astra_assistants.util import get_patched_openai_client
|
|
2
|
-
from langflow.custom.custom_component.component_with_cache import ComponentWithCache
|
|
3
|
-
from langflow.inputs.inputs import MultilineInput
|
|
4
|
-
from langflow.schema.message import Message
|
|
5
|
-
from langflow.template.field.base import Output
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class AssistantsCreateThread(ComponentWithCache):
|
|
9
|
-
display_name = "Create Assistant Thread"
|
|
10
|
-
description = "Creates a thread and returns the thread id"
|
|
11
|
-
icon = "AstraDB"
|
|
12
|
-
inputs = [
|
|
13
|
-
MultilineInput(
|
|
14
|
-
name="env_set",
|
|
15
|
-
display_name="Environment Set",
|
|
16
|
-
info="Dummy input to allow chaining with Dotenv Component.",
|
|
17
|
-
),
|
|
18
|
-
]
|
|
19
|
-
|
|
20
|
-
outputs = [
|
|
21
|
-
Output(display_name="Thread ID", name="thread_id", method="process_inputs"),
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
def __init__(self, **kwargs) -> None:
|
|
25
|
-
super().__init__(**kwargs)
|
|
26
|
-
self.client = get_patched_openai_client(self._shared_component_cache)
|
|
27
|
-
|
|
28
|
-
def process_inputs(self) -> Message:
|
|
29
|
-
thread = self.client.beta.threads.create()
|
|
30
|
-
thread_id = thread.id
|
|
31
|
-
|
|
32
|
-
return Message(text=thread_id)
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import io
|
|
2
|
-
|
|
3
|
-
from dotenv import load_dotenv
|
|
4
|
-
|
|
5
|
-
from langflow.custom.custom_component.component import Component
|
|
6
|
-
from langflow.inputs.inputs import MultilineSecretInput
|
|
7
|
-
from langflow.schema.message import Message
|
|
8
|
-
from langflow.template.field.base import Output
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class Dotenv(Component):
|
|
12
|
-
display_name = "Dotenv"
|
|
13
|
-
description = "Load .env file into env vars"
|
|
14
|
-
icon = "AstraDB"
|
|
15
|
-
inputs = [
|
|
16
|
-
MultilineSecretInput(
|
|
17
|
-
name="dotenv_file_content",
|
|
18
|
-
display_name="Dotenv file content",
|
|
19
|
-
info="Paste the content of your .env file directly, since contents are sensitive, "
|
|
20
|
-
"using a Global variable set as 'password' is recommended",
|
|
21
|
-
)
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
outputs = [
|
|
25
|
-
Output(display_name="env_set", name="env_set", method="process_inputs"),
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
def process_inputs(self) -> Message:
|
|
29
|
-
fake_file = io.StringIO(self.dotenv_file_content)
|
|
30
|
-
result = load_dotenv(stream=fake_file, override=True)
|
|
31
|
-
|
|
32
|
-
message = Message(text="No variables found in .env")
|
|
33
|
-
if result:
|
|
34
|
-
message = Message(text="Loaded .env")
|
|
35
|
-
return message
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
from langflow.base.astra_assistants.util import get_patched_openai_client
|
|
2
|
-
from langflow.custom.custom_component.component_with_cache import ComponentWithCache
|
|
3
|
-
from langflow.inputs.inputs import MultilineInput, StrInput
|
|
4
|
-
from langflow.schema.message import Message
|
|
5
|
-
from langflow.template.field.base import Output
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class AssistantsGetAssistantName(ComponentWithCache):
|
|
9
|
-
display_name = "Get Assistant name"
|
|
10
|
-
description = "Assistant by id"
|
|
11
|
-
icon = "AstraDB"
|
|
12
|
-
inputs = [
|
|
13
|
-
StrInput(
|
|
14
|
-
name="assistant_id",
|
|
15
|
-
display_name="Assistant ID",
|
|
16
|
-
info="ID of the assistant",
|
|
17
|
-
),
|
|
18
|
-
MultilineInput(
|
|
19
|
-
name="env_set",
|
|
20
|
-
display_name="Environment Set",
|
|
21
|
-
info="Dummy input to allow chaining with Dotenv Component.",
|
|
22
|
-
),
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
outputs = [
|
|
26
|
-
Output(display_name="Assistant Name", name="assistant_name", method="process_inputs"),
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
def __init__(self, **kwargs) -> None:
|
|
30
|
-
super().__init__(**kwargs)
|
|
31
|
-
self.client = get_patched_openai_client(self._shared_component_cache)
|
|
32
|
-
|
|
33
|
-
def process_inputs(self) -> Message:
|
|
34
|
-
assistant = self.client.beta.assistants.retrieve(
|
|
35
|
-
assistant_id=self.assistant_id,
|
|
36
|
-
)
|
|
37
|
-
return Message(text=assistant.name)
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
|
|
3
|
-
from langflow.custom.custom_component.component import Component
|
|
4
|
-
from langflow.inputs.inputs import StrInput
|
|
5
|
-
from langflow.schema.message import Message
|
|
6
|
-
from langflow.template.field.base import Output
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class GetEnvVar(Component):
|
|
10
|
-
display_name = "Get Environment Variable"
|
|
11
|
-
description = "Gets the value of an environment variable from the system."
|
|
12
|
-
icon = "AstraDB"
|
|
13
|
-
|
|
14
|
-
inputs = [
|
|
15
|
-
StrInput(
|
|
16
|
-
name="env_var_name",
|
|
17
|
-
display_name="Environment Variable Name",
|
|
18
|
-
info="Name of the environment variable to get",
|
|
19
|
-
)
|
|
20
|
-
]
|
|
21
|
-
|
|
22
|
-
outputs = [
|
|
23
|
-
Output(display_name="Environment Variable Value", name="env_var_value", method="process_inputs"),
|
|
24
|
-
]
|
|
25
|
-
|
|
26
|
-
def process_inputs(self) -> Message:
|
|
27
|
-
if self.env_var_name not in os.environ:
|
|
28
|
-
msg = f"Environment variable {self.env_var_name} not set"
|
|
29
|
-
raise ValueError(msg)
|
|
30
|
-
return Message(text=os.environ[self.env_var_name])
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import inspect
|
|
2
|
-
from abc import ABC
|
|
3
|
-
|
|
4
|
-
import graph_retriever.strategies as strategies_module
|
|
5
|
-
from langchain_graph_retriever import GraphRetriever
|
|
6
|
-
|
|
7
|
-
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
|
8
|
-
from langflow.helpers.data import docs_to_data
|
|
9
|
-
from langflow.inputs.inputs import DropdownInput, HandleInput, MultilineInput, NestedDictInput, StrInput
|
|
10
|
-
from langflow.schema.data import Data
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def traversal_strategies() -> list[str]:
|
|
14
|
-
"""Retrieves a list of class names from the strategies_module.
|
|
15
|
-
|
|
16
|
-
This function uses the `inspect` module to get all the class members
|
|
17
|
-
from the `strategies_module` and returns their names as a list of strings.
|
|
18
|
-
|
|
19
|
-
Returns:
|
|
20
|
-
list[str]: A list of strategy class names.
|
|
21
|
-
"""
|
|
22
|
-
classes = inspect.getmembers(strategies_module, inspect.isclass)
|
|
23
|
-
return [name for name, cls in classes if ABC not in cls.__bases__]
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class GraphRAGComponent(LCVectorStoreComponent):
|
|
27
|
-
"""GraphRAGComponent is a component for performing Graph RAG traversal in a vector store.
|
|
28
|
-
|
|
29
|
-
Attributes:
|
|
30
|
-
display_name (str): The display name of the component.
|
|
31
|
-
description (str): A brief description of the component.
|
|
32
|
-
name (str): The name of the component.
|
|
33
|
-
icon (str): The icon representing the component.
|
|
34
|
-
inputs (list): A list of input configurations for the component.
|
|
35
|
-
|
|
36
|
-
Methods:
|
|
37
|
-
_build_search_args():
|
|
38
|
-
Builds the arguments required for the search operation.
|
|
39
|
-
search_documents() -> list[Data]:
|
|
40
|
-
Searches for documents using the specified strategy, edge definition, and query.
|
|
41
|
-
_edge_definition_from_input() -> tuple:
|
|
42
|
-
Processes the edge definition input and returns it as a tuple.
|
|
43
|
-
"""
|
|
44
|
-
|
|
45
|
-
display_name: str = "Graph RAG"
|
|
46
|
-
description: str = "Graph RAG traversal for vector store."
|
|
47
|
-
name = "Graph RAG"
|
|
48
|
-
icon: str = "AstraDB"
|
|
49
|
-
|
|
50
|
-
inputs = [
|
|
51
|
-
HandleInput(
|
|
52
|
-
name="embedding_model",
|
|
53
|
-
display_name="Embedding Model",
|
|
54
|
-
input_types=["Embeddings"],
|
|
55
|
-
info="Specify the Embedding Model. Not required for Astra Vectorize collections.",
|
|
56
|
-
required=False,
|
|
57
|
-
),
|
|
58
|
-
HandleInput(
|
|
59
|
-
name="vector_store",
|
|
60
|
-
display_name="Vector Store Connection",
|
|
61
|
-
input_types=["VectorStore"],
|
|
62
|
-
info="Connection to Vector Store.",
|
|
63
|
-
),
|
|
64
|
-
StrInput(
|
|
65
|
-
name="edge_definition",
|
|
66
|
-
display_name="Edge Definition",
|
|
67
|
-
info="Edge definition for the graph traversal.",
|
|
68
|
-
),
|
|
69
|
-
DropdownInput(
|
|
70
|
-
name="strategy",
|
|
71
|
-
display_name="Traversal Strategies",
|
|
72
|
-
options=traversal_strategies(),
|
|
73
|
-
),
|
|
74
|
-
MultilineInput(
|
|
75
|
-
name="search_query",
|
|
76
|
-
display_name="Search Query",
|
|
77
|
-
tool_mode=True,
|
|
78
|
-
),
|
|
79
|
-
NestedDictInput(
|
|
80
|
-
name="graphrag_strategy_kwargs",
|
|
81
|
-
display_name="Strategy Parameters",
|
|
82
|
-
info=(
|
|
83
|
-
"Optional dictionary of additional parameters for the retrieval strategy. "
|
|
84
|
-
"Please see https://datastax.github.io/graph-rag/reference/graph_retriever/strategies/ for details."
|
|
85
|
-
),
|
|
86
|
-
advanced=True,
|
|
87
|
-
),
|
|
88
|
-
]
|
|
89
|
-
|
|
90
|
-
def search_documents(self) -> list[Data]:
|
|
91
|
-
"""Searches for documents using the graph retriever based on the selected strategy, edge definition, and query.
|
|
92
|
-
|
|
93
|
-
Returns:
|
|
94
|
-
list[Data]: A list of retrieved documents.
|
|
95
|
-
|
|
96
|
-
Raises:
|
|
97
|
-
AttributeError: If there is an issue with attribute access.
|
|
98
|
-
TypeError: If there is a type mismatch.
|
|
99
|
-
ValueError: If there is a value error.
|
|
100
|
-
"""
|
|
101
|
-
additional_params = self.graphrag_strategy_kwargs or {}
|
|
102
|
-
|
|
103
|
-
# Invoke the graph retriever based on the selected strategy, edge definition, and query
|
|
104
|
-
strategy_class = getattr(strategies_module, self.strategy)
|
|
105
|
-
retriever = GraphRetriever(
|
|
106
|
-
store=self.vector_store,
|
|
107
|
-
edges=[self._evaluate_edge_definition_input()],
|
|
108
|
-
strategy=strategy_class(**additional_params),
|
|
109
|
-
)
|
|
110
|
-
|
|
111
|
-
return docs_to_data(retriever.invoke(self.search_query))
|
|
112
|
-
|
|
113
|
-
def _edge_definition_from_input(self) -> tuple:
|
|
114
|
-
"""Generates the edge definition from the input data.
|
|
115
|
-
|
|
116
|
-
Returns:
|
|
117
|
-
tuple: A tuple representing the edge definition.
|
|
118
|
-
"""
|
|
119
|
-
values = self.edge_definition.split(",")
|
|
120
|
-
values = [value.strip() for value in values]
|
|
121
|
-
|
|
122
|
-
return tuple(values)
|
|
123
|
-
|
|
124
|
-
def _evaluate_edge_definition_input(self) -> tuple:
|
|
125
|
-
from graph_retriever.edges.metadata import Id
|
|
126
|
-
|
|
127
|
-
"""Evaluates the edge definition, converting any function calls from strings.
|
|
128
|
-
|
|
129
|
-
Args:
|
|
130
|
-
edge_definition (tuple): The edge definition to evaluate.
|
|
131
|
-
|
|
132
|
-
Returns:
|
|
133
|
-
tuple: The evaluated edge definition.
|
|
134
|
-
"""
|
|
135
|
-
evaluated_values = []
|
|
136
|
-
for value in self._edge_definition_from_input():
|
|
137
|
-
if value == "Id()":
|
|
138
|
-
evaluated_values.append(Id()) # Evaluate Id() as a function call
|
|
139
|
-
else:
|
|
140
|
-
evaluated_values.append(value)
|
|
141
|
-
return tuple(evaluated_values)
|
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
from langflow.base.vectorstores.model import LCVectorStoreComponent, check_cached_vector_store
|
|
2
|
-
from langflow.helpers.data import docs_to_data
|
|
3
|
-
from langflow.inputs.inputs import DictInput, FloatInput
|
|
4
|
-
from langflow.io import (
|
|
5
|
-
BoolInput,
|
|
6
|
-
DropdownInput,
|
|
7
|
-
HandleInput,
|
|
8
|
-
IntInput,
|
|
9
|
-
MultilineInput,
|
|
10
|
-
SecretStrInput,
|
|
11
|
-
StrInput,
|
|
12
|
-
)
|
|
13
|
-
from langflow.schema.data import Data
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class HCDVectorStoreComponent(LCVectorStoreComponent):
|
|
17
|
-
display_name: str = "Hyper-Converged Database"
|
|
18
|
-
description: str = "Implementation of Vector Store using Hyper-Converged Database (HCD) with search capabilities"
|
|
19
|
-
name = "HCD"
|
|
20
|
-
icon: str = "HCD"
|
|
21
|
-
|
|
22
|
-
inputs = [
|
|
23
|
-
StrInput(
|
|
24
|
-
name="collection_name",
|
|
25
|
-
display_name="Collection Name",
|
|
26
|
-
info="The name of the collection within HCD where the vectors will be stored.",
|
|
27
|
-
required=True,
|
|
28
|
-
),
|
|
29
|
-
StrInput(
|
|
30
|
-
name="username",
|
|
31
|
-
display_name="HCD Username",
|
|
32
|
-
info="Authentication username for accessing HCD.",
|
|
33
|
-
value="hcd-superuser",
|
|
34
|
-
required=True,
|
|
35
|
-
),
|
|
36
|
-
SecretStrInput(
|
|
37
|
-
name="password",
|
|
38
|
-
display_name="HCD Password",
|
|
39
|
-
info="Authentication password for accessing HCD.",
|
|
40
|
-
value="HCD_PASSWORD",
|
|
41
|
-
required=True,
|
|
42
|
-
),
|
|
43
|
-
SecretStrInput(
|
|
44
|
-
name="api_endpoint",
|
|
45
|
-
display_name="HCD API Endpoint",
|
|
46
|
-
info="API endpoint URL for the HCD service.",
|
|
47
|
-
value="HCD_API_ENDPOINT",
|
|
48
|
-
required=True,
|
|
49
|
-
),
|
|
50
|
-
*LCVectorStoreComponent.inputs,
|
|
51
|
-
StrInput(
|
|
52
|
-
name="namespace",
|
|
53
|
-
display_name="Namespace",
|
|
54
|
-
info="Optional namespace within HCD to use for the collection.",
|
|
55
|
-
value="default_namespace",
|
|
56
|
-
advanced=True,
|
|
57
|
-
),
|
|
58
|
-
MultilineInput(
|
|
59
|
-
name="ca_certificate",
|
|
60
|
-
display_name="CA Certificate",
|
|
61
|
-
info="Optional CA certificate for TLS connections to HCD.",
|
|
62
|
-
advanced=True,
|
|
63
|
-
),
|
|
64
|
-
DropdownInput(
|
|
65
|
-
name="metric",
|
|
66
|
-
display_name="Metric",
|
|
67
|
-
info="Optional distance metric for vector comparisons in the vector store.",
|
|
68
|
-
options=["cosine", "dot_product", "euclidean"],
|
|
69
|
-
advanced=True,
|
|
70
|
-
),
|
|
71
|
-
IntInput(
|
|
72
|
-
name="batch_size",
|
|
73
|
-
display_name="Batch Size",
|
|
74
|
-
info="Optional number of data to process in a single batch.",
|
|
75
|
-
advanced=True,
|
|
76
|
-
),
|
|
77
|
-
IntInput(
|
|
78
|
-
name="bulk_insert_batch_concurrency",
|
|
79
|
-
display_name="Bulk Insert Batch Concurrency",
|
|
80
|
-
info="Optional concurrency level for bulk insert operations.",
|
|
81
|
-
advanced=True,
|
|
82
|
-
),
|
|
83
|
-
IntInput(
|
|
84
|
-
name="bulk_insert_overwrite_concurrency",
|
|
85
|
-
display_name="Bulk Insert Overwrite Concurrency",
|
|
86
|
-
info="Optional concurrency level for bulk insert operations that overwrite existing data.",
|
|
87
|
-
advanced=True,
|
|
88
|
-
),
|
|
89
|
-
IntInput(
|
|
90
|
-
name="bulk_delete_concurrency",
|
|
91
|
-
display_name="Bulk Delete Concurrency",
|
|
92
|
-
info="Optional concurrency level for bulk delete operations.",
|
|
93
|
-
advanced=True,
|
|
94
|
-
),
|
|
95
|
-
DropdownInput(
|
|
96
|
-
name="setup_mode",
|
|
97
|
-
display_name="Setup Mode",
|
|
98
|
-
info="Configuration mode for setting up the vector store, with options like 'Sync', 'Async', or 'Off'.",
|
|
99
|
-
options=["Sync", "Async", "Off"],
|
|
100
|
-
advanced=True,
|
|
101
|
-
value="Sync",
|
|
102
|
-
),
|
|
103
|
-
BoolInput(
|
|
104
|
-
name="pre_delete_collection",
|
|
105
|
-
display_name="Pre Delete Collection",
|
|
106
|
-
info="Boolean flag to determine whether to delete the collection before creating a new one.",
|
|
107
|
-
advanced=True,
|
|
108
|
-
),
|
|
109
|
-
StrInput(
|
|
110
|
-
name="metadata_indexing_include",
|
|
111
|
-
display_name="Metadata Indexing Include",
|
|
112
|
-
info="Optional list of metadata fields to include in the indexing.",
|
|
113
|
-
advanced=True,
|
|
114
|
-
),
|
|
115
|
-
HandleInput(
|
|
116
|
-
name="embedding",
|
|
117
|
-
display_name="Embedding or Astra Vectorize",
|
|
118
|
-
input_types=["Embeddings", "dict"],
|
|
119
|
-
# TODO: This should be optional, but need to refactor langchain-astradb first.
|
|
120
|
-
info="Allows either an embedding model or an Astra Vectorize configuration.",
|
|
121
|
-
),
|
|
122
|
-
StrInput(
|
|
123
|
-
name="metadata_indexing_exclude",
|
|
124
|
-
display_name="Metadata Indexing Exclude",
|
|
125
|
-
info="Optional list of metadata fields to exclude from the indexing.",
|
|
126
|
-
advanced=True,
|
|
127
|
-
),
|
|
128
|
-
StrInput(
|
|
129
|
-
name="collection_indexing_policy",
|
|
130
|
-
display_name="Collection Indexing Policy",
|
|
131
|
-
info="Optional dictionary defining the indexing policy for the collection.",
|
|
132
|
-
advanced=True,
|
|
133
|
-
),
|
|
134
|
-
IntInput(
|
|
135
|
-
name="number_of_results",
|
|
136
|
-
display_name="Number of Results",
|
|
137
|
-
info="Number of results to return.",
|
|
138
|
-
advanced=True,
|
|
139
|
-
value=4,
|
|
140
|
-
),
|
|
141
|
-
DropdownInput(
|
|
142
|
-
name="search_type",
|
|
143
|
-
display_name="Search Type",
|
|
144
|
-
info="Search type to use",
|
|
145
|
-
options=["Similarity", "Similarity with score threshold", "MMR (Max Marginal Relevance)"],
|
|
146
|
-
value="Similarity",
|
|
147
|
-
advanced=True,
|
|
148
|
-
),
|
|
149
|
-
FloatInput(
|
|
150
|
-
name="search_score_threshold",
|
|
151
|
-
display_name="Search Score Threshold",
|
|
152
|
-
info="Minimum similarity score threshold for search results. "
|
|
153
|
-
"(when using 'Similarity with score threshold')",
|
|
154
|
-
value=0,
|
|
155
|
-
advanced=True,
|
|
156
|
-
),
|
|
157
|
-
DictInput(
|
|
158
|
-
name="search_filter",
|
|
159
|
-
display_name="Search Metadata Filter",
|
|
160
|
-
info="Optional dictionary of filters to apply to the search query.",
|
|
161
|
-
advanced=True,
|
|
162
|
-
is_list=True,
|
|
163
|
-
),
|
|
164
|
-
]
|
|
165
|
-
|
|
166
|
-
@check_cached_vector_store
|
|
167
|
-
def build_vector_store(self):
|
|
168
|
-
try:
|
|
169
|
-
from langchain_astradb import AstraDBVectorStore
|
|
170
|
-
from langchain_astradb.utils.astradb import SetupMode
|
|
171
|
-
except ImportError as e:
|
|
172
|
-
msg = (
|
|
173
|
-
"Could not import langchain Astra DB integration package. "
|
|
174
|
-
"Please install it with `pip install langchain-astradb`."
|
|
175
|
-
)
|
|
176
|
-
raise ImportError(msg) from e
|
|
177
|
-
|
|
178
|
-
try:
|
|
179
|
-
from astrapy.authentication import UsernamePasswordTokenProvider
|
|
180
|
-
from astrapy.constants import Environment
|
|
181
|
-
except ImportError as e:
|
|
182
|
-
msg = "Could not import astrapy integration package. Please install it with `pip install astrapy`."
|
|
183
|
-
raise ImportError(msg) from e
|
|
184
|
-
|
|
185
|
-
try:
|
|
186
|
-
if not self.setup_mode:
|
|
187
|
-
self.setup_mode = self._inputs["setup_mode"].options[0]
|
|
188
|
-
|
|
189
|
-
setup_mode_value = SetupMode[self.setup_mode.upper()]
|
|
190
|
-
except KeyError as e:
|
|
191
|
-
msg = f"Invalid setup mode: {self.setup_mode}"
|
|
192
|
-
raise ValueError(msg) from e
|
|
193
|
-
|
|
194
|
-
if not isinstance(self.embedding, dict):
|
|
195
|
-
embedding_dict = {"embedding": self.embedding}
|
|
196
|
-
else:
|
|
197
|
-
from astrapy.info import VectorServiceOptions
|
|
198
|
-
|
|
199
|
-
dict_options = self.embedding.get("collection_vector_service_options", {})
|
|
200
|
-
dict_options["authentication"] = {
|
|
201
|
-
k: v for k, v in dict_options.get("authentication", {}).items() if k and v
|
|
202
|
-
}
|
|
203
|
-
dict_options["parameters"] = {k: v for k, v in dict_options.get("parameters", {}).items() if k and v}
|
|
204
|
-
embedding_dict = {"collection_vector_service_options": VectorServiceOptions.from_dict(dict_options)}
|
|
205
|
-
collection_embedding_api_key = self.embedding.get("collection_embedding_api_key")
|
|
206
|
-
if collection_embedding_api_key:
|
|
207
|
-
embedding_dict["collection_embedding_api_key"] = collection_embedding_api_key
|
|
208
|
-
|
|
209
|
-
token_provider = UsernamePasswordTokenProvider(self.username, self.password)
|
|
210
|
-
vector_store_kwargs = {
|
|
211
|
-
**embedding_dict,
|
|
212
|
-
"collection_name": self.collection_name,
|
|
213
|
-
"token": token_provider,
|
|
214
|
-
"api_endpoint": self.api_endpoint,
|
|
215
|
-
"namespace": self.namespace,
|
|
216
|
-
"metric": self.metric or None,
|
|
217
|
-
"batch_size": self.batch_size or None,
|
|
218
|
-
"bulk_insert_batch_concurrency": self.bulk_insert_batch_concurrency or None,
|
|
219
|
-
"bulk_insert_overwrite_concurrency": self.bulk_insert_overwrite_concurrency or None,
|
|
220
|
-
"bulk_delete_concurrency": self.bulk_delete_concurrency or None,
|
|
221
|
-
"setup_mode": setup_mode_value,
|
|
222
|
-
"pre_delete_collection": self.pre_delete_collection or False,
|
|
223
|
-
"environment": Environment.HCD,
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
if self.metadata_indexing_include:
|
|
227
|
-
vector_store_kwargs["metadata_indexing_include"] = self.metadata_indexing_include
|
|
228
|
-
elif self.metadata_indexing_exclude:
|
|
229
|
-
vector_store_kwargs["metadata_indexing_exclude"] = self.metadata_indexing_exclude
|
|
230
|
-
elif self.collection_indexing_policy:
|
|
231
|
-
vector_store_kwargs["collection_indexing_policy"] = self.collection_indexing_policy
|
|
232
|
-
|
|
233
|
-
try:
|
|
234
|
-
vector_store = AstraDBVectorStore(**vector_store_kwargs)
|
|
235
|
-
except Exception as e:
|
|
236
|
-
msg = f"Error initializing AstraDBVectorStore: {e}"
|
|
237
|
-
raise ValueError(msg) from e
|
|
238
|
-
|
|
239
|
-
self._add_documents_to_vector_store(vector_store)
|
|
240
|
-
return vector_store
|
|
241
|
-
|
|
242
|
-
def _add_documents_to_vector_store(self, vector_store) -> None:
|
|
243
|
-
# Convert DataFrame to Data if needed using parent's method
|
|
244
|
-
self.ingest_data = self._prepare_ingest_data()
|
|
245
|
-
|
|
246
|
-
documents = []
|
|
247
|
-
for _input in self.ingest_data or []:
|
|
248
|
-
if isinstance(_input, Data):
|
|
249
|
-
documents.append(_input.to_lc_document())
|
|
250
|
-
else:
|
|
251
|
-
msg = "Vector Store Inputs must be Data objects."
|
|
252
|
-
raise TypeError(msg)
|
|
253
|
-
|
|
254
|
-
if documents:
|
|
255
|
-
self.log(f"Adding {len(documents)} documents to the Vector Store.")
|
|
256
|
-
try:
|
|
257
|
-
vector_store.add_documents(documents)
|
|
258
|
-
except Exception as e:
|
|
259
|
-
msg = f"Error adding documents to AstraDBVectorStore: {e}"
|
|
260
|
-
raise ValueError(msg) from e
|
|
261
|
-
else:
|
|
262
|
-
self.log("No documents to add to the Vector Store.")
|
|
263
|
-
|
|
264
|
-
def _map_search_type(self) -> str:
|
|
265
|
-
if self.search_type == "Similarity with score threshold":
|
|
266
|
-
return "similarity_score_threshold"
|
|
267
|
-
if self.search_type == "MMR (Max Marginal Relevance)":
|
|
268
|
-
return "mmr"
|
|
269
|
-
return "similarity"
|
|
270
|
-
|
|
271
|
-
def _build_search_args(self):
|
|
272
|
-
args = {
|
|
273
|
-
"k": self.number_of_results,
|
|
274
|
-
"score_threshold": self.search_score_threshold,
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
if self.search_filter:
|
|
278
|
-
clean_filter = {k: v for k, v in self.search_filter.items() if k and v}
|
|
279
|
-
if len(clean_filter) > 0:
|
|
280
|
-
args["filter"] = clean_filter
|
|
281
|
-
return args
|
|
282
|
-
|
|
283
|
-
def search_documents(self) -> list[Data]:
|
|
284
|
-
vector_store = self.build_vector_store()
|
|
285
|
-
|
|
286
|
-
self.log(f"Search query: {self.search_query}")
|
|
287
|
-
self.log(f"Search type: {self.search_type}")
|
|
288
|
-
self.log(f"Number of results: {self.number_of_results}")
|
|
289
|
-
|
|
290
|
-
if self.search_query and isinstance(self.search_query, str) and self.search_query.strip():
|
|
291
|
-
try:
|
|
292
|
-
search_type = self._map_search_type()
|
|
293
|
-
search_args = self._build_search_args()
|
|
294
|
-
|
|
295
|
-
docs = vector_store.search(query=self.search_query, search_type=search_type, **search_args)
|
|
296
|
-
except Exception as e:
|
|
297
|
-
msg = f"Error performing search in AstraDBVectorStore: {e}"
|
|
298
|
-
raise ValueError(msg) from e
|
|
299
|
-
|
|
300
|
-
self.log(f"Retrieved documents: {len(docs)}")
|
|
301
|
-
|
|
302
|
-
data = docs_to_data(docs)
|
|
303
|
-
self.log(f"Converted documents to data: {len(data)}")
|
|
304
|
-
self.status = data
|
|
305
|
-
return data
|
|
306
|
-
self.log("No search input provided. Skipping search.")
|
|
307
|
-
return []
|
|
308
|
-
|
|
309
|
-
def get_retriever_kwargs(self):
|
|
310
|
-
search_args = self._build_search_args()
|
|
311
|
-
return {
|
|
312
|
-
"search_type": self._map_search_type(),
|
|
313
|
-
"search_kwargs": search_args,
|
|
314
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
from langflow.base.astra_assistants.util import get_patched_openai_client
|
|
2
|
-
from langflow.custom.custom_component.component_with_cache import ComponentWithCache
|
|
3
|
-
from langflow.schema.message import Message
|
|
4
|
-
from langflow.template.field.base import Output
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class AssistantsListAssistants(ComponentWithCache):
|
|
8
|
-
display_name = "List Assistants"
|
|
9
|
-
description = "Returns a list of assistant id's"
|
|
10
|
-
icon = "AstraDB"
|
|
11
|
-
outputs = [
|
|
12
|
-
Output(display_name="Assistants", name="assistants", method="process_inputs"),
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
def __init__(self, **kwargs) -> None:
|
|
16
|
-
super().__init__(**kwargs)
|
|
17
|
-
self.client = get_patched_openai_client(self._shared_component_cache)
|
|
18
|
-
|
|
19
|
-
def process_inputs(self) -> Message:
|
|
20
|
-
assistants = self.client.beta.assistants.list().data
|
|
21
|
-
id_list = [assistant.id for assistant in assistants]
|
|
22
|
-
return Message(
|
|
23
|
-
# get text from list
|
|
24
|
-
text="\n".join(id_list)
|
|
25
|
-
)
|