feat(model): replace MessageTextInput with MultilineInput for system_message (#5532)
✨ (model.py): introduce MultilineInput class to handle system messages in LCModelComponent for better organization and readability 📝 (Basic Prompting.json): Update node IDs and edge IDs for better readability and consistency in the JSON file. 📝 (Basic Prompting.json): Update node properties to display a chat message in the Playground instead of generating text using OpenAI LLMs ♻️ (Basic Prompting.json): Refactor field_order and outputs properties for the Chat Output node to include new fields and remove unnecessary ones ✨ (Basic Prompting.json): Update ChatOutput component to include new inputs and outputs for better customization and functionality. Add support for storing messages, setting sender type, and customizing message appearance. ✨ (Basic Prompting.json): Update field names and values for better clarity and consistency ♻️ (Basic Prompting.json): Refactor field names and values to improve readability and maintainability ✨ (Basic Prompting.json): Update the content of the file to include a new class 'OpenAIModelComponent' with inputs for configuring OpenAI model settings and methods for building the model and handling exceptions. Remove the 'data_template' field and update 'input_value' field to 'MessageInput'. Add new fields 'json_mode', 'max_tokens', 'model_kwargs', and 'model_name' with their respective configurations. 📝 (Basic Prompting.json): Update values and descriptions for fields in the Basic Prompting starter project to improve clarity and usability. Add a new field for temperature control with a default value of 0.1.
This commit is contained in:
parent
3e23800199
commit
16ff8eb200
2 changed files with 389 additions and 355 deletions
|
|
@ -10,8 +10,8 @@ from langchain_core.output_parsers import BaseOutputParser
|
||||||
from langflow.base.constants import STREAM_INFO_TEXT
|
from langflow.base.constants import STREAM_INFO_TEXT
|
||||||
from langflow.custom import Component
|
from langflow.custom import Component
|
||||||
from langflow.field_typing import LanguageModel
|
from langflow.field_typing import LanguageModel
|
||||||
from langflow.inputs import MessageInput, MessageTextInput
|
from langflow.inputs import MessageInput
|
||||||
from langflow.inputs.inputs import BoolInput, InputTypes
|
from langflow.inputs.inputs import BoolInput, InputTypes, MultilineInput
|
||||||
from langflow.schema.message import Message
|
from langflow.schema.message import Message
|
||||||
from langflow.template.field.base import Output
|
from langflow.template.field.base import Output
|
||||||
|
|
||||||
|
|
@ -26,7 +26,7 @@ class LCModelComponent(Component):
|
||||||
|
|
||||||
_base_inputs: list[InputTypes] = [
|
_base_inputs: list[InputTypes] = [
|
||||||
MessageInput(name="input_value", display_name="Input"),
|
MessageInput(name="input_value", display_name="Input"),
|
||||||
MessageTextInput(
|
MultilineInput(
|
||||||
name="system_message",
|
name="system_message",
|
||||||
display_name="System Message",
|
display_name="System Message",
|
||||||
info="System message to pass to the model.",
|
info="System message to pass to the model.",
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,10 @@
|
||||||
"data": {
|
"data": {
|
||||||
"edges": [
|
"edges": [
|
||||||
{
|
{
|
||||||
"animated": false,
|
|
||||||
"className": "",
|
|
||||||
"data": {
|
"data": {
|
||||||
"sourceHandle": {
|
"sourceHandle": {
|
||||||
"dataType": "Prompt",
|
"dataType": "Prompt",
|
||||||
"id": "Prompt-euzzD",
|
"id": "Prompt-51zV0",
|
||||||
"name": "prompt",
|
"name": "prompt",
|
||||||
"output_types": [
|
"output_types": [
|
||||||
"Message"
|
"Message"
|
||||||
|
|
@ -15,26 +13,24 @@
|
||||||
},
|
},
|
||||||
"targetHandle": {
|
"targetHandle": {
|
||||||
"fieldName": "system_message",
|
"fieldName": "system_message",
|
||||||
"id": "OpenAIModel-mMCO4",
|
"id": "OpenAIModel-GtPty",
|
||||||
"inputTypes": [
|
"inputTypes": [
|
||||||
"Message"
|
"Message"
|
||||||
],
|
],
|
||||||
"type": "str"
|
"type": "str"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"id": "reactflow__edge-Prompt-euzzD{œdataTypeœ:œPromptœ,œidœ:œPrompt-euzzDœ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-mMCO4{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-mMCO4œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
"id": "xy-edge__Prompt-51zV0{œdataTypeœ:œPromptœ,œidœ:œPrompt-51zV0œ,œnameœ:œpromptœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-GtPty{œfieldNameœ:œsystem_messageœ,œidœ:œOpenAIModel-GtPtyœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
||||||
"source": "Prompt-euzzD",
|
"source": "Prompt-51zV0",
|
||||||
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-euzzDœ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
|
"sourceHandle": "{œdataTypeœ: œPromptœ, œidœ: œPrompt-51zV0œ, œnameœ: œpromptœ, œoutput_typesœ: [œMessageœ]}",
|
||||||
"target": "OpenAIModel-mMCO4",
|
"target": "OpenAIModel-GtPty",
|
||||||
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-mMCO4œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
"targetHandle": "{œfieldNameœ: œsystem_messageœ, œidœ: œOpenAIModel-GtPtyœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"animated": false,
|
|
||||||
"className": "",
|
|
||||||
"data": {
|
"data": {
|
||||||
"sourceHandle": {
|
"sourceHandle": {
|
||||||
"dataType": "ChatInput",
|
"dataType": "ChatInput",
|
||||||
"id": "ChatInput-M2ktx",
|
"id": "ChatInput-5i1v3",
|
||||||
"name": "message",
|
"name": "message",
|
||||||
"output_types": [
|
"output_types": [
|
||||||
"Message"
|
"Message"
|
||||||
|
|
@ -42,25 +38,24 @@
|
||||||
},
|
},
|
||||||
"targetHandle": {
|
"targetHandle": {
|
||||||
"fieldName": "input_value",
|
"fieldName": "input_value",
|
||||||
"id": "OpenAIModel-mMCO4",
|
"id": "OpenAIModel-GtPty",
|
||||||
"inputTypes": [
|
"inputTypes": [
|
||||||
"Message"
|
"Message"
|
||||||
],
|
],
|
||||||
"type": "str"
|
"type": "str"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"id": "reactflow__edge-ChatInput-M2ktx{œdataTypeœ:œChatInputœ,œidœ:œChatInput-M2ktxœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-mMCO4{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-mMCO4œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
"id": "xy-edge__ChatInput-5i1v3{œdataTypeœ:œChatInputœ,œidœ:œChatInput-5i1v3œ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-GtPty{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-GtPtyœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
||||||
"source": "ChatInput-M2ktx",
|
"source": "ChatInput-5i1v3",
|
||||||
"sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-M2ktxœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
|
"sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-5i1v3œ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
|
||||||
"target": "OpenAIModel-mMCO4",
|
"target": "OpenAIModel-GtPty",
|
||||||
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-mMCO4œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-GtPtyœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"className": "",
|
|
||||||
"data": {
|
"data": {
|
||||||
"sourceHandle": {
|
"sourceHandle": {
|
||||||
"dataType": "OpenAIModel",
|
"dataType": "OpenAIModel",
|
||||||
"id": "OpenAIModel-mMCO4",
|
"id": "OpenAIModel-GtPty",
|
||||||
"name": "text_output",
|
"name": "text_output",
|
||||||
"output_types": [
|
"output_types": [
|
||||||
"Message"
|
"Message"
|
||||||
|
|
@ -68,18 +63,18 @@
|
||||||
},
|
},
|
||||||
"targetHandle": {
|
"targetHandle": {
|
||||||
"fieldName": "input_value",
|
"fieldName": "input_value",
|
||||||
"id": "ChatOutput-1s4P8",
|
"id": "ChatOutput-0kSEM",
|
||||||
"inputTypes": [
|
"inputTypes": [
|
||||||
"Message"
|
"Message"
|
||||||
],
|
],
|
||||||
"type": "str"
|
"type": "str"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"id": "reactflow__edge-OpenAIModel-mMCO4{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-mMCO4œ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-1s4P8{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-1s4P8œ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
"id": "xy-edge__OpenAIModel-GtPty{œdataTypeœ:œOpenAIModelœ,œidœ:œOpenAIModel-GtPtyœ,œnameœ:œtext_outputœ,œoutput_typesœ:[œMessageœ]}-ChatOutput-0kSEM{œfieldNameœ:œinput_valueœ,œidœ:œChatOutput-0kSEMœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
||||||
"source": "OpenAIModel-mMCO4",
|
"source": "OpenAIModel-GtPty",
|
||||||
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-mMCO4œ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
|
"sourceHandle": "{œdataTypeœ: œOpenAIModelœ, œidœ: œOpenAIModel-GtPtyœ, œnameœ: œtext_outputœ, œoutput_typesœ: [œMessageœ]}",
|
||||||
"target": "ChatOutput-1s4P8",
|
"target": "ChatOutput-0kSEM",
|
||||||
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-1s4P8œ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
"targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œChatOutput-0kSEMœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"nodes": [
|
"nodes": [
|
||||||
|
|
@ -87,7 +82,7 @@
|
||||||
"data": {
|
"data": {
|
||||||
"description": "Get chat inputs from the Playground.",
|
"description": "Get chat inputs from the Playground.",
|
||||||
"display_name": "Chat Input",
|
"display_name": "Chat Input",
|
||||||
"id": "ChatInput-M2ktx",
|
"id": "ChatInput-5i1v3",
|
||||||
"node": {
|
"node": {
|
||||||
"base_classes": [
|
"base_classes": [
|
||||||
"Message"
|
"Message"
|
||||||
|
|
@ -352,7 +347,11 @@
|
||||||
},
|
},
|
||||||
"dragging": false,
|
"dragging": false,
|
||||||
"height": 234,
|
"height": 234,
|
||||||
"id": "ChatInput-M2ktx",
|
"id": "ChatInput-5i1v3",
|
||||||
|
"measured": {
|
||||||
|
"height": 234,
|
||||||
|
"width": 320
|
||||||
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": 689.5720422421635,
|
"x": 689.5720422421635,
|
||||||
"y": 765.155834131403
|
"y": 765.155834131403
|
||||||
|
|
@ -369,7 +368,7 @@
|
||||||
"data": {
|
"data": {
|
||||||
"description": "Create a prompt template with dynamic variables.",
|
"description": "Create a prompt template with dynamic variables.",
|
||||||
"display_name": "Prompt",
|
"display_name": "Prompt",
|
||||||
"id": "Prompt-euzzD",
|
"id": "Prompt-51zV0",
|
||||||
"node": {
|
"node": {
|
||||||
"base_classes": [
|
"base_classes": [
|
||||||
"Message"
|
"Message"
|
||||||
|
|
@ -472,10 +471,14 @@
|
||||||
},
|
},
|
||||||
"dragging": false,
|
"dragging": false,
|
||||||
"height": 260,
|
"height": 260,
|
||||||
"id": "Prompt-euzzD",
|
"id": "Prompt-51zV0",
|
||||||
|
"measured": {
|
||||||
|
"height": 260,
|
||||||
|
"width": 320
|
||||||
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": 690.2015147036818,
|
"x": 690.2015147036818,
|
||||||
"y": 1018.5443911764344
|
"y": 1040.6625705470924
|
||||||
},
|
},
|
||||||
"positionAbsolute": {
|
"positionAbsolute": {
|
||||||
"x": 690.2015147036818,
|
"x": 690.2015147036818,
|
||||||
|
|
@ -487,7 +490,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"id": "undefined-emdQy",
|
"id": "undefined-uksjN",
|
||||||
"node": {
|
"node": {
|
||||||
"description": "## 📖 README\n\nPerform basic prompting with an OpenAI model.\n\n#### Quick Start\n- Add your **OpenAI API key** to the **OpenAI Model**\n- Open the **Playground** to chat with your bot.\n\n#### Next steps:\n Experiment by changing the prompt and the OpenAI model temperature to see how the bot's responses change.",
|
"description": "## 📖 README\n\nPerform basic prompting with an OpenAI model.\n\n#### Quick Start\n- Add your **OpenAI API key** to the **OpenAI Model**\n- Open the **Playground** to chat with your bot.\n\n#### Next steps:\n Experiment by changing the prompt and the OpenAI model temperature to see how the bot's responses change.",
|
||||||
"display_name": "Read Me",
|
"display_name": "Read Me",
|
||||||
|
|
@ -499,7 +502,11 @@
|
||||||
},
|
},
|
||||||
"dragging": false,
|
"dragging": false,
|
||||||
"height": 250,
|
"height": 250,
|
||||||
"id": "undefined-emdQy",
|
"id": "undefined-uksjN",
|
||||||
|
"measured": {
|
||||||
|
"height": 250,
|
||||||
|
"width": 600
|
||||||
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": 66.38770028934243,
|
"x": 66.38770028934243,
|
||||||
"y": 749.744424427066
|
"y": 749.744424427066
|
||||||
|
|
@ -519,7 +526,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"id": "note-e6K1n",
|
"id": "note-krY7d",
|
||||||
"node": {
|
"node": {
|
||||||
"description": "### 💡 Add your OpenAI API key here 👇",
|
"description": "### 💡 Add your OpenAI API key here 👇",
|
||||||
"display_name": "",
|
"display_name": "",
|
||||||
|
|
@ -532,7 +539,11 @@
|
||||||
},
|
},
|
||||||
"dragging": false,
|
"dragging": false,
|
||||||
"height": 324,
|
"height": 324,
|
||||||
"id": "note-e6K1n",
|
"id": "note-krY7d",
|
||||||
|
"measured": {
|
||||||
|
"height": 324,
|
||||||
|
"width": 324
|
||||||
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": 1075.829573520873,
|
"x": 1075.829573520873,
|
||||||
"y": 657.2057655038416
|
"y": 657.2057655038416
|
||||||
|
|
@ -552,318 +563,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"description": "Generates text using OpenAI LLMs.",
|
"id": "ChatOutput-0kSEM",
|
||||||
"display_name": "OpenAI",
|
|
||||||
"id": "OpenAIModel-mMCO4",
|
|
||||||
"node": {
|
|
||||||
"base_classes": [
|
|
||||||
"LanguageModel",
|
|
||||||
"Message"
|
|
||||||
],
|
|
||||||
"beta": false,
|
|
||||||
"conditional_paths": [],
|
|
||||||
"custom_fields": {},
|
|
||||||
"description": "Generates text using OpenAI LLMs.",
|
|
||||||
"display_name": "OpenAI",
|
|
||||||
"documentation": "",
|
|
||||||
"edited": false,
|
|
||||||
"field_order": [
|
|
||||||
"input_value",
|
|
||||||
"system_message",
|
|
||||||
"stream",
|
|
||||||
"max_tokens",
|
|
||||||
"model_kwargs",
|
|
||||||
"json_mode",
|
|
||||||
"output_schema",
|
|
||||||
"model_name",
|
|
||||||
"openai_api_base",
|
|
||||||
"api_key",
|
|
||||||
"temperature",
|
|
||||||
"seed",
|
|
||||||
"output_parser"
|
|
||||||
],
|
|
||||||
"frozen": false,
|
|
||||||
"icon": "OpenAI",
|
|
||||||
"legacy": false,
|
|
||||||
"metadata": {},
|
|
||||||
"output_types": [],
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"cache": true,
|
|
||||||
"display_name": "Text",
|
|
||||||
"method": "text_response",
|
|
||||||
"name": "text_output",
|
|
||||||
"required_inputs": [],
|
|
||||||
"selected": "Message",
|
|
||||||
"types": [
|
|
||||||
"Message"
|
|
||||||
],
|
|
||||||
"value": "__UNDEFINED__"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"cache": true,
|
|
||||||
"display_name": "Language Model",
|
|
||||||
"method": "build_model",
|
|
||||||
"name": "model_output",
|
|
||||||
"required_inputs": [],
|
|
||||||
"selected": "LanguageModel",
|
|
||||||
"types": [
|
|
||||||
"LanguageModel"
|
|
||||||
],
|
|
||||||
"value": "__UNDEFINED__"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"pinned": false,
|
|
||||||
"template": {
|
|
||||||
"_type": "Component",
|
|
||||||
"api_key": {
|
|
||||||
"_input_type": "SecretStrInput",
|
|
||||||
"advanced": false,
|
|
||||||
"display_name": "OpenAI API Key",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "The OpenAI API Key to use for the OpenAI model.",
|
|
||||||
"input_types": [
|
|
||||||
"Message"
|
|
||||||
],
|
|
||||||
"load_from_db": true,
|
|
||||||
"name": "api_key",
|
|
||||||
"password": true,
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"type": "str",
|
|
||||||
"value": "OPENAI_API_KEY"
|
|
||||||
},
|
|
||||||
"code": {
|
|
||||||
"advanced": true,
|
|
||||||
"dynamic": true,
|
|
||||||
"fileTypes": [],
|
|
||||||
"file_path": "",
|
|
||||||
"info": "",
|
|
||||||
"list": false,
|
|
||||||
"load_from_db": false,
|
|
||||||
"multiline": true,
|
|
||||||
"name": "code",
|
|
||||||
"password": false,
|
|
||||||
"placeholder": "",
|
|
||||||
"required": true,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"type": "code",
|
|
||||||
"value": "from langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom langflow.base.models.model import LCModelComponent\nfrom langflow.base.models.openai_constants import OPENAI_MODEL_NAMES\nfrom langflow.field_typing import LanguageModel\nfrom langflow.field_typing.range_spec import RangeSpec\nfrom langflow.inputs import BoolInput, DictInput, DropdownInput, IntInput, SecretStrInput, SliderInput, StrInput\n\n\nclass OpenAIModelComponent(LCModelComponent):\n display_name = \"OpenAI\"\n description = \"Generates text using OpenAI LLMs.\"\n icon = \"OpenAI\"\n name = \"OpenAIModel\"\n\n inputs = [\n *LCModelComponent._base_inputs,\n IntInput(\n name=\"max_tokens\",\n display_name=\"Max Tokens\",\n advanced=True,\n info=\"The maximum number of tokens to generate. Set to 0 for unlimited tokens.\",\n range_spec=RangeSpec(min=0, max=128000),\n ),\n DictInput(\n name=\"model_kwargs\",\n display_name=\"Model Kwargs\",\n advanced=True,\n info=\"Additional keyword arguments to pass to the model.\",\n ),\n BoolInput(\n name=\"json_mode\",\n display_name=\"JSON Mode\",\n advanced=True,\n info=\"If True, it will output JSON regardless of passing a schema.\",\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n advanced=False,\n options=OPENAI_MODEL_NAMES,\n value=OPENAI_MODEL_NAMES[0],\n ),\n StrInput(\n name=\"openai_api_base\",\n display_name=\"OpenAI API Base\",\n advanced=True,\n info=\"The base URL of the OpenAI API. \"\n \"Defaults to https://api.openai.com/v1. \"\n \"You can change this to use other APIs like JinaChat, LocalAI and Prem.\",\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"The OpenAI API Key to use for the OpenAI model.\",\n advanced=False,\n value=\"OPENAI_API_KEY\",\n ),\n SliderInput(\n name=\"temperature\", display_name=\"Temperature\", value=0.1, range_spec=RangeSpec(min=0, max=2, step=0.01)\n ),\n IntInput(\n name=\"seed\",\n display_name=\"Seed\",\n info=\"The seed controls the reproducibility of the job.\",\n advanced=True,\n value=1,\n ),\n ]\n\n def build_model(self) -> LanguageModel: # type: ignore[type-var]\n openai_api_key = self.api_key\n temperature = self.temperature\n model_name: str = self.model_name\n max_tokens = self.max_tokens\n model_kwargs = self.model_kwargs or {}\n openai_api_base = self.openai_api_base or \"https://api.openai.com/v1\"\n json_mode = self.json_mode\n seed = self.seed\n\n api_key = SecretStr(openai_api_key).get_secret_value() if openai_api_key else None\n output = ChatOpenAI(\n max_tokens=max_tokens or None,\n model_kwargs=model_kwargs,\n model=model_name,\n base_url=openai_api_base,\n api_key=api_key,\n temperature=temperature if temperature is not None else 0.1,\n seed=seed,\n )\n if json_mode:\n output = output.bind(response_format={\"type\": \"json_object\"})\n\n return output\n\n def _get_exception_message(self, e: Exception):\n \"\"\"Get a message from an OpenAI exception.\n\n Args:\n e (Exception): The exception to get the message from.\n\n Returns:\n str: The message from the exception.\n \"\"\"\n try:\n from openai import BadRequestError\n except ImportError:\n return None\n if isinstance(e, BadRequestError):\n message = e.body.get(\"message\")\n if message:\n return message\n return None\n"
|
|
||||||
},
|
|
||||||
"input_value": {
|
|
||||||
"_input_type": "MessageInput",
|
|
||||||
"advanced": false,
|
|
||||||
"display_name": "Input",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "",
|
|
||||||
"input_types": [
|
|
||||||
"Message"
|
|
||||||
],
|
|
||||||
"list": false,
|
|
||||||
"load_from_db": false,
|
|
||||||
"name": "input_value",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_input": true,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "str",
|
|
||||||
"value": ""
|
|
||||||
},
|
|
||||||
"json_mode": {
|
|
||||||
"_input_type": "BoolInput",
|
|
||||||
"advanced": true,
|
|
||||||
"display_name": "JSON Mode",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "If True, it will output JSON regardless of passing a schema.",
|
|
||||||
"list": false,
|
|
||||||
"name": "json_mode",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "bool",
|
|
||||||
"value": false
|
|
||||||
},
|
|
||||||
"max_tokens": {
|
|
||||||
"_input_type": "IntInput",
|
|
||||||
"advanced": true,
|
|
||||||
"display_name": "Max Tokens",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
|
|
||||||
"list": false,
|
|
||||||
"name": "max_tokens",
|
|
||||||
"placeholder": "",
|
|
||||||
"range_spec": {
|
|
||||||
"max": 128000,
|
|
||||||
"min": 0,
|
|
||||||
"step": 0.1,
|
|
||||||
"step_type": "float"
|
|
||||||
},
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "int",
|
|
||||||
"value": ""
|
|
||||||
},
|
|
||||||
"model_kwargs": {
|
|
||||||
"_input_type": "DictInput",
|
|
||||||
"advanced": true,
|
|
||||||
"display_name": "Model Kwargs",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "Additional keyword arguments to pass to the model.",
|
|
||||||
"list": false,
|
|
||||||
"name": "model_kwargs",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_input": true,
|
|
||||||
"type": "dict",
|
|
||||||
"value": {}
|
|
||||||
},
|
|
||||||
"model_name": {
|
|
||||||
"_input_type": "DropdownInput",
|
|
||||||
"advanced": false,
|
|
||||||
"combobox": false,
|
|
||||||
"display_name": "Model Name",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "",
|
|
||||||
"name": "model_name",
|
|
||||||
"options": [
|
|
||||||
"gpt-4o-mini",
|
|
||||||
"gpt-4o",
|
|
||||||
"gpt-4-turbo",
|
|
||||||
"gpt-4-turbo-preview",
|
|
||||||
"gpt-4",
|
|
||||||
"gpt-3.5-turbo",
|
|
||||||
"gpt-3.5-turbo-0125"
|
|
||||||
],
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"tool_mode": false,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "str",
|
|
||||||
"value": "gpt-4o-mini"
|
|
||||||
},
|
|
||||||
"openai_api_base": {
|
|
||||||
"_input_type": "StrInput",
|
|
||||||
"advanced": true,
|
|
||||||
"display_name": "OpenAI API Base",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "The base URL of the OpenAI API. Defaults to https://api.openai.com/v1. You can change this to use other APIs like JinaChat, LocalAI and Prem.",
|
|
||||||
"list": false,
|
|
||||||
"load_from_db": false,
|
|
||||||
"name": "openai_api_base",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "str",
|
|
||||||
"value": ""
|
|
||||||
},
|
|
||||||
"seed": {
|
|
||||||
"_input_type": "IntInput",
|
|
||||||
"advanced": true,
|
|
||||||
"display_name": "Seed",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "The seed controls the reproducibility of the job.",
|
|
||||||
"list": false,
|
|
||||||
"name": "seed",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "int",
|
|
||||||
"value": 1
|
|
||||||
},
|
|
||||||
"stream": {
|
|
||||||
"_input_type": "BoolInput",
|
|
||||||
"advanced": false,
|
|
||||||
"display_name": "Stream",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "Stream the response from the model. Streaming works only in Chat.",
|
|
||||||
"list": false,
|
|
||||||
"name": "stream",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "bool",
|
|
||||||
"value": false
|
|
||||||
},
|
|
||||||
"system_message": {
|
|
||||||
"_input_type": "MessageTextInput",
|
|
||||||
"advanced": false,
|
|
||||||
"display_name": "System Message",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "System message to pass to the model.",
|
|
||||||
"input_types": [
|
|
||||||
"Message"
|
|
||||||
],
|
|
||||||
"list": false,
|
|
||||||
"load_from_db": false,
|
|
||||||
"name": "system_message",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"tool_mode": false,
|
|
||||||
"trace_as_input": true,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "str",
|
|
||||||
"value": ""
|
|
||||||
},
|
|
||||||
"temperature": {
|
|
||||||
"_input_type": "FloatInput",
|
|
||||||
"advanced": false,
|
|
||||||
"display_name": "Temperature",
|
|
||||||
"dynamic": false,
|
|
||||||
"info": "",
|
|
||||||
"list": false,
|
|
||||||
"name": "temperature",
|
|
||||||
"placeholder": "",
|
|
||||||
"required": false,
|
|
||||||
"show": true,
|
|
||||||
"title_case": false,
|
|
||||||
"trace_as_metadata": true,
|
|
||||||
"type": "float",
|
|
||||||
"value": 0.1
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tool_mode": false
|
|
||||||
},
|
|
||||||
"type": "OpenAIModel"
|
|
||||||
},
|
|
||||||
"dragging": false,
|
|
||||||
"height": 630,
|
|
||||||
"id": "OpenAIModel-mMCO4",
|
|
||||||
"position": {
|
|
||||||
"x": 1081.0157946607428,
|
|
||||||
"y": 707.3740542546418
|
|
||||||
},
|
|
||||||
"positionAbsolute": {
|
|
||||||
"x": 1081.0157946607428,
|
|
||||||
"y": 707.3740542546418
|
|
||||||
},
|
|
||||||
"selected": false,
|
|
||||||
"type": "genericNode",
|
|
||||||
"width": 320
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"id": "ChatOutput-1s4P8",
|
|
||||||
"node": {
|
"node": {
|
||||||
"base_classes": [
|
"base_classes": [
|
||||||
"Message"
|
"Message"
|
||||||
|
|
@ -1122,9 +822,13 @@
|
||||||
},
|
},
|
||||||
"dragging": false,
|
"dragging": false,
|
||||||
"height": 234,
|
"height": 234,
|
||||||
"id": "ChatOutput-1s4P8",
|
"id": "ChatOutput-0kSEM",
|
||||||
|
"measured": {
|
||||||
|
"height": 234,
|
||||||
|
"width": 320
|
||||||
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": 1444.936881624563,
|
"x": 1460.070372772908,
|
||||||
"y": 872.7273956769025
|
"y": 872.7273956769025
|
||||||
},
|
},
|
||||||
"positionAbsolute": {
|
"positionAbsolute": {
|
||||||
|
|
@ -1134,12 +838,342 @@
|
||||||
"selected": false,
|
"selected": false,
|
||||||
"type": "genericNode",
|
"type": "genericNode",
|
||||||
"width": 320
|
"width": 320
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"id": "OpenAIModel-GtPty",
|
||||||
|
"node": {
|
||||||
|
"base_classes": [
|
||||||
|
"LanguageModel",
|
||||||
|
"Message"
|
||||||
|
],
|
||||||
|
"beta": false,
|
||||||
|
"category": "models",
|
||||||
|
"conditional_paths": [],
|
||||||
|
"custom_fields": {},
|
||||||
|
"description": "Generates text using OpenAI LLMs.",
|
||||||
|
"display_name": "OpenAI",
|
||||||
|
"documentation": "",
|
||||||
|
"edited": false,
|
||||||
|
"field_order": [
|
||||||
|
"input_value",
|
||||||
|
"system_message",
|
||||||
|
"stream",
|
||||||
|
"max_tokens",
|
||||||
|
"model_kwargs",
|
||||||
|
"json_mode",
|
||||||
|
"model_name",
|
||||||
|
"openai_api_base",
|
||||||
|
"api_key",
|
||||||
|
"temperature",
|
||||||
|
"seed"
|
||||||
|
],
|
||||||
|
"frozen": false,
|
||||||
|
"icon": "OpenAI",
|
||||||
|
"key": "OpenAIModel",
|
||||||
|
"legacy": false,
|
||||||
|
"metadata": {},
|
||||||
|
"minimized": false,
|
||||||
|
"output_types": [],
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"cache": true,
|
||||||
|
"display_name": "Text",
|
||||||
|
"method": "text_response",
|
||||||
|
"name": "text_output",
|
||||||
|
"required_inputs": [],
|
||||||
|
"selected": "Message",
|
||||||
|
"types": [
|
||||||
|
"Message"
|
||||||
|
],
|
||||||
|
"value": "__UNDEFINED__"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cache": true,
|
||||||
|
"display_name": "Language Model",
|
||||||
|
"method": "build_model",
|
||||||
|
"name": "model_output",
|
||||||
|
"required_inputs": [],
|
||||||
|
"selected": "LanguageModel",
|
||||||
|
"types": [
|
||||||
|
"LanguageModel"
|
||||||
|
],
|
||||||
|
"value": "__UNDEFINED__"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"pinned": false,
|
||||||
|
"score": 2.220446049250313e-16,
|
||||||
|
"template": {
|
||||||
|
"_type": "Component",
|
||||||
|
"api_key": {
|
||||||
|
"_input_type": "SecretStrInput",
|
||||||
|
"advanced": false,
|
||||||
|
"display_name": "OpenAI API Key",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "The OpenAI API Key to use for the OpenAI model.",
|
||||||
|
"input_types": [
|
||||||
|
"Message"
|
||||||
|
],
|
||||||
|
"load_from_db": true,
|
||||||
|
"name": "api_key",
|
||||||
|
"password": true,
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"type": "str",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"advanced": true,
|
||||||
|
"dynamic": true,
|
||||||
|
"fileTypes": [],
|
||||||
|
"file_path": "",
|
||||||
|
"info": "",
|
||||||
|
"list": false,
|
||||||
|
"load_from_db": false,
|
||||||
|
"multiline": true,
|
||||||
|
"name": "code",
|
||||||
|
"password": false,
|
||||||
|
"placeholder": "",
|
||||||
|
"required": true,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"type": "code",
|
||||||
|
"value": "from langchain_openai import ChatOpenAI\nfrom pydantic.v1 import SecretStr\n\nfrom langflow.base.models.model import LCModelComponent\nfrom langflow.base.models.openai_constants import OPENAI_MODEL_NAMES\nfrom langflow.field_typing import LanguageModel\nfrom langflow.field_typing.range_spec import RangeSpec\nfrom langflow.inputs import BoolInput, DictInput, DropdownInput, IntInput, SecretStrInput, SliderInput, StrInput\n\n\nclass OpenAIModelComponent(LCModelComponent):\n display_name = \"OpenAI\"\n description = \"Generates text using OpenAI LLMs.\"\n icon = \"OpenAI\"\n name = \"OpenAIModel\"\n\n inputs = [\n *LCModelComponent._base_inputs,\n IntInput(\n name=\"max_tokens\",\n display_name=\"Max Tokens\",\n advanced=True,\n info=\"The maximum number of tokens to generate. Set to 0 for unlimited tokens.\",\n range_spec=RangeSpec(min=0, max=128000),\n ),\n DictInput(\n name=\"model_kwargs\",\n display_name=\"Model Kwargs\",\n advanced=True,\n info=\"Additional keyword arguments to pass to the model.\",\n ),\n BoolInput(\n name=\"json_mode\",\n display_name=\"JSON Mode\",\n advanced=True,\n info=\"If True, it will output JSON regardless of passing a schema.\",\n ),\n DropdownInput(\n name=\"model_name\",\n display_name=\"Model Name\",\n advanced=False,\n options=OPENAI_MODEL_NAMES,\n value=OPENAI_MODEL_NAMES[0],\n ),\n StrInput(\n name=\"openai_api_base\",\n display_name=\"OpenAI API Base\",\n advanced=True,\n info=\"The base URL of the OpenAI API. \"\n \"Defaults to https://api.openai.com/v1. \"\n \"You can change this to use other APIs like JinaChat, LocalAI and Prem.\",\n ),\n SecretStrInput(\n name=\"api_key\",\n display_name=\"OpenAI API Key\",\n info=\"The OpenAI API Key to use for the OpenAI model.\",\n advanced=False,\n value=\"OPENAI_API_KEY\",\n ),\n SliderInput(\n name=\"temperature\", display_name=\"Temperature\", value=0.1, range_spec=RangeSpec(min=0, max=2, step=0.01)\n ),\n IntInput(\n name=\"seed\",\n display_name=\"Seed\",\n info=\"The seed controls the reproducibility of the job.\",\n advanced=True,\n value=1,\n ),\n ]\n\n def build_model(self) -> LanguageModel: # type: ignore[type-var]\n openai_api_key = self.api_key\n temperature = self.temperature\n model_name: str = self.model_name\n max_tokens = self.max_tokens\n model_kwargs = self.model_kwargs or {}\n openai_api_base = self.openai_api_base or \"https://api.openai.com/v1\"\n json_mode = self.json_mode\n seed = self.seed\n\n api_key = SecretStr(openai_api_key).get_secret_value() if openai_api_key else None\n output = ChatOpenAI(\n max_tokens=max_tokens or None,\n model_kwargs=model_kwargs,\n model=model_name,\n base_url=openai_api_base,\n api_key=api_key,\n temperature=temperature if temperature is not None else 0.1,\n seed=seed,\n )\n if json_mode:\n output = output.bind(response_format={\"type\": \"json_object\"})\n\n return output\n\n def _get_exception_message(self, e: Exception):\n \"\"\"Get a message from an OpenAI exception.\n\n Args:\n e (Exception): The exception to get the message from.\n\n Returns:\n str: The message from the exception.\n \"\"\"\n try:\n from openai import BadRequestError\n except ImportError:\n return None\n if isinstance(e, BadRequestError):\n message = e.body.get(\"message\")\n if message:\n return message\n return None\n"
|
||||||
|
},
|
||||||
|
"input_value": {
|
||||||
|
"_input_type": "MessageInput",
|
||||||
|
"advanced": false,
|
||||||
|
"display_name": "Input",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "",
|
||||||
|
"input_types": [
|
||||||
|
"Message"
|
||||||
|
],
|
||||||
|
"list": false,
|
||||||
|
"load_from_db": false,
|
||||||
|
"name": "input_value",
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_input": true,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "str",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
"json_mode": {
|
||||||
|
"_input_type": "BoolInput",
|
||||||
|
"advanced": true,
|
||||||
|
"display_name": "JSON Mode",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "If True, it will output JSON regardless of passing a schema.",
|
||||||
|
"list": false,
|
||||||
|
"name": "json_mode",
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "bool",
|
||||||
|
"value": false
|
||||||
|
},
|
||||||
|
"max_tokens": {
|
||||||
|
"_input_type": "IntInput",
|
||||||
|
"advanced": true,
|
||||||
|
"display_name": "Max Tokens",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "The maximum number of tokens to generate. Set to 0 for unlimited tokens.",
|
||||||
|
"list": false,
|
||||||
|
"name": "max_tokens",
|
||||||
|
"placeholder": "",
|
||||||
|
"range_spec": {
|
||||||
|
"max": 128000,
|
||||||
|
"min": 0,
|
||||||
|
"step": 0.1,
|
||||||
|
"step_type": "float"
|
||||||
|
},
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "int",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
"model_kwargs": {
|
||||||
|
"_input_type": "DictInput",
|
||||||
|
"advanced": true,
|
||||||
|
"display_name": "Model Kwargs",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "Additional keyword arguments to pass to the model.",
|
||||||
|
"list": false,
|
||||||
|
"name": "model_kwargs",
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_input": true,
|
||||||
|
"type": "dict",
|
||||||
|
"value": {}
|
||||||
|
},
|
||||||
|
"model_name": {
|
||||||
|
"_input_type": "DropdownInput",
|
||||||
|
"advanced": false,
|
||||||
|
"combobox": false,
|
||||||
|
"display_name": "Model Name",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "",
|
||||||
|
"name": "model_name",
|
||||||
|
"options": [
|
||||||
|
"gpt-4o-mini",
|
||||||
|
"gpt-4o",
|
||||||
|
"gpt-4-turbo",
|
||||||
|
"gpt-4-turbo-preview",
|
||||||
|
"gpt-4",
|
||||||
|
"gpt-3.5-turbo",
|
||||||
|
"gpt-3.5-turbo-0125"
|
||||||
|
],
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "str",
|
||||||
|
"value": "gpt-4o-mini"
|
||||||
|
},
|
||||||
|
"openai_api_base": {
|
||||||
|
"_input_type": "StrInput",
|
||||||
|
"advanced": true,
|
||||||
|
"display_name": "OpenAI API Base",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "The base URL of the OpenAI API. Defaults to https://api.openai.com/v1. You can change this to use other APIs like JinaChat, LocalAI and Prem.",
|
||||||
|
"list": false,
|
||||||
|
"load_from_db": false,
|
||||||
|
"name": "openai_api_base",
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "str",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
"seed": {
|
||||||
|
"_input_type": "IntInput",
|
||||||
|
"advanced": true,
|
||||||
|
"display_name": "Seed",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "The seed controls the reproducibility of the job.",
|
||||||
|
"list": false,
|
||||||
|
"name": "seed",
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "int",
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
"stream": {
|
||||||
|
"_input_type": "BoolInput",
|
||||||
|
"advanced": false,
|
||||||
|
"display_name": "Stream",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "Stream the response from the model. Streaming works only in Chat.",
|
||||||
|
"list": false,
|
||||||
|
"name": "stream",
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "bool",
|
||||||
|
"value": false
|
||||||
|
},
|
||||||
|
"system_message": {
|
||||||
|
"_input_type": "MultilineInput",
|
||||||
|
"advanced": false,
|
||||||
|
"display_name": "System Message",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "System message to pass to the model.",
|
||||||
|
"input_types": [
|
||||||
|
"Message"
|
||||||
|
],
|
||||||
|
"list": false,
|
||||||
|
"load_from_db": false,
|
||||||
|
"multiline": true,
|
||||||
|
"name": "system_message",
|
||||||
|
"placeholder": "",
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"trace_as_input": true,
|
||||||
|
"trace_as_metadata": true,
|
||||||
|
"type": "str",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
"temperature": {
|
||||||
|
"_input_type": "SliderInput",
|
||||||
|
"advanced": false,
|
||||||
|
"display_name": "Temperature",
|
||||||
|
"dynamic": false,
|
||||||
|
"info": "",
|
||||||
|
"max_label": "",
|
||||||
|
"max_label_icon": "",
|
||||||
|
"min_label": "",
|
||||||
|
"min_label_icon": "",
|
||||||
|
"name": "temperature",
|
||||||
|
"placeholder": "",
|
||||||
|
"range_spec": {
|
||||||
|
"max": 2,
|
||||||
|
"min": 0,
|
||||||
|
"step": 0.01,
|
||||||
|
"step_type": "float"
|
||||||
|
},
|
||||||
|
"required": false,
|
||||||
|
"show": true,
|
||||||
|
"slider_buttons": false,
|
||||||
|
"slider_buttons_options": [],
|
||||||
|
"slider_input": false,
|
||||||
|
"title_case": false,
|
||||||
|
"tool_mode": false,
|
||||||
|
"type": "slider",
|
||||||
|
"value": 0.1
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tool_mode": false
|
||||||
|
},
|
||||||
|
"showNode": true,
|
||||||
|
"type": "OpenAIModel"
|
||||||
|
},
|
||||||
|
"dragging": false,
|
||||||
|
"id": "OpenAIModel-GtPty",
|
||||||
|
"measured": {
|
||||||
|
"height": 770,
|
||||||
|
"width": 360
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"x": 1075.2249314800433,
|
||||||
|
"y": 729.622454137517
|
||||||
|
},
|
||||||
|
"selected": false,
|
||||||
|
"type": "genericNode"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"viewport": {
|
"viewport": {
|
||||||
"x": -21.631817700819965,
|
"x": -352.0739415813646,
|
||||||
"y": -334.5576887147924,
|
"y": -439.19385215506,
|
||||||
"zoom": 0.7749929474098888
|
"zoom": 0.8590218788624804
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"description": "Perform basic prompting with an OpenAI model.",
|
"description": "Perform basic prompting with an OpenAI model.",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue