wwf
2 天以前 a430284aa21e3ae1f0d5654e55b2ad2852519cc2
app/components/workflow/nodes/parameter-extractor/panel.tsx
@@ -6,7 +6,6 @@
import Editor from '../_base/components/prompt/editor'
import ResultPanel from '../../run/result-panel'
import ConfigVision from '../_base/components/config-vision'
import { findVariableWhenOnLLMVision } from '../utils'
import useConfig from './use-config'
import type { ParameterExtractorNodeType } from './types'
import ExtractParameter from './components/extract-parameter/list'
@@ -22,7 +21,6 @@
import BeforeRunForm from '@/app/components/workflow/nodes/_base/components/before-run-form'
import { VarType } from '@/app/components/workflow/types'
import { FieldCollapse } from '@/app/components/workflow/nodes/_base/components/collapse'
import type { Props as FormProps } from '@/app/components/workflow/nodes/_base/components/before-run-form/form'
const i18nPrefix = 'workflow.nodes.parameterExtractor'
const i18nCommonPrefix = 'workflow.common'
@@ -53,7 +51,6 @@
    handleReasoningModeChange,
    availableVars,
    availableNodesWithParent,
    availableVisionVars,
    inputVarValues,
    varInputs,
    isVisionModel,
@@ -66,56 +63,15 @@
    handleStop,
    runResult,
    setInputVarValues,
    visionFiles,
    setVisionFiles,
  } = useConfig(id, data)
  const model = inputs.model
  const singleRunForms = (() => {
    const forms: FormProps[] = []
    forms.push(
      {
        label: t('workflow.nodes.llm.singleRun.variable')!,
        inputs: [{
          label: t(`${i18nPrefix}.inputVar`)!,
          variable: 'query',
          type: InputVarType.paragraph,
          required: true,
        }, ...varInputs],
        values: inputVarValues,
        onChange: setInputVarValues,
      },
    )
    if (isVisionModel && data.vision?.enabled && data.vision?.configs?.variable_selector) {
      const currentVariable = findVariableWhenOnLLMVision(data.vision.configs.variable_selector, availableVisionVars)
      forms.push(
        {
          label: t('workflow.nodes.llm.vision')!,
          inputs: [{
            label: currentVariable?.variable as any,
            variable: '#files#',
            type: currentVariable?.formType as any,
            required: false,
          }],
          values: { '#files#': visionFiles },
          onChange: keyValue => setVisionFiles((keyValue as any)['#files#']),
        },
      )
    }
    return forms
  })()
  return (
    <div className='pt-2'>
      <div className='space-y-4 px-4'>
      <div className='px-4 space-y-4'>
        <Field
          title={t(`${i18nCommonPrefix}.model`)}
          required
        >
          <ModelParameterModal
            popupClassName='!w-[387px]'
@@ -134,7 +90,6 @@
        </Field>
        <Field
          title={t(`${i18nPrefix}.inputVar`)}
          required
        >
          <>
            <VarReferencePicker
@@ -159,7 +114,6 @@
        />
        <Field
          title={t(`${i18nPrefix}.extractParameters`)}
          required
          operations={
            !readOnly
              ? (
@@ -167,7 +121,7 @@
                  {!readOnly && (
                    <ImportFromTool onImport={handleImportFromTool} />
                  )}
                  {!readOnly && (<div className='h-3 w-px bg-divider-regular'></div>)}
                  {!readOnly && (<div className='w-px h-3 bg-gray-200'></div>)}
                  <AddExtractParameter type='add' onSave={addExtractParameter} />
                </div>
              )
@@ -259,7 +213,18 @@
        <BeforeRunForm
          nodeName={inputs.title}
          onHide={hideSingleRun}
          forms={singleRunForms}
          forms={[
            {
              inputs: [{
                label: t(`${i18nPrefix}.inputVar`)!,
                variable: 'query',
                type: InputVarType.paragraph,
                required: true,
              }, ...varInputs],
              values: inputVarValues,
              onChange: setInputVarValues,
            },
          ]}
          runningStatus={runningStatus}
          onRun={handleRun}
          onStop={handleStop}