Commit b2de27b7 authored by Joel's avatar Joel

feat: knowledge query var

parent 9c0d44fa
...@@ -6,9 +6,9 @@ import Workflow from '@/app/components/workflow' ...@@ -6,9 +6,9 @@ import Workflow from '@/app/components/workflow'
import { BlockEnum } from '@/app/components/workflow/types' import { BlockEnum } from '@/app/components/workflow/types'
const nodes = [ const nodes = [
BlockEnum.LLM/* 3 */, BlockEnum.VariableAssigner/* 11 */, BlockEnum.Start/* 1 */, BlockEnum.DirectAnswer/* 2 */, BlockEnum.KnowledgeRetrieval/* 4 */, BlockEnum.QuestionClassifier/* 5 */, BlockEnum.KnowledgeRetrieval/* 4 */, BlockEnum.Start/* 1 */, BlockEnum.DirectAnswer/* 2 */, BlockEnum.LLM/* 3 */, BlockEnum.QuestionClassifier/* 5 */,
BlockEnum.IfElse/* 6 */, BlockEnum.Code/* 7 */, BlockEnum.TemplateTransform/* 8 */, BlockEnum.HttpRequest/* 9 */, BlockEnum.Tool/* 10 */, BlockEnum.IfElse/* 6 */, BlockEnum.Code/* 7 */, BlockEnum.TemplateTransform/* 8 */, BlockEnum.HttpRequest/* 9 */, BlockEnum.Tool/* 10 */,
BlockEnum.End/* 12 */, BlockEnum.VariableAssigner/* 11 */, BlockEnum.End/* 12 */,
].map((item, i) => ({ ].map((item, i) => ({
id: `${i + 1}`, id: `${i + 1}`,
type: 'custom', type: 'custom',
......
import { BlockEnum } from '../../types'
import type { KnowledgeRetrievalNodeType } from './types' import type { KnowledgeRetrievalNodeType } from './types'
import { RETRIEVE_TYPE } from '@/types/app' import { RETRIEVE_TYPE } from '@/types/app'
export const mockData: KnowledgeRetrievalNodeType = { export const mockData: KnowledgeRetrievalNodeType = {
type: 'KnowledgeRetrieval', type: BlockEnum.KnowledgeRetrieval,
desc: 'xxx', desc: 'xxx',
title: 'KnowledgeRetrieval', title: 'KnowledgeRetrieval',
query_variable_selector: ['aaa', 'name'], query_variable_selector: ['aaa', 'name'],
......
import type { FC } from 'react' import type { FC } from 'react'
import { useTranslation } from 'react-i18next'
import VarReferencePicker from '../_base/components/variable/var-reference-picker'
import useConfig from './use-config'
import { mockData } from './mock'
import Field from '@/app/components/workflow/nodes/_base/components/field'
const i18nPrefix = 'workflow.nodes.knowledgeRetrieval'
const Panel: FC = () => { const Panel: FC = () => {
const { t } = useTranslation()
const readOnly = false
const {
inputs,
handleQueryVarChange,
} = useConfig(mockData)
return ( return (
<div>start panel inputs</div> <div className='mt-2'>
<div className='px-4 pb-4 space-y-4'>
<Field
title={t(`${i18nPrefix}.queryVariable`)}
>
<VarReferencePicker
readonly={readOnly}
isShowNodeName
value={inputs.query_variable_selector}
onChange={handleQueryVarChange}
/>
</Field>
</div>
</div>
) )
} }
......
import { useCallback, useState } from 'react'
import produce from 'immer'
import type { ValueSelector } from '../../types'
import type { KnowledgeRetrievalNodeType } from './types'
const useConfig = (initInputs: KnowledgeRetrievalNodeType) => {
const [inputs, setInputs] = useState<KnowledgeRetrievalNodeType>(initInputs)
const handleQueryVarChange = useCallback((newVar: ValueSelector) => {
const newInputs = produce(inputs, (draft) => {
draft.query_variable_selector = newVar
})
setInputs(newInputs)
}, [inputs, setInputs])
return {
inputs,
handleQueryVarChange,
}
}
export default useConfig
...@@ -54,6 +54,9 @@ const translation = { ...@@ -54,6 +54,9 @@ const translation = {
usage: 'Model Usage Information', usage: 'Model Usage Information',
}, },
}, },
knowledgeRetrieval: {
queryVariable: 'Query Variable',
},
http: { http: {
inputVars: 'Input Variables', inputVars: 'Input Variables',
api: 'API', api: 'API',
......
...@@ -53,6 +53,9 @@ const translation = { ...@@ -53,6 +53,9 @@ const translation = {
usage: '模型用量信息', usage: '模型用量信息',
}, },
}, },
knowledgeRetrieval: {
queryVariable: '查询变量',
},
http: { http: {
inputVars: '输入变量', inputVars: '输入变量',
api: 'API', api: 'API',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment