diff --git a/web/app/components/workflow/nodes/_base/components/variable/object-child-tree-panel/test.tsx b/web/app/components/workflow/nodes/_base/components/variable/object-child-tree-panel/test.tsx
deleted file mode 100644
index 43db2ac205..0000000000
--- a/web/app/components/workflow/nodes/_base/components/variable/object-child-tree-panel/test.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-'use client'
-import type { FC } from 'react'
-import React from 'react'
-import mockStructData from '@/app/components/workflow/nodes/llm/mock-struct-data'
-import VarFullPathPanel from '../var-full-path-panel'
-import PickerPanel from '@/app/components/workflow/nodes/_base/components/variable/object-child-tree-panel/picker'
-import ShowPanel from '@/app/components/workflow/nodes/_base/components/variable/object-child-tree-panel/show'
-import { Type } from '../../../../llm/types'
-
-const Test: FC = () => {
- return (
-
- )
-}
-export default React.memo(Test)
diff --git a/web/app/components/workflow/nodes/_base/components/variable/utils.ts b/web/app/components/workflow/nodes/_base/components/variable/utils.ts
index 6416b0c527..0f83493149 100644
--- a/web/app/components/workflow/nodes/_base/components/variable/utils.ts
+++ b/web/app/components/workflow/nodes/_base/components/variable/utils.ts
@@ -20,7 +20,6 @@ import { BlockEnum, InputVarType, VarType } from '@/app/components/workflow/type
import type { StartNodeType } from '@/app/components/workflow/nodes/start/types'
import type { ConversationVariable, EnvironmentVariable, Node, NodeOutPutVar, ValueSelector, Var } from '@/app/components/workflow/types'
import type { VariableAssignerNodeType } from '@/app/components/workflow/nodes/variable-assigner/types'
-import mockStructData from '@/app/components/workflow/nodes/llm/mock-struct-data'
import type { Field as StructField } from '@/app/components/workflow/nodes/llm/types'
import {
@@ -500,9 +499,6 @@ const formatItem = (
return findExceptVarInObject(isFile ? { ...v, children } : v, filterVar, selector, isFile)
})
- // if (res.nodeId === 'llm')
- // console.log(res)
-
return res
}
export const toNodeOutputVars = (
@@ -1237,15 +1233,16 @@ export const getNodeOutputVars = (node: Node, isChatMode: boolean): ValueSelecto
}
case BlockEnum.LLM: {
- varsToValueSelectorList([
- ...LLM_OUTPUT_STRUCT,
- {
+ const vars = [...LLM_OUTPUT_STRUCT]
+ const llmNodeData = data as LLMNodeType
+ if (llmNodeData.structured_output_enabled && llmNodeData.structured_output?.schema?.properties && Object.keys(llmNodeData.structured_output.schema.properties).length > 0) {
+ vars.push({
variable: 'structured_output',
type: VarType.object,
- children: mockStructData,
- },
- ], [id], res)
- console.log(res)
+ children: llmNodeData.structured_output,
+ })
+ }
+ varsToValueSelectorList(vars, [id], res)
break
}
diff --git a/web/app/components/workflow/nodes/llm/mock-struct-data.ts b/web/app/components/workflow/nodes/llm/mock-struct-data.ts
deleted file mode 100644
index a269443e26..0000000000
--- a/web/app/components/workflow/nodes/llm/mock-struct-data.ts
+++ /dev/null
@@ -1,113 +0,0 @@
-import { type StructuredOutput, Type } from './types'
-
-const data: StructuredOutput = {
- schema: {
- type: Type.object,
- properties: {
- string_field: {
- type: Type.string,
- description: '这是一个字符串类型的字段',
- },
- obj_field: {
- type: Type.object,
- properties: {
- string_field_1: {
- type: Type.string,
- description: 'this is a string type field',
- },
- number_field_2: {
- type: Type.number,
- description: '描述可为空',
- },
- array_field_4: {
- type: Type.array,
- items: {
- type: Type.string,
- },
- },
- boolean_field_5: {
- type: Type.boolean,
- description: '描述可为空',
- },
- sub_item_d_2: {
- type: Type.object,
- properties: {
- sub_item_3: {
- type: Type.object,
- // generate more than sub item 10 levels
- properties: {
- sub_item_4: {
- type: Type.object,
- properties: {
- sub_item_5: {
- type: Type.object,
- properties: {
- sub_item_6: {
- type: Type.object,
- properties: {
- sub_item_7: {
- type: Type.object,
- properties: {
- sub_item_8: {
- type: Type.object,
- properties: {
- sub_item_9: {
- type: Type.object,
- properties: {
- sub_item_10: {
- type: Type.object,
- properties: {
- sub_item_11: {
- type: Type.object,
- properties: {
- sub_item_12: {
- type: Type.object,
- description: 'This is a object type field.This is a object type field.This is a object type field.',
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- },
- number_field_3: {
- type: Type.number,
- description: '描述可为空',
- },
- },
- required: [
- 'string_field_1',
- 'number_field_2',
- 'enum_field_3',
- 'array_field_4',
- 'boolean_field_5',
- ],
- additionalProperties: false,
- },
- },
- required: [
- 'string_field_1',
- 'number_field_2',
- 'enum_field_3',
- 'array_field_4',
- 'boolean_field_5',
- ],
- additionalProperties: false,
- },
-}
-
-export default data