mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-16 10:15:55 +08:00
refactor: type improvements that doesn't modify functionality (#17970)
This commit is contained in:
parent
53efb2bad5
commit
4c99e9dc73
@ -124,7 +124,7 @@ const ConfigPopup: FC<PopupProps> = ({
|
|||||||
)
|
)
|
||||||
|
|
||||||
const configuredProviderPanel = () => {
|
const configuredProviderPanel = () => {
|
||||||
const configuredPanels: any[] = []
|
const configuredPanels: JSX.Element[] = []
|
||||||
|
|
||||||
if (langSmithConfig)
|
if (langSmithConfig)
|
||||||
configuredPanels.push(langSmithPanel)
|
configuredPanels.push(langSmithPanel)
|
||||||
@ -139,7 +139,7 @@ const ConfigPopup: FC<PopupProps> = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const moreProviderPanel = () => {
|
const moreProviderPanel = () => {
|
||||||
const notConfiguredPanels: any[] = []
|
const notConfiguredPanels: JSX.Element[] = []
|
||||||
|
|
||||||
if (!langSmithConfig)
|
if (!langSmithConfig)
|
||||||
notConfiguredPanels.push(langSmithPanel)
|
notConfiguredPanels.push(langSmithPanel)
|
||||||
|
@ -73,7 +73,7 @@ const AgentTools: FC = () => {
|
|||||||
formattingChangedDispatcher()
|
formattingChangedDispatcher()
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleToolAuthSetting = (value: any) => {
|
const handleToolAuthSetting = (value: AgentToolWithMoreInfo) => {
|
||||||
const newModelConfig = produce(modelConfig, (draft) => {
|
const newModelConfig = produce(modelConfig, (draft) => {
|
||||||
const tool = (draft.agentConfig.tools).find((item: any) => item.provider_id === value?.collection?.id && item.tool_name === value?.tool_name)
|
const tool = (draft.agentConfig.tools).find((item: any) => item.provider_id === value?.collection?.id && item.tool_name === value?.tool_name)
|
||||||
if (tool)
|
if (tool)
|
||||||
@ -121,7 +121,7 @@ const AgentTools: FC = () => {
|
|||||||
}
|
}
|
||||||
headerRight={
|
headerRight={
|
||||||
<div className='flex items-center'>
|
<div className='flex items-center'>
|
||||||
<div className='text-xs font-normal leading-[18px] text-text-tertiary'>{tools.filter((item: any) => !!item.enabled).length}/{tools.length} {t('appDebug.agent.tools.enabled')}</div>
|
<div className='text-xs font-normal leading-[18px] text-text-tertiary'>{tools.filter(item => !!item.enabled).length}/{tools.length} {t('appDebug.agent.tools.enabled')}</div>
|
||||||
{tools.length < MAX_TOOLS_NUM && (
|
{tools.length < MAX_TOOLS_NUM && (
|
||||||
<>
|
<>
|
||||||
<div className='ml-3 mr-1 h-3.5 w-px bg-divider-regular'></div>
|
<div className='ml-3 mr-1 h-3.5 w-px bg-divider-regular'></div>
|
||||||
@ -273,7 +273,7 @@ const AgentTools: FC = () => {
|
|||||||
{isShowSettingTool && (
|
{isShowSettingTool && (
|
||||||
<SettingBuiltInTool
|
<SettingBuiltInTool
|
||||||
toolName={currentTool?.tool_name as string}
|
toolName={currentTool?.tool_name as string}
|
||||||
setting={currentTool?.tool_parameters as any}
|
setting={currentTool?.tool_parameters}
|
||||||
collection={currentTool?.collection as Collection}
|
collection={currentTool?.collection as Collection}
|
||||||
isBuiltIn={currentTool?.collection?.type === CollectionType.builtIn}
|
isBuiltIn={currentTool?.collection?.type === CollectionType.builtIn}
|
||||||
isModel={currentTool?.collection?.type === CollectionType.model}
|
isModel={currentTool?.collection?.type === CollectionType.model}
|
||||||
@ -291,7 +291,7 @@ const AgentTools: FC = () => {
|
|||||||
type: 'success',
|
type: 'success',
|
||||||
message: t('common.api.actionSuccess'),
|
message: t('common.api.actionSuccess'),
|
||||||
})
|
})
|
||||||
handleToolAuthSetting(currentTool as any)
|
handleToolAuthSetting(currentTool)
|
||||||
setShowSettingAuth(false)
|
setShowSettingAuth(false)
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
@ -56,8 +56,8 @@ const SettingBuiltInTool: FC<Props> = ({
|
|||||||
const [tools, setTools] = useState<Tool[]>([])
|
const [tools, setTools] = useState<Tool[]>([])
|
||||||
const currTool = tools.find(tool => tool.name === toolName)
|
const currTool = tools.find(tool => tool.name === toolName)
|
||||||
const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : []
|
const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : []
|
||||||
const infoSchemas = formSchemas.filter((item: any) => item.form === 'llm')
|
const infoSchemas = formSchemas.filter(item => item.form === 'llm')
|
||||||
const settingSchemas = formSchemas.filter((item: any) => item.form !== 'llm')
|
const settingSchemas = formSchemas.filter(item => item.form !== 'llm')
|
||||||
const hasSetting = settingSchemas.length > 0
|
const hasSetting = settingSchemas.length > 0
|
||||||
const [tempSetting, setTempSetting] = useState(setting)
|
const [tempSetting, setTempSetting] = useState(setting)
|
||||||
const [currType, setCurrType] = useState('info')
|
const [currType, setCurrType] = useState('info')
|
||||||
@ -99,7 +99,7 @@ const SettingBuiltInTool: FC<Props> = ({
|
|||||||
|
|
||||||
const isValid = (() => {
|
const isValid = (() => {
|
||||||
let valid = true
|
let valid = true
|
||||||
settingSchemas.forEach((item: any) => {
|
settingSchemas.forEach((item) => {
|
||||||
if (item.required && !tempSetting[item.name])
|
if (item.required && !tempSetting[item.name])
|
||||||
valid = false
|
valid = false
|
||||||
})
|
})
|
||||||
@ -120,7 +120,7 @@ const SettingBuiltInTool: FC<Props> = ({
|
|||||||
<div className=''>
|
<div className=''>
|
||||||
{infoSchemas.length > 0 && (
|
{infoSchemas.length > 0 && (
|
||||||
<div className='space-y-1 py-2'>
|
<div className='space-y-1 py-2'>
|
||||||
{infoSchemas.map((item: any, index) => (
|
{infoSchemas.map((item, index) => (
|
||||||
<div key={index} className='py-1'>
|
<div key={index} className='py-1'>
|
||||||
<div className='flex items-center gap-2'>
|
<div className='flex items-center gap-2'>
|
||||||
<div className='code-sm-semibold text-text-secondary'>{item.label[language]}</div>
|
<div className='code-sm-semibold text-text-secondary'>{item.label[language]}</div>
|
||||||
@ -147,7 +147,7 @@ const SettingBuiltInTool: FC<Props> = ({
|
|||||||
<Form
|
<Form
|
||||||
value={tempSetting}
|
value={tempSetting}
|
||||||
onChange={setTempSetting}
|
onChange={setTempSetting}
|
||||||
formSchemas={settingSchemas as any}
|
formSchemas={settingSchemas}
|
||||||
isEditMode={false}
|
isEditMode={false}
|
||||||
showOnVariableMap={{}}
|
showOnVariableMap={{}}
|
||||||
validating={false}
|
validating={false}
|
||||||
|
@ -368,8 +368,8 @@ const ConfigContent: FC<Props> = ({
|
|||||||
provider={model?.provider}
|
provider={model?.provider}
|
||||||
completionParams={model?.completion_params}
|
completionParams={model?.completion_params}
|
||||||
modelId={model?.name}
|
modelId={model?.name}
|
||||||
setModel={onSingleRetrievalModelChange as any}
|
setModel={onSingleRetrievalModelChange}
|
||||||
onCompletionParamsChange={onSingleRetrievalModelParamsChange as any}
|
onCompletionParamsChange={onSingleRetrievalModelParamsChange}
|
||||||
hideDebugWithMultipleModel
|
hideDebugWithMultipleModel
|
||||||
debugWithMultipleModel={false}
|
debugWithMultipleModel={false}
|
||||||
/>
|
/>
|
||||||
|
@ -8,6 +8,7 @@ import ModelParameterModal from '@/app/components/header/account-setting/model-p
|
|||||||
import ModelIcon from '@/app/components/header/account-setting/model-provider-page/model-icon'
|
import ModelIcon from '@/app/components/header/account-setting/model-provider-page/model-icon'
|
||||||
import ModelName from '@/app/components/header/account-setting/model-provider-page/model-name'
|
import ModelName from '@/app/components/header/account-setting/model-provider-page/model-name'
|
||||||
import {
|
import {
|
||||||
|
type FormValue,
|
||||||
MODEL_STATUS_TEXT,
|
MODEL_STATUS_TEXT,
|
||||||
ModelStatusEnum,
|
ModelStatusEnum,
|
||||||
} from '@/app/components/header/account-setting/model-provider-page/declarations'
|
} from '@/app/components/header/account-setting/model-provider-page/declarations'
|
||||||
@ -45,7 +46,7 @@ const ModelParameterTrigger: FC<ModelParameterTriggerProps> = ({
|
|||||||
}
|
}
|
||||||
onMultipleModelConfigsChange(true, newModelConfigs)
|
onMultipleModelConfigsChange(true, newModelConfigs)
|
||||||
}
|
}
|
||||||
const handleParamsChange = (params: any) => {
|
const handleParamsChange = (params: FormValue) => {
|
||||||
const newModelConfigs = [...multipleModelConfigs]
|
const newModelConfigs = [...multipleModelConfigs]
|
||||||
newModelConfigs[index] = {
|
newModelConfigs[index] = {
|
||||||
...newModelConfigs[index],
|
...newModelConfigs[index],
|
||||||
|
@ -227,7 +227,7 @@ const Configuration: FC = () => {
|
|||||||
}, [modelModeType])
|
}, [modelModeType])
|
||||||
|
|
||||||
const [dataSets, setDataSets] = useState<DataSet[]>([])
|
const [dataSets, setDataSets] = useState<DataSet[]>([])
|
||||||
const contextVar = modelConfig.configs.prompt_variables.find((item: any) => item.is_context_var)?.key
|
const contextVar = modelConfig.configs.prompt_variables.find(item => item.is_context_var)?.key
|
||||||
const hasSetContextVar = !!contextVar
|
const hasSetContextVar = !!contextVar
|
||||||
const [isShowSelectDataSet, { setTrue: showSelectDataSet, setFalse: hideSelectDataSet }] = useBoolean(false)
|
const [isShowSelectDataSet, { setTrue: showSelectDataSet, setFalse: hideSelectDataSet }] = useBoolean(false)
|
||||||
const selectedIds = dataSets.map(item => item.id)
|
const selectedIds = dataSets.map(item => item.id)
|
||||||
@ -245,7 +245,7 @@ const Configuration: FC = () => {
|
|||||||
formattingChangedDispatcher()
|
formattingChangedDispatcher()
|
||||||
let newDatasets = data
|
let newDatasets = data
|
||||||
if (data.find(item => !item.name)) { // has not loaded selected dataset
|
if (data.find(item => !item.name)) { // has not loaded selected dataset
|
||||||
const newSelected = produce(data, (draft: any) => {
|
const newSelected = produce(data, (draft) => {
|
||||||
data.forEach((item, index) => {
|
data.forEach((item, index) => {
|
||||||
if (!item.name) { // not fetched database
|
if (!item.name) { // not fetched database
|
||||||
const newItem = dataSets.find(i => i.id === item.id)
|
const newItem = dataSets.find(i => i.id === item.id)
|
||||||
@ -513,7 +513,7 @@ const Configuration: FC = () => {
|
|||||||
if (modelConfig.chat_prompt_config && modelConfig.chat_prompt_config.prompt.length > 0)
|
if (modelConfig.chat_prompt_config && modelConfig.chat_prompt_config.prompt.length > 0)
|
||||||
setChatPromptConfig(modelConfig.chat_prompt_config)
|
setChatPromptConfig(modelConfig.chat_prompt_config)
|
||||||
else
|
else
|
||||||
setChatPromptConfig(clone(DEFAULT_CHAT_PROMPT_CONFIG) as any)
|
setChatPromptConfig(clone(DEFAULT_CHAT_PROMPT_CONFIG))
|
||||||
setCompletionPromptConfig(modelConfig.completion_prompt_config || clone(DEFAULT_COMPLETION_PROMPT_CONFIG) as any)
|
setCompletionPromptConfig(modelConfig.completion_prompt_config || clone(DEFAULT_COMPLETION_PROMPT_CONFIG) as any)
|
||||||
setCanReturnToSimpleMode(false)
|
setCanReturnToSimpleMode(false)
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ const PromptValuePanel: FC<IPromptValuePanelProps> = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const onClear = () => {
|
const onClear = () => {
|
||||||
const newInputs: Record<string, any> = {}
|
const newInputs: Inputs = {}
|
||||||
promptVariables.forEach((item) => {
|
promptVariables.forEach((item) => {
|
||||||
newInputs[item.key] = ''
|
newInputs[item.key] = ''
|
||||||
})
|
})
|
||||||
|
@ -36,7 +36,7 @@ const AgentLogDetail: FC<AgentLogDetailProps> = ({
|
|||||||
const [list, setList] = useState<AgentIteration[]>([])
|
const [list, setList] = useState<AgentIteration[]>([])
|
||||||
|
|
||||||
const tools = useMemo(() => {
|
const tools = useMemo(() => {
|
||||||
const res = uniq(flatten(runDetail?.iterations.map((iteration: any) => {
|
const res = uniq(flatten(runDetail?.iterations.map((iteration) => {
|
||||||
return iteration.tool_calls.map((tool: any) => tool.tool_name).filter(Boolean)
|
return iteration.tool_calls.map((tool: any) => tool.tool_name).filter(Boolean)
|
||||||
})).filter(Boolean))
|
})).filter(Boolean))
|
||||||
return res
|
return res
|
||||||
|
@ -29,7 +29,7 @@ const AudioBtn = ({
|
|||||||
|
|
||||||
const params = useParams()
|
const params = useParams()
|
||||||
const pathname = usePathname()
|
const pathname = usePathname()
|
||||||
const audio_finished_call = (event: string): any => {
|
const audio_finished_call = (event: string): void => {
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case 'ended':
|
case 'ended':
|
||||||
setAudioState('ended')
|
setAudioState('ended')
|
||||||
|
@ -512,7 +512,7 @@ export const useChat = (
|
|||||||
responseItem.workflowProcess!.tracing!.push({
|
responseItem.workflowProcess!.tracing!.push({
|
||||||
...iterationStartedData,
|
...iterationStartedData,
|
||||||
status: WorkflowRunningStatus.Running,
|
status: WorkflowRunningStatus.Running,
|
||||||
} as any)
|
})
|
||||||
updateCurrentQAOnTree({
|
updateCurrentQAOnTree({
|
||||||
placeholderQuestionId,
|
placeholderQuestionId,
|
||||||
questionItem,
|
questionItem,
|
||||||
@ -528,7 +528,7 @@ export const useChat = (
|
|||||||
...tracing[iterationIndex],
|
...tracing[iterationIndex],
|
||||||
...iterationFinishedData,
|
...iterationFinishedData,
|
||||||
status: WorkflowRunningStatus.Succeeded,
|
status: WorkflowRunningStatus.Succeeded,
|
||||||
} as any
|
}
|
||||||
|
|
||||||
updateCurrentQAOnTree({
|
updateCurrentQAOnTree({
|
||||||
placeholderQuestionId,
|
placeholderQuestionId,
|
||||||
@ -547,7 +547,7 @@ export const useChat = (
|
|||||||
responseItem.workflowProcess!.tracing!.push({
|
responseItem.workflowProcess!.tracing!.push({
|
||||||
...nodeStartedData,
|
...nodeStartedData,
|
||||||
status: WorkflowRunningStatus.Running,
|
status: WorkflowRunningStatus.Running,
|
||||||
} as any)
|
})
|
||||||
updateCurrentQAOnTree({
|
updateCurrentQAOnTree({
|
||||||
placeholderQuestionId,
|
placeholderQuestionId,
|
||||||
questionItem,
|
questionItem,
|
||||||
@ -590,7 +590,7 @@ export const useChat = (
|
|||||||
responseItem.workflowProcess!.tracing!.push({
|
responseItem.workflowProcess!.tracing!.push({
|
||||||
...loopStartedData,
|
...loopStartedData,
|
||||||
status: WorkflowRunningStatus.Running,
|
status: WorkflowRunningStatus.Running,
|
||||||
} as any)
|
})
|
||||||
updateCurrentQAOnTree({
|
updateCurrentQAOnTree({
|
||||||
placeholderQuestionId,
|
placeholderQuestionId,
|
||||||
questionItem,
|
questionItem,
|
||||||
@ -606,7 +606,7 @@ export const useChat = (
|
|||||||
...tracing[loopIndex],
|
...tracing[loopIndex],
|
||||||
...loopFinishedData,
|
...loopFinishedData,
|
||||||
status: WorkflowRunningStatus.Succeeded,
|
status: WorkflowRunningStatus.Succeeded,
|
||||||
} as any
|
}
|
||||||
|
|
||||||
updateCurrentQAOnTree({
|
updateCurrentQAOnTree({
|
||||||
placeholderQuestionId,
|
placeholderQuestionId,
|
||||||
|
@ -12,6 +12,7 @@ import useAnnotationConfig from '@/app/components/base/features/new-feature-pane
|
|||||||
import ConfigParamModal from '@/app/components/base/features/new-feature-panel/annotation-reply/config-param-modal'
|
import ConfigParamModal from '@/app/components/base/features/new-feature-panel/annotation-reply/config-param-modal'
|
||||||
import AnnotationFullModal from '@/app/components/billing/annotation-full/modal'
|
import AnnotationFullModal from '@/app/components/billing/annotation-full/modal'
|
||||||
import { ANNOTATION_DEFAULT } from '@/config'
|
import { ANNOTATION_DEFAULT } from '@/config'
|
||||||
|
import type { AnnotationReplyConfig } from '@/models/debug'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
disabled?: boolean
|
disabled?: boolean
|
||||||
@ -30,7 +31,7 @@ const AnnotationReply = ({
|
|||||||
const featuresStore = useFeaturesStore()
|
const featuresStore = useFeaturesStore()
|
||||||
const annotationReply = useFeatures(s => s.features.annotationReply)
|
const annotationReply = useFeatures(s => s.features.annotationReply)
|
||||||
|
|
||||||
const updateAnnotationReply = useCallback((newConfig: any) => {
|
const updateAnnotationReply = useCallback((newConfig: AnnotationReplyConfig) => {
|
||||||
const {
|
const {
|
||||||
features,
|
features,
|
||||||
setFeatures,
|
setFeatures,
|
||||||
|
@ -47,7 +47,7 @@ const WorkflowVariableBlockReplacementBlock = ({
|
|||||||
}
|
}
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
const transformListener = useCallback((textNode: any) => {
|
const transformListener = useCallback((textNode: CustomTextNode) => {
|
||||||
resetReg()
|
resetReg()
|
||||||
return decoratorTransform(textNode, getMatch, createWorkflowVariableBlockNode)
|
return decoratorTransform(textNode, getMatch, createWorkflowVariableBlockNode)
|
||||||
}, [createWorkflowVariableBlockNode, getMatch])
|
}, [createWorkflowVariableBlockNode, getMatch])
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import type { ReactNode } from 'react'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { act, render, screen, waitFor } from '@testing-library/react'
|
import { act, render, screen, waitFor } from '@testing-library/react'
|
||||||
import Toast, { ToastProvider, useToastContext } from '.'
|
import Toast, { ToastProvider, useToastContext } from '.'
|
||||||
@ -80,7 +81,7 @@ describe('Toast', () => {
|
|||||||
const CustomToastContext = React.createContext({ notify: noop, close: undefined })
|
const CustomToastContext = React.createContext({ notify: noop, close: undefined })
|
||||||
|
|
||||||
// Create a wrapper component using the custom context
|
// Create a wrapper component using the custom context
|
||||||
const Wrapper = ({ children }: any) => (
|
const Wrapper = ({ children }: { children: ReactNode }) => (
|
||||||
<CustomToastContext.Provider value={{ notify: noop, close: undefined }}>
|
<CustomToastContext.Provider value={{ notify: noop, close: undefined }}>
|
||||||
{children}
|
{children}
|
||||||
</CustomToastContext.Provider>
|
</CustomToastContext.Provider>
|
||||||
|
@ -15,6 +15,7 @@ import { RETRIEVE_METHOD } from '@/types/app'
|
|||||||
import cn from '@/utils/classnames'
|
import cn from '@/utils/classnames'
|
||||||
import Divider from '@/app/components/base/divider'
|
import Divider from '@/app/components/base/divider'
|
||||||
import { ToastContext } from '@/app/components/base/toast'
|
import { ToastContext } from '@/app/components/base/toast'
|
||||||
|
import type { IndexingStatusResponse } from '@/models/datasets'
|
||||||
import { ProcessMode, type ProcessRuleResponse } from '@/models/datasets'
|
import { ProcessMode, type ProcessRuleResponse } from '@/models/datasets'
|
||||||
import type { CommonResponse } from '@/models/common'
|
import type { CommonResponse } from '@/models/common'
|
||||||
import { asyncRunSafe, sleep } from '@/utils'
|
import { asyncRunSafe, sleep } from '@/utils'
|
||||||
@ -166,7 +167,7 @@ const EmbeddingDetail: FC<IEmbeddingDetailProps> = ({
|
|||||||
const localDatasetId = dstId ?? datasetId
|
const localDatasetId = dstId ?? datasetId
|
||||||
const localDocumentId = docId ?? documentId
|
const localDocumentId = docId ?? documentId
|
||||||
|
|
||||||
const [indexingStatusDetail, setIndexingStatusDetail] = useState<any>(null)
|
const [indexingStatusDetail, setIndexingStatusDetail] = useState<IndexingStatusResponse | null>(null)
|
||||||
const fetchIndexingStatus = async () => {
|
const fetchIndexingStatus = async () => {
|
||||||
const status = await doFetchIndexingStatus({ datasetId: localDatasetId, documentId: localDocumentId })
|
const status = await doFetchIndexingStatus({ datasetId: localDatasetId, documentId: localDocumentId })
|
||||||
setIndexingStatusDetail(status)
|
setIndexingStatusDetail(status)
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import type { ChangeEvent } from 'react'
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import {
|
import {
|
||||||
@ -58,7 +59,7 @@ const TextAreaWithButton = ({
|
|||||||
setIsSettingsOpen(false)
|
setIsSettingsOpen(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleTextChange(event: any) {
|
function handleTextChange(event: ChangeEvent<HTMLTextAreaElement>) {
|
||||||
setText(event.target.value)
|
setText(event.target.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ const CardWrapper = ({
|
|||||||
{
|
{
|
||||||
isShowInstallFromMarketplace && (
|
isShowInstallFromMarketplace && (
|
||||||
<InstallFromMarketplace
|
<InstallFromMarketplace
|
||||||
manifest={plugin as any}
|
manifest={plugin}
|
||||||
uniqueIdentifier={plugin.latest_package_identifier}
|
uniqueIdentifier={plugin.latest_package_identifier}
|
||||||
onClose={hideInstallFromMarketplace}
|
onClose={hideInstallFromMarketplace}
|
||||||
onSuccess={hideInstallFromMarketplace}
|
onSuccess={hideInstallFromMarketplace}
|
||||||
|
@ -108,7 +108,7 @@ const EndpointCard = ({
|
|||||||
Toast.notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') })
|
Toast.notify({ type: 'error', message: t('common.actionMsg.modifiedUnsuccessfully') })
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const handleUpdate = (state: any) => updateEndpoint({
|
const handleUpdate = (state: Record<string, any>) => updateEndpoint({
|
||||||
endpointID,
|
endpointID,
|
||||||
state,
|
state,
|
||||||
})
|
})
|
||||||
|
@ -55,7 +55,7 @@ const EndpointList = ({ detail }: Props) => {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleCreate = (state: any) => createEndpoint({
|
const handleCreate = (state: Record<string, any>) => createEndpoint({
|
||||||
pluginUniqueID,
|
pluginUniqueID,
|
||||||
state,
|
state,
|
||||||
})
|
})
|
||||||
|
@ -245,7 +245,7 @@ const ReasoningConfigForm: React.FC<Props> = ({
|
|||||||
popupClassName='!w-[387px]'
|
popupClassName='!w-[387px]'
|
||||||
isAdvancedMode
|
isAdvancedMode
|
||||||
isInWorkflow
|
isInWorkflow
|
||||||
value={varInput as any}
|
value={varInput}
|
||||||
setModel={handleModelChange(variable)}
|
setModel={handleModelChange(variable)}
|
||||||
scope={scope}
|
scope={scope}
|
||||||
/>
|
/>
|
||||||
|
@ -83,7 +83,7 @@ const ProviderCard: FC<Props> = ({
|
|||||||
{
|
{
|
||||||
isShowInstallFromMarketplace && (
|
isShowInstallFromMarketplace && (
|
||||||
<InstallFromMarketplace
|
<InstallFromMarketplace
|
||||||
manifest={payload as any}
|
manifest={payload}
|
||||||
uniqueIdentifier={payload.latest_package_identifier}
|
uniqueIdentifier={payload.latest_package_identifier}
|
||||||
onClose={hideInstallFromMarketplace}
|
onClose={hideInstallFromMarketplace}
|
||||||
onSuccess={() => hideInstallFromMarketplace()}
|
onSuccess={() => hideInstallFromMarketplace()}
|
||||||
|
@ -218,7 +218,7 @@ const Result: FC<IResultProps> = ({
|
|||||||
...data,
|
...data,
|
||||||
status: NodeRunningStatus.Running,
|
status: NodeRunningStatus.Running,
|
||||||
expand: true,
|
expand: true,
|
||||||
} as any)
|
})
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
onIterationNext: () => {
|
onIterationNext: () => {
|
||||||
@ -237,7 +237,7 @@ const Result: FC<IResultProps> = ({
|
|||||||
draft.tracing[iterationsIndex] = {
|
draft.tracing[iterationsIndex] = {
|
||||||
...data,
|
...data,
|
||||||
expand: !!data.error,
|
expand: !!data.error,
|
||||||
} as any
|
}
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
onLoopStart: ({ data }) => {
|
onLoopStart: ({ data }) => {
|
||||||
@ -247,7 +247,7 @@ const Result: FC<IResultProps> = ({
|
|||||||
...data,
|
...data,
|
||||||
status: NodeRunningStatus.Running,
|
status: NodeRunningStatus.Running,
|
||||||
expand: true,
|
expand: true,
|
||||||
} as any)
|
})
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
onLoopNext: () => {
|
onLoopNext: () => {
|
||||||
@ -266,7 +266,7 @@ const Result: FC<IResultProps> = ({
|
|||||||
draft.tracing[loopsIndex] = {
|
draft.tracing[loopsIndex] = {
|
||||||
...data,
|
...data,
|
||||||
expand: !!data.error,
|
expand: !!data.error,
|
||||||
} as any
|
}
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
onNodeStarted: ({ data }) => {
|
onNodeStarted: ({ data }) => {
|
||||||
@ -282,7 +282,7 @@ const Result: FC<IResultProps> = ({
|
|||||||
...data,
|
...data,
|
||||||
status: NodeRunningStatus.Running,
|
status: NodeRunningStatus.Running,
|
||||||
expand: true,
|
expand: true,
|
||||||
} as any)
|
})
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
onNodeFinished: ({ data }) => {
|
onNodeFinished: ({ data }) => {
|
||||||
@ -302,7 +302,7 @@ const Result: FC<IResultProps> = ({
|
|||||||
: {}),
|
: {}),
|
||||||
...data,
|
...data,
|
||||||
expand: !!data.error,
|
expand: !!data.error,
|
||||||
} as any
|
}
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
|
@ -78,7 +78,7 @@ export const generateFormValue = (value: Record<string, any>, formSchemas: { var
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const getPlainValue = (value: Record<string, any>) => {
|
export const getPlainValue = (value: Record<string, any>) => {
|
||||||
const plainValue = { ...value } as any
|
const plainValue = { ...value }
|
||||||
Object.keys(plainValue).forEach((key) => {
|
Object.keys(plainValue).forEach((key) => {
|
||||||
plainValue[key] = value[key].value
|
plainValue[key] = value[key].value
|
||||||
})
|
})
|
||||||
|
@ -55,7 +55,7 @@ const Blocks = ({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const { letters, groups: withLetterAndGroupViewToolsData } = groupItems(tools, tool => (tool as any).label[language][0])
|
const { letters, groups: withLetterAndGroupViewToolsData } = groupItems(tools, tool => tool.label[language][0])
|
||||||
const treeViewToolsData = useMemo(() => {
|
const treeViewToolsData = useMemo(() => {
|
||||||
const result: Record<string, ToolWithProvider[]> = {}
|
const result: Record<string, ToolWithProvider[]> = {}
|
||||||
Object.keys(withLetterAndGroupViewToolsData).forEach((letter) => {
|
Object.keys(withLetterAndGroupViewToolsData).forEach((letter) => {
|
||||||
|
@ -59,7 +59,7 @@ export const useWorkflowNodeFinished = () => {
|
|||||||
incomeEdges.forEach((edge) => {
|
incomeEdges.forEach((edge) => {
|
||||||
edge.data = {
|
edge.data = {
|
||||||
...edge.data,
|
...edge.data,
|
||||||
_targetRunningStatus: data.status as any,
|
_targetRunningStatus: data.status,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -47,7 +47,7 @@ export const useWorkflowNodeIterationFinished = () => {
|
|||||||
incomeEdges.forEach((edge) => {
|
incomeEdges.forEach((edge) => {
|
||||||
edge.data = {
|
edge.data = {
|
||||||
...edge.data,
|
...edge.data,
|
||||||
_targetRunningStatus: data.status as any,
|
_targetRunningStatus: data.status,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -44,7 +44,7 @@ export const useWorkflowNodeLoopFinished = () => {
|
|||||||
incomeEdges.forEach((edge) => {
|
incomeEdges.forEach((edge) => {
|
||||||
edge.data = {
|
edge.data = {
|
||||||
...edge.data,
|
...edge.data,
|
||||||
_targetRunningStatus: data.status as any,
|
_targetRunningStatus: data.status,
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -106,7 +106,7 @@ const Panel: FC<NodePanelProps<DocExtractorNodeType>> = ({
|
|||||||
required: true,
|
required: true,
|
||||||
}],
|
}],
|
||||||
values: { files },
|
values: { files },
|
||||||
onChange: keyValue => setFiles((keyValue as any).files),
|
onChange: keyValue => setFiles(keyValue.files),
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
runningStatus={runningStatus}
|
runningStatus={runningStatus}
|
||||||
|
@ -155,7 +155,7 @@ const Panel: FC<NodePanelProps<IterationNodeType>> = ({
|
|||||||
required: false,
|
required: false,
|
||||||
}],
|
}],
|
||||||
values: { [iteratorInputKey]: iterator },
|
values: { [iteratorInputKey]: iterator },
|
||||||
onChange: keyValue => setIterator((keyValue as any)[iteratorInputKey]),
|
onChange: keyValue => setIterator(keyValue[iteratorInputKey]),
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
runningStatus={runningStatus}
|
runningStatus={runningStatus}
|
||||||
|
@ -84,7 +84,7 @@ const RetrievalConfig: FC<Props> = ({
|
|||||||
model: configs.reranking_model?.reranking_model_name,
|
model: configs.reranking_model?.reranking_model_name,
|
||||||
}),
|
}),
|
||||||
reranking_mode: configs.reranking_mode,
|
reranking_mode: configs.reranking_mode,
|
||||||
weights: configs.weights as any,
|
weights: configs.weights,
|
||||||
reranking_enable: configs.reranking_enable,
|
reranking_enable: configs.reranking_enable,
|
||||||
})
|
})
|
||||||
}, [onMultipleRetrievalConfigChange, payload.retrieval_mode, validRerankDefaultProvider, validRerankDefaultModel, onRetrievalModeChange])
|
}, [onMultipleRetrievalConfigChange, payload.retrieval_mode, validRerankDefaultProvider, validRerankDefaultModel, onRetrievalModeChange])
|
||||||
|
@ -202,7 +202,7 @@ const Panel: FC<NodePanelProps<KnowledgeRetrievalNodeType>> = ({
|
|||||||
required: true,
|
required: true,
|
||||||
}],
|
}],
|
||||||
values: { query },
|
values: { query },
|
||||||
onChange: keyValue => setQuery((keyValue as any).query),
|
onChange: keyValue => setQuery(keyValue.query),
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
runningStatus={runningStatus}
|
runningStatus={runningStatus}
|
||||||
|
@ -98,7 +98,7 @@ const Panel: FC<NodePanelProps<LLMNodeType>> = ({
|
|||||||
required: false,
|
required: false,
|
||||||
}],
|
}],
|
||||||
values: { '#context#': contexts },
|
values: { '#context#': contexts },
|
||||||
onChange: keyValue => setContexts((keyValue as any)['#context#']),
|
onChange: keyValue => setContexts(keyValue['#context#']),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ const ImportFromTool: FC<Props> = ({
|
|||||||
})()
|
})()
|
||||||
const currCollection = currentTools.find(item => canFindTool(item.id, provider_id))
|
const currCollection = currentTools.find(item => canFindTool(item.id, provider_id))
|
||||||
const currTool = currCollection?.tools.find(tool => tool.name === tool_name)
|
const currTool = currCollection?.tools.find(tool => tool.name === tool_name)
|
||||||
const toExactParams = (currTool?.parameters || []).filter((item: any) => item.form === 'llm')
|
const toExactParams = (currTool?.parameters || []).filter(item => item.form === 'llm')
|
||||||
const formattedParams = toParmExactParams(toExactParams, language)
|
const formattedParams = toParmExactParams(toExactParams, language)
|
||||||
onImport(formattedParams)
|
onImport(formattedParams)
|
||||||
}, [buildInTools, customTools, language, onImport, workflowTools])
|
}, [buildInTools, customTools, language, onImport, workflowTools])
|
||||||
|
@ -90,7 +90,7 @@ const Panel: FC<NodePanelProps<QuestionClassifierNodeType>> = ({
|
|||||||
required: false,
|
required: false,
|
||||||
}],
|
}],
|
||||||
values: { '#files#': visionFiles },
|
values: { '#files#': visionFiles },
|
||||||
onChange: keyValue => setVisionFiles((keyValue as any)['#files#']),
|
onChange: keyValue => setVisionFiles(keyValue['#files#']),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,7 @@ const WorkflowPreview = () => {
|
|||||||
<ResultText
|
<ResultText
|
||||||
isRunning={workflowRunningData?.result?.status === WorkflowRunningStatus.Running || !workflowRunningData?.result}
|
isRunning={workflowRunningData?.result?.status === WorkflowRunningStatus.Running || !workflowRunningData?.result}
|
||||||
outputs={workflowRunningData?.resultText}
|
outputs={workflowRunningData?.resultText}
|
||||||
allFiles={workflowRunningData?.result?.files as any}
|
allFiles={workflowRunningData?.result?.files}
|
||||||
error={workflowRunningData?.result?.error}
|
error={workflowRunningData?.result?.error}
|
||||||
onClick={() => switchTab('DETAIL')}
|
onClick={() => switchTab('DETAIL')}
|
||||||
/>
|
/>
|
||||||
|
@ -7,10 +7,10 @@ describe('loop', () => {
|
|||||||
const [startNode, loopNode, ...loops] = list
|
const [startNode, loopNode, ...loops] = list
|
||||||
const result = format(list as any, noop)
|
const result = format(list as any, noop)
|
||||||
test('result should have no nodes in loop node', () => {
|
test('result should have no nodes in loop node', () => {
|
||||||
expect((result as any).find((item: any) => !!item.execution_metadata?.loop_id)).toBeUndefined()
|
expect(result.find(item => !!item.execution_metadata?.loop_id)).toBeUndefined()
|
||||||
})
|
})
|
||||||
test('loop should put nodes in details', () => {
|
test('loop should put nodes in details', () => {
|
||||||
expect(result as any).toEqual([
|
expect(result).toEqual([
|
||||||
startNode,
|
startNode,
|
||||||
{
|
{
|
||||||
...loopNode,
|
...loopNode,
|
||||||
|
@ -7,7 +7,7 @@ describe('retry', () => {
|
|||||||
const [startNode, retryNode, ...retryDetail] = steps
|
const [startNode, retryNode, ...retryDetail] = steps
|
||||||
const result = format(steps as any)
|
const result = format(steps as any)
|
||||||
test('should have no retry status nodes', () => {
|
test('should have no retry status nodes', () => {
|
||||||
expect(result.find(item => (item as any).status === 'retry')).toBeUndefined()
|
expect(result.find(item => item.status === 'retry')).toBeUndefined()
|
||||||
})
|
})
|
||||||
test('should put retry nodes in retryDetail', () => {
|
test('should put retry nodes in retryDetail', () => {
|
||||||
expect(result).toEqual([
|
expect(result).toEqual([
|
||||||
|
@ -20,8 +20,8 @@ export const getToolCheckParams = (
|
|||||||
const currCollection = currentTools.find(item => canFindTool(item.id, provider_id))
|
const currCollection = currentTools.find(item => canFindTool(item.id, provider_id))
|
||||||
const currTool = currCollection?.tools.find(tool => tool.name === tool_name)
|
const currTool = currCollection?.tools.find(tool => tool.name === tool_name)
|
||||||
const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : []
|
const formSchemas = currTool ? toolParametersToFormSchemas(currTool.parameters) : []
|
||||||
const toolInputVarSchema = formSchemas.filter((item: any) => item.form === 'llm')
|
const toolInputVarSchema = formSchemas.filter(item => item.form === 'llm')
|
||||||
const toolSettingSchema = formSchemas.filter((item: any) => item.form !== 'llm')
|
const toolSettingSchema = formSchemas.filter(item => item.form !== 'llm')
|
||||||
|
|
||||||
return {
|
return {
|
||||||
toolInputsSchema: (() => {
|
toolInputsSchema: (() => {
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import type { ChangeEventHandler } from 'react'
|
||||||
import {
|
import {
|
||||||
useCallback,
|
useCallback,
|
||||||
useRef,
|
useRef,
|
||||||
@ -49,7 +50,7 @@ const SearchInput = ({
|
|||||||
})
|
})
|
||||||
}, [querySchoolsWithDebounced, handleUpdateSchools])
|
}, [querySchoolsWithDebounced, handleUpdateSchools])
|
||||||
|
|
||||||
const handleValueChange = useCallback((e: any) => {
|
const handleValueChange: ChangeEventHandler<HTMLInputElement> = useCallback((e) => {
|
||||||
setOpen(true)
|
setOpen(true)
|
||||||
setSchools([])
|
setSchools([])
|
||||||
pageRef.current = 0
|
pageRef.current = 0
|
||||||
|
@ -43,7 +43,7 @@ describe('asyncRunSafe', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('getTextWidthWithCanvas', () => {
|
describe('getTextWidthWithCanvas', () => {
|
||||||
let originalCreateElement: any
|
let originalCreateElement: typeof document.createElement
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
// Store original implementation
|
// Store original implementation
|
||||||
@ -231,8 +231,8 @@ describe('canFindTool', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('removeSpecificQueryParam', () => {
|
describe('removeSpecificQueryParam', () => {
|
||||||
let originalLocation: any
|
let originalLocation: Location
|
||||||
let originalReplaceState: any
|
let originalReplaceState: typeof window.history.replaceState
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
originalLocation = window.location
|
originalLocation = window.location
|
||||||
|
Loading…
x
Reference in New Issue
Block a user