|
|
from langchain_community.chat_models import ChatMaritalk |
|
|
|
|
|
from langflow.base.models.model import LCModelComponent |
|
|
from langflow.field_typing import LanguageModel |
|
|
from langflow.field_typing.range_spec import RangeSpec |
|
|
from langflow.inputs import DropdownInput, FloatInput, IntInput, SecretStrInput |
|
|
from langflow.inputs.inputs import HandleInput |
|
|
|
|
|
|
|
|
class MaritalkModelComponent(LCModelComponent): |
|
|
display_name = "Maritalk" |
|
|
description = "Generates text using Maritalk LLMs." |
|
|
icon = "Maritalk" |
|
|
name = "Maritalk" |
|
|
inputs = [ |
|
|
*LCModelComponent._base_inputs, |
|
|
IntInput( |
|
|
name="max_tokens", |
|
|
display_name="Max Tokens", |
|
|
advanced=True, |
|
|
value=512, |
|
|
info="The maximum number of tokens to generate. Set to 0 for unlimited tokens.", |
|
|
), |
|
|
DropdownInput( |
|
|
name="model_name", |
|
|
display_name="Model Name", |
|
|
advanced=False, |
|
|
options=["sabia-2-small", "sabia-2-medium"], |
|
|
value=["sabia-2-small"], |
|
|
), |
|
|
SecretStrInput( |
|
|
name="api_key", |
|
|
display_name="Maritalk API Key", |
|
|
info="The Maritalk API Key to use for the OpenAI model.", |
|
|
advanced=False, |
|
|
), |
|
|
FloatInput(name="temperature", display_name="Temperature", value=0.1, range_spec=RangeSpec(min=0, max=1)), |
|
|
HandleInput( |
|
|
name="output_parser", |
|
|
display_name="Output Parser", |
|
|
info="The parser to use to parse the output of the model", |
|
|
advanced=True, |
|
|
input_types=["OutputParser"], |
|
|
), |
|
|
] |
|
|
|
|
|
def build_model(self) -> LanguageModel: |
|
|
|
|
|
|
|
|
api_key = self.api_key |
|
|
temperature = self.temperature |
|
|
model_name: str = self.model_name |
|
|
max_tokens = self.max_tokens |
|
|
|
|
|
return ChatMaritalk( |
|
|
max_tokens=max_tokens, |
|
|
model=model_name, |
|
|
api_key=api_key, |
|
|
temperature=temperature or 0.1, |
|
|
) |
|
|
|