chore: Expose LLM usage also in parameter extractor node as it is a LLM-based node

pull/21766/head
Davide Delbianco 11 months ago
parent e83e8715e0
commit b230fb7f33
No known key found for this signature in database
GPG Key ID: 3C00412F2A31305E

@ -19,16 +19,24 @@ from core.model_runtime.entities.message_entities import (
UserPromptMessage, UserPromptMessage,
) )
from core.model_runtime.entities.model_entities import ModelFeature, ModelPropertyKey from core.model_runtime.entities.model_entities import ModelFeature, ModelPropertyKey
from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel from core.model_runtime.model_providers.__base.large_language_model import (
LargeLanguageModel,
)
from core.model_runtime.utils.encoders import jsonable_encoder from core.model_runtime.utils.encoders import jsonable_encoder
from core.prompt.advanced_prompt_transform import AdvancedPromptTransform from core.prompt.advanced_prompt_transform import AdvancedPromptTransform
from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate from core.prompt.entities.advanced_prompt_entities import (
ChatModelMessage,
CompletionModelPromptTemplate,
)
from core.prompt.simple_prompt_transform import ModelMode from core.prompt.simple_prompt_transform import ModelMode
from core.prompt.utils.prompt_message_util import PromptMessageUtil from core.prompt.utils.prompt_message_util import PromptMessageUtil
from core.variables.types import SegmentType from core.variables.types import SegmentType
from core.workflow.entities.node_entities import NodeRunResult from core.workflow.entities.node_entities import NodeRunResult
from core.workflow.entities.variable_pool import VariablePool from core.workflow.entities.variable_pool import VariablePool
from core.workflow.entities.workflow_node_execution import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from core.workflow.entities.workflow_node_execution import (
WorkflowNodeExecutionMetadataKey,
WorkflowNodeExecutionStatus,
)
from core.workflow.nodes.base.node import BaseNode from core.workflow.nodes.base.node import BaseNode
from core.workflow.nodes.enums import NodeType from core.workflow.nodes.enums import NodeType
from core.workflow.nodes.llm import ModelConfig, llm_utils from core.workflow.nodes.llm import ModelConfig, llm_utils
@ -104,7 +112,10 @@ class ParameterExtractorNode(BaseNode):
"model": { "model": {
"prompt_templates": { "prompt_templates": {
"completion_model": { "completion_model": {
"conversation_histories_role": {"user_prefix": "Human", "assistant_prefix": "Assistant"}, "conversation_histories_role": {
"user_prefix": "Human",
"assistant_prefix": "Assistant",
},
"stop": ["Human:"], "stop": ["Human:"],
} }
} }
@ -194,8 +205,7 @@ class ParameterExtractorNode(BaseNode):
"prompts": PromptMessageUtil.prompt_messages_to_prompt_for_saving( "prompts": PromptMessageUtil.prompt_messages_to_prompt_for_saving(
model_mode=model_config.mode, prompt_messages=prompt_messages model_mode=model_config.mode, prompt_messages=prompt_messages
), ),
"usage": None, "function": ({} if not prompt_message_tools else jsonable_encoder(prompt_message_tools[0])),
"function": {} if not prompt_message_tools else jsonable_encoder(prompt_message_tools[0]),
"tool_call": None, "tool_call": None,
"model_provider": model_config.provider, "model_provider": model_config.provider,
"model_name": model_config.model, "model_name": model_config.model,
@ -209,7 +219,6 @@ class ParameterExtractorNode(BaseNode):
tools=prompt_message_tools, tools=prompt_message_tools,
stop=model_config.stop, stop=model_config.stop,
) )
process_data["usage"] = jsonable_encoder(usage)
process_data["tool_call"] = jsonable_encoder(tool_call) process_data["tool_call"] = jsonable_encoder(tool_call)
process_data["llm_text"] = text process_data["llm_text"] = text
except ParameterExtractorNodeError as e: except ParameterExtractorNodeError as e:
@ -226,7 +235,11 @@ class ParameterExtractorNode(BaseNode):
status=WorkflowNodeExecutionStatus.FAILED, status=WorkflowNodeExecutionStatus.FAILED,
inputs=inputs, inputs=inputs,
process_data=process_data, process_data=process_data,
outputs={"__is_success": 0, "__reason": "Failed to invoke model", "__error": str(e)}, outputs={
"__is_success": 0,
"__reason": "Failed to invoke model",
"__error": str(e),
},
error=str(e), error=str(e),
metadata={}, metadata={},
) )
@ -253,7 +266,12 @@ class ParameterExtractorNode(BaseNode):
status=WorkflowNodeExecutionStatus.SUCCEEDED, status=WorkflowNodeExecutionStatus.SUCCEEDED,
inputs=inputs, inputs=inputs,
process_data=process_data, process_data=process_data,
outputs={"__is_success": 1 if not error else 0, "__reason": error, **result}, outputs={
"__is_success": 1 if not error else 0,
"__reason": error,
"__usage": jsonable_encoder(usage),
**result,
},
metadata={ metadata={
WorkflowNodeExecutionMetadataKey.TOTAL_TOKENS: usage.total_tokens, WorkflowNodeExecutionMetadataKey.TOTAL_TOKENS: usage.total_tokens,
WorkflowNodeExecutionMetadataKey.TOTAL_PRICE: usage.total_price, WorkflowNodeExecutionMetadataKey.TOTAL_PRICE: usage.total_price,
@ -359,7 +377,8 @@ class ParameterExtractorNode(BaseNode):
], ],
), ),
ToolPromptMessage( ToolPromptMessage(
content="Great! You have called the function with the correct parameters.", tool_call_id=id content="Great! You have called the function with the correct parameters.",
tool_call_id=id,
), ),
AssistantPromptMessage( AssistantPromptMessage(
content="I have extracted the parameters, let's move on.", content="I have extracted the parameters, let's move on.",
@ -433,10 +452,18 @@ class ParameterExtractorNode(BaseNode):
""" """
prompt_transform = AdvancedPromptTransform(with_variable_tmpl=True) prompt_transform = AdvancedPromptTransform(with_variable_tmpl=True)
rest_token = self._calculate_rest_token( rest_token = self._calculate_rest_token(
node_data=node_data, query=query, variable_pool=variable_pool, model_config=model_config, context="" node_data=node_data,
query=query,
variable_pool=variable_pool,
model_config=model_config,
context="",
) )
prompt_template = self._get_prompt_engineering_prompt_template( prompt_template = self._get_prompt_engineering_prompt_template(
node_data=node_data, query=query, variable_pool=variable_pool, memory=memory, max_token_limit=rest_token node_data=node_data,
query=query,
variable_pool=variable_pool,
memory=memory,
max_token_limit=rest_token,
) )
prompt_messages = prompt_transform.get_prompt( prompt_messages = prompt_transform.get_prompt(
prompt_template=prompt_template, prompt_template=prompt_template,
@ -467,7 +494,11 @@ class ParameterExtractorNode(BaseNode):
""" """
prompt_transform = AdvancedPromptTransform(with_variable_tmpl=True) prompt_transform = AdvancedPromptTransform(with_variable_tmpl=True)
rest_token = self._calculate_rest_token( rest_token = self._calculate_rest_token(
node_data=node_data, query=query, variable_pool=variable_pool, model_config=model_config, context="" node_data=node_data,
query=query,
variable_pool=variable_pool,
model_config=model_config,
context="",
) )
prompt_template = self._get_prompt_engineering_prompt_template( prompt_template = self._get_prompt_engineering_prompt_template(
node_data=node_data, node_data=node_data,
@ -696,7 +727,8 @@ class ParameterExtractorNode(BaseNode):
if memory and node_data.memory and node_data.memory.window: if memory and node_data.memory and node_data.memory.window:
memory_str = memory.get_history_prompt_text( memory_str = memory.get_history_prompt_text(
max_token_limit=max_token_limit, message_limit=node_data.memory.window.size max_token_limit=max_token_limit,
message_limit=node_data.memory.window.size,
) )
if model_mode == ModelMode.CHAT: if model_mode == ModelMode.CHAT:
system_prompt_messages = ChatModelMessage( system_prompt_messages = ChatModelMessage(
@ -723,7 +755,8 @@ class ParameterExtractorNode(BaseNode):
if memory and node_data.memory and node_data.memory.window: if memory and node_data.memory and node_data.memory.window:
memory_str = memory.get_history_prompt_text( memory_str = memory.get_history_prompt_text(
max_token_limit=max_token_limit, message_limit=node_data.memory.window.size max_token_limit=max_token_limit,
message_limit=node_data.memory.window.size,
) )
if model_mode == ModelMode.CHAT: if model_mode == ModelMode.CHAT:
system_prompt_messages = ChatModelMessage( system_prompt_messages = ChatModelMessage(
@ -762,7 +795,10 @@ class ParameterExtractorNode(BaseNode):
if not model_schema: if not model_schema:
raise ModelSchemaNotFoundError("Model schema not found") raise ModelSchemaNotFoundError("Model schema not found")
if set(model_schema.features or []) & {ModelFeature.MULTI_TOOL_CALL, ModelFeature.MULTI_TOOL_CALL}: if set(model_schema.features or []) & {
ModelFeature.MULTI_TOOL_CALL,
ModelFeature.MULTI_TOOL_CALL,
}:
prompt_template = self._get_function_calling_prompt_template(node_data, query, variable_pool, None, 2000) prompt_template = self._get_function_calling_prompt_template(node_data, query, variable_pool, None, 2000)
else: else:
prompt_template = self._get_prompt_engineering_prompt_template(node_data, query, variable_pool, None, 2000) prompt_template = self._get_prompt_engineering_prompt_template(node_data, query, variable_pool, None, 2000)

@ -11,7 +11,10 @@ from core.prompt.advanced_prompt_transform import AdvancedPromptTransform
from core.prompt.simple_prompt_transform import ModelMode from core.prompt.simple_prompt_transform import ModelMode
from core.prompt.utils.prompt_message_util import PromptMessageUtil from core.prompt.utils.prompt_message_util import PromptMessageUtil
from core.workflow.entities.node_entities import NodeRunResult from core.workflow.entities.node_entities import NodeRunResult
from core.workflow.entities.workflow_node_execution import WorkflowNodeExecutionMetadataKey, WorkflowNodeExecutionStatus from core.workflow.entities.workflow_node_execution import (
WorkflowNodeExecutionMetadataKey,
WorkflowNodeExecutionStatus,
)
from core.workflow.nodes.enums import NodeType from core.workflow.nodes.enums import NodeType
from core.workflow.nodes.event import ModelInvokeCompletedEvent from core.workflow.nodes.event import ModelInvokeCompletedEvent
from core.workflow.nodes.llm import ( from core.workflow.nodes.llm import (
@ -143,7 +146,12 @@ class QuestionClassifierNode(LLMNode):
"model_provider": model_config.provider, "model_provider": model_config.provider,
"model_name": model_config.model, "model_name": model_config.model,
} }
outputs = {"class_name": category_name, "class_id": category_id, "usage": jsonable_encoder(usage), "finish_reason": finish_reason} outputs = {
"class_name": category_name,
"class_id": category_id,
"usage": jsonable_encoder(usage),
"finish_reason": finish_reason,
}
return NodeRunResult( return NodeRunResult(
status=WorkflowNodeExecutionStatus.SUCCEEDED, status=WorkflowNodeExecutionStatus.SUCCEEDED,
@ -232,7 +240,8 @@ class QuestionClassifierNode(LLMNode):
model_context_tokens = model_config.model_schema.model_properties.get(ModelPropertyKey.CONTEXT_SIZE) model_context_tokens = model_config.model_schema.model_properties.get(ModelPropertyKey.CONTEXT_SIZE)
if model_context_tokens: if model_context_tokens:
model_instance = ModelInstance( model_instance = ModelInstance(
provider_model_bundle=model_config.provider_model_bundle, model=model_config.model provider_model_bundle=model_config.provider_model_bundle,
model=model_config.model,
) )
curr_message_tokens = model_instance.get_llm_num_tokens(prompt_messages) curr_message_tokens = model_instance.get_llm_num_tokens(prompt_messages)
@ -271,12 +280,13 @@ class QuestionClassifierNode(LLMNode):
if memory: if memory:
memory_str = memory.get_history_prompt_text( memory_str = memory.get_history_prompt_text(
max_token_limit=max_token_limit, max_token_limit=max_token_limit,
message_limit=node_data.memory.window.size if node_data.memory and node_data.memory.window else None, message_limit=(node_data.memory.window.size if node_data.memory and node_data.memory.window else None),
) )
prompt_messages: list[LLMNodeChatModelMessage] = [] prompt_messages: list[LLMNodeChatModelMessage] = []
if model_mode == ModelMode.CHAT: if model_mode == ModelMode.CHAT:
system_prompt_messages = LLMNodeChatModelMessage( system_prompt_messages = LLMNodeChatModelMessage(
role=PromptMessageRole.SYSTEM, text=QUESTION_CLASSIFIER_SYSTEM_PROMPT.format(histories=memory_str) role=PromptMessageRole.SYSTEM,
text=QUESTION_CLASSIFIER_SYSTEM_PROMPT.format(histories=memory_str),
) )
prompt_messages.append(system_prompt_messages) prompt_messages.append(system_prompt_messages)
user_prompt_message_1 = LLMNodeChatModelMessage( user_prompt_message_1 = LLMNodeChatModelMessage(
@ -284,7 +294,8 @@ class QuestionClassifierNode(LLMNode):
) )
prompt_messages.append(user_prompt_message_1) prompt_messages.append(user_prompt_message_1)
assistant_prompt_message_1 = LLMNodeChatModelMessage( assistant_prompt_message_1 = LLMNodeChatModelMessage(
role=PromptMessageRole.ASSISTANT, text=QUESTION_CLASSIFIER_ASSISTANT_PROMPT_1 role=PromptMessageRole.ASSISTANT,
text=QUESTION_CLASSIFIER_ASSISTANT_PROMPT_1,
) )
prompt_messages.append(assistant_prompt_message_1) prompt_messages.append(assistant_prompt_message_1)
user_prompt_message_2 = LLMNodeChatModelMessage( user_prompt_message_2 = LLMNodeChatModelMessage(
@ -292,7 +303,8 @@ class QuestionClassifierNode(LLMNode):
) )
prompt_messages.append(user_prompt_message_2) prompt_messages.append(user_prompt_message_2)
assistant_prompt_message_2 = LLMNodeChatModelMessage( assistant_prompt_message_2 = LLMNodeChatModelMessage(
role=PromptMessageRole.ASSISTANT, text=QUESTION_CLASSIFIER_ASSISTANT_PROMPT_2 role=PromptMessageRole.ASSISTANT,
text=QUESTION_CLASSIFIER_ASSISTANT_PROMPT_2,
) )
prompt_messages.append(assistant_prompt_message_2) prompt_messages.append(assistant_prompt_message_2)
user_prompt_message_3 = LLMNodeChatModelMessage( user_prompt_message_3 = LLMNodeChatModelMessage(

@ -554,6 +554,10 @@ export const PARAMETER_EXTRACTOR_COMMON_STRUCT: Var[] = [
variable: '__reason', variable: '__reason',
type: VarType.string, type: VarType.string,
}, },
{
variable: 'usage',
type: VarType.object,
},
] ]
export const FILE_STRUCT: Var[] = [ export const FILE_STRUCT: Var[] = [

@ -190,12 +190,17 @@ const Panel: FC<NodePanelProps<ParameterExtractorNodeType>> = ({
<VarItem <VarItem
name='__is_success' name='__is_success'
type={VarType.number} type={VarType.number}
description={t(`${i18nPrefix}.isSuccess`)} description={t(`${i18nPrefix}.outputVars.isSuccess`)}
/> />
<VarItem <VarItem
name='__reason' name='__reason'
type={VarType.string} type={VarType.string}
description={t(`${i18nPrefix}.errorReason`)} description={t(`${i18nPrefix}.outputVars.errorReason`)}
/>
<VarItem
name='__usage'
type='object'
description={t(`${i18nPrefix}.outputVars.usage`)}
/> />
</> </>
</OutputVars> </OutputVars>

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Eingabevariable', inputVar: 'Eingabevariable',
outputVars: {
isSuccess: 'Ist Erfolg. Bei Erfolg beträgt der Wert 1, bei Misserfolg beträgt der Wert 0.',
errorReason: 'Fehlergrund',
usage: 'Nutzungsinformationen des Modells',
},
extractParameters: 'Parameter extrahieren', extractParameters: 'Parameter extrahieren',
importFromTool: 'Aus Tools importieren', importFromTool: 'Aus Tools importieren',
addExtractParameter: 'Extraktionsparameter hinzufügen', addExtractParameter: 'Extraktionsparameter hinzufügen',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Erweiterte Einstellung', advancedSetting: 'Erweiterte Einstellung',
reasoningMode: 'Schlussfolgerungsmodus', reasoningMode: 'Schlussfolgerungsmodus',
reasoningModeTip: 'Sie können den entsprechenden Schlussfolgerungsmodus basierend auf der Fähigkeit des Modells wählen, auf Anweisungen zur Funktionsaufruf- oder Eingabeaufforderungen zu reagieren.', reasoningModeTip: 'Sie können den entsprechenden Schlussfolgerungsmodus basierend auf der Fähigkeit des Modells wählen, auf Anweisungen zur Funktionsaufruf- oder Eingabeaufforderungen zu reagieren.',
isSuccess: 'Ist Erfolg. Bei Erfolg beträgt der Wert 1, bei Misserfolg beträgt der Wert 0.',
errorReason: 'Fehlergrund',
}, },
iteration: { iteration: {
deleteTitle: 'Iterationsknoten löschen?', deleteTitle: 'Iterationsknoten löschen?',

@ -687,6 +687,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Input Variable', inputVar: 'Input Variable',
outputVars: {
isSuccess: 'Is Success.On success the value is 1, on failure the value is 0.',
errorReason: 'Error Reason',
usage: 'Model Usage Information',
},
extractParameters: 'Extract Parameters', extractParameters: 'Extract Parameters',
importFromTool: 'Import from tools', importFromTool: 'Import from tools',
addExtractParameter: 'Add Extract Parameter', addExtractParameter: 'Add Extract Parameter',
@ -706,8 +711,6 @@ const translation = {
advancedSetting: 'Advanced Setting', advancedSetting: 'Advanced Setting',
reasoningMode: 'Reasoning Mode', reasoningMode: 'Reasoning Mode',
reasoningModeTip: 'You can choose the appropriate reasoning mode based on the model\'s ability to respond to instructions for function calling or prompts.', reasoningModeTip: 'You can choose the appropriate reasoning mode based on the model\'s ability to respond to instructions for function calling or prompts.',
isSuccess: 'Is Success.On success the value is 1, on failure the value is 0.',
errorReason: 'Error Reason',
}, },
iteration: { iteration: {
deleteTitle: 'Delete Iteration Node?', deleteTitle: 'Delete Iteration Node?',

@ -681,6 +681,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Variable de entrada', inputVar: 'Variable de entrada',
outputVars: {
isSuccess: 'Es éxito. En caso de éxito el valor es 1, en caso de fallo el valor es 0.',
errorReason: 'Motivo del error',
usage: 'Información de uso del modelo',
},
extractParameters: 'Extraer parámetros', extractParameters: 'Extraer parámetros',
importFromTool: 'Importar desde herramientas', importFromTool: 'Importar desde herramientas',
addExtractParameter: 'Agregar parámetro de extracción', addExtractParameter: 'Agregar parámetro de extracción',
@ -700,8 +705,6 @@ const translation = {
advancedSetting: 'Configuración avanzada', advancedSetting: 'Configuración avanzada',
reasoningMode: 'Modo de razonamiento', reasoningMode: 'Modo de razonamiento',
reasoningModeTip: 'Puede elegir el modo de razonamiento apropiado basado en la capacidad del modelo para responder a instrucciones para llamadas de funciones o indicaciones.', reasoningModeTip: 'Puede elegir el modo de razonamiento apropiado basado en la capacidad del modelo para responder a instrucciones para llamadas de funciones o indicaciones.',
isSuccess: 'Es éxito. En caso de éxito el valor es 1, en caso de fallo el valor es 0.',
errorReason: 'Motivo del error',
}, },
iteration: { iteration: {
deleteTitle: '¿Eliminar nodo de iteración?', deleteTitle: '¿Eliminar nodo de iteración?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'متغیر ورودی', inputVar: 'متغیر ورودی',
outputVars: {
isSuccess: 'موفقیت‌آمیز است. در صورت موفقیت مقدار 1 و در صورت شکست مقدار 0 است.',
errorReason: 'دلیل خطا',
usage: 'اطلاعات استفاده از مدل',
},
extractParameters: 'استخراج پارامترها', extractParameters: 'استخراج پارامترها',
importFromTool: 'وارد کردن از ابزارها', importFromTool: 'وارد کردن از ابزارها',
addExtractParameter: 'افزودن پارامتر استخراج شده', addExtractParameter: 'افزودن پارامتر استخراج شده',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'تنظیمات پیشرفته', advancedSetting: 'تنظیمات پیشرفته',
reasoningMode: 'حالت استدلال', reasoningMode: 'حالت استدلال',
reasoningModeTip: 'می‌توانید حالت استدلال مناسب را بر اساس توانایی مدل برای پاسخ به دستورات برای فراخوانی عملکردها یا پیشنهادات انتخاب کنید.', reasoningModeTip: 'می‌توانید حالت استدلال مناسب را بر اساس توانایی مدل برای پاسخ به دستورات برای فراخوانی عملکردها یا پیشنهادات انتخاب کنید.',
isSuccess: 'موفقیت‌آمیز است. در صورت موفقیت مقدار 1 و در صورت شکست مقدار 0 است.',
errorReason: 'دلیل خطا',
}, },
iteration: { iteration: {
deleteTitle: 'حذف نود تکرار؟', deleteTitle: 'حذف نود تکرار؟',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Variable de saisie', inputVar: 'Variable de saisie',
outputVars: {
isSuccess: 'Est réussi. En cas de succès, la valeur est 1, en cas d\'échec, la valeur est 0.',
errorReason: 'Raison de l\'erreur',
usage: 'Informations sur l\'utilisation du modèle',
},
extractParameters: 'Extraire des paramètres', extractParameters: 'Extraire des paramètres',
importFromTool: 'Importer des outils', importFromTool: 'Importer des outils',
addExtractParameter: 'Ajouter un paramètre d\'extraction', addExtractParameter: 'Ajouter un paramètre d\'extraction',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Paramètre avancé', advancedSetting: 'Paramètre avancé',
reasoningMode: 'Mode de raisonnement', reasoningMode: 'Mode de raisonnement',
reasoningModeTip: 'Vous pouvez choisir le mode de raisonnement approprié en fonction de la capacité du modèle à répondre aux instructions pour les appels de fonction ou les invites.', reasoningModeTip: 'Vous pouvez choisir le mode de raisonnement approprié en fonction de la capacité du modèle à répondre aux instructions pour les appels de fonction ou les invites.',
isSuccess: 'Est réussi. En cas de succès, la valeur est 1, en cas d\'échec, la valeur est 0.',
errorReason: 'Raison de l\'erreur',
}, },
iteration: { iteration: {
deleteTitle: 'Supprimer le nœud d\'itération?', deleteTitle: 'Supprimer le nœud d\'itération?',

@ -700,6 +700,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'इनपुट वेरिएबल', inputVar: 'इनपुट वेरिएबल',
outputVars: {
isSuccess: 'सफलता है। सफलता पर मान 1 है, असफलता पर मान 0 है।',
errorReason: 'त्रुटि का कारण',
usage: 'मॉडल उपयोग जानकारी',
},
extractParameters: 'पैरामीटर्स निकालें', extractParameters: 'पैरामीटर्स निकालें',
importFromTool: 'उपकरणों से आयात करें', importFromTool: 'उपकरणों से आयात करें',
addExtractParameter: 'एक्सट्रेक्ट पैरामीटर जोड़ें', addExtractParameter: 'एक्सट्रेक्ट पैरामीटर जोड़ें',
@ -722,8 +727,6 @@ const translation = {
reasoningMode: 'रीज़निंग मोड', reasoningMode: 'रीज़निंग मोड',
reasoningModeTip: reasoningModeTip:
'फ़ंक्शन कॉलिंग या प्रॉम्प्ट्स के लिए निर्देशों का जवाब देने की मॉडल की क्षमता के आधार पर उपयुक्त रीज़निंग मोड चुन सकते हैं।', 'फ़ंक्शन कॉलिंग या प्रॉम्प्ट्स के लिए निर्देशों का जवाब देने की मॉडल की क्षमता के आधार पर उपयुक्त रीज़निंग मोड चुन सकते हैं।',
isSuccess: 'सफलता है। सफलता पर मान 1 है, असफलता पर मान 0 है।',
errorReason: 'त्रुटि का कारण',
}, },
iteration: { iteration: {
deleteTitle: 'इटरेशन नोड हटाएं?', deleteTitle: 'इटरेशन नोड हटाएं?',

@ -703,6 +703,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Variabile di Input', inputVar: 'Variabile di Input',
outputVars: {
isSuccess: 'È successo. In caso di successo il valore è 1, in caso di fallimento il valore è 0.',
errorReason: 'Motivo dell\'errore',
usage: 'Informazioni sull\'utilizzo del modello',
},
extractParameters: 'Estrai Parametri', extractParameters: 'Estrai Parametri',
importFromTool: 'Importa dagli strumenti', importFromTool: 'Importa dagli strumenti',
addExtractParameter: 'Aggiungi Parametro Estratto', addExtractParameter: 'Aggiungi Parametro Estratto',
@ -725,9 +730,6 @@ const translation = {
reasoningMode: 'Modalità di ragionamento', reasoningMode: 'Modalità di ragionamento',
reasoningModeTip: reasoningModeTip:
'Puoi scegliere la modalità di ragionamento appropriata in base alla capacità del modello di rispondere alle istruzioni per la chiamata delle funzioni o i prompt.', 'Puoi scegliere la modalità di ragionamento appropriata in base alla capacità del modello di rispondere alle istruzioni per la chiamata delle funzioni o i prompt.',
isSuccess:
'È successo. In caso di successo il valore è 1, in caso di fallimento il valore è 0.',
errorReason: 'Motivo dell\'errore',
}, },
iteration: { iteration: {
deleteTitle: 'Eliminare Nodo Iterazione?', deleteTitle: 'Eliminare Nodo Iterazione?',

@ -690,6 +690,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: '入力変数', inputVar: '入力変数',
outputVars: {
isSuccess: '成功。成功した場合の値は 1、失敗した場合の値は 0 です。',
errorReason: 'エラーの理由',
usage: 'モデル使用量',
},
extractParameters: 'パラメーターを抽出', extractParameters: 'パラメーターを抽出',
importFromTool: 'ツールからインポート', importFromTool: 'ツールからインポート',
addExtractParameter: '抽出パラメーターを追加', addExtractParameter: '抽出パラメーターを追加',
@ -709,8 +714,6 @@ const translation = {
advancedSetting: '高度な設定', advancedSetting: '高度な設定',
reasoningMode: '推論モード', reasoningMode: '推論モード',
reasoningModeTip: '関数呼び出しやプロンプトの指示に応答するモデルの能力に基づいて、適切な推論モードを選択できます。', reasoningModeTip: '関数呼び出しやプロンプトの指示に応答するモデルの能力に基づいて、適切な推論モードを選択できます。',
isSuccess: '成功。成功した場合の値は 1、失敗した場合の値は 0 です。',
errorReason: 'エラーの理由',
}, },
iteration: { iteration: {
deleteTitle: 'イテレーションノードを削除しますか?', deleteTitle: 'イテレーションノードを削除しますか?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: '입력 변수', inputVar: '입력 변수',
outputVars: {
isSuccess: '성공 여부. 성공 시 값은 1 이고, 실패 시 값은 0 입니다.',
errorReason: '오류 원인',
usage: '모델 사용 정보',
},
extractParameters: '매개변수 추출', extractParameters: '매개변수 추출',
importFromTool: '도구에서 가져오기', importFromTool: '도구에서 가져오기',
addExtractParameter: '추출 매개변수 추가', addExtractParameter: '추출 매개변수 추가',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: '고급 설정', advancedSetting: '고급 설정',
reasoningMode: '추론 모드', reasoningMode: '추론 모드',
reasoningModeTip: '모델의 함수 호출 또는 프롬프트에 대한 지시 응답 능력을 기반으로 적절한 추론 모드를 선택할 수 있습니다.', reasoningModeTip: '모델의 함수 호출 또는 프롬프트에 대한 지시 응답 능력을 기반으로 적절한 추론 모드를 선택할 수 있습니다.',
isSuccess: '성공 여부. 성공 시 값은 1 이고, 실패 시 값은 0 입니다.',
errorReason: '오류 원인',
}, },
iteration: { iteration: {
deleteTitle: '반복 노드를 삭제하시겠습니까?', deleteTitle: '반복 노드를 삭제하시겠습니까?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Zmienna wejściowa', inputVar: 'Zmienna wejściowa',
outputVars: {
isSuccess: 'Czy się udało. W przypadku sukcesu wartość wynosi 1, w przypadku niepowodzenia wartość wynosi 0.',
errorReason: 'Powód błędu',
usage: 'Informacje o użyciu modelu',
},
extractParameters: 'Wyodrębnij parametry', extractParameters: 'Wyodrębnij parametry',
importFromTool: 'Importuj z narzędzi', importFromTool: 'Importuj z narzędzi',
addExtractParameter: 'Dodaj parametr wyodrębniania', addExtractParameter: 'Dodaj parametr wyodrębniania',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Zaawansowane ustawienia', advancedSetting: 'Zaawansowane ustawienia',
reasoningMode: 'Tryb wnioskowania', reasoningMode: 'Tryb wnioskowania',
reasoningModeTip: 'Możesz wybrać odpowiedni tryb wnioskowania w zależności od zdolności modelu do reagowania na instrukcje dotyczące wywoływania funkcji lub zapytań.', reasoningModeTip: 'Możesz wybrać odpowiedni tryb wnioskowania w zależności od zdolności modelu do reagowania na instrukcje dotyczące wywoływania funkcji lub zapytań.',
isSuccess: 'Czy się udało. W przypadku sukcesu wartość wynosi 1, w przypadku niepowodzenia wartość wynosi 0.',
errorReason: 'Powód błędu',
}, },
iteration: { iteration: {
deleteTitle: 'Usunąć węzeł iteracji?', deleteTitle: 'Usunąć węzeł iteracji?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Variável de entrada', inputVar: 'Variável de entrada',
outputVars: {
isSuccess: 'É sucesso. Em caso de sucesso, o valor é 1, em caso de falha, o valor é 0.',
errorReason: 'Motivo do erro',
usage: 'Informações de uso do modelo',
},
extractParameters: 'Extrair parâmetros', extractParameters: 'Extrair parâmetros',
importFromTool: 'Importar das ferramentas', importFromTool: 'Importar das ferramentas',
addExtractParameter: 'Adicionar parâmetro de extração', addExtractParameter: 'Adicionar parâmetro de extração',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Configuração avançada', advancedSetting: 'Configuração avançada',
reasoningMode: 'Modo de raciocínio', reasoningMode: 'Modo de raciocínio',
reasoningModeTip: 'Você pode escolher o modo de raciocínio apropriado com base na capacidade do modelo de responder a instruções para chamadas de função ou prompts.', reasoningModeTip: 'Você pode escolher o modo de raciocínio apropriado com base na capacidade do modelo de responder a instruções para chamadas de função ou prompts.',
isSuccess: 'É sucesso. Em caso de sucesso, o valor é 1, em caso de falha, o valor é 0.',
errorReason: 'Motivo do erro',
}, },
iteration: { iteration: {
deleteTitle: 'Excluir nó de iteração?', deleteTitle: 'Excluir nó de iteração?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Variabilă de intrare', inputVar: 'Variabilă de intrare',
outputVars: {
isSuccess: 'Este succes. În caz de succes valoarea este 1, în caz de eșec valoarea este 0.',
errorReason: 'Motivul erorii',
usage: 'Informații de utilizare a modelului',
},
extractParameters: 'Extrageți parametrii', extractParameters: 'Extrageți parametrii',
importFromTool: 'Importă din instrumente', importFromTool: 'Importă din instrumente',
addExtractParameter: 'Adăugați parametru de extragere', addExtractParameter: 'Adăugați parametru de extragere',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Setare avansată', advancedSetting: 'Setare avansată',
reasoningMode: 'Mod de raționament', reasoningMode: 'Mod de raționament',
reasoningModeTip: 'Puteți alege modul de raționament potrivit în funcție de capacitatea modelului de a răspunde la instrucțiuni pentru apelarea funcțiilor sau prompturi.', reasoningModeTip: 'Puteți alege modul de raționament potrivit în funcție de capacitatea modelului de a răspunde la instrucțiuni pentru apelarea funcțiilor sau prompturi.',
isSuccess: 'Este succes. În caz de succes valoarea este 1, în caz de eșec valoarea este 0.',
errorReason: 'Motivul erorii',
}, },
iteration: { iteration: {
deleteTitle: 'Ștergeți nodul de iterație?', deleteTitle: 'Ștergeți nodul de iterație?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Входная переменная', inputVar: 'Входная переменная',
outputVars: {
isSuccess: 'Успешно. В случае успеха значение равно 1, в случае сбоя - 0.',
errorReason: 'Причина ошибки',
usage: 'Информация об использовании модели',
},
extractParameters: 'Извлечь параметры', extractParameters: 'Извлечь параметры',
importFromTool: 'Импортировать из инструментов', importFromTool: 'Импортировать из инструментов',
addExtractParameter: 'Добавить параметр для извлечения', addExtractParameter: 'Добавить параметр для извлечения',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Расширенные настройки', advancedSetting: 'Расширенные настройки',
reasoningMode: 'Режим рассуждения', reasoningMode: 'Режим рассуждения',
reasoningModeTip: 'Вы можете выбрать соответствующий режим рассуждения, основываясь на способности модели реагировать на инструкции для вызова функций или подсказки.', reasoningModeTip: 'Вы можете выбрать соответствующий режим рассуждения, основываясь на способности модели реагировать на инструкции для вызова функций или подсказки.',
isSuccess: 'Успешно. В случае успеха значение равно 1, в случае сбоя - 0.',
errorReason: 'Причина ошибки',
}, },
iteration: { iteration: {
deleteTitle: 'Удалить узел итерации?', deleteTitle: 'Удалить узел итерации?',

@ -693,16 +693,19 @@ const translation = {
requiredContent: 'Zahtevano se uporablja le kot referenca za sklepanje modela in ne kot obvezno validacijo izhodnih parametrov.', requiredContent: 'Zahtevano se uporablja le kot referenca za sklepanje modela in ne kot obvezno validacijo izhodnih parametrov.',
}, },
extractParameters: 'Izvleči parametre', extractParameters: 'Izvleči parametre',
errorReason: 'Razlog za napako',
instruction: 'Navodilo', instruction: 'Navodilo',
instructionTip: 'Vnesite dodatna navodila, da pomagate izvleku parametrov razumeti, kako izvleči parametre.', instructionTip: 'Vnesite dodatna navodila, da pomagate izvleku parametrov razumeti, kako izvleči parametre.',
reasoningMode: 'Način razmišljanja', reasoningMode: 'Način razmišljanja',
isSuccess: 'Ali je uspeh. Na uspehu je vrednost 1, na neuspehu je vrednost 0.',
importFromTool: 'Uvoz iz orodij', importFromTool: 'Uvoz iz orodij',
advancedSetting: 'Napredno nastavitev', advancedSetting: 'Napredno nastavitev',
addExtractParameter: 'Dodaj parameter za ekstrakcijo', addExtractParameter: 'Dodaj parameter za ekstrakcijo',
extractParametersNotSet: 'Parameterji za ekstrakcijo niso nastavljeni', extractParametersNotSet: 'Parameterji za ekstrakcijo niso nastavljeni',
inputVar: 'Vhodna spremenljivka', inputVar: 'Vhodna spremenljivka',
outputVars: {
isSuccess: 'Ali je uspeh. Na uspehu je vrednost 1, na neuspehu je vrednost 0.',
errorReason: 'Razlog za napako',
usage: 'Informacije o uporabi modela',
},
reasoningModeTip: 'Lahko izberete ustrezen način razmišljanja glede na sposobnost modela, da se odzove na navodila za klic funkcij ali pozive.', reasoningModeTip: 'Lahko izberete ustrezen način razmišljanja glede na sposobnost modela, da se odzove na navodila za klic funkcij ali pozive.',
}, },
iteration: { iteration: {

@ -682,6 +682,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'ตัวแปรอินพุต', inputVar: 'ตัวแปรอินพุต',
outputVars: {
isSuccess: 'คือ Success เมื่อสําเร็จค่าคือ 1 เมื่อล้มเหลวค่าเป็น 0',
errorReason: 'สาเหตุข้อผิดพลาด',
usage: 'ข้อมูลการใช้งานรุ่น',
},
extractParameters: 'แยกพารามิเตอร์', extractParameters: 'แยกพารามิเตอร์',
importFromTool: 'นําเข้าจากเครื่องมือ', importFromTool: 'นําเข้าจากเครื่องมือ',
addExtractParameter: 'เพิ่มพารามิเตอร์การแยกข้อมูล', addExtractParameter: 'เพิ่มพารามิเตอร์การแยกข้อมูล',
@ -701,8 +706,6 @@ const translation = {
advancedSetting: 'การตั้งค่าขั้นสูง', advancedSetting: 'การตั้งค่าขั้นสูง',
reasoningMode: 'โหมดการให้เหตุผล', reasoningMode: 'โหมดการให้เหตุผล',
reasoningModeTip: 'คุณสามารถเลือกโหมดการให้เหตุผลที่เหมาะสมตามความสามารถของโมเดลในการตอบสนองต่อคําแนะนําสําหรับการเรียกใช้ฟังก์ชันหรือข้อความแจ้ง', reasoningModeTip: 'คุณสามารถเลือกโหมดการให้เหตุผลที่เหมาะสมตามความสามารถของโมเดลในการตอบสนองต่อคําแนะนําสําหรับการเรียกใช้ฟังก์ชันหรือข้อความแจ้ง',
isSuccess: 'คือ Success เมื่อสําเร็จค่าคือ 1 เมื่อล้มเหลวค่าเป็น 0',
errorReason: 'สาเหตุข้อผิดพลาด',
}, },
iteration: { iteration: {
deleteTitle: 'ลบโหนดการทําซ้ํา?', deleteTitle: 'ลบโหนดการทําซ้ํา?',

@ -684,6 +684,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Giriş Değişkeni', inputVar: 'Giriş Değişkeni',
outputVars: {
isSuccess: 'Başarılı mı. Başarılı olduğunda değer 1, başarısız olduğunda değer 0\'dır.',
errorReason: 'Hata Nedeni',
usage: 'Model Kullanım Bilgileri',
},
extractParameters: 'Parametreleri Çıkar', extractParameters: 'Parametreleri Çıkar',
importFromTool: 'Araçlardan içe aktar', importFromTool: 'Araçlardan içe aktar',
addExtractParameter: ıkarma Parametresi Ekle', addExtractParameter: ıkarma Parametresi Ekle',
@ -703,8 +708,6 @@ const translation = {
advancedSetting: 'Gelişmiş Ayarlar', advancedSetting: 'Gelişmiş Ayarlar',
reasoningMode: 'Akıl Yürütme Modu', reasoningMode: 'Akıl Yürütme Modu',
reasoningModeTip: 'Modelin fonksiyon çağırma veya istemler için talimatlara yanıt verme yeteneğine bağlı olarak uygun akıl yürütme modunu seçebilirsiniz.', reasoningModeTip: 'Modelin fonksiyon çağırma veya istemler için talimatlara yanıt verme yeteneğine bağlı olarak uygun akıl yürütme modunu seçebilirsiniz.',
isSuccess: 'Başarılı mı. Başarılı olduğunda değer 1, başarısız olduğunda değer 0\'dır.',
errorReason: 'Hata Nedeni',
}, },
iteration: { iteration: {
deleteTitle: 'Yineleme Düğümünü Sil?', deleteTitle: 'Yineleme Düğümünü Sil?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Вхідна змінна', inputVar: 'Вхідна змінна',
outputVars: {
isSuccess: 'Є успіх. У разі успіху значення 1, у разі невдачі значення 0.',
errorReason: 'Причина помилки',
usage: 'Інформація про використання моделі',
},
extractParameters: 'Витягти параметри', extractParameters: 'Витягти параметри',
importFromTool: 'Імпорт з інструментів', importFromTool: 'Імпорт з інструментів',
addExtractParameter: 'Додати параметр витягування', addExtractParameter: 'Додати параметр витягування',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Розширене налаштування', advancedSetting: 'Розширене налаштування',
reasoningMode: 'Режим інференції', reasoningMode: 'Режим інференції',
reasoningModeTip: 'Ви можете вибрати відповідний режим інференції залежно від здатності моделі реагувати на інструкції щодо викликів функцій або запитів.', reasoningModeTip: 'Ви можете вибрати відповідний режим інференції залежно від здатності моделі реагувати на інструкції щодо викликів функцій або запитів.',
isSuccess: 'Є успіх. У разі успіху значення 1, у разі невдачі значення 0.',
errorReason: 'Причина помилки',
}, },
iteration: { iteration: {
deleteTitle: 'Видалити вузол ітерації?', deleteTitle: 'Видалити вузол ітерації?',

@ -683,6 +683,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: 'Biến đầu vào', inputVar: 'Biến đầu vào',
outputVars: {
isSuccess: 'Thành công. Khi thành công giá trị là 1, khi thất bại giá trị là 0.',
errorReason: 'Lý do lỗi',
usage: 'Thông tin sử dụng mô hình',
},
extractParameters: 'Trích xuất tham số', extractParameters: 'Trích xuất tham số',
importFromTool: 'Nhập từ công cụ', importFromTool: 'Nhập từ công cụ',
addExtractParameter: 'Thêm tham số trích xuất', addExtractParameter: 'Thêm tham số trích xuất',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Cài đặt nâng cao', advancedSetting: 'Cài đặt nâng cao',
reasoningMode: 'Chế độ suy luận', reasoningMode: 'Chế độ suy luận',
reasoningModeTip: 'Bạn có thể chọn chế độ suy luận phù hợp dựa trên khả năng của mô hình để phản hồi các hướng dẫn về việc gọi hàm hoặc prompt.', reasoningModeTip: 'Bạn có thể chọn chế độ suy luận phù hợp dựa trên khả năng của mô hình để phản hồi các hướng dẫn về việc gọi hàm hoặc prompt.',
isSuccess: 'Thành công. Khi thành công giá trị là 1, khi thất bại giá trị là 0.',
errorReason: 'Lý do lỗi',
}, },
iteration: { iteration: {
deleteTitle: 'Xóa nút lặp?', deleteTitle: 'Xóa nút lặp?',

@ -688,6 +688,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: '输入变量', inputVar: '输入变量',
outputVars: {
isSuccess: '是否成功。成功时值为 1失败时值为 0。',
errorReason: '错误原因',
usage: '模型用量信息',
},
extractParameters: '提取参数', extractParameters: '提取参数',
importFromTool: '从工具导入', importFromTool: '从工具导入',
addExtractParameter: '添加提取参数', addExtractParameter: '添加提取参数',
@ -707,8 +712,6 @@ const translation = {
advancedSetting: '高级设置', advancedSetting: '高级设置',
reasoningMode: '推理模式', reasoningMode: '推理模式',
reasoningModeTip: '你可以根据模型对于 Function calling 或 Prompt 的指令响应能力选择合适的推理模式', reasoningModeTip: '你可以根据模型对于 Function calling 或 Prompt 的指令响应能力选择合适的推理模式',
isSuccess: '是否成功。成功时值为 1失败时值为 0。',
errorReason: '错误原因',
}, },
iteration: { iteration: {
deleteTitle: '删除迭代节点?', deleteTitle: '删除迭代节点?',

@ -684,6 +684,11 @@ const translation = {
}, },
parameterExtractor: { parameterExtractor: {
inputVar: '輸入變量', inputVar: '輸入變量',
outputVars: {
isSuccess: '是否成功。成功時值為 1失敗時值為 0。',
errorReason: '錯誤原因',
usage: '模型用量信息',
},
extractParameters: '提取參數', extractParameters: '提取參數',
importFromTool: '從工具導入', importFromTool: '從工具導入',
addExtractParameter: '添加提取參數', addExtractParameter: '添加提取參數',
@ -703,8 +708,6 @@ const translation = {
advancedSetting: '高級設置', advancedSetting: '高級設置',
reasoningMode: '推理模式', reasoningMode: '推理模式',
reasoningModeTip: '你可以根據模型對於 Function calling 或 Prompt 的指令響應能力選擇合適的推理模式', reasoningModeTip: '你可以根據模型對於 Function calling 或 Prompt 的指令響應能力選擇合適的推理模式',
isSuccess: '是否成功。成功時值為 1失敗時值為 0。',
errorReason: '錯誤原因',
}, },
iteration: { iteration: {
deleteTitle: '刪除迭代節點?', deleteTitle: '刪除迭代節點?',

Loading…
Cancel
Save