upd: cohere llm component
This commit is contained in:
parent
b376bb26be
commit
0ff4694a16
1 changed files with 54 additions and 57 deletions
|
|
@ -1,73 +1,70 @@
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
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 Text
|
from langflow.field_typing import BaseLanguageModel, Text
|
||||||
|
from langflow.inputs import BoolInput, FloatInput, IntInput, SecretStrInput, StrInput
|
||||||
|
from langflow.template import Output
|
||||||
|
|
||||||
class CohereComponent(LCModelComponent):
|
class CohereComponent(LCModelComponent):
|
||||||
display_name = "Cohere"
|
display_name = "Cohere"
|
||||||
description = "Generate text using Cohere LLMs."
|
description = "Generate text using Cohere LLMs."
|
||||||
documentation = "https://python.langchain.com/docs/modules/model_io/models/llms/integrations/cohere"
|
documentation = "https://python.langchain.com/docs/modules/model_io/models/llms/integrations/cohere"
|
||||||
|
|
||||||
icon = "Cohere"
|
icon = "Cohere"
|
||||||
|
|
||||||
field_order = [
|
inputs = [
|
||||||
"cohere_api_key",
|
SecretStrInput(
|
||||||
"max_tokens",
|
name="cohere_api_key",
|
||||||
"temperature",
|
display_name="Cohere API Key",
|
||||||
"input_value",
|
info="The Cohere API Key to use for the Cohere model.",
|
||||||
"system_message",
|
advanced=False,
|
||||||
"stream",
|
value="COHERE_API_KEY",
|
||||||
|
),
|
||||||
|
IntInput(
|
||||||
|
name="max_tokens",
|
||||||
|
display_name="Max Tokens",
|
||||||
|
advanced=True,
|
||||||
|
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"]),
|
||||||
|
BoolInput(name="stream", display_name="Stream", info=STREAM_INFO_TEXT, advanced=True),
|
||||||
|
StrInput(
|
||||||
|
name="system_message",
|
||||||
|
display_name="System Message",
|
||||||
|
info="System message to pass to the model.",
|
||||||
|
advanced=True,
|
||||||
|
),
|
||||||
|
]
|
||||||
|
outputs = [
|
||||||
|
Output(display_name="Text", name="text_output", method="text_response"),
|
||||||
|
Output(display_name="Language Model", name="model_output", method="build_model"),
|
||||||
]
|
]
|
||||||
|
|
||||||
def build_config(self):
|
def text_response(self) -> Text:
|
||||||
return {
|
input_value = self.input_value
|
||||||
"cohere_api_key": {
|
stream = self.stream
|
||||||
"display_name": "Cohere API Key",
|
system_message = self.system_message
|
||||||
"type": "password",
|
output = self.build_model()
|
||||||
"password": True,
|
result = self.get_chat_result(output, stream, input_value, system_message)
|
||||||
"required": True,
|
self.status = result
|
||||||
},
|
return result
|
||||||
"max_tokens": {
|
|
||||||
"display_name": "Max Tokens",
|
|
||||||
"advanced": True,
|
|
||||||
"info": "The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
|
|
||||||
},
|
|
||||||
"temperature": {
|
|
||||||
"display_name": "Temperature",
|
|
||||||
"default": 0.75,
|
|
||||||
"type": "float",
|
|
||||||
"show": True,
|
|
||||||
},
|
|
||||||
"input_value": {"display_name": "Input", "input_types": ["Text", "Data", "Prompt"]},
|
|
||||||
"stream": {
|
|
||||||
"display_name": "Stream",
|
|
||||||
"info": STREAM_INFO_TEXT,
|
|
||||||
"advanced": True,
|
|
||||||
},
|
|
||||||
"system_message": {
|
|
||||||
"display_name": "System Message",
|
|
||||||
"info": "System message to pass to the model.",
|
|
||||||
"advanced": True,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
def build(
|
def build_model(self) -> BaseLanguageModel:
|
||||||
self,
|
cohere_api_key = self.cohere_api_key
|
||||||
cohere_api_key: str,
|
temperature = self.temperature
|
||||||
input_value: Text,
|
max_tokens = self.max_tokens
|
||||||
temperature: float = 0.75,
|
|
||||||
stream: bool = False,
|
if cohere_api_key:
|
||||||
system_message: Optional[str] = None,
|
api_key = SecretStr(cohere_api_key)
|
||||||
) -> Text:
|
else:
|
||||||
api_key = SecretStr(cohere_api_key)
|
api_key = None
|
||||||
output = ChatCohere( # type: ignore
|
|
||||||
|
output = ChatCohere(
|
||||||
|
max_tokens=max_tokens or None,
|
||||||
|
temperature=temperature or 0.75,
|
||||||
cohere_api_key=api_key,
|
cohere_api_key=api_key,
|
||||||
temperature=temperature,
|
|
||||||
)
|
)
|
||||||
return self.get_chat_result(output, stream, input_value, system_message)
|
|
||||||
return self.get_chat_result(output, stream, input_value, system_message)
|
return output
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue