Spaces:
Build error
Build error
import type { FC } from 'react' | |
import React from 'react' | |
import { useTranslation } from 'react-i18next' | |
import type { NodeProps } from 'reactflow' | |
import InfoPanel from '../_base/components/info-panel' | |
import { NodeSourceHandle } from '../_base/components/node-handle' | |
import type { QuestionClassifierNodeType } from './types' | |
import { | |
useTextGenerationCurrentProviderAndModelAndModelList, | |
} from '@/app/components/header/account-setting/model-provider-page/hooks' | |
import ModelSelector from '@/app/components/header/account-setting/model-provider-page/model-selector' | |
const i18nPrefix = 'workflow.nodes.questionClassifiers' | |
const Node: FC<NodeProps<QuestionClassifierNodeType>> = (props) => { | |
const { t } = useTranslation() | |
const { data } = props | |
const { provider, name: modelId } = data.model | |
// const tempTopics = data.topics | |
const topics = data.classes | |
const { | |
textGenerationModelList, | |
} = useTextGenerationCurrentProviderAndModelAndModelList() | |
const hasSetModel = provider && modelId | |
if (!hasSetModel && !topics.length) | |
return null | |
return ( | |
<div className='mb-1 px-3 py-1'> | |
{hasSetModel && ( | |
<ModelSelector | |
defaultModel={{ provider, model: modelId }} | |
modelList={textGenerationModelList} | |
readonly | |
/> | |
)} | |
{ | |
!!topics.length && ( | |
<div className='mt-2 space-y-0.5'> | |
{topics.map((topic, index) => ( | |
<div | |
key={index} | |
className='relative' | |
> | |
<InfoPanel | |
title={`${t(`${i18nPrefix}.class`)} ${index + 1}`} | |
content={topic.name} | |
/> | |
<NodeSourceHandle | |
{...props} | |
handleId={topic.id} | |
handleClassName='!top-1/2 !-translate-y-1/2 !-right-[21px]' | |
/> | |
</div> | |
))} | |
</div> | |
) | |
} | |
</div> | |
) | |
} | |
export default React.memo(Node) | |