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 langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, DictInput, DropdownInput, StrInput
from langflow.inputs import MessageInput
from langflow.template import Output
class AmazonBedrockComponent(LCModelComponent):
display_name: str = "Amazon Bedrock"
description: str = "Generate text using Amazon Bedrock LLMs."
icon = "Amazon"
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(
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.inputs import BoolInput, DropdownInput, FloatInput, IntInput, StrInput
from langflow.template import Output
from langflow.inputs import MessageInput
class AzureChatOpenAIComponent(LCModelComponent):
display_name: str = "Azure OpenAI"
@ -64,7 +66,7 @@ class AzureChatOpenAIComponent(LCModelComponent):
advanced=True,
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),
StrInput(
name="system_message",

View file

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

View file

@ -1,10 +1,13 @@
from langchain_cohere import ChatCohere
from pydantic.v1 import SecretStr
from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent
from langflow.field_typing import BaseLanguageModel, Text
from langflow.inputs import BoolInput, FloatInput, IntInput, SecretStrInput, StrInput
from langflow.template import Output
from langflow.inputs import MessageInput
class CohereComponent(LCModelComponent):
display_name = "Cohere"
@ -27,7 +30,7 @@ class CohereComponent(LCModelComponent):
info="The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
),
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),
StrInput(
name="system_message",
@ -67,4 +70,3 @@ class CohereComponent(LCModelComponent):
)
return output

View file

@ -4,9 +4,13 @@ from pydantic.v1 import SecretStr
from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent
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.inputs import MessageInput
class GoogleGenerativeAIComponent(LCModelComponent):
display_name: str = "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.",
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),
StrInput(
name="system_message",
@ -97,4 +106,4 @@ class GoogleGenerativeAIComponent(LCModelComponent):
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.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.inputs import BoolInput, DictInput, DropdownInput, SecretStrInput, StrInput
from langflow.template import Output
from langflow.inputs import MessageInput
class HuggingFaceEndpointsComponent(LCModelComponent):
@ -15,7 +15,7 @@ class HuggingFaceEndpointsComponent(LCModelComponent):
icon = "HuggingFace"
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),
DropdownInput(
name="task",

View file

@ -4,16 +4,20 @@ from pydantic.v1 import SecretStr
from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent
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.inputs import MessageInput
class MistralAIModelComponent(LCModelComponent):
display_name = "MistralAI"
description = "Generates text using MistralAI LLMs."
icon = "MistralAI"
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(
name="max_tokens",
display_name="Max Tokens",
@ -111,4 +115,4 @@ class MistralAIModelComponent(LCModelComponent):
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.openai_constants import MODEL_NAMES
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
class OpenAIModelComponent(LCModelComponent):
display_name = "OpenAI"
description = "Generates text using OpenAI LLMs."
icon = "OpenAI"
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(
name="max_tokens",
display_name="Max Tokens",

View file

@ -1,17 +1,19 @@
from langchain_google_vertexai import ChatVertexAI
from langflow.base.constants import STREAM_INFO_TEXT
from langflow.base.models.model import LCModelComponent
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
class ChatVertexAIComponent(LCModelComponent):
display_name = "Vertex AI"
description = "Generate text using Vertex AI LLMs."
icon = "VertexAI"
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(
name="credentials",
display_name="Credentials",
@ -85,4 +87,3 @@ class ChatVertexAIComponent(LCModelComponent):
)
return output