feat: add sambanova component (#4908)
* feat: add sambanova component * update param name * add multimodal models * feat: add sambanova icon * feat: add sambanova * feat: format * feat: add sambanova import * feat: add sambanova * feat: add sambanova docs
This commit is contained in:
parent
109b1acd03
commit
cfc5365b73
10 changed files with 157 additions and 0 deletions
11
src/backend/base/langflow/base/models/sambanova_constants.py
Normal file
11
src/backend/base/langflow/base/models/sambanova_constants.py
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
SAMBANOVA_MODEL_NAMES = [
|
||||
"Meta-Llama-3.1-8B-Instruct",
|
||||
"Meta-Llama-3.1-70B-Instruct",
|
||||
"Meta-Llama-3.1-405B-Instruct",
|
||||
"Meta-Llama-3.2-1B-Instruct",
|
||||
"Meta-Llama-3.2-3B-Instruct",
|
||||
"Llama-3.2-11B-Vision-Instruct",
|
||||
"Llama-3.2-90B-Vision-Instruct",
|
||||
]
|
||||
|
||||
MODEL_NAMES = SAMBANOVA_MODEL_NAMES
|
||||
|
|
@ -14,6 +14,7 @@ from .nvidia import NVIDIAModelComponent
|
|||
from .ollama import ChatOllamaComponent
|
||||
from .openai import OpenAIModelComponent
|
||||
from .perplexity import PerplexityComponent
|
||||
from .sambanova import SambaNovaComponent
|
||||
from .vertexai import ChatVertexAIComponent
|
||||
|
||||
__all__ = [
|
||||
|
|
@ -33,5 +34,6 @@ __all__ = [
|
|||
"NVIDIAModelComponent",
|
||||
"OpenAIModelComponent",
|
||||
"PerplexityComponent",
|
||||
"SambaNovaComponent",
|
||||
"QianfanChatEndpointComponent",
|
||||
]
|
||||
|
|
|
|||
74
src/backend/base/langflow/components/models/sambanova.py
Normal file
74
src/backend/base/langflow/components/models/sambanova.py
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
from langchain_community.chat_models.sambanova import ChatSambaNovaCloud
|
||||
from pydantic.v1 import SecretStr
|
||||
|
||||
from langflow.base.models.model import LCModelComponent
|
||||
from langflow.base.models.sambanova_constants import SAMBANOVA_MODEL_NAMES
|
||||
from langflow.field_typing import LanguageModel
|
||||
from langflow.inputs.inputs import HandleInput
|
||||
from langflow.io import DropdownInput, FloatInput, IntInput, SecretStrInput, StrInput
|
||||
|
||||
|
||||
class SambaNovaComponent(LCModelComponent):
|
||||
display_name = "SambaNova"
|
||||
description = "Generate text using Sambanova LLMs."
|
||||
documentation = "https://cloud.sambanova.ai/"
|
||||
icon = "SambaNova"
|
||||
name = "SambaNovaModel"
|
||||
|
||||
inputs = [
|
||||
*LCModelComponent._base_inputs,
|
||||
StrInput(
|
||||
name="sambanova_url",
|
||||
display_name="SambaNova Cloud Base Url",
|
||||
advanced=True,
|
||||
info="The base URL of the Sambanova Cloud API. "
|
||||
"Defaults to https://api.sambanova.ai/v1/chat/completions. "
|
||||
"You can change this to use other urls like Sambastudio",
|
||||
),
|
||||
DropdownInput(
|
||||
name="model_name",
|
||||
display_name="Model Name",
|
||||
advanced=False,
|
||||
options=SAMBANOVA_MODEL_NAMES,
|
||||
value=SAMBANOVA_MODEL_NAMES[0],
|
||||
),
|
||||
SecretStrInput(
|
||||
name="sambanova_api_key",
|
||||
display_name="Sambanova API Key",
|
||||
info="The Sambanova API Key to use for the Sambanova model.",
|
||||
advanced=False,
|
||||
value="SAMBANOVA_API_KEY",
|
||||
),
|
||||
IntInput(
|
||||
name="max_tokens",
|
||||
display_name="Max Tokens",
|
||||
advanced=True,
|
||||
value=4096,
|
||||
info="The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
|
||||
),
|
||||
FloatInput(name="temperature", display_name="Temperature", value=0.07),
|
||||
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]
|
||||
sambanova_url = self.sambanova_url
|
||||
sambanova_api_key = self.sambanova_api_key
|
||||
model_name = self.model_name
|
||||
max_tokens = self.max_tokens
|
||||
temperature = self.temperature
|
||||
|
||||
api_key = SecretStr(sambanova_api_key).get_secret_value() if sambanova_api_key else None
|
||||
|
||||
return ChatSambaNovaCloud(
|
||||
model=model_name,
|
||||
max_tokens=max_tokens or 1024,
|
||||
temperature=temperature or 0.07,
|
||||
sambanova_url=sambanova_url,
|
||||
sambanova_api_key=api_key,
|
||||
)
|
||||
|
|
@ -15,6 +15,7 @@ VARIABLES_TO_GET_FROM_ENVIRONMENT = [
|
|||
"GROQ_API_KEY",
|
||||
"HUGGINGFACEHUB_API_TOKEN",
|
||||
"PINECONE_API_KEY",
|
||||
"SAMBANOVA_API_KEY",
|
||||
"SEARCHAPI_API_KEY",
|
||||
"SERPAPI_API_KEY",
|
||||
"UPSTASH_VECTOR_REST_URL",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue