refactor: Replace StrInput with MessageInput for input_value in model components

This commit is contained in:
ogabrielluiz 2024-06-17 13:01:02 -03:00
commit c71c442b82
9 changed files with 51 additions and 20 deletions

View file

@ -1,17 +1,21 @@
from langchain_community.chat_models.bedrock import BedrockChat from langchain_community.chat_models.bedrock import BedrockChat
from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, DictInput, DropdownInput, StrInput from langflow.inputs import BoolInput, DictInput, DropdownInput, StrInput
from langflow.inputs import MessageInput
from langflow.template import Output from langflow.template import Output
class AmazonBedrockComponent(LCModelComponent): class AmazonBedrockComponent(LCModelComponent):
display_name: str = "Amazon Bedrock" display_name: str = "Amazon Bedrock"
description: str = "Generate text using Amazon Bedrock LLMs." description: str = "Generate text using Amazon Bedrock LLMs."
icon = "Amazon" icon = "Amazon"
inputs = [ inputs = [
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
DropdownInput( DropdownInput(
name="model_id", name="model_id",
display_name="Model Id", display_name="Model Id",

View file

@ -6,6 +6,8 @@ from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, DropdownInput, FloatInput, IntInput, StrInput from langflow.inputs import BoolInput, DropdownInput, FloatInput, IntInput, StrInput
from langflow.template import Output from langflow.template import Output
from langflow.inputs import MessageInput
class AzureChatOpenAIComponent(LCModelComponent): class AzureChatOpenAIComponent(LCModelComponent):
display_name: str = "Azure OpenAI" display_name: str = "Azure OpenAI"
@ -64,7 +66,7 @@ class AzureChatOpenAIComponent(LCModelComponent):
advanced=True, advanced=True,
info="The maximum number of tokens to generate. Set to 0 for unlimited tokens.", info="The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
), ),
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True), BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True),
StrInput( StrInput(
name="system_message", name="system_message",

View file

@ -1,11 +1,13 @@
from typing import Optional from typing import Optional
from langchain_community.chat_models.litellm import ChatLiteLLM, ChatLiteLLMException from langchain_community.chat_models.litellm import ChatLiteLLM, ChatLiteLLMException
from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, DictInput, DropdownInput, FloatInput, IntInput, StrInput from langflow.inputs import BoolInput, DictInput, DropdownInput, FloatInput, IntInput, StrInput
from langflow.template import Output from langflow.template import Output
from langflow.inputs import MessageInput
class ChatLiteLLMModelComponent(LCModelComponent): class ChatLiteLLMModelComponent(LCModelComponent):
@ -15,7 +17,7 @@ class ChatLiteLLMModelComponent(LCModelComponent):
icon = "LiteLLM" icon = "LiteLLM"
inputs = [ inputs = [
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
StrInput( StrInput(
name="model", name="model",
display_name="Model name", display_name="Model name",
@ -177,4 +179,3 @@ class ChatLiteLLMModelComponent(LCModelComponent):
) )
return output return output

View file

@ -1,10 +1,13 @@
from langchain_cohere import ChatCohere from langchain_cohere import ChatCohere
from pydantic.v1 import SecretStr from pydantic.v1 import SecretStr
from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, FloatInput, IntInput, SecretStrInput, StrInput from langflow.inputs import BoolInput, FloatInput, IntInput, SecretStrInput, StrInput
from langflow.template import Output from langflow.template import Output
from langflow.inputs import MessageInput
class CohereComponent(LCModelComponent): class CohereComponent(LCModelComponent):
display_name = "Cohere" display_name = "Cohere"
@ -27,7 +30,7 @@ class CohereComponent(LCModelComponent):
info="The maximum number of tokens to generate. Set to 0 for unlimited tokens.", info="The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
), ),
FloatInput(name="temperature", display_name="Temperature", value=0.75), FloatInput(name="temperature", display_name="Temperature", value=0.75),
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True), BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True),
StrInput( StrInput(
name="system_message", name="system_message",
@ -67,4 +70,3 @@ class CohereComponent(LCModelComponent):
) )
return output return output

View file

@ -4,9 +4,13 @@ from pydantic.v1 import SecretStr
from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, FloatInput, IntInput, SecretStrInput, StrInput, DropdownInput from langflow.inputs import BoolInput, DropdownInput, FloatInput, IntInput, SecretStrInput, StrInput
from langflow.template import Output from langflow.template import Output
from langflow.inputs import MessageInput
class GoogleGenerativeAIComponent(LCModelComponent): class GoogleGenerativeAIComponent(LCModelComponent):
display_name: str = "Google Generative AI" display_name: str = "Google Generative AI"
description: str = "Generate text using Google Generative AI." description: str = "Generate text using Google Generative AI."
@ -55,7 +59,12 @@ class GoogleGenerativeAIComponent(LCModelComponent):
info="Number of chat completions to generate for each prompt. Note that the API may not return the full n completions if duplicates are generated.", info="Number of chat completions to generate for each prompt. Note that the API may not return the full n completions if duplicates are generated.",
advanced=True, advanced=True,
), ),
StrInput(name="input_value", display_name="Input", info="The input to the model.", input_types=["Text", "Data", "Prompt"]), MessageInput(
name="input_value",
display_name="Input",
info="The input to the model.",
input_types=["Text", "Data", "Prompt"],
),
BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True), BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True),
StrInput( StrInput(
name="system_message", name="system_message",
@ -97,4 +106,4 @@ class GoogleGenerativeAIComponent(LCModelComponent):
google_api_key=SecretStr(google_api_key), google_api_key=SecretStr(google_api_key),
) )
return output return output

View file

@ -1,4 +1,3 @@
from langchain_community.chat_models.huggingface import ChatHuggingFace from langchain_community.chat_models.huggingface import ChatHuggingFace
from langchain_community.llms.huggingface_endpoint import HuggingFaceEndpoint from langchain_community.llms.huggingface_endpoint import HuggingFaceEndpoint
@ -7,6 +6,7 @@ from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, DictInput, DropdownInput, SecretStrInput, StrInput from langflow.inputs import BoolInput, DictInput, DropdownInput, SecretStrInput, StrInput
from langflow.template import Output from langflow.template import Output
from langflow.inputs import MessageInput
class HuggingFaceEndpointsComponent(LCModelComponent): class HuggingFaceEndpointsComponent(LCModelComponent):
@ -15,7 +15,7 @@ class HuggingFaceEndpointsComponent(LCModelComponent):
icon = "HuggingFace" icon = "HuggingFace"
inputs = [ inputs = [
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
SecretStrInput(name="endpoint_url", display_name="Endpoint URL", password=True), SecretStrInput(name="endpoint_url", display_name="Endpoint URL", password=True),
DropdownInput( DropdownInput(
name="task", name="task",

View file

@ -4,16 +4,20 @@ from pydantic.v1 import SecretStr
from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, FloatInput, IntInput, SecretStrInput, StrInput, DropdownInput from langflow.inputs import BoolInput, DropdownInput, FloatInput, IntInput, SecretStrInput, StrInput
from langflow.template import Output from langflow.template import Output
from langflow.inputs import MessageInput
class MistralAIModelComponent(LCModelComponent): class MistralAIModelComponent(LCModelComponent):
display_name = "MistralAI" display_name = "MistralAI"
description = "Generates text using MistralAI LLMs." description = "Generates text using MistralAI LLMs."
icon = "MistralAI" icon = "MistralAI"
inputs = [ inputs = [
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
IntInput( IntInput(
name="max_tokens", name="max_tokens",
display_name="Max Tokens", display_name="Max Tokens",
@ -111,4 +115,4 @@ class MistralAIModelComponent(LCModelComponent):
safe_mode=safe_mode, safe_mode=safe_mode,
) )
return output return output

View file

@ -5,18 +5,26 @@ from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent from langflow.base.models.model import LCModelComponent
from langflow.base.models.openai_constants import MODEL_NAMES from langflow.base.models.openai_constants import MODEL_NAMES
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, DictInput, DropdownInput, FloatInput, IntInput, SecretStrInput, StrInput from langflow.inputs import (
BoolInput,
DictInput,
DropdownInput,
FloatInput,
IntInput,
MessageInput,
SecretStrInput,
StrInput,
)
from langflow.template import Output from langflow.template import Output
class OpenAIModelComponent(LCModelComponent): class OpenAIModelComponent(LCModelComponent):
display_name = "OpenAI" display_name = "OpenAI"
description = "Generates text using OpenAI LLMs." description = "Generates text using OpenAI LLMs."
icon = "OpenAI" icon = "OpenAI"
inputs = [ inputs = [
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
IntInput( IntInput(
name="max_tokens", name="max_tokens",
display_name="Max Tokens", display_name="Max Tokens",

View file

@ -1,17 +1,19 @@
from langchain_google_vertexai import ChatVertexAI from langchain_google_vertexai import ChatVertexAI
from langflow.base.constants import STREAM_INFO_TEXT from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, FloatInput, IntInput, StrInput from langflow.inputs import BoolInput, FloatInput, IntInput, MessageInput, StrInput
from langflow.template import Output from langflow.template import Output
class ChatVertexAIComponent(LCModelComponent): class ChatVertexAIComponent(LCModelComponent):
display_name = "Vertex AI" display_name = "Vertex AI"
description = "Generate text using Vertex AI LLMs." description = "Generate text using Vertex AI LLMs."
icon = "VertexAI" icon = "VertexAI"
inputs = [ inputs = [
StrInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]), MessageInput(name="input_value", display_name="Input", input_types=["Text", "Data", "Prompt"]),
StrInput( StrInput(
name="credentials", name="credentials",
display_name="Credentials", display_name="Credentials",
@ -85,4 +87,3 @@ class ChatVertexAIComponent(LCModelComponent):
) )
return output return output