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,
)
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.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.utils.prompt_message_util import PromptMessageUtil
from core.variables.types import SegmentType
from core.workflow.entities.node_entities import NodeRunResult
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.enums import NodeType
from core.workflow.nodes.llm import ModelConfig, llm_utils
@ -104,7 +112,10 @@ class ParameterExtractorNode(BaseNode):
"model": {
"prompt_templates": {
"completion_model": {
"conversation_histories_role": {"user_prefix": "Human", "assistant_prefix": "Assistant"},
"conversation_histories_role": {
"user_prefix": "Human",
"assistant_prefix": "Assistant",
},
"stop": ["Human:"],
}
}
@ -194,8 +205,7 @@ class ParameterExtractorNode(BaseNode):
"prompts": PromptMessageUtil.prompt_messages_to_prompt_for_saving(
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,
"model_provider": model_config.provider,
"model_name": model_config.model,
@ -209,7 +219,6 @@ class ParameterExtractorNode(BaseNode):
tools=prompt_message_tools,
stop=model_config.stop,
)
process_data["usage"] = jsonable_encoder(usage)
process_data["tool_call"] = jsonable_encoder(tool_call)
process_data["llm_text"] = text
except ParameterExtractorNodeError as e:
@ -226,7 +235,11 @@ class ParameterExtractorNode(BaseNode):
status=WorkflowNodeExecutionStatus.FAILED,
inputs=inputs,
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),
metadata={},
)
@ -253,7 +266,12 @@ class ParameterExtractorNode(BaseNode):
status=WorkflowNodeExecutionStatus.SUCCEEDED,
inputs=inputs,
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={
WorkflowNodeExecutionMetadataKey.TOTAL_TOKENS: usage.total_tokens,
WorkflowNodeExecutionMetadataKey.TOTAL_PRICE: usage.total_price,
@ -359,7 +377,8 @@ class ParameterExtractorNode(BaseNode):
],
),
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(
content="I have extracted the parameters, let's move on.",
@ -433,10 +452,18 @@ class ParameterExtractorNode(BaseNode):
"""
prompt_transform = AdvancedPromptTransform(with_variable_tmpl=True)
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(
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_template=prompt_template,
@ -467,7 +494,11 @@ class ParameterExtractorNode(BaseNode):
"""
prompt_transform = AdvancedPromptTransform(with_variable_tmpl=True)
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(
node_data=node_data,
@ -696,7 +727,8 @@ class ParameterExtractorNode(BaseNode):
if memory and node_data.memory and node_data.memory.window:
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:
system_prompt_messages = ChatModelMessage(
@ -723,7 +755,8 @@ class ParameterExtractorNode(BaseNode):
if memory and node_data.memory and node_data.memory.window:
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:
system_prompt_messages = ChatModelMessage(
@ -762,7 +795,10 @@ class ParameterExtractorNode(BaseNode):
if not model_schema:
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)
else:
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.utils.prompt_message_util import PromptMessageUtil
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.event import ModelInvokeCompletedEvent
from core.workflow.nodes.llm import (
@ -143,7 +146,12 @@ class QuestionClassifierNode(LLMNode):
"model_provider": model_config.provider,
"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(
status=WorkflowNodeExecutionStatus.SUCCEEDED,
@ -232,7 +240,8 @@ class QuestionClassifierNode(LLMNode):
model_context_tokens = model_config.model_schema.model_properties.get(ModelPropertyKey.CONTEXT_SIZE)
if model_context_tokens:
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)
@ -271,12 +280,13 @@ class QuestionClassifierNode(LLMNode):
if memory:
memory_str = memory.get_history_prompt_text(
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] = []
if model_mode == ModelMode.CHAT:
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)
user_prompt_message_1 = LLMNodeChatModelMessage(
@ -284,7 +294,8 @@ class QuestionClassifierNode(LLMNode):
)
prompt_messages.append(user_prompt_message_1)
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)
user_prompt_message_2 = LLMNodeChatModelMessage(
@ -292,7 +303,8 @@ class QuestionClassifierNode(LLMNode):
)
prompt_messages.append(user_prompt_message_2)
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)
user_prompt_message_3 = LLMNodeChatModelMessage(

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

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

@ -683,6 +683,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Aus Tools importieren',
addExtractParameter: 'Extraktionsparameter hinzufügen',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Erweiterte Einstellung',
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.',
isSuccess: 'Ist Erfolg. Bei Erfolg beträgt der Wert 1, bei Misserfolg beträgt der Wert 0.',
errorReason: 'Fehlergrund',
},
iteration: {
deleteTitle: 'Iterationsknoten löschen?',

@ -687,6 +687,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Import from tools',
addExtractParameter: 'Add Extract Parameter',
@ -706,8 +711,6 @@ const translation = {
advancedSetting: 'Advanced Setting',
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.',
isSuccess: 'Is Success.On success the value is 1, on failure the value is 0.',
errorReason: 'Error Reason',
},
iteration: {
deleteTitle: 'Delete Iteration Node?',

@ -681,6 +681,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Importar desde herramientas',
addExtractParameter: 'Agregar parámetro de extracción',
@ -700,8 +705,6 @@ const translation = {
advancedSetting: 'Configuración avanzada',
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.',
isSuccess: 'Es éxito. En caso de éxito el valor es 1, en caso de fallo el valor es 0.',
errorReason: 'Motivo del error',
},
iteration: {
deleteTitle: '¿Eliminar nodo de iteración?',

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

@ -683,6 +683,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Importer des outils',
addExtractParameter: 'Ajouter un paramètre d\'extraction',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Paramètre avancé',
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.',
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: {
deleteTitle: 'Supprimer le nœud d\'itération?',

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

@ -703,6 +703,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Importa dagli strumenti',
addExtractParameter: 'Aggiungi Parametro Estratto',
@ -725,9 +730,6 @@ const translation = {
reasoningMode: 'Modalità di ragionamento',
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.',
isSuccess:
'È successo. In caso di successo il valore è 1, in caso di fallimento il valore è 0.',
errorReason: 'Motivo dell\'errore',
},
iteration: {
deleteTitle: 'Eliminare Nodo Iterazione?',

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

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

@ -683,6 +683,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Importuj z narzędzi',
addExtractParameter: 'Dodaj parametr wyodrębniania',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Zaawansowane ustawienia',
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ń.',
isSuccess: 'Czy się udało. W przypadku sukcesu wartość wynosi 1, w przypadku niepowodzenia wartość wynosi 0.',
errorReason: 'Powód błędu',
},
iteration: {
deleteTitle: 'Usunąć węzeł iteracji?',

@ -683,6 +683,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Importar das ferramentas',
addExtractParameter: 'Adicionar parâmetro de extração',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Configuração avançada',
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.',
isSuccess: 'É sucesso. Em caso de sucesso, o valor é 1, em caso de falha, o valor é 0.',
errorReason: 'Motivo do erro',
},
iteration: {
deleteTitle: 'Excluir nó de iteração?',

@ -683,6 +683,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Importă din instrumente',
addExtractParameter: 'Adăugați parametru de extragere',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Setare avansată',
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.',
isSuccess: 'Este succes. În caz de succes valoarea este 1, în caz de eșec valoarea este 0.',
errorReason: 'Motivul erorii',
},
iteration: {
deleteTitle: 'Ștergeți nodul de iterație?',

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

@ -693,16 +693,19 @@ const translation = {
requiredContent: 'Zahtevano se uporablja le kot referenca za sklepanje modela in ne kot obvezno validacijo izhodnih parametrov.',
},
extractParameters: 'Izvleči parametre',
errorReason: 'Razlog za napako',
instruction: 'Navodilo',
instructionTip: 'Vnesite dodatna navodila, da pomagate izvleku parametrov razumeti, kako izvleči parametre.',
reasoningMode: 'Način razmišljanja',
isSuccess: 'Ali je uspeh. Na uspehu je vrednost 1, na neuspehu je vrednost 0.',
importFromTool: 'Uvoz iz orodij',
advancedSetting: 'Napredno nastavitev',
addExtractParameter: 'Dodaj parameter za ekstrakcijo',
extractParametersNotSet: 'Parameterji za ekstrakcijo niso nastavljeni',
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.',
},
iteration: {

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

@ -684,6 +684,11 @@ const translation = {
},
parameterExtractor: {
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',
importFromTool: 'Araçlardan içe aktar',
addExtractParameter: ıkarma Parametresi Ekle',
@ -703,8 +708,6 @@ const translation = {
advancedSetting: 'Gelişmiş Ayarlar',
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.',
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: {
deleteTitle: 'Yineleme Düğümünü Sil?',

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

@ -683,6 +683,11 @@ const translation = {
},
parameterExtractor: {
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ố',
importFromTool: 'Nhập từ công cụ',
addExtractParameter: 'Thêm tham số trích xuất',
@ -702,8 +707,6 @@ const translation = {
advancedSetting: 'Cài đặt nâng cao',
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.',
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: {
deleteTitle: 'Xóa nút lặp?',

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

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

Loading…
Cancel
Save