feat: add module and code hash to component's metadata (#8737)
* feat: filter out base components path in custom component loading * revert changes to allow testing the function * feat: add module_name parameter to custom component template functions * feat: include full module name in component template creation * feat: add module metadata to various starter project JSON files * feat: add code hash generation for custom component templates * test: add unit tests for code hash and module metadata functionality * feat: add code hash to metadata in various starter project JSON files * feat: refactor code hash generation to accept source code and class name * feat: implement loading strategy for custom components in settings service * Update metadata for various starter project JSON files to include code hashes and module references for ChatInput and ChatOutput components. This enhances traceability and consistency across the project configurations. * refactor: improve _generate_code_hash function for better error handling and clarity - Simplified the logic to generate a SHA256 hash of the source code. - Added explicit error handling for empty source code, encoding issues, and type errors. - Updated docstring to reflect changes in argument descriptions and added information about raised exceptions. * test: add unit tests for metadata functionality in custom utils - Introduced tests for the _generate_code_hash function, covering basic hash generation, error handling for empty and None source, hash consistency, and uniqueness for different code. - Added tests to verify metadata addition in template building functions, ensuring that module names and code hashes are correctly included in the metadata of custom components. --------- Co-authored-by: Edwin Jose <edwin.jose@datastax.com>
This commit is contained in:
parent
d9f3ced8b0
commit
ca595ac7fb
35 changed files with 863 additions and 165 deletions
|
|
@ -2,6 +2,7 @@
|
|||
import ast
|
||||
import asyncio
|
||||
import contextlib
|
||||
import hashlib
|
||||
import inspect
|
||||
import re
|
||||
import traceback
|
||||
|
|
@ -32,6 +33,30 @@ from langflow.utils import validate
|
|||
from langflow.utils.util import get_base_classes
|
||||
|
||||
|
||||
def _generate_code_hash(source_code: str, modname: str, class_name: str) -> str:
|
||||
"""Generate a hash of the component source code.
|
||||
|
||||
Args:
|
||||
source_code: The source code string
|
||||
modname: The module name for context
|
||||
class_name: The class name for context
|
||||
|
||||
Returns:
|
||||
SHA256 hash of the source code
|
||||
|
||||
Raises:
|
||||
ValueError: If source_code is empty or None
|
||||
UnicodeEncodeError: If source_code cannot be encoded
|
||||
TypeError: If source_code is not a string
|
||||
"""
|
||||
if not source_code:
|
||||
msg = f"Empty source code for {class_name} in {modname}"
|
||||
raise ValueError(msg)
|
||||
|
||||
# Generate SHA256 hash of the source code
|
||||
return hashlib.sha256(source_code.encode("utf-8")).hexdigest()[:12] # First 12 chars for brevity
|
||||
|
||||
|
||||
class UpdateBuildConfigError(Exception):
|
||||
pass
|
||||
|
||||
|
|
@ -415,7 +440,7 @@ def add_code_field_to_build_config(build_config: dict, raw_code: str):
|
|||
|
||||
|
||||
def build_custom_component_template_from_inputs(
|
||||
custom_component: Component | CustomComponent, user_id: str | UUID | None = None
|
||||
custom_component: Component | CustomComponent, user_id: str | UUID | None = None, module_name: str | None = None
|
||||
):
|
||||
# The List of Inputs fills the role of the build_config and the entrypoint_args
|
||||
"""Builds a frontend node template from a custom component using its input-based configuration.
|
||||
|
|
@ -452,6 +477,13 @@ def build_custom_component_template_from_inputs(
|
|||
# ! This should be removed when we have a better way to handle this
|
||||
frontend_node.set_base_classes_from_outputs()
|
||||
reorder_fields(frontend_node, cc_instance._get_field_order())
|
||||
if module_name:
|
||||
frontend_node.metadata["module"] = module_name
|
||||
|
||||
# Generate code hash for cache invalidation and debugging
|
||||
code_hash = _generate_code_hash(custom_component._code, module_name, ctype_name)
|
||||
if code_hash:
|
||||
frontend_node.metadata["code_hash"] = code_hash
|
||||
|
||||
return frontend_node.to_dict(keep_name=False), cc_instance
|
||||
|
||||
|
|
@ -459,6 +491,7 @@ def build_custom_component_template_from_inputs(
|
|||
def build_custom_component_template(
|
||||
custom_component: CustomComponent,
|
||||
user_id: str | UUID | None = None,
|
||||
module_name: str | None = None,
|
||||
) -> tuple[dict[str, Any], CustomComponent | Component]:
|
||||
"""Builds a frontend node template and instance for a custom component.
|
||||
|
||||
|
|
@ -490,7 +523,9 @@ def build_custom_component_template(
|
|||
)
|
||||
try:
|
||||
if "inputs" in custom_component.template_config:
|
||||
return build_custom_component_template_from_inputs(custom_component, user_id=user_id)
|
||||
return build_custom_component_template_from_inputs(
|
||||
custom_component, user_id=user_id, module_name=module_name
|
||||
)
|
||||
frontend_node = CustomComponentFrontendNode(**custom_component.template_config)
|
||||
|
||||
field_config, custom_instance = run_build_config(
|
||||
|
|
@ -509,6 +544,14 @@ def build_custom_component_template(
|
|||
|
||||
reorder_fields(frontend_node, custom_instance._get_field_order())
|
||||
|
||||
if module_name:
|
||||
frontend_node.metadata["module"] = module_name
|
||||
|
||||
# Generate code hash for cache invalidation and debugging
|
||||
code_hash = _generate_code_hash(custom_component._code, module_name, custom_component.__class__.__name__)
|
||||
if code_hash:
|
||||
frontend_node.metadata["code_hash"] = code_hash
|
||||
|
||||
return frontend_node.to_dict(keep_name=False), custom_instance
|
||||
except Exception as exc:
|
||||
if isinstance(exc, HTTPException):
|
||||
|
|
@ -525,6 +568,7 @@ def build_custom_component_template(
|
|||
def create_component_template(
|
||||
component: dict | None = None,
|
||||
component_extractor: Component | CustomComponent | None = None,
|
||||
module_name: str | None = None,
|
||||
):
|
||||
"""Creates a component template and instance from either a component dictionary or an existing component extractor.
|
||||
|
||||
|
|
@ -539,7 +583,9 @@ def create_component_template(
|
|||
|
||||
component_extractor = Component(_code=component_code)
|
||||
|
||||
component_template, component_instance = build_custom_component_template(component_extractor)
|
||||
component_template, component_instance = build_custom_component_template(
|
||||
component_extractor, module_name=module_name
|
||||
)
|
||||
if not component_template["output_types"] and component_output_types:
|
||||
component_template["output_types"] = component_output_types
|
||||
|
||||
|
|
|
|||
|
|
@ -361,7 +361,10 @@
|
|||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.5.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -659,7 +662,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.5.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -116,7 +116,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -402,7 +405,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -608,7 +614,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -176,7 +176,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -348,7 +351,10 @@
|
|||
"icon": "type",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "efdcba3771af",
|
||||
"module": "langflow.components.input_output.text.TextInputComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -461,7 +467,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -781,7 +790,10 @@
|
|||
"key": "ParserComponent",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "556209520650",
|
||||
"module": "langflow.components.processing.parser.ParserComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -965,7 +977,10 @@
|
|||
"key": "URLComponent",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "a81817a7f244",
|
||||
"module": "langflow.components.data.url.URLComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -236,7 +236,10 @@
|
|||
"icon": "message-square-more",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "5ca89b168f3f",
|
||||
"module": "langflow.components.helpers.memory.MemoryComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -559,7 +562,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -1918,7 +1924,10 @@
|
|||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -2232,7 +2241,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -146,7 +146,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -438,7 +441,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -778,7 +784,10 @@
|
|||
"is_output": null,
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"name": "",
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1226,7 +1235,10 @@
|
|||
"icon": "file-text",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "0c57c835f136",
|
||||
"module": "langflow.components.data.file.FileComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -149,7 +149,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -461,7 +464,10 @@
|
|||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1286,7 +1292,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ad2a6f4552c0",
|
||||
"module": "langflow.components.processing.structured_output.StructuredOutputComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -204,7 +204,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -511,7 +514,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "556209520650",
|
||||
"module": "langflow.components.processing.parser.ParserComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -690,7 +696,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -992,7 +1001,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "556209520650",
|
||||
"module": "langflow.components.processing.parser.ParserComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1185,7 +1197,10 @@
|
|||
"icon": "AstraDB",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "38a337e89ff4",
|
||||
"module": "langflow.components.vectorstores.astradb.AstraDBVectorStoreComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -2566,7 +2581,10 @@
|
|||
"frozen": false,
|
||||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ad2a6f4552c0",
|
||||
"module": "langflow.components.processing.structured_output.StructuredOutputComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -233,7 +233,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -538,7 +541,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -871,7 +877,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -999,7 +1008,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ad2a6f4552c0",
|
||||
"module": "langflow.components.processing.structured_output.StructuredOutputComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -290,7 +290,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.1",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -585,7 +588,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.0.19.post2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -756,7 +762,10 @@
|
|||
"icon": "type",
|
||||
"legacy": false,
|
||||
"lf_version": "1.0.19.post2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "efdcba3771af",
|
||||
"module": "langflow.components.input_output.text.TextInputComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -868,7 +877,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.0.19.post2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -1025,7 +1037,10 @@
|
|||
"frozen": false,
|
||||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -1326,7 +1341,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.0.19.post2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -1541,7 +1559,10 @@
|
|||
"frozen": false,
|
||||
"icon": "TavilyIcon",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6843645056d9",
|
||||
"module": "langflow.components.tavily.tavily_search.TavilySearchComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -170,7 +170,10 @@
|
|||
"is_input": null,
|
||||
"is_output": null,
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"name": "",
|
||||
"output_types": [],
|
||||
|
|
@ -301,7 +304,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -662,7 +668,10 @@
|
|||
"icon": "Needle",
|
||||
"key": "needle",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "57d868cb067b",
|
||||
"module": "langflow.components.needle.needle.NeedleComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -867,7 +876,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -195,7 +195,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -493,7 +496,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -832,7 +838,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ad2a6f4552c0",
|
||||
"module": "langflow.components.processing.structured_output.StructuredOutputComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1180,7 +1189,10 @@
|
|||
"icon": "TavilyIcon",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6843645056d9",
|
||||
"module": "langflow.components.tavily.tavily_search.TavilySearchComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -313,7 +313,10 @@
|
|||
"icon": "AssemblyAI",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6fd1a65a4904",
|
||||
"module": "langflow.components.assemblyai.assemblyai_poll_transcript.AssemblyAITranscriptionJobPoller"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -466,7 +469,10 @@
|
|||
"is_output": null,
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"name": "",
|
||||
"output_types": [],
|
||||
|
|
@ -619,7 +625,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -921,7 +930,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.1",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1223,7 +1235,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1526,7 +1541,10 @@
|
|||
"is_output": null,
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"name": "",
|
||||
"output_types": [],
|
||||
|
|
@ -1699,7 +1717,10 @@
|
|||
"icon": "message-square-more",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "5ca89b168f3f",
|
||||
"module": "langflow.components.helpers.memory.MemoryComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -2026,7 +2047,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.1.5",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -2441,7 +2465,10 @@
|
|||
"icon": "AssemblyAI",
|
||||
"key": "AssemblyAITranscriptionJobCreator",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "03525d13fcc0",
|
||||
"module": "langflow.components.assemblyai.assemblyai_start_transcript.AssemblyAITranscriptionJobCreator"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -147,7 +147,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -453,7 +456,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -791,7 +797,10 @@
|
|||
"is_output": null,
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"name": "",
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -949,7 +958,10 @@
|
|||
"key": "Memory",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "5ca89b168f3f",
|
||||
"module": "langflow.components.helpers.memory.MemoryComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -204,7 +204,10 @@
|
|||
"icon": "AgentQL",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ce845cc47ae8",
|
||||
"module": "langflow.components.agentql.agentql_api.AgentQL"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -557,7 +560,10 @@
|
|||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -896,7 +902,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1198,7 +1207,10 @@
|
|||
"icon": "save",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f244023207e",
|
||||
"module": "langflow.components.processing.save_file.SaveToFileComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -231,7 +231,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -544,7 +547,10 @@
|
|||
"icon": "MessagesSquare",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1882,7 +1888,10 @@
|
|||
"icon": "binary",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "93faf11517da",
|
||||
"module": "langflow.components.models.embedding_model.EmbeddingModelComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -2172,7 +2181,10 @@
|
|||
"icon": "FAISS",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ed38680af3a6",
|
||||
"module": "langflow.components.vectorstores.faiss.FaissVectorStoreComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -2505,7 +2517,10 @@
|
|||
"key": "MCPTools",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "d134bdfe1fc3",
|
||||
"module": "langflow.components.agents.mcp_component.MCPToolsComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -111,7 +111,10 @@
|
|||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -425,7 +428,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -824,7 +830,10 @@
|
|||
"icon": "Globe",
|
||||
"key": "APIRequest",
|
||||
"legacy": false,
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "a648ad26f226",
|
||||
"module": "langflow.components.data.api_request.APIRequestComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -191,7 +191,10 @@
|
|||
"key": "TextInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "efdcba3771af",
|
||||
"module": "langflow.components.input_output.text.TextInputComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -307,7 +310,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -759,7 +765,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.2.0",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ad2a6f4552c0",
|
||||
"module": "langflow.components.processing.structured_output.StructuredOutputComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -136,7 +136,10 @@
|
|||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.3.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -449,7 +452,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.3.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -760,7 +766,10 @@
|
|||
"icon": "TavilyIcon",
|
||||
"legacy": false,
|
||||
"lf_version": "1.3.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6843645056d9",
|
||||
"module": "langflow.components.tavily.tavily_search.TavilySearchComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1158,7 +1167,10 @@
|
|||
"icon": "AgentQL",
|
||||
"legacy": false,
|
||||
"lf_version": "1.3.2",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "ce845cc47ae8",
|
||||
"module": "langflow.components.agentql.agentql_api.AgentQL"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
|
|
@ -315,7 +315,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -473,7 +476,10 @@
|
|||
"key": "ChatInput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "192913db3453",
|
||||
"module": "langflow.components.input_output.chat.ChatInput"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -768,7 +774,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -980,7 +989,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -1109,7 +1121,10 @@
|
|||
"icon": "braces",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "3bf0b511e227",
|
||||
"module": "langflow.components.prompts.prompt.PromptComponent"
|
||||
},
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
{
|
||||
|
|
@ -1242,7 +1257,10 @@
|
|||
"icon": "TavilyIcon",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6843645056d9",
|
||||
"module": "langflow.components.tavily.tavily_search.TavilySearchComponent"
|
||||
},
|
||||
"minimized": false,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
@ -1640,7 +1658,10 @@
|
|||
"key": "ChatOutput",
|
||||
"legacy": false,
|
||||
"lf_version": "1.4.3",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"code_hash": "6f74e04e39d5",
|
||||
"module": "langflow.components.input_output.chat_output.ChatOutput"
|
||||
},
|
||||
"minimized": true,
|
||||
"output_types": [],
|
||||
"outputs": [
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue