Spaces:
Running
Running
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: # type: ignore[type-var] | |
# self.output_schea is a list of dictionarie s | |
# let's convert it to a dictionary | |
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, | |
) | |